2016年8月5日,全球瞩目的第24届黑客攻防夺旗大赛Defcon CTF在美国拉斯维加斯开幕。此次最具亮点的,就是参与的15支队伍中,有一支是机器人系统Mayhem,它与其他的14支人类组成的CTF团队,在CGC(网络超级挑战赛,简称CGC)平台上比拼查找漏洞、利用漏洞和修补漏洞的速度。
这次的Defcon比赛主题是:Rise of the Machines。CTF参赛的14支人类队伍和机器人队伍Mayhem必须一起在CGC的开发平台上DECREE比赛找漏洞的速度。
在Defcon CTF首日比赛中,机器人Mayhem一直排名末位,到第二天,Mayhem虽然击败了两支人类队伍,但是排名仍然靠后,这一状况一直持续到7日比赛结束。最终,人类团队美国卡内基梅隆大学的PPP战队、来自中国的蓝莲花团队与上海交大0ops团队联合组成的b1o0ps战队,以及来自韩国的DEFKOR战队分列大赛前三名。
这次比赛对于安全领域的意义类似于1970年的首届机器国际象棋比赛,虽然CGC的人工智能系统初期表现还没有迹象能够全面超越人类黑客的能力,但自动系统用于安全攻防实践将加快到来,就像无人驾驶技术在美国国防部先进项目研究局(DARPA)举办了三届超级挑战赛之后,其技术成熟程度突飞猛进。
全球第一次机器人漏洞修补比赛
Mayhem是在由美国国防部先进项目研究局(DARPA)推出的CGC(Cyber Grand Challenge)网络超级挑战赛(或自动化攻防比赛)中胜出的机器人系统,由卡内基美隆大学组成的新创团队ForAllSecure设计。
CGC于2013年发起,是一个全球性网络安全竞赛,目的在于提升利用人工智能进行网络攻防的能力。当软件和系统有越来越多的漏洞时,人工找寻和修补漏洞的能力远远落后于机器的速度,遇到计算机故障生成成百上千条崩溃报告时,这项工作就变得尤其艰巨,2003年的SQL slammer蠕虫在短短10分钟内就感染7万多台电脑,要解决这样的问题,需要靠计算机的自动化工具。因此,DARPA启动了CGC计划,希望研发出一套自动分析、挖掘和利用系统漏洞以及自动修补系统漏洞的CRS系统(Cyber Reasoning System,网络决策推理系统),从而改进人工智能系统对漏洞的检测与防御能力。也就是说,这是机器与机器之间的较量,是全球第一次利用机器人进行网络攻防的比赛。
CGC比赛从2013年10月开始报名,经过3场初赛,在2015年8月的Defcon中,宣布最终入围的7个队伍,包括:由加州伯克利大学Dawn Song教授带领的CodeJitsu团队所设计的Galactica机器人;由卡内基美隆大学David Brumley教授创立的新创公司ForAllSecure设计的Mayhem机器人;由程序分析公司GrammaTech和维吉尼亚大学组队的TECHx所设计的Xandra机器人;由爱德华大学计算机系的教授Jim Alves-Foss及其博士后研究员Jia Song组成的两人团队CSDS所设计的Jima机器人;美国国防公司Raytheon(雷神)组成的DeepRed设计出的Rubeus机器人;乔治亚大学学术理论分析人员和CTF选手组成的四人小组disekt所设计的Crspy机器人;以及加州大学圣塔芭芭拉分校的学生组成的Shellphish所设计的machaPhish等七队机器人,其中Shellphish和卡内基梅隆大学的队伍是同时参与CGC比赛且入围Defcon CTF比赛的队伍。
2016年8月4日,CGC比赛的决赛正式在拉斯维加斯举行,此次决赛主要是希望解决现实社会中难以解决的零时差(Zero Day)漏洞的问题,通过即时的自动化网络防御系统,可以通过系统自动化找出漏洞并且完成修补,真正做到降低这种零时差漏洞对系统和使用者带来的损害。这次CGC的比赛,以内存破坏类型的软件漏洞为主,比如常见的缓冲区溢位(Buffer Over Flow)、Format String Error等。
所有的过程和步骤,都要求做到全程自动化,因此,现场只能看到7台机器的无声较量,95轮的比赛均由两个解说员进行全程解说,7支研发机器人系统的团队成员在一旁观战。
最终,由卡内基美隆大学成员组成的新创公司ForAllSecure推出的Mayhem机器人(Bot)胜出,并获得200万美元的奖金。第二名为TECHx的Xandra机器人,奖金为100万美元。第三名为Shellphish的Mechaphish机器人,奖金75万美元。
值得一提的是,七支入围决赛的机器战队中,有多名华人的面孔。如disekt的领队乔治亚大学李康教授,CodeJitsu领队为加州大学伯克利分校的宋晓东教授,以及共同领队张超博士和战队成员清华大学杨坤,Shellphish战队的fish原是清华大学的王若愚等,并且他们大多与国内著名CTF战队百度-蓝莲花有关。
机器人如何保护网络安全
这七个机器人系统可以使用相关的自动化和漏洞修补技术包括:动态分析(Dynamic Analysis)、静态分析(Static Analysis)、符号执行(Symbolic Execution)、约束求解、数据流跟踪技术(Data Flow Tracking)以及模糊测试(Fuzz Testing)等,并和其他半自动化技术搭配,开发出一整套全自动的网络决策推理系统(Cyber Reasoning System,CRS)。决赛中,各CRS系统需要针对所有待测试的各种漏洞,也包括曾经对于全球网站造成极大冲击的Heartbleed漏洞进行分析,不仅要自动推论出目标程序的漏洞所在位置,也必须要能触发对手系统中的该漏洞以证明漏洞的存在,最后,则必须要自动化修补该漏洞,并防止其他队伍的攻击。
总决赛开始时,每个参赛的人工智能系统被置身于一个受控的封闭环境中。每个系统负责维护自己的所有服务,使其可用性不受影响,同时发掘和修补服务中存在的漏洞,并且攻击对手系统的服务中的漏洞。为了攻击对手,这些参赛的系统需要分析所有服务中存在的漏洞。一旦发现漏洞,CRS系统需要进一步生成攻击样本攻击对手系统。经证实对手服务器确实存在报告的漏洞后就能得分。同理,如果自身的服务被对手系统攻击成功将被扣分。因此,这些人工智能系统还必须同时对自身进行网络防御,保护服务器不受对手的攻击。
为了将网络安全人工智能系统用于打击恶意行为,此次大赛的成果以及参赛软件以开源形式公开,开源软件使得各种漏洞或漏洞利用程序更容易被网民发现和修复。并且,这种开放性也是为了防范对人工智能技术“恶意滥用”。
此次比赛的负责人Walker未对人工智能系统可能带来的网络安全益处进行预测,但他指出,商业软件的各种网络安全进步同样也将给美国军事带来益处,因为后者一般依赖于这种现成的成果。
机器人较量背后的投入
决赛阶段从2015年7月末开始,七支通过预赛进入决赛的队伍均获得DARPA的奖金和计算资源资助。挑战的内容是:在更贴近实际网络攻防的对战环境中,自动化地挖掘漏洞并生成利用程序(exploit)攻击其他队伍,同时自动化地防护自己队伍的程序,包括系统和网络层面防护。
DARPA官方为每个参赛队伍提供的计算资源总价值达60万美元:每个独立的HPC包含64个节点,每个节点包括20 Xeon cores、256GB of RAM、2TB of storage,总计:1280 Xeon cores,16384GB of RAM,以及128TB的存储。
据了解,DARPA为CGC项目共投入5500万美元,除上述各队伍的HPC服务器之外,还包括预赛阶段各队伍资助金额825万美元,决赛资助金额525万美元,决赛奖金375万美元,以及其他平台和赛题开发费用、项目管理费用等。
(本文汇编自天极网、人工智能快报、安全牛等编译及原创文章,CodeJitsu队伍的共同领队张超博士亦对本文有贡献。)
图1