机器学习模型助力发现可被利用漏洞
利用二十多个数据源训练机器学习,大学研究团队创建出漏洞预测模型,可预测潜在可利用漏洞,帮助公司更好地决策优先修复哪个软件缺陷。
该模型名为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ș指出,预测漏洞是否会可被利用增加了额外的难度,因为研究人员不得不创建攻击者动机模型。
“如果存在在野漏洞利用,那我们就知道肯定有可行的漏洞利用程序,但我们也看到过存在可行漏洞利用程序却无已知在野漏洞利用实例的情况。存在可行漏洞利用程序的漏洞是十分危险的,应当优先修复。”
Cyentia Institute和已被思科收购的Kenna Security发布的研究发现,公开漏洞利用代码的存在可使在野漏洞利用的可能性增加七倍。
参考阅读
SIEM发展趋势
打造自主安全的护栏
如何做一名机器学习工程师?
利用机器学习发起攻击的九种方式