本次分享論文:Artificial Intelligence Techniques for Security Vulnerability Prevention
基本信息
原文作者:Steve Kommrusch
作者單位:Colorado State University, Department of Computer Science, Fort Collins, CO, 80525 USA
關鍵詞:artificial intelligence, machine learning, security, vulnerabilities, software
原文鏈接:https://arxiv.org/pdf/1912.06796
開源代碼:暫無
論文要點
論文簡介:計算機安全問題已存在數十年之久,人工智能技術在這一領域的應用亦有著漫長的歷史。以往,多數技術主要用于檢測運行系統中的攻擊,然而,近期在機器學習(諸如自然語言處理)方面所取得的進步,讓在系統部署前處理軟件和規范以檢測漏洞變為現實。此文針對運用人工智能技術(涵蓋機器學習)于產品引入前檢測或修復安全漏洞的方式展開了綜述。在所調查的論文里,提出了諸如使用自然語言處理分析需求文檔以保障安全標準的完整性、開展神經模糊測試、生成漏洞檢測等技術。我們把現有技術劃分為三類:漏洞檢測、漏洞修復以及規范分析。總體來講,盡管人工智能技術在該領域已極具效用,但其應用范疇依舊有限,提供了一系列能夠輔助但無法取代系統開發的工具,以降低漏洞風險。
研究目的:本文的研究目的是通過總結和分析最新的人工智能技術在安全漏洞檢測與預防中的應用,找出最有前景的研究方向,以期在系統部署前更有效地檢測和修復軟件漏洞。
引言
近年來,機器學習技術的應用范疇不斷延展,已能夠在自然語言處理、自動測試和代碼分析方面發揮關鍵作用。此外,傳統的人工智能技術(諸如支持向量機、遺傳算法和推理引擎)也可用于代碼分析,以防在系統部署前引入漏洞。據?Cybersecurity Ventures?的報告,全球每年生成的代碼量多達 1110 億行。憑借在系統部署前借助自動化機制檢測漏洞,產品團隊能夠將更多精力集中于功能開發和性能優化上。盡管機器學習和人工智能技術于安全漏洞檢測領域已取得顯著成果,但仍需更進一步的研究來拓展其應用范圍,提升檢測的精度與效率。
漏洞檢測
漏洞檢測指的是通過對源代碼或二進制代碼加以分析,從而識別其中易受攻擊的代碼段的問題。表 1 呈現了運用人工智能技術進行漏洞檢測的相關論文。其中有兩篇論文重點研究了安卓應用,這凸顯了機器學習應用在安全領域的一個主要原因。那些聲譽取決于軟件質量的公司也在提供平臺,以供大量開發者貢獻代碼。自動處理所提交的應用程序的這種能力,極大地減輕了經過培訓的專業人員進行質量保證的工作負擔。
漏洞修復
漏洞修復意味著在檢測到漏洞之后,借助人工智能技術對代碼中的漏洞進行自動修復。代碼修復的目標在于通過學習示例,把易受攻擊的代碼轉變為安全的代碼。伴隨這一領域的發展,數百萬行的遺留代碼能夠得到清理,從而大幅增強安全性。即便只是早期的進展,也可能極具價值。例如,倘若發現了新類型的漏洞(如 Spectre),能夠迅速生成示例以訓練如何將易受攻擊的代碼變更為受保護的代碼。創建一個能夠自動將包含漏洞的代碼轉化為安全代碼的系統,能夠有效地修復大型軟件庫中的代碼。
規范分析
自然語言處理的進步為研究人員創造了自動處理漏洞描述或產品規范以評估安全風險的契機。在 2017 年,CVE 每周記錄了將近300個漏洞,這給系統管理員帶來了沉重的負擔,他們需要對關鍵漏洞進行評估、優先處理以及修補。Bozorgi 等人運用機器學習來消化 CVE 漏洞標簽和描述,并生成一個單一的分數,用于總結漏洞的可利用性和嚴重性。該分數能夠輔助系統管理員優先開展新漏洞的補丁工作。
論文結論
盡管人工智能應用于安全漏洞的領域相對較窄,然而我們在此次調查中所討論的論文展現出了研究的多樣性。其中一些最為有趣的成果包含在新智能手機應用程序中檢測代碼和規范里的漏洞的能力,這在消費者群體中屬于一個重要的風險領域。通過學習適當的代碼轉換來自動修復易受攻擊的代碼的潛力,在發現新漏洞時極為有用。另外,分析英文規范以察覺安全風險并參照安全標準文檔的能力也頗具前景。鑒于全球每年約生成 1110 億行軟件代碼,能夠在系統部署前得以應用的自動化安全技術,對于技術能夠繼續被消費者、公司和政府安全使用將至關重要。?
原作者:論文解讀智能體
校對:小椰風