英特尔实验室对外发布其最新机器程序开发研究(Machine Programming Research,MPR)的成果,在GitHub上开源可分析程序代码存储库,找出程序代码缺陷的工具ControlFlag。ControlFlag运用先进的自我监督机器学习技术,能够自动侦测程序代码异常,缩短调试的时间,并且提高系统的品质和完整性。
官方提到,几乎所有大型软件都存在准确性、性能和安全相关漏洞,而且随着软件加入新功能等更新,bug被带来程序代码的机会增加。而ControlFlag能够解决这些问题,与任何具有控制结构的程序语言一起使用,利用半信任的概念来利用自我监督学习,从未标记的源码中学习,随着更多新资料加入,ControlFlag能够不断自我改进。
ControlFlag已经被应用在生产阶段的软件,或是开源系统上进行测试,2020年的时候,ControlFlag发现cURL中的程序代码异常,cURL是一个用来处理网络传输的知名开源项目,ControlFlag所找到的cURL程序缺陷,已经经过cURL团队确认,并且针对缺陷完成程序代码修补。
ControlFlag已经从专有且处于生产阶段的软件中,发现数百个具有内存和崩溃bug的潜在缺陷,同时也在开源软件存储库中,发现数十个新的异常问题,而每个异常问题都已经被项目维护者确认,并且获得修补。虽然ControlFlag在找到程序代码缺陷后,没办法自动缓解这些缺陷,但是能够提供用户修正的建议。
英特尔进行了一系列机器程序开发的研究,目的是要让程序代码更强健,维护起来更轻松,同时还能维持高性能,并且减少安全漏洞,而ControlFlag是英特尔这一系列研究其中一项成果,能够大幅减少软件开发时间,并且缩短调试的时间,进而减少开发所花费的资源。