微軟研究團隊致力采用深度神經網絡改進模糊測試技術,初始測試表現良好。
模糊測試用于找出軟件漏洞,尤其是內存崩潰漏洞,方法是向目標應用中輸入格式不正確的數據。如果軟件崩潰或行為異常,就表示可能存在安全漏洞。
模糊測試方法有3種:白盒模糊測試,測試源代碼或反匯編代碼;黑盒模糊測試,無需審查源代碼;還有灰盒模糊測試,與黑盒類似,但使用之前執行的結果數據作為反饋。
微軟的專家團隊,試圖采用被稱為深度神經網絡(DNN)的機器學習,來改進這一反饋環。神經網絡是模仿人類大腦的一組算法,用于識別各種模式,輔助分類和聚類數據。
神經網絡已被多家公司用于安全相關目的,包括垃圾郵件及惡意軟件檢測,甚至蘋果新的Face ID功能也用到了神經網絡。
微軟的研究人員試圖將神經網絡作為一種依賴之前模糊迭代發現模式的學習技術,來指導之后的迭代。
神經模型學習在輸入文件中預測良性和惡性位置的方法,用以在過往變異及相應代碼覆蓋信息的基礎上,執行模糊變異。
該方法已在谷歌開源模糊測試工具American Fuzzy Lop (AFL)中實現,并對ELF、PDF、PNG和XML文件格式的解析器做了測試。
測試顯示,除PDF文件因太大而表現略差外,神經AFL取得的結果,普遍優于未加入神經網絡功能的原版AFL。其改進在代碼覆蓋、不同代碼路徑及崩潰方面可見。
該項目背后的團隊認為,此方法可用于任意模糊測試工具,不局限于AFL。
我們的神經模糊測試研究項目,僅僅觸及深度神經網絡在模糊測試應用上的冰山一角。目前,我們的模型僅學習模糊測試位置,但該模型也可用于學習其他模糊測試參數,比如變異的類型或要應用的策略。我們還在考慮開發本機器學習模型的在線版本,也就是模糊測試工具不斷從在線模糊測試迭代中學習。
微軟剛剛發布了一個基于云的模糊測試服務——“安全風險檢測(Security Risk Detection)”。該服務采用人工智能來查找應用中的漏洞和缺陷。對神經網絡應用于滲透測試的研究,有助于改善此服務。
微軟的另一款新工具,用于發現內存崩潰漏的VulnScan,也將加入到“安全風險檢測”服務中。