為了減少漏洞和提高軟件質(zhì)量,微軟開發(fā)了神經(jīng)模糊技術。這種新的自動化測試方法,采用一種稱為模糊(fuzzing)的技術,將大量的數(shù)據(jù)輸入到程序中,以嘗試強制發(fā)生崩潰或意外行為,從而發(fā)現(xiàn)漏洞。
傳統(tǒng)的模糊工具分為三類。黑盒fuzzers是不直觀的,并使用現(xiàn)成的示例文件來創(chuàng)建新的輸入。與黑匣子相比,白盒剔除器要聰明得多。白盒模糊器將嘗試使用算法盡可能多地執(zhí)行不同的代碼分支。 Graybox fuzzers不能像白盒工具那樣映射程序的代碼結構,但是包含一個反饋循環(huán),以便使用樣本輸入發(fā)現(xiàn)錯誤的可能性更大。
微軟新的神經(jīng)網(wǎng)絡模糊測試項目采用灰箱模糊器,并將深度神經(jīng)網(wǎng)絡應用于反饋回路。隨著時間的推移,神經(jīng)反饋有助于發(fā)現(xiàn)更多可識別程序缺陷的獨特代碼路徑。在一個用于解析.png文件的庫測試中,與傳統(tǒng)的模糊技術相比,微軟使用神經(jīng)網(wǎng)絡所獲得的代碼路徑數(shù)量翻倍。
與所有處于研發(fā)階段的技術一樣,還有一些問題需要解決。當試圖通過神經(jīng)網(wǎng)絡運行PDF文件時,傳統(tǒng)的方法仍然勝過神經(jīng)網(wǎng)絡。造成神經(jīng)網(wǎng)絡響應緩慢的大文件被認為是罪魁禍首。
對于那些想知道這個新的神經(jīng)網(wǎng)絡能否被第三方和公眾使用的人來說,這是一個好消息。微軟已經(jīng)發(fā)布了一個名為微軟安全風險檢測的工具,它使用Azure云服務,任何擁有一些基本知識的人都可以使用該工具嘗試和發(fā)現(xiàn)軟件中的錯誤。