DARPA 的 Cyber​​ Grand Challenge 获胜者是否真的发现了以前未知的漏洞?

信息安全 漏洞扫描器 自动化测试 ctf
2021-09-04 23:08:34

DARPA 于 2016 年 8 月 4 日宣布了其 Cyber​​ Grand Challenge DARPA Cyber​​ Grand Challenge的获胜者。比赛被描述为

旨在加速先进的自主系统的开发,这些系统可以在对手有机会利用它们之前检测、评估和修补软件漏洞。今天决赛的七支参赛队伍由白帽黑客、学者和私营部门网络系统专家组成。

他们将实际挑战描述为:

在将近 10 个小时的时间里,参赛者在一个专门创建的计算机测试平台上进行了经典的网络安全练习“夺旗”,该测试平台载有一系列隐藏在定制、从未分析过的软件中的错误。这些机器面临的挑战是要在几秒钟内(而不是通常的几个月)内找到并修补容易被黑客攻击的有缺陷的代码,并在防御系统之前找到对手的弱点。

获胜系统 Mayhem 将被正式邀请参加 DEF CON 夺旗比赛,“这标志着历史上第一次允许机器参加全人类比赛。”

我在 DARPA 阅读并重新阅读了材料,但我仍然无法相信自动化系统会发现任何与 2014 年 4 月Heartbleed错误水平相当的东西。我想知道这些漏洞是否更多地处于已发布的 Microsoft 安全通知或推荐的更新等级别(换句话说,“错误查找器”基本上更像是一个自动补丁安装程序)。

有谁知道与 Heartbleed 或类似的实际漏洞相关的 DARPA 挑战测试平台的技术水平是多少?我想我会知道 Mayhem 在 CTF 比赛中真正与人类竞争的时候,但我目前对此表示怀疑。

1个回答

DARPA 测试平台 CGC(Cyber​​ Grand Challenge)是经过修改的 Linux 平台(DECREE)。它的二进制文件(为系统编译的机器代码)仅包含 7 个系统调用(例如,终止、接收、fdwait、分配等)。在整个系统代码中,DARPA 制作了具有一个或多个模糊测试漏洞的挑战二进制文件 (CB),即易受某些字符输入的影响。

模糊测试的早期示例之一是 Steve Capps 的“Monkey”,它通过向代码提供随机事件来测试 MacPaint 中的错误。“猴子”暗示“一千台打字机上的一千只猴子最终会打出莎士比亚的全部作品”,也就是说,如果你向一个程序发送足够多的随机或协议精心制作的输入,你最终会找到一种方法让它崩溃。模糊测试通常不会发现不会导致程序崩溃的安全威胁,例如间谍软件、许多病毒、蠕虫、特洛伊木马和键盘记录程序。但是,它会根据意外的程序输入(或与程序输入相关的代码错误)来发现漏洞,因此可能已经能够找到 Heartbleed 漏洞,这是由于 TLS(传输层)实现中输入验证不当引起的漏洞安全性)协议(在 OpenSSL 中)。

获胜团队 Mayhem 使用了符号执行器 (Mayhem) 和定向模糊器 (Murphy)。符号执行器对于那些在集成开发环境中使用过符号调试器的人来说很熟悉,也就是说,它基本上是一个解释器,它逐步执行代码并允许在执行代码的各个部分为输入分配和跟踪符号值。换句话说,Mayhem 团队能够使用 Mayhem 静态分析部分 CB(挑战二进制文件)以检测(或分析 Murphy 的建议)代码漏洞。这是 DARPA 挑战的一项要求,即发现漏洞并进行演示,即 POV(漏洞证明)。不幸的是,符号执行没有

DARPA CGC(挑战)要求团队不仅要定位 CB(挑战二进制文件)中的漏洞,还要记录具有 POV(漏洞证明)的漏洞,并使用修复二进制补丁 (RB) 修复漏洞。该补丁将进行性能测试,包括没有漏洞的正确操作以及对相关代码(执行时间)的实际性能影响。考虑到不允许人类为我刚才描述的任何事情做出贡献,这一切都相当惊人。

您可以在此处释放混乱!,在此处获取 DARPA 大挑战赛规则和其他文档Darpa Grand Challenge 相关文档,在Fuzz Testing中阅读有关 fuzzing 的信息,在Symbolic Execution此处阅读符号执行