微软计划在一个机器学习算法的背后开源方法,它声称它可以用99%的准确性区分安全错误和非安全错误。
该公司开发了一种机器学习模型,以帮助软件开发人员更容易地发现安全问题,并确定哪些问题需要优先处理。
通过将该系统与人的安全专家配对,微软表示它能够开发出一种算法,该算法不仅能够以近100%的准确性正确识别安全错误,而且能够正确标记97%的关键、高优先级错误。
了解有关数据科学,大数据分析和人工智能的最新新闻和最佳实践.. 星期一交货
该公司计划在未来几个月在GitHub上公开其方法。
据微软称,其由47000名开发人员组成的团队每月在其Azure DevOps和GitHubSilos上生成约30,000个bug,这给安全团队带来了麻烦,他们的工作是确保关键的安全漏洞不会丢失。
虽然自动标记和分类错误的工具是可用的,但有时假阳性被标记或错误被归类为低影响问题,当它们实际上更严重。
为了纠正这种情况,微软着手建立一个机器学习模型,该模型能够将错误分为安全问题或非安全问题,并能够“以尽可能接近安全专家的准确性”识别关键和非关键错误。
这首先涉及根据安全和非安全错误的统计抽样,提供安全专家核准的模型培训数据。 一旦生产模型被批准,微软就开始编程一个两步学习模型,使算法能够学习如何区分安全错误和非安全错误,然后为错误分配标签,指示它们是低影响的、重要的还是关键的。
关键的是,安全专家参与了整个旅程的每一个阶段的生产模型,审查和批准数据以确认标签是正确的;选择、培训和评估建模技术;手动审查错误的随机样本,以评估算法的准确性。
微软高级安全计划经理Scott Christiansen和微软数据和应用科学家MayanaPereira解释说,该模型是自动重新训练的新数据,以跟上微软的内部生产周期。
他们说:“在重新训练模型之前,这些数据仍然得到安全专家的批准,我们会不断监测生产中产生的错误数量。”
通过将机器学习应用到我们的数据中,我们准确地分类了99%的工作项目是安全漏洞。 该模型在标记关键和非关键安全错误方面也有97%的准确性。
“这种程度的准确性使我们相信,在安全漏洞被利用之前,我们正在抓住它们。