摘要:軟件系統(tǒng)運行漏洞是常見的實際問題。系統(tǒng)漏洞不僅會帶來經(jīng)濟損失,也會影響軟件運行質(zhì)量與軟件功能發(fā)揮。研究軟件系統(tǒng)漏洞預(yù)測技術(shù),有利于及時發(fā)現(xiàn)漏洞出現(xiàn)區(qū)域、有效定義漏洞類型。通過漏洞預(yù)測,可以為軟件評估工作與提升軟件質(zhì)量的提供保障。通過本文實踐分析可知,軟件系統(tǒng)漏洞預(yù)測技術(shù)應(yīng)用要點包括明確漏洞預(yù)測技術(shù)內(nèi)涵、構(gòu)建漏洞預(yù)測模型,以及結(jié)合專業(yè)理論研究漏洞傾向性預(yù)測方法。只有結(jié)合實際情況打好理論基礎(chǔ),并對針對性預(yù)測技術(shù)進行了解,才能進行有效的分析研究,找到軟件系統(tǒng)漏洞預(yù)測科學(xué)路徑。
關(guān)鍵詞:軟件系統(tǒng);漏洞預(yù)測;模型構(gòu)建;漏洞傾向性
軟件系統(tǒng)漏洞預(yù)測技術(shù)在實踐應(yīng)用中,需經(jīng)過專業(yè)模型構(gòu)建和針對性的理論分析,并且通過既定步驟作為支撐,為軟件系統(tǒng)漏洞預(yù)測奠定基礎(chǔ)。在實踐預(yù)測工作落實開展中,主要針對漏洞傾向性進行預(yù)測,按照預(yù)測既定流程做好特征指標選擇和數(shù)據(jù)處理工作,為提升模型構(gòu)建合理性、優(yōu)化模型構(gòu)建質(zhì)量效果奠定基礎(chǔ)。
一、漏洞預(yù)測技術(shù)實施要點分析
(一)基于漏洞發(fā)現(xiàn)過程進行建模
在不同類型漏洞中,安全漏洞對系統(tǒng)運行會產(chǎn)生直接影響。當系統(tǒng)總體漏洞數(shù)量增加后,安全漏洞數(shù)量也會呈現(xiàn)上升趨勢。漏洞數(shù)據(jù)庫也會基于數(shù)據(jù)采集分析,形成更加集中和多樣的漏洞形式。因此,針對漏洞進行研究發(fā)現(xiàn),需要通過建模的方式提高可靠性和針對性[1]。具體來說,漏洞發(fā)現(xiàn)過程建模中可用的模型包括以下幾種。
一是安德森熱力學(xué)模型。此模型主要針對軟件可靠性進行研究,發(fā)生漏洞問題后,可實現(xiàn)基于漏洞立即修復(fù),且不會引入新漏洞。安德森熱力學(xué)模型的漏洞預(yù)測公式具體如下:
其中,k、γ以及C屬于常數(shù)參數(shù),模型會隨著時間t的增加,呈現(xiàn)出漏洞數(shù)量累積特征。
二是邏輯斯蒂模型。此模型構(gòu)建要點為建立邏輯斯蒂函數(shù),具體的函數(shù)表達式如下:
在此公式中,C是常數(shù)參數(shù),A和B分別代表可以根據(jù)經(jīng)驗設(shè)定的具體參數(shù)。在此模型中,邏輯斯蒂函數(shù)發(fā)揮主導(dǎo)作用,其主要特征表現(xiàn)為當t趨向無窮大時,漏洞總數(shù)會無限接近B,這意味著在最終統(tǒng)計時漏洞數(shù)量會達到一個上限[2]。
(二)基于模型構(gòu)建進行實驗分析與評價
在選擇一種模型進行漏洞預(yù)測分析時,首先需要對模型的有效性進行實驗分析。在驗證模型有效性時,需要考慮不同類型的參數(shù)指標和軟件系統(tǒng),并使用模擬觀察的方式來構(gòu)建漏洞增長過程,并確認模型參數(shù)的取值。下表1是基于生長曲線進行構(gòu)建的預(yù)測模型驗證數(shù)據(jù)[3]。這種模型被稱為PMGTV模型??梢允褂米钚《朔▉泶_定對模型參數(shù)的初始取值。關(guān)于模型評價方法,也需選擇專業(yè)技術(shù)方法以達到評價目標。具體來說,常用的模型評價方法有殘差平方合法以及卡方值法。根據(jù)模型評價結(jié)果進行總結(jié)分析可知,從擬合效果入手進行評價分析時,可清晰判斷對數(shù)模型和指數(shù)模型不容易取得良好的擬合效果,無法準確反映漏洞發(fā)現(xiàn)數(shù)量隨時間變化的具體規(guī)律。相對來說,生長理論模型在漏洞發(fā)現(xiàn)過程中能夠發(fā)揮更好作用,這也是本文選擇基于生長理論進行模型構(gòu)建研究的重要原因[4]。
二、系統(tǒng)漏洞發(fā)現(xiàn)預(yù)測模型分析
(一)軟件系統(tǒng)漏洞發(fā)現(xiàn)基本規(guī)律分析
發(fā)現(xiàn)漏洞出現(xiàn)的基本規(guī)律對于解決漏洞和相關(guān)實際問題有重要作用。在系統(tǒng)軟件發(fā)布上市后,漏洞具有一定的變化規(guī)律和系統(tǒng),軟件漏洞的發(fā)現(xiàn)速度也具有波動性特征。同時,漏洞也呈現(xiàn)出一定的基本規(guī)律。影響漏洞發(fā)現(xiàn)速度的因素主要包括以下兩個方面:用戶規(guī)模大小和是否受到黑客攻擊。
從基本特征的分析可知,使用軟件的用戶群體規(guī)模越大,越容易發(fā)現(xiàn)漏洞。從黑客角度來看,在攻擊軟件系統(tǒng)時,他們也會優(yōu)先選擇具備大規(guī)模用戶群體的系統(tǒng)。但是,隨著軟件運行時間的增長,系統(tǒng)功能的完善性也會不斷提升,系統(tǒng)中的漏洞逐步減少,因此發(fā)現(xiàn)漏洞的速度也會同步降低。
根據(jù)實際情況分析可知,常見系統(tǒng)軟件漏洞的發(fā)現(xiàn)速度可分為三個基本階段。首先,在軟件發(fā)布及上市初級階段,漏洞的增長速度較慢。其次,在軟件系統(tǒng)進入市場運行段時間后,漏洞發(fā)現(xiàn)速度會出現(xiàn)高速增長,但不具備持續(xù)性。最后,在成熟階段,漏洞發(fā)現(xiàn)速度逐步下降,漏洞增加頻率也同步減少?;谶@一特征繪制的曲線被稱為軟件漏洞系統(tǒng)生長曲線。
(二)漏洞預(yù)測模型描述方法分析
在描述漏洞預(yù)測模型時,需要考慮基礎(chǔ)數(shù)據(jù)計算并結(jié)合系統(tǒng)功能要求對預(yù)測模型的特征進行定位。通過描述漏洞預(yù)測模型,有助于幫助分析人員更準確和全面地了解漏洞的發(fā)展趨勢。在描述漏洞預(yù)測模型時,可以采用Logistic方程。此方程主要依據(jù)生物學(xué)原理設(shè)定假設(shè)前提,并建立相關(guān)微分方程與模型。然后可以代入初始條件與臨界條件,求解整體生長過程中的變化趨勢。這個模型的整體變化過程具有較強的邏輯性和實際應(yīng)用價值,整個曲線呈現(xiàn)出S型。
在實際應(yīng)用中,可以設(shè)定一個固定的時刻t,并將漏洞發(fā)現(xiàn)的數(shù)量記為y。由于漏洞發(fā)現(xiàn)速度具有波動性特征,需要結(jié)合生長理論建立一個關(guān)于發(fā)現(xiàn)數(shù)量的函數(shù)來描述漏洞發(fā)現(xiàn)的增長速度。具體表達式如下:
在實踐分析中,需要設(shè)置相關(guān)定值來構(gòu)建分支關(guān)系式,以描述漏洞預(yù)測的整體趨勢。只要數(shù)據(jù)計算精準有效,分析公式全面完善,就能充分發(fā)揮出模型的具體作用。在實踐分析中,還需要確保數(shù)據(jù)的準確性,有效地進行計算,并驗證所使用的分析方法和公式,以確保模型的準確性和可靠性。
最終,通過正確設(shè)置定值、構(gòu)建分支關(guān)系式,并進行精準計算和完善的公式分析,可以使漏洞預(yù)測模型在實踐中發(fā)揮出應(yīng)有的作用,并提供全面有效的預(yù)測結(jié)果。
三、軟件系統(tǒng)漏洞傾向性預(yù)測方法研究
(一)高斯過程核運算研究
關(guān)于高斯內(nèi)核主要功能在于定義數(shù)據(jù)之間的相似程度[5]。在訓(xùn)練模型時,高斯模型的訓(xùn)練采用單核訓(xùn)練模式,基于不同函數(shù)表達式對訓(xùn)練效果可能會產(chǎn)生客觀差異。相比之下,多核學(xué)習(xí)更具靈活性,能夠根據(jù)復(fù)雜的漏洞數(shù)據(jù)來預(yù)測其分布狀態(tài)。在本文研究中,主要通過引入新的多核函數(shù)來改善模型的構(gòu)建準確性和映射能力,從而獲得更顯著的分類效果。多核合成主要是通過對多個基本函數(shù)進行線性組合,最終得到求和核表達式,具體表達如下。
此公式主要通過將平方二次有理核以及平方指數(shù)核公式進行合成,得到新的核函數(shù),此函數(shù)表達式作為本文模型訓(xùn)練所用的核。
(二) GP模型預(yù)測漏洞傾向分析
基于高斯過程理論的軟件漏洞分析預(yù)測中,需要對漏洞進行二分類。隨后,新模型可用作預(yù)測,實踐預(yù)測結(jié)果映射在區(qū)間0~1范圍內(nèi),實現(xiàn)對軟件漏洞傾向性預(yù)測目標。將這個預(yù)測模型稱為GP-VTPM。模型構(gòu)建要點包括四個部分:樣本處理、GP模型試驗、閾值設(shè)定和漏洞傾向性預(yù)測。整體預(yù)測流程如下圖1所示。
在本文實踐研究中,選擇了兩個數(shù)據(jù)集進行模型驗證:NASA漏洞數(shù)據(jù)集和Linux漏洞數(shù)據(jù)集。傾向性預(yù)測工作需依據(jù)現(xiàn)有漏洞數(shù)據(jù)樣本特征進行分析研究。隨后,使用應(yīng)用機器學(xué)習(xí)模型完成訓(xùn)練學(xué)習(xí)過程,最終對新的模塊進行漏洞傾向評估工作。漏洞傾向性的本質(zhì)是利用機器學(xué)習(xí)解決分類問題的過程。主要是通過對代碼源文件或程序模塊進行分類,形成有漏洞區(qū)域與無漏洞區(qū)域的機器學(xué)習(xí)模型。主要通過高斯過程機器學(xué)習(xí)模式進行實踐訓(xùn)練,并最終使用訓(xùn)練完成的高斯過程模型對新源文件或程序進行漏洞發(fā)生傾向評估工作。
在實踐操作過程中,訓(xùn)練與預(yù)測兩階段,按照十字交叉法進行互動驗證。在具體分析時,需將有漏洞的源文件樣本設(shè)置為D1,D1={(x1,1),(x2,1),...,(xn,1)},不帶漏洞的源文件樣本設(shè)置為D2,D2={(x1,0),(x2,0),...,(xn,0)}。另外,還包括不帶標簽測試數(shù)據(jù)集,命名為T0={ x1, x2..., xn}。下表2為基于訓(xùn)練模型訓(xùn)練階段與預(yù)測階段指標內(nèi)容統(tǒng)計表。
在具體的訓(xùn)練階段中,首先需要將訓(xùn)練集送入模型內(nèi)部進行訓(xùn)練。訓(xùn)練集是由具有已知漏洞的樣本和沒有漏洞的樣本組成。模型通過學(xué)習(xí)這些樣本的特征和標簽之間的關(guān)系來建立模型。訓(xùn)練完成后,將測試集輸入到模型中進行預(yù)測。預(yù)測結(jié)果將被存儲在相應(yīng)的集合中。經(jīng)過一系列的學(xué)習(xí)和預(yù)測過程,預(yù)測結(jié)果將分別進入有漏洞傾向樣本合集與無漏洞傾向樣本合集。
(三)特征選擇階段分析
特征選擇階段主要通過將一組帶有標簽樣本輸入進行有效的特征選擇。獨立樣本實例都具有獨立特征向量對其進行描述,但不是所有獨立特征向量都對漏洞預(yù)測起作用。部分特征還可能對模型分析效果與性能造成負面影響。因此,需通過特征選擇保證分類準確性,減少特征的負面影響并提高數(shù)據(jù)模型計算效率。在實踐操作環(huán)節(jié)中,選擇合適的度量元是特征選擇的典型代表。常見度量元包括環(huán)路復(fù)雜度度量、科學(xué)度量以及CK度量等。目前廣泛應(yīng)用的軟件漏洞數(shù)據(jù)集,如美國航空航天局設(shè)置并對外公布的NASA數(shù)據(jù)集,具體數(shù)據(jù)及數(shù)量有13個,包括軟件模型、度量屬性、度量值、軟件模塊和標簽等多個內(nèi)容,數(shù)據(jù)集在實踐應(yīng)用中存在度量特征冗余量過大、無關(guān)特征數(shù)量較多的問題。因此,需結(jié)合傳統(tǒng)數(shù)據(jù)集和模型結(jié)構(gòu)對特征選擇階段具體度量元進行優(yōu)化設(shè)計。當大量特征數(shù)據(jù)涌入后,可能會造成維數(shù)災(zāi)難現(xiàn)象,影響數(shù)據(jù)模型預(yù)測性能。因此,需要解決這一問題,應(yīng)用特征選擇或特征提取方式對重點特征進行定位規(guī)劃[6]。針對一部分特征模型度量指標進行篩選,找出最優(yōu)子集。選取時,采用排列聚類結(jié)合方式進行選擇操作。隨后,結(jié)合專業(yè)算法對獨立特征進行明確并進一步完成俳句操作,在獨立子項目類別中,選出全局排序靠前的基本特征加入新特征集中,最終得到最優(yōu)集合。
(四)數(shù)據(jù)預(yù)處理分析
數(shù)據(jù)預(yù)處理是模型訓(xùn)練開展前,需把握的重要環(huán)節(jié)是利用機器學(xué)習(xí)中所選取的數(shù)據(jù)預(yù)處理方式進行預(yù)測模型數(shù)據(jù)信息篩選與優(yōu)化。預(yù)處理在實踐操作時,不同的特征度量單位有所不同。因此,度量值也會產(chǎn)生相應(yīng)差異。度量結(jié)果數(shù)量及差別較大,評價指標在相應(yīng)評價單位評價側(cè)重點上也有一定差異。這會直接影響到數(shù)據(jù)分析結(jié)果。為了消除這種影響,需要實施數(shù)據(jù)標準化處理。標準化處理后,所有數(shù)據(jù)指標數(shù)量級保持在同等水平下,樣本中若存在異樣,樣本數(shù)據(jù)預(yù)處理時,也需進行標準化操作。具體來說,標準化操作方法為Z-score。處理時,需對原始數(shù)據(jù)均值與標準差進行確認,并以此為依據(jù)進行數(shù)據(jù)標準化處理,確保處理后的數(shù)據(jù)符合正態(tài)分布特征。
(五)模型評價指標分析
模型評價是對模型分析功能效果進行觀察時,需要執(zhí)行的關(guān)鍵環(huán)節(jié)。結(jié)合本文實踐分析結(jié)果觀察可知,本文所實現(xiàn)的模型構(gòu)建以分類模型為本質(zhì)特征。程序模塊分類有漏洞傾向樣本,屬于負樣本性質(zhì)。而無漏洞傾向樣本則被定義為正樣本,評估效果時可選用混淆矩陣對n元素進行分類。完成上述模型構(gòu)建、模型指標評價分析后,可借助專業(yè)計算機軟件系統(tǒng),依托上文分析相關(guān)算法進行模型構(gòu)建、模型環(huán)境模擬,最終獲得計算數(shù)據(jù)對軟件系統(tǒng)漏洞發(fā)展趨勢進行預(yù)測分析。為取得更好模型預(yù)測功能觀察效果,還需設(shè)置對照組進行對照樣本分析。由此可見,利用樣本學(xué)習(xí)以及漏洞預(yù)測核心技術(shù)模型進行數(shù)據(jù)分析具有非常顯著的應(yīng)用適宜性。只要結(jié)合不同類型的數(shù)據(jù)模型,選取相應(yīng)的計算方法和分析方法,就能在軟件系統(tǒng)中獲得良好的漏洞發(fā)展趨勢預(yù)測效果。
四、結(jié)束語
綜合本文實踐分析可知,軟件系統(tǒng)漏洞發(fā)現(xiàn)與傾向性預(yù)測過程中,需結(jié)合模型構(gòu)建、數(shù)據(jù)計算、數(shù)據(jù)處理和對比分析幾個要點環(huán)節(jié),做好組織實施工作。結(jié)合軟件系統(tǒng)漏洞發(fā)展趨勢,對系統(tǒng)風(fēng)險進行進一步明確。在具體的模型構(gòu)建和數(shù)據(jù)分析環(huán)節(jié)工作推進落實過程中,應(yīng)結(jié)合多樣化數(shù)據(jù)進行篩選分析,明確數(shù)據(jù)特征,做好數(shù)據(jù)標準化預(yù)處理,為最終創(chuàng)建實驗環(huán)境,提升實踐分析有效性奠定基礎(chǔ)。
參? 考? 文? 獻
[1]鄭建云,龐建民,周鑫等.基于約束推導(dǎo)式的增強型二進制漏洞挖掘[J].計算機科學(xué),2021,48(03):320-326.
[2]白首華,胡天彤.微型嵌入式軟件靜態(tài)缺陷預(yù)測系統(tǒng)優(yōu)化設(shè)計[J].現(xiàn)代電子技術(shù),2020,43(10):97-99.
[3]曾嘉麒,劉外喜,盧錦杰.軟件定義數(shù)據(jù)中心基于殘差網(wǎng)絡(luò)的大象流預(yù)測機制[J].小型微型計算機系統(tǒng),2021,42(09):1938-1943.
韓鵬軍(1975.06-),男,漢族,碩士,國家能源集團國能信息技術(shù)有限公司網(wǎng)安中心總經(jīng)理,工程師,研究方向:信息安全、信息化。