近日,微软详细介绍了他们如何利用机器学习模型处理其软件和服务中的BUG,“4.7万开发人员每月产生近3万个Bug,”微软高级安全项目经理Scott Christiansen解释道。这家软件制造商在GitHub和AzureDevOps仓库中跟踪这些Bug,但仅靠传统的标签和优先级排序很难跟踪这些bug。
微软现在正在使用近20年的历史数据、跨越1300万个工作项目和Bug,创建了一个机器学习模型,可以以99%的准确率将安全和非安全Bug区分开来。这是一个旨在帮助开发人员准确识别和优先处理需要修复的关键安全问题的模型。
“我们的目标是建立一个机器学习系统,以尽可能接近于安全专家的准确度将Bug分类为安全/非安全和关键/非关键,”Christiansen解释道。微软向其机器学习模型提供了被标记为安全和非安全的bug来训练它,并确保数据不会太过嘈杂。然后,该模型学习如何对安全漏洞进行分类,并对每个漏洞贴上严重程度标签,如关键、重要或低影响等。
安全专家和数据科学家们在微软公司合作创建了这个模型,确保在生产中可以对其进行监视,并对Bug的随机抽样进行人工审查。该模型还不断地用微软的安全专家审查的新数据对其进行重新训练。这种机器学习模型意味着微软现在能以99%的准确率识别出安全漏洞,并以97%的准确率正确标注漏洞。
对于微软这样规模的公司来说,透露其开发人员每月产生多少Bug是不寻常的,更不用说如何处理这些Bug了。微软现在正计划将其方法开源到GitHub上,让其他拥有类似数据集的公司也能打造类似的模型。