機器學習模型助力發現可被利用漏洞
利用二十多個數據源訓練機器學習,大學研究團隊創建出漏洞預測模型,可預測潛在可利用漏洞,幫助公司更好地決策優先修復哪個軟件缺陷。
該模型名為Expected Exploitability(預期可利用性),可以86%的預測準確性(分類術語里的“精度”)捕獲可能遭遇實際利用的漏洞。此項研究的關鍵在于允許隨時間流逝改變某些指標,因為漏洞曝光之時未必能獲得所有相關信息,而研究人員使用之后的事件能夠提高預測的準確度。
報告作者之一,馬里蘭大學學院園分校電氣和計算機工程副教授Tudor Dumitra?表示,通過提升漏洞利用的可預測性,公司能夠減少需修復的嚴重漏洞數量,但該指標還有其他的用處。
他解釋道:“可利用性預測不僅僅對想要優先修復的公司有用,也對想要計算風險等級的保險公司和開發人員有用,因為這可能是邁向了解可利用漏洞成因的一步。”
馬里蘭大學學院園分校和亞利桑那州立大學的這項研究旨在嘗試為公司提供更多信息,幫助他們摸清哪些漏洞可能遭到攻擊者利用。2018年,亞利桑那州立大學和南加州大學信息科學研究所的研究人員專注分析暗網討論,試圖找到相關短語和特征來預測漏洞可能被利用或已經被利用的可能性。
2019年,數據研究公司Cyentia Institute、蘭德公司和弗吉尼亞理工大學的研究人員提出模型,改善了關于攻擊者可能會利用哪些漏洞的預測。
Cyentia Institute聯合創始人兼首席數據科學家Jay Jacobs表示,很多系統都依賴分析師和研究人員的人工流程,但Expected Exploitability可以完全自動化。
“這項研究專注持續自動挑出所有細微線索,不用依賴時間和分析師意見,所以很不一樣。所有這些都可以大批量實時完成。Expected Exploitability能夠很輕松跟上日常披露的漏洞洪流。”
漏洞披露當時未必能拿到所有特征,所以模型還需要考慮到時間因素,并克服所謂“標簽噪音”的困難。機器學習算法用靜態時間點分類模式時,比如將模式分為可利用模式和不可利用模式,如果事后發現標簽不正確,則分類可能會破壞算法的有效性。
概念驗證:分析安全漏洞的可利用性
研究人員使用了近10.3萬個漏洞的信息,然后將之與來自三個公共存儲庫(ExploitDB、BugTraq和Vulners),代表21849個不同漏洞的48709個概念驗證(PoC)漏洞利用程序進行了比較。研究人員還挖掘了社交媒體討論中的關鍵詞和標記(一個或多個單詞的短語),并創建了已知漏洞利用程序的數據集。
不過,研究人員在論文中表示,PoC并不總能很好地揭示漏洞是否可利用。
“PoC旨在通過弄崩或掛起目標應用程序來觸發漏洞,而且通常無法直接武器化。我們發現這在預測可行漏洞利用程序上會導致很多誤報。相較之下,某些PoC特性(如代碼復雜性)是很好的預測因素,因為觸發漏洞是所有漏洞利用的必要步驟,這些特性與創建可行漏洞利用程序的難度之間存在因果關系。”
Dumitra?指出,預測漏洞是否會可被利用增加了額外的難度,因為研究人員不得不創建攻擊者動機模型。
“如果存在在野漏洞利用,那我們就知道肯定有可行的漏洞利用程序,但我們也看到過存在可行漏洞利用程序卻無已知在野漏洞利用實例的情況。存在可行漏洞利用程序的漏洞是十分危險的,應當優先修復。”