微軟正在將機器學習和深度神經網絡應用于其軟件安全方法。作為黑客攻擊的第二大首選目標,微軟近日宣布了一項新的研究項目——neural fuzzing,旨在增強傳統的模糊技術,發現漏洞并從過去的軟件經驗中學習。
該研究基于微軟的安全風險檢測工具,該工具包含人工智能技術來發現和檢測軟件錯誤。
模糊測試(Fuzzing)是一項體系完善的技術,能夠定位軟件的各種漏洞,可以說是0Day漏洞的挖掘利器。微軟的研究人員寫道,模糊測試涉及目標程序的惡意輸入,旨在引起崩潰,緩沖區溢出,內存錯誤和異常。
一些模糊測試包括:依賴樣本輸入文件生成新輸入的黑盒子模糊器,靜態或動態分析目標程序以幫助搜索新輸入的白盒模糊器,以及使用反饋循環指導搜索的灰盒模糊器。 據研究人員透露,微軟的新項目neural fuzzing使用機器學習模型來學習灰盒模糊器的反饋回路。該團隊表示,他們已經能夠改進四種輸入格式的代碼覆蓋率,代碼路徑和崩潰:ELF,PDF,PNG和XML。
微軟提出了一種學習方式,使用神經網絡從過去的模糊測試中學習輸入文件的模式,以指導未來的模糊測試。研究人員寫道,特別是神經模型學習了預測輸入文件中好(壞)位置的功能,以根據過去的突變和相應的代碼覆蓋率信息來執行模糊突變。
根據微軟安全風險檢測工程團隊William Blum的說法,這僅僅是將深度神經網絡應用于模糊測試的開始。
微軟也可以使用它來學習其他模糊參數,例如突變類型或應用策略。微軟正在考慮機器學習模型的在線版本,其中Fuzzing可以不斷地從持續迭代中學習。