任务:检测并修补尽可能多的软件缺陷。
竞赛者:7台互相对抗的超级计算机,它们各有大型自动售货机大小,每台都被冠以了 Jima 或 Crspy 这样的名字,且由专业黑客团队编程以找出并修复恶意 bugs。
这 7 台「网络推理系统(Cyber Reasoning Systems)」于周四在位于内华达州拉斯维加斯的巴黎酒店及会议中心举办的 DARPA 网络挑战赛(DARPA Cyber Grand Challenge)上首次亮相。这是一个头奖为 200 万美元的、世界上首个全自动「夺旗(Capture the Flag)」比赛。经过八小时一对一的激烈竞争,DARPA 宣布了非官方赢家(unofficial winner)是来自匹兹堡的 ForAllSecure 建造的 Mayhem 系统。Mayhem 团队由 David Brumley 带领。来自 GammaTech 公司和弗吉尼亚大学的 TECHX 团队做出的 Xandra 系统排名第二,获得100 万美元奖金;来自加州圣巴巴拉的 Shellphish 学生团队做出的 Mechanical Phish 夺得了三等奖,获得 75 万美元。
DARPA 正在核实比赛结果,并将于周五公布官方结果。接下来获胜机器人会在年度 DEF CON 安全会议中的「夺旗(Capture the Flag)」比赛上对抗人类黑客。尽管没有人期望这些推理系统中的任何一个赢得这个挑战,它却能够比人类团队更迅速地解决某些类型的错误。
DARPA 希望这次比赛能够有助于促使研究者们进一步开发软件修复机器人,使它们能够比人类团队更快、更有效地连续扫描系统缺陷或漏洞。DARPA 说在数十亿行代码中迅速修补这些程序缺陷的能力是非常重要的。它有助于强化诸如电力线和水处理设备等基础设施抵抗网络攻击的能力,且随着在线个人设备的增长,它也有助于保护隐私。
然而市场上却还没有可利用的这种系统。相反,是安全专家团队在不断地扫描代码的潜在问题。根据 DARPA CGC 主席 Hakeem Oluseyi 的说法,发现一个软件漏洞平均花费专家们 312 天,且通常需要几个月或几年的时间来修补它。
「所有这些的最终目的是可扩展性,」Michael Stevenson 说,他是来自 Raytheon 的 Deep Red 团队的项目管理经理。「如果(程序)发现网络某一部分的问题,就需要这些技术来快速地抓取并修补整个网络的弱点。」2005 年的首届 DARPA 挑战赛(2005 DARPA Grand Challenge)推动了自动驾驶方面的商业及学术兴趣。
这张图显示了当 Rubeus 系统接收来自竞争对手的软件 bug 的确认信息时的网络通信流
该团队没有被告知他们的系统会在决赛中遇到什么类型的缺陷,因此他们的机器人不得不逆向工程( reverse engineer) DARPA 的挑战软件,识别潜在的程序缺陷,运行测试以验证这些错误,然后应用那些不会导致软件运行缓慢或使其完全关闭的补丁。
为了测试这些网络推理系统的极限,DARPA 所布置的软件缺陷是一些著名的恶意软件的简化版本,比如 Morris worm 和 Heartbleed bug。评分是基于机器人如何快速而有效地部署补丁并验证对手的补丁,而丢分项则是他们的补丁拖慢了软件运行速度。「如果一个 5 分钟就能解决的缺陷修复问题花了你 10 个小时来运行,那么它根本就不管用,」一位来自 Raytheon 团队的网络工程师 Corbin Souffrant 解释说。
Deep Red 团队的成员们将其系统实现化为五个基本步骤:首先他们的机器(Rubeus)使用了一种模糊编码技术(fuzzing)来超载数据程序并使其崩溃。然后它扫描了崩溃后的结果来确定程序代码中的潜在缺陷。接着它核对了这些缺陷并在一个已知的缺陷数据库中寻找潜在的补丁和适当的修复措施。它从这个存储库中选择了一个补丁并应用它,然后分析结果看看它是否有帮助。对于每一个补丁,该系统使用人工智能来比较其解决方案与结果,并判定它如何修复未来出现的类似补丁。
现场比赛期间,机器在处理一些缺陷时被证明比人类更吃力。有几台机器在 5 分钟之内便发现并修补好了一个 SQL Slammer 之类的漏洞,为此赢得了掌声。但只有两个团队成功修复了模拟 SendMail 中的 crackaddr 缺陷。还有一台机器人,TECHx 团队的 Xandra,发现了一个连主办方甚至都没打算创建的缺陷。