Microsoft聲稱已開發(fā)出一種系統(tǒng),該系統(tǒng)可以在99%的時(shí)間內(nèi)正確地區(qū)分安全性和非安全性軟件錯(cuò)誤,并且可以平均97%的時(shí)間準(zhǔn)確地識別關(guān)鍵的高優(yōu)先級安全性錯(cuò)誤。在接下來的幾個(gè)月中,它計(jì)劃在GitHub上開源該方法,以及示例模型和其他資源。

這項(xiàng)工作表明,這樣的系統(tǒng)可以用來支持人類專家,該系統(tǒng)接受了來自Microsoft的47,000個(gè)開發(fā)人員的1300萬個(gè)工作項(xiàng)目和錯(cuò)誤的數(shù)據(jù)集的培訓(xùn),這些錯(cuò)誤來自Microsoft的AzureDevOps和GitHub存儲庫。Coralogix估計(jì),開發(fā)人員每千行代碼創(chuàng)建70個(gè)錯(cuò)誤,并且修復(fù)錯(cuò)誤的時(shí)間比編寫一行代碼的時(shí)間長30倍;在美國,每年用于識別和修復(fù)產(chǎn)品缺陷的費(fèi)用為1,130億美元。
微軟表示,在設(shè)計(jì)模型的過程中,安全專家批準(zhǔn)了培訓(xùn)數(shù)據(jù),并使用統(tǒng)計(jì)抽樣為這些專家提供了可管理的大量數(shù)據(jù)以供審核。然后,將數(shù)據(jù)編碼為稱為特征向量的表示形式,Microsoft研究人員著手使用兩步過程設(shè)計(jì)系統(tǒng)。首先,該模型學(xué)會了對安全和非安全性漏洞進(jìn)行分類,然后學(xué)習(xí)了將嚴(yán)重性標(biāo)簽(關(guān)鍵,重要或影響較小)應(yīng)用于安全性漏洞。
微軟的模型利用兩種技術(shù)進(jìn)行錯(cuò)誤預(yù)測。第一個(gè)是術(shù)語頻率逆文檔頻率算法(TF-IDF),這是一種信息檢索方法,它根據(jù)單詞在文檔中出現(xiàn)的次數(shù)為單詞賦予重要性,并檢查單詞在整個(gè)標(biāo)題集中的相關(guān)性。(微軟表示,其錯(cuò)誤標(biāo)題通常很短,大約包含10個(gè)單詞。)第二種技術(shù)(邏輯回歸模型)使用邏輯函數(shù)對特定類或事件存在的概率進(jìn)行建模。
微軟表示,該模型是內(nèi)部部署在生產(chǎn)中的,并且會不斷接受安全專家批準(zhǔn)的數(shù)據(jù)進(jìn)行再培訓(xùn),這些專家監(jiān)視軟件開發(fā)中產(chǎn)生的錯(cuò)誤數(shù)量。