◆馮蘊(yùn)
試析人工智能技術(shù)在安全漏洞領(lǐng)域的應(yīng)用
◆馮蘊(yùn)
(重慶廣播電視集團(tuán)(總臺)技術(shù)制播中心 重慶 404100)
近年來,我國信息技術(shù)高速發(fā)展,信息傳遞效率不斷提高,傳遞渠道越發(fā)豐富,為人工智能技術(shù)打下了堅(jiān)實(shí)的基礎(chǔ)。目前,人工智能技術(shù)已經(jīng)在各個領(lǐng)域被廣泛應(yīng)用,尤其是在網(wǎng)絡(luò)空間上,可以有效提高尋找安全漏洞的效率,并可以更加智能化地處理安全漏洞,具有廣闊的應(yīng)用空間,本文對人工智能技術(shù)在安全漏洞領(lǐng)域的應(yīng)用進(jìn)行了討論。
人工智能技術(shù);安全漏洞;自動化漏洞評估
隨著科技水平不斷提高,和智能手機(jī)的普及,我國已經(jīng)進(jìn)入到互聯(lián)網(wǎng)時代,人們的生活、工作模式發(fā)生了巨大改變,各種軟件和信息系統(tǒng)有著越來越重要的作用,數(shù)量大規(guī)模增長。在這個背景下,安全漏洞也隨之增多,對人們信息安全和財(cái)產(chǎn)安全造成了重大威脅,人工的方式已經(jīng)很難滿足信息系統(tǒng)的安全需求,而人工智能技術(shù)則成了安全漏洞領(lǐng)域新的發(fā)展方向。
安全漏洞是信息系統(tǒng)、信息產(chǎn)品在設(shè)計(jì)、運(yùn)行、配置過程中產(chǎn)生的缺陷,這些缺陷以各種形式存在于信息系統(tǒng)之中,影響著信息系統(tǒng)的各個層次、環(huán)節(jié),會阻礙信息系統(tǒng)正常運(yùn)作,使系統(tǒng)運(yùn)行存在一定的安全風(fēng)險。如果這些安全漏洞被不法分子利用,將會影響信息系統(tǒng)的機(jī)密性、穩(wěn)定性、安全性,進(jìn)而影響信息系統(tǒng)的運(yùn)作,可能會導(dǎo)致重要信息泄露,系統(tǒng)停止運(yùn)轉(zhuǎn)等情況,如果通過安全漏洞控制了整個信息系統(tǒng),甚至可能會造成財(cái)產(chǎn)損失,安全漏洞的研究,一直是信息系統(tǒng)安全和網(wǎng)絡(luò)空間安全的重要研究方向。安全漏洞領(lǐng)域的研究主要是漏洞挖掘、評估漏洞、分析漏洞、修復(fù)漏洞等方向,目的是最終消除所有的安全漏洞,保證信息系統(tǒng)正常運(yùn)轉(zhuǎn)。近年來,隨著我國經(jīng)濟(jì)不斷發(fā)展,科技水平不斷提高,人們的生活、工作模式發(fā)生了巨大的改變,各種軟件系統(tǒng)大規(guī)模增加,功能越來越完善,復(fù)雜程度越來越高,其中蘊(yùn)含的安全漏洞也自然而然地增加了。根據(jù)美國國家漏洞數(shù)據(jù)庫的數(shù)據(jù)顯示,2017年漏洞記錄數(shù)量是2016年的2倍多,并且上升趨勢越來越明顯。安全漏洞對軟件系統(tǒng)有著巨大的影響,甚至?xí)斐删薮蠼?jīng)濟(jì)損失,因此安全漏洞的研究越發(fā)重要。
近年來,隨著信息技術(shù)不斷發(fā)展,人工智能領(lǐng)域也有了巨大的突破,人工智能技術(shù)逐漸成熟,智能化程度、反應(yīng)速度、學(xué)習(xí)能力、自然語言處理能力不斷提高。在系統(tǒng)安全領(lǐng)域,人工智能技術(shù)已經(jīng)被應(yīng)用到了惡意軟件檢測、入侵檢測之中,取得了良好效果。目前,已經(jīng)出現(xiàn)將人工智能技術(shù)應(yīng)用在安全漏洞領(lǐng)域的趨勢了。在安全漏洞領(lǐng)域,人工智能技術(shù)可以通過程序代碼,對漏洞報告進(jìn)行自動化處理,全面提取漏洞信息,通過深度學(xué)習(xí)技術(shù)、自然語言處理技術(shù),實(shí)現(xiàn)安全漏洞的自動化研究,提高安全漏洞的研究深度和研究廣度。通過機(jī)器學(xué)習(xí),人工智能技術(shù)可以模擬人類的思維邏輯和行為習(xí)慣,不斷獲取新的知識和技能,可以不斷完善計(jì)算機(jī)系統(tǒng)的自身的性能,以此來提高漏洞信息的處理效率和處理能力,能有效彌補(bǔ)人工方式工作能力不足的問題。人工智能技術(shù)的監(jiān)督學(xué)習(xí)能力,非常適合安全漏洞的研究工作,包括數(shù)據(jù)處理、建立算法模型、訓(xùn)練、測試、評估等功能,能很好地構(gòu)造漏洞模型,并且訓(xùn)練及測試各種處理方法。因此,人工智能技術(shù)在安全漏洞領(lǐng)域有著很大的應(yīng)用空間。
傳統(tǒng)的安全漏洞研究方法需要研究人員具備足夠的專業(yè)知識和研究經(jīng)驗(yàn),并且進(jìn)行大量對比、分析、綜合、記錄工作,這種漏洞研究方法的效率低下,而且受人為因素影響較大,研究結(jié)果的準(zhǔn)確性較差,研究方向有限,往往不能覆蓋到安全漏洞領(lǐng)域的各個方向,無法將研究結(jié)果有效利用起來,缺乏適用性。將人工智能技術(shù)應(yīng)用安全漏洞領(lǐng)域,能實(shí)現(xiàn)智能化研究,提高研究的精度和廣度。
安全漏洞挖掘問題本質(zhì)上是一種程序分類、程序聚合問題,原理是將安全漏洞從正常的信息系統(tǒng)程序中區(qū)分出來,或是將安全漏洞集中在一起,統(tǒng)一進(jìn)行處理。人工智能技術(shù)應(yīng)用在安全漏洞挖掘中,可以建立基于軟件度量的漏洞挖掘模型。軟件度量可以對軟件開發(fā)項(xiàng)目和產(chǎn)品的數(shù)據(jù)定義,進(jìn)行預(yù)測、預(yù)估、控制,并提供軟件運(yùn)行過程中的各種信息。軟件度量是安全漏洞挖掘的特征選擇之一,包括復(fù)雜度量、代碼變化度量、內(nèi)聚度量、開發(fā)者活動度量等方式[1]。早期軟件度量的作用是檢測程序故障,復(fù)雜度度量是安全研究人員的優(yōu)先選擇,但同時軟件的高復(fù)雜度也阻礙了研究人員對信息程序的理解,無法應(yīng)用在安全漏洞的挖掘上。同樣的,其余的度量也無法單獨(dú)反映出系統(tǒng)漏洞。人工智能技術(shù)擁有深度自學(xué)能力,可以深刻理解復(fù)雜度度量、代碼變化度量、內(nèi)聚度量等度量方式的內(nèi)在原理,并將其綜合利用,在一定程度上反映出哪些文件中可能會包含漏洞,并且基于度量結(jié)果,構(gòu)建漏洞挖掘模型。但是構(gòu)建出的漏洞挖掘模型的性能依然較低,這是因?yàn)檫@些度量方式與安全漏洞沒有很強(qiáng)的相關(guān)性,因此還要從漏洞出發(fā),開發(fā)結(jié)合安全漏洞的代碼特征,才能讓人工智能更好應(yīng)用于安全漏洞挖掘之中。代碼屬性不同于軟件度量,而是軟件度量的一種進(jìn)階,可以在代碼層次上進(jìn)行統(tǒng)計(jì),將代碼與安全漏洞連接起來,從而獲得更好的檢測效果[2]。這個過程需要對緩沖區(qū)溢出漏洞進(jìn)行挖掘,包括輸入分類、輸入驗(yàn)證等工作,工作量巨大,同時代碼屬性的應(yīng)用范圍較窄,均是研究人員依靠經(jīng)驗(yàn)進(jìn)行選擇的,具有一定主觀性。應(yīng)用人工智能技術(shù),可以通過計(jì)算機(jī)強(qiáng)大的處理能力,減少研究人員的工作量,并且結(jié)果更加準(zhǔn)確,并且能同時兼顧各個代碼屬性,具有很強(qiáng)的客觀性,可以完善漏洞挖掘模型,達(dá)到自動化的漏洞挖掘。
程序分析在安全漏洞領(lǐng)域有著重要作用,可以分析出漏洞的位置、性質(zhì)和原理,包括靜態(tài)分析技術(shù)和動態(tài)分析技術(shù),但兩種分析技術(shù)都存在一定的缺陷,通過與人工智能技術(shù)相結(jié)合,可以彌補(bǔ)或消除這些缺陷,提高程序的性能。靜態(tài)分析技術(shù)需要非常大的儲存空間來處理信息樣本,誤報率高,而應(yīng)用人工智能技術(shù)可以快速處理大量的信息樣本,壓縮信息樣本所占用的空間。同時,人工智能技術(shù)可以確定軟件系統(tǒng)中可疑函數(shù)的集合,并利用可疑函數(shù)的集合來指導(dǎo)符號執(zhí)行,可以有效減少路徑的數(shù)量,提高了符號執(zhí)行的性能,從而人工智能技術(shù)可以提高靜態(tài)分析的效率和準(zhǔn)確率。對于動態(tài)分析技術(shù),程序分析中的Fuzzing測試需要生成有效的測試樣例,才能觸發(fā)漏洞。人工智能技術(shù)可以提高Fuzzing測試的效率,并且可以提升代碼覆蓋率,進(jìn)而指導(dǎo)程序分析技術(shù)進(jìn)行更有效的漏洞挖掘。另外,在安全漏洞分析過程中,人工智能技術(shù)的學(xué)習(xí)算法有著重要作用。支持向量機(jī)、決策樹、隨機(jī)森林等都是主要的安全漏洞算法,不同算法間存在顯著差別,反應(yīng)漏洞的側(cè)重點(diǎn)也有所不同,同時不同算法對于數(shù)據(jù)信息特征的利用程度不同,也會產(chǎn)生不同的效果,因此算法的選擇對漏洞的研究結(jié)果也有很大影響。人工智能的學(xué)習(xí)算法可以使用多種漏洞算法,對漏洞進(jìn)行綜合分析,彌補(bǔ)傳統(tǒng)漏洞預(yù)測的缺陷,可以取得特征數(shù)據(jù)的最優(yōu)檢測結(jié)果,使漏洞模型更加完善。
傳統(tǒng)的安全漏洞領(lǐng)域研究都集中在項(xiàng)目內(nèi)漏洞的挖掘上,對于跨項(xiàng)目漏洞挖掘的研究較少。跨項(xiàng)目漏洞挖掘是指將一個成形的漏洞完結(jié)模型,應(yīng)用在另一個項(xiàng)目中。在軟件系統(tǒng)的開發(fā)中,經(jīng)常需要對新啟動的項(xiàng)目進(jìn)行漏洞挖掘,保證軟件系統(tǒng)能夠正常運(yùn)行,但由于缺乏使用數(shù)據(jù),無法形成自身的漏洞挖掘模型,便需要進(jìn)行跨項(xiàng)目漏洞挖掘。但是不同項(xiàng)目的應(yīng)用領(lǐng)域、編程語言、設(shè)計(jì)理念、軟件度量方式都可能不同,給跨項(xiàng)目挖掘造成了很大障礙。而應(yīng)用人工智能技術(shù),可以進(jìn)行跨系統(tǒng)的遷移學(xué)習(xí),人工智能通過對兩個軟件系統(tǒng)進(jìn)行學(xué)習(xí),可以將學(xué)到的漏洞模型參數(shù)應(yīng)用新的系統(tǒng)中,從而加快新系統(tǒng)的漏洞模型構(gòu)建效率,為跨項(xiàng)目挖掘提供良好的基礎(chǔ)。通過對不同的信息系統(tǒng)進(jìn)行缺陷性測驗(yàn)可知,利用AST表征代碼信息進(jìn)行跨項(xiàng)目挖掘,可以加快信息系統(tǒng)的漏洞模型構(gòu)建速度,能明顯提高基于軟件度量的模型效果。
自動化漏洞利用是安全漏洞領(lǐng)域研究的重要方向,需要定位漏洞位置,通過符號執(zhí)行技術(shù)快速找到通往漏洞的路徑,并監(jiān)控信息程序的運(yùn)動過程,獲取實(shí)際運(yùn)行時的布局信息,并自動化的生成漏洞利用,但是這種技術(shù)能處理的漏洞種類有所限制,不能廣泛的應(yīng)用。將人工智能技術(shù)應(yīng)用在漏洞利用的自動化生成領(lǐng)域,可以快速獲取漏洞相關(guān)的軟件名、版本號、類型信息等,并對漏洞進(jìn)行定位,并通過NLP技術(shù),綜合處理這些信息源,可以實(shí)現(xiàn)漏洞利用的自動化生成。人工智能系統(tǒng)通過對漏洞的自然語言描述,可以從身份驗(yàn)證、識別性影響、訪問向量等方面開展文本學(xué)習(xí),構(gòu)建學(xué)習(xí)模型,能夠?qū)β┒吹膰?yán)重程度進(jìn)行智能化評估,準(zhǔn)確率能達(dá)到78%以上[3]。基于自動化漏洞利用和自動化漏洞評估,應(yīng)用人工智能技術(shù)還可以輔助漏洞修復(fù)工作。漏洞修復(fù)工作非常復(fù)雜,需要根據(jù)漏洞的類型和漏洞對程序運(yùn)行狀態(tài)的影響,決定修復(fù)方式,對程序進(jìn)行修改,同時還要保證修復(fù)之后不會產(chǎn)生其他的漏洞。目前人工修復(fù)依然是主要的漏洞修復(fù)方式,能夠更合理地配置修復(fù)資源,提高修復(fù)質(zhì)量。但是應(yīng)用人工智能技術(shù)能提高漏洞修復(fù)效果的檢測能力,幫助修復(fù)人員完成大部分重復(fù)性、程序性的工作。
綜上所述,在軟件系統(tǒng)應(yīng)用越來越廣泛的今天,安全漏洞問題越來越重要,影響著信息系統(tǒng)能否正常運(yùn)行,關(guān)乎著人們的信息安全和財(cái)產(chǎn)安全。在信息技術(shù)上誕生的人工智能技術(shù),可以完善漏洞挖掘模型,提高程序分析的效果,可以實(shí)現(xiàn)跨項(xiàng)目漏洞挖掘,實(shí)現(xiàn)自動化漏洞利用和智能化漏洞評估,在安全漏洞領(lǐng)域有著廣泛的應(yīng)用空間。
[1]孫鴻宇,何遠(yuǎn),王基策,等.人工智能技術(shù)在安全漏洞領(lǐng)域的應(yīng)用[J].通信學(xué)報,2018,39(8):1-17.
[2]張宸瑜.人工智能技術(shù)在網(wǎng)絡(luò)空間安全防御中的應(yīng)用研究[J].中文信息,2019(1):23.
[3]金晶,鄒晶晶.人工智能在網(wǎng)絡(luò)空間安全領(lǐng)域的發(fā)展[J].國防科技,2018,39(4):43-46,51.