人工智能97%的时间发现了关键的微软安全漏洞

《人工智能97%的时间发现了关键的微软安全漏洞》

微软声称已开发出一种系统,该系统可以在99%的时间内正确地区分安全性和非安全性软件错误,并且可以平均97%的时间准确地识别关键的高优先级安全性错误。在接下来的几个月中,它计划在GitHub上开源该方法,以及示例模型和其他资源。

这项工作表明,这样的系统可以用来支持人类专家,该系统接受了来自微软的47,000名开发人员的1300万个工作项和bug的数据集的培训,这些bug存储在AzureDevOps和GitHub存储库中。Coralogix 估计,开发人员每千行代码创建70个错误,并且修复错误的时间比编写一行代码的时间长30倍;在美国,每年用于识别和修复产品缺陷的费用为1,130亿美元。

微软表示,在设计模型的过程中,安全专家批准了培训数据,并使用统计抽样为这些专家提供了可管理的大量数据以供审核。然后将数据编码为称为特征向量的表示形式,微软研究人员着手使用两步过程设计系统。首先,该模型学会了对安全和非安全性漏洞进行分类,然后学习了将严重性标签(关键,重要或影响较小)应用于安全性漏洞。

微软的模型利用两种技术进行错误预测。第一个是术语频率逆文档频率算法(TF-IDF),这是一种信息检索方法,它根据单词在文档中出现的次数为单词赋予重要性,并检查单词在整个标题集中的相关性。(微软表示,其错误标题通常很短,大约包含10个单词。)第二种技术(逻辑回归模型)使用逻辑函数对特定类或事件存在的概率进行建模。

微软表示,该模型是内部部署在生产中的,并且会不断接受安全专家批准的数据进行再培训,这些专家监视软件开发中产生的错误数量。

“每天,软件开发人员都盯着一长串需要解决的功能和错误。安全专家试图通过使用自动化工具来对安全漏洞进行优先级排序来提供帮助,但工程师经常会浪费时间在误报上或错过已被错误分类的关键安全漏洞。”微软高级安全计划经理Scott Christiansen和微软数据及应用科学家写道Mayana Pereira在博客文章中。“我们发现,通过将机器学习模型与安全专家配对,我们可以显着改善安全漏洞的识别和分类。”

微软并不是唯一使用人工智能清除软件漏洞的技术巨头。亚马逊的CodeGuru服务部分接受了亚马逊内部开发的代码审查和应用程序的培训,发现了包括资源泄漏和CPU周期浪费在内的问题。至于Facebook,它开发了一个名为SapFix的工具,该工具可以在将错误发送给人类工程师批准之前生成错误修复程序,以及另一个名为Zoncolan的工具,该工具  可以映射代码库的行为和功能,并查找各个分支以及分支机构中的潜在问题,程序中各种路径的交互作用。

点赞

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注