计算机软件中的漏洞,轻则令人烦恼,重则造成巨大经济损失,最严重的情况下甚至会导致惨重的人员伤亡。
如今,绝大多数企业都依赖软件运营业务。从整个供应链到最终客户,真正主导一切的是软件。
Facebook的全新Android应用首次尝试利用人工智能查找并修复其软件中的漏洞。
漏洞是一个大问题
软件漏洞的后果影响广泛。
例如,2017年,英国国民保健服务体系(NHS)的计算机系统出现故障,导致其未能寄出709,000份医疗通知函件。部分人因此错过了例行预约,另一些人则未能收到自己的病历,更糟糕的是,有人未能收到癌症检查结果。近2,000名患者因此面临受伤害的风险。
同年,Uber应用程序使一名法国男子陷入麻烦,因为它将他的婚外情暴露给了妻子。尽管他已退出该服务,该应用仍持续向其推送他的位置通知。
2018年,总部位于维也纳的软件测试公司Tricentis发布了一份报告,发现了606起重大软件故障,涉及314家公司,影响资产高达1.7万亿美元。
人工智能如何节省开发人员的时间
软件开发人员需要不断查找并实施各类修复工作,其中有些属于关键修复,有些则属于常规修复。他们已建立相应的系统和流程,帮助其发现漏洞。但大量工作仍需人工逐行排查代码。
Facebook全新的人工智能混合工具(之所以称为“混合”,是因为它仍需人工参与)正是为减轻这些繁琐的基础工作而推出的。
SapFix由Facebook工程师开发,旨在大幅减少工程师调试程序所花费的时间。该工具还旨在加快新软件的推出进程。
该工具分两步运作。首先,Sapienz(Facebook的智能软件测试工具)负责查找漏洞。随后,SapFix自动生成修复方案并提交给工程师,由工程师完成最终检查后再予以发布。
“自我们开始在8月测试SapFix以来,该工具已成功生成补丁,这些补丁已获得人工审核人员的认可并投入生产环境,”该公司表示,并补充道:
“据我们所知,这是首次将机器生成的修复方案(包含自动化端到端测试与修复)部署到Facebook规模的代码库中。”
有关其运作方式的更多细节,可参见此处。与此同时,Facebook承诺将“在未来”开源这些工具,并利用收到的反馈进一步改进其创新成果。
其主要亮点之一是,它能够在漏洞出现之前将其排除,而这一功能对NHS和Uber或许都大有裨益。


