2016年8月在美国拉斯维加斯举办的 Defcon CTF,一支名为 Mayhem 的机器人战队与另外十四支人类顶尖CTF战队上演了信息安全领域首次人机黑客对战。该事件在人工智能和信息安全领域具有里程碑式的意义,是机器智能开始深入影响信息安全的标志性事件之一。代表机器智能的 Mayhem,正是由美国国防部先进项目研究局(DARPA,Defense Advanced Research Projects Agency)举办的网络超级挑战赛(CGC,Cyber Grand Challenge)的冠军。

背景

CGC(Cyber Grand Challenage) 是DARPA于2013年发起的全球性网络安全挑战赛,旨在推进自动化网络防御技术发展,即实时识别系统缺陷、漏洞,并自动完成修补和系统防御,利用CRS(Cyber Reasoning System)实现全自动的网络安全攻防。主要涉及以下技术:

  • Dynamic Analysis
  • Static Analysis
  • Symbolic Execution
  • Constraint Solving
  • Data Flow Tracking
  • Fuzz Testing

赛程

CGC 的赛程分为两个阶段:初赛(Challenge Qualification Event,CQE)和决赛(Challenge Final Event,CFE)。在比赛之前,每支参赛团队需要开发一套全自动的网络推理系统CRS(Cyber Reasoning System),实现对 Linux 二进制程序的自动化分析及漏洞检测,自动生成PoC,并对漏洞进行修补。

Challenge Qualification Event(CQE)

POV(Proof of Vulnerability)是CGC竞赛的核心,可类比为常规CTF比赛中所需编写的Exploit。在CQE中,参赛团队的CRS被放置在单独的环境中进行评估,CRS在此环节中需要自动分析待检测的二进制程序CB(Challenge Banary),生成POV及修补过的CB。CQE阶段侧重于考察团队的漏洞挖掘能力及生成补丁的能力。下表为DARPA在CQE和CFE分別要测试的项目:

Challenge Final Event(CFE)

CFE和CQE最大的不同在于各参赛团队的CRS会部署于同一网络环境之内,各队将生成的POV提交给主办方,主办方将这些POV混入正常的服务流量,再分配给各队的CRS,以实现相互之间的网络攻防。若CRS能够在正常流量中检测出攻击流量,并进行有效阻断,则认为CRS成功实现了网络防御。

下图为CFE的评分标准。参赛队伍首先生成POV,若此POV成功便可获得部分得分。之后 Mixing Appliance 会将主办方以及各队的POV混合至正常的服务流量中(Service Poller)并发送给各队。各队首先从网络防御系统接收到流量,并可以做一定程度的过滤,若能成功过滤POV,则可获取相应的得分,反之则会被扣除相应的分数。而未过滤的流量会进入到 Patch CB 中。同样,成功过滤POV则得分,否则扣分。最后会确认应用程序状态,若应用程序能够提供正常服务则可以获得相应分数,否则扣除相应分数。

技术

由于本文主要介绍CGC相关情况,其中所涉及的技术过于庞杂,难以一一说明。因此以此图为索引,概要的展示各环节所涉及的主要技术,感兴趣的读者可对相关技术进行深入研究。

决赛团队简介

初赛阶段的参赛队伍分为资助(Funded Track)和公开(Open Track)两种。Funded Track 是预先向DARPA提交项目申请并获得75万美元资助的团队;Open Track 则是面向全球公开报名,由民间自由组织的团队;共有队伍近100支,包括至少18支来自欧洲、亚洲等非北美地区的队伍;Open Track 有传统CTF强队(disekt,shellphish等),也有由知名安全企业资助的比赛团队。由 DARPA 官方宣布的CGC最终比赛结果如下:
第1名:卡内基梅隆大学 ForAllSecure 团队研制的 Mayhem 系统;
第2名:GrammaTech 公司和弗吉尼亚大学 TECHx 团队研制的 Xandra 系统;
第3名:加利福尼亚大学 Shellphish 学生团队研制的Mechanical Phish系统。
以下为七支进入决赛团队的简介:

  • CodeJitsu(Berkeley, Calif.):来自加州伯克利大学,指导教授为Dawn Song。伯克利大学的研究团队在应用程序分析,特别是二进制分析领域始终处于世界领先的水平,该团队开源的分析系统很值得研究。http://bitblaze.cs.berkeley.edu/

  • ForAllSecure (Pittsburgh, Pa.):ForAllSecure是卡内基梅隆大学David Brumley教授所创办的公司,团队成员也多来自于卡内基梅隆大学的CyLab(David Brumley教授指导的实验室)。著名的PPP战队正是出自CyLab。除此之外,CyLab在二进制分析领域的研究也是处于全球领先的地位,与伯克利的团队类似,CyLab也有自己研发的二进制分析平台 BAP(Binary Analysis Platform。
    https://github.com/BinaryAnalysisPlatform

  • CSDS (Moscow, Idaho):有爱德华大学教授Jim Alves-Foss及其博士后研究员 Jia Song 组成的两人战队。是CGC比赛中唯一重新开发整套工具的队伍。

  • DeepRed (Arlington, Va.):Raytheon为美国公司,该团队在memory领域有一些特別的研究成果,队名源自于 IBM 的 Deep Blue。

  • disekt(Athens, Ga.):disekt是一只CTF战队,共有四位成员。该团队对于VM系统有深入研究,12年有发表QEMU漏洞,14年发表VM Detection技术,此外还有ROP相关研究成果。(ROP Detection at Shmoocon 2014 )

  • Shellphish(Santa Barbara, Calif.):团队由加利福尼亚大学圣芭芭拉分校的学生组成。Shellphish 不仅是传统的CTF强队,在学术研究方面也具备深厚的功力,团队指导教授之一的 Christopher Kruegel,在二进制分析领域相当有名。该团队开发的Angr系统,是非常优秀的分析平台。
    http://angr.io/

參考文獻

  1. https://github.com/CyberGrandChallenge/cgc-release-documentation/blob/master/walk-throughs/running-the-vm.md
  2. http://blog.trailofbits.com/category/program-analysis/