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