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