机器的黎明 -- 第24届DEF CON CTF总决赛亚军队员访谈

机器的黎明 -- 第24届DEF CON CTF总决赛亚军队员访谈

在刚刚过去的一周,中国奥运健儿在里约摘金夺银,而我们信息安全领域也毫不寂寞。一年一度素有“黑客世界杯”之称的DEF CON CTF总决赛如期在赌城拉斯维加斯举行。今年中国大陆地区两支超白金战队——0ops和Blue Lotus蓝莲花(首字母排序哈哈哈)合二为一,组成了一支国家队级别的新队伍——B1o0p,这支队伍不负众望第一次出战便一举拿下了总决赛的亚军,并且同老牌强队,2014年的总冠军PPP缠斗到最后一刻,展现出来令人信服的实力!


在这支队伍中,一共有五位选手来自GoSSIP小组(一名Research scientist,两名应届毕业生,两名在读研究生),赛后归国,小编立即抓住其中三位选手(包括本次B1o0p中唯一的一名女队员)小花椒、母鸡和Serenade进行了采访。

0 关于本次DEF CON CTF决赛的总体感受是什么?艰苦程度是否出乎你的想象?

小花椒: DEF CON CTF 作为全球最顶尖的CTF赛事,一直是DEF CON的招牌之一, 每年DEF CON期间,在现场都会举办各种各样的比赛,涵盖了计算机软硬件安全的方方面面(甚至包括社会工程学),并且今年其中的很多比赛都跟风命名为 XX CTF。

在DEF CON闭幕式上,会公布大会期间各类比赛的结果,而DEF CON CTF Finals作为诸多比赛中最为重量级的一项,会在闭幕式的最后,由主办方(LegitBS)公布现场决赛的前三名。

每年DEF CON的门票都会是一个特殊的Badge,(如2015年是一张唱片,2016年则是一块会发光的带有若干开关的电路板),这张门票同样是主办方精心出品的一道挑战题,在闭幕式中,有一项奖就是颁发给第一个破解了门票的参会人员。


-- 与其说DEF CON是一个安全会议,不如说更像是一个汇集了全球“玩”

安全的人的黑客游乐场,所有人都很享受DEF CON的这种氛围,这种气氛在国内是感受不到的。

DEF CON CTF Finals的难度很大,几乎每道题首先都是一道重口味的逆向题,在不通过逆向理解程序逻辑的情况下,甚至都不知道怎么构造一个合法的输入来使得程序继续运行下去。同现如今的许多On-site CTF一样,每道题都可能会有若干个漏洞,从简单到复杂,强队往往能在一两个小时内就开始输出exploit,实力稍弱的队伍只能一般逆向分析程序一边享受“吊打”,找寻可以重放的流量。

母鸡:总体感受是比赛风格的变化,由于引入了CGC的机制,较之前的CTF比赛,本次DEFCON CTF规则上更偏向于防御。其实我个人并没有觉得比上一次DEFCON CTF Finals更艰苦,应该是准备得更充分的原因吧,无论是azure的sig,还有xty,小花椒的libpov的准备,蓝莲花那边酒店和比赛现场之间网络的部署,很大提升了分析和攻击的效率。

Serenade:今年DEF CON CTF决赛不同于以往的传统攻防模式,采用了cgc系统。选手需要提供POV给主办方,主办方会运行这些POV,判断是否exploit成功。POV有两种模式,一种需要控制寄存器,一种需要泄露特定位置0x4347C000-0x4347D000 (CG\xC0\x00)的内容。


相较于以往的传统攻防战,CGC尤其重视patch,如果被对手攻击成功,得到的分数将减少一半。值得注意的是,CGC攻防会将每个队伍每一轮的patch、ids公开。在比赛中,你的patch可以立刻被对手获取分析并模仿(可以上传有后门的patch),并且上传patch也会扣一定的分数。因此何时上传patch以及上传怎样的patch成为比赛的一个重要组成部分。


1 能够从你的角度简单介绍一下比赛的题目?
小花椒:本次比赛有8道题目,分别编号为LEGIT_00001 ~ LEGIT_00004,LEGIT_00006~LEGIT_00009;其中有传统的菜单题,有测试用的裸的栈溢出,也有复杂的解释器、编译器、自定义计算器、网络协议,甚至有题目一道题就是4个binary,漏洞则分布在其中不同的binary中。

比赛的第一天放出了三道题LEGIT_00008(测试题), LEGIT_00007(计算器)和LEGIT_00003(PPC 解释器)。第二天放出了LEGIT_00004(文件系统),LEGIT_00006(C编译器)和LEGIT_00001(网络协议题),并在快结束时关闭了LEGIT_00008和一道我们拥有着巨大得分优势的LEGIT_00007。第三天只有四个小时,但还是放出两道LEGIT_00002和LEGIT_00009,并再次关闭了一道一直在帮助我们快速追赶PPP的LEGIT_00003。

当然,其中也有加过混淆的题目,这个时候无视Decompilation results的Machine的优势相对于人类就更加明显了。

母鸡:首先比赛规则与其他CTF比赛不同,由于需要确保 the machine 能正常参与比赛,所有CGC的规则都被原封不动地引入这次CTF。

对于每个题目每轮的得分为 = 可用性分数 * 防御分 * 攻击分 * 200

三项的基准都是1.0

可用性分数取决于队伍的patch是否能通过主办分的功能检查,和时间/内存开销的评估

防御分在patch则是在没有任何一个攻击成功时为2.0,否则为1.0

攻击分是1 + 成功攻击的队伍个数/对手的个数

另外任何队伍都可以下载到其他队伍的patch进行针对性的分析

在此规则之上由于大量队伍使用了通用防御的patch,各个队伍的binary各不相同。这导致很多攻击需要针对队伍进行适配。

防御侧,每个题目都有很多不同漏洞,一道题目在通常被放出半个小时左右就会有攻击产生,而发动攻击的队伍都不会选择修补漏洞,以避免patch被其他队伍抄袭。

Serenade:本次比赛有8道题目。第一天放出三道题目,第二天三道,最后一天两道题目。

除了第一道测试题目,其他题目是比较标准的defcon二进制题,涉及复杂的解释器、网络协议等。其中也有些题目藏了一些简单的栈溢出,机器分析比较有利,能够比较快地fuzz出,写出POV。

在比赛第二天快结束和第三天早期阶段的时候分别关闭了一道题。在关闭的这两道题上,我们本来拥有大量的得分优势。就结果而言,这两次关闭也导致我们不能及时追赶与PPP的分差。

2 给大家介绍一下各个对手的情况?特别是几个主要的夺冠竞争对手

小花椒:PPP: 传统强队,拥有以Geohot和Ricky Zhou为代表的Pwn机,并且今年其中还有若干参与了Mayhem开发的ForAllSecure成员,和Mayhem有着千丝万缕的联系,尽管不能直接使用Mayhem,但其优势仍毋庸置疑。


DefKor: 以Lokihardt为代表的韩国队伍,其中很多成员都出自BoB(Best of the Best,韩国信息安全举国体制),去年的DEF CON CTF Finals总冠军,和PPP并列为exploit输出最快的两大队伍。

Mayhem: 也就是"the machine",Mayhem作为CGC决赛CFE的第一名,在CFE夺冠后,作为机器的“明星”代表,参与到CTF Finals中来,和人类一决高下,这也正是本届DEF CON CTF的主题:Rise of the Machines

在CTF Finals的第一天,由于接口等问题,Mayhem未能work;而整个CTF Finals前两天,由于流量接口的不一致,Mayhem并未拿到任何流量,直到最后一天才成功收取到现场的流量。但就是在诸多不利的情况下,Mayhem还是做出了8道题目中的7道,其中甚至有些是我们认为机器不可能做出来的题目!!!

母鸡:PPP: 传统强队,在比赛中利用其他队伍倾向于抄自己patch的习惯,在自己patch内植入了后门

DEFKOR: 第一天凭借Loki的快速的攻击拿到第一,拥有卫冕的实力,但是接下来的几天由于频繁的进行patch导致丢失了大量的分数,比较可惜吧。

Mayhem: 虽然成绩并不是非常理想,但是能在绝大多数题目制造完成攻击都令人惊讶,有些题目应该是机器使用了重放的流量。

Serenade:PPP:美国CMU的传统强队,曾获得多次defcon ctf冠军,核心成员有Geohot、Ricky Zhou。

Defkor:多数成员来自韩国Bob计划,去年的defcon ctf冠军,核心成员有Lokihardt。

Hitcon:台湾217和Bamboofox的联队,曾获得defcon ctf亚军,很多成员拥有ACM决赛经验,二进制和编程能力很强。


3 谈谈第一次联合组队的合作情况,和Blue-Lotus的童鞋们合作如何?

小花椒:两只队伍的人员配置都很像,大家的分工都比较明确,赛前两只队伍都开发了许多针对比赛时攻防和数据分析的工具,并且有统一的平台进行管理,比赛期间大部分时候大家都在一块,现场和楼上的网络连通顺畅,有问题只要吼一声或者线上喊一声都能及时响应,合作很愉快。

母鸡:合作愉快,大家都使用一个工作平台,虽然之前没有过合作,但是丝毫没有因此出现问题~ && 蓝莲花团队使用的线下比赛平台非常赞~

Serenade:分工比较明确,并且将各自开发的工具整合起来,拥有了一套比较系统的辅助平台,在比赛的时候提供了很大的帮助。比赛的时候,大家也线上线下热烈讨论。


4 如何看待“the machine”?谈谈你的CGC见闻和感想

小花椒:CGC CFE从8月4日上午10点开始,从当天下午17点开始,比赛现场对外开放,并同时现场有直播讲解,直到8点比赛结束。尽管Mayhem似乎“毫无悬念”地夺得了冠军,但其实第二和第三名与Mayhem的分差并不大。据Angr作者所说,CFE中Angr做出来的题目最多,并不是第一名的Mayhem,但是Mayhem的开发团队对规则解读得很透彻,知道如何根据当前的得失分情况,采取一个最有效的应对策略来获取最多的分数。

CGC在比赛的可视化上着实下了一番功夫,从队伍的信息到程序运行时刻的动态图,都用一种浅显易懂的方式展示了出来,并在决赛现场为观众发放了专业术语和可视化讲解。


从CGC的整个初赛决赛巨大的投入可以看到,这个比赛在国家的支持下,确实是推动了整个安全攻防的自动化,并且从参加最终CFE的队伍中可以看到,多数来自高校或者与高校有着非常紧密的关联(在许多队伍里我们也能看到中国人的身影。。),从学术研究转化成实践成果,出现了如Angr和Mayhem这样的好的作品,学术界的论文有了工业化的实现,将学术界和工业届结合得更加紧密。

顺附一条CGC 决赛的直播视频
youtube.com/watch?

母鸡:因为cgc final的那天我一直在宾馆,所以没有了解更多而的信息。一直以来我都认为因为缺乏对程序行为的理解能力,机器很难在程序分析领域必过一个分析人员,因此只承担辅助的工作,但是这次比赛改变了我的观点。如果分析系统的算法效率以及计算能力可以进一步提升几个数量级的话,以后可能分析人员才是在漏洞挖掘上负责辅助工作的一方

Serenade:在比赛前段部分由于接口问题,the machine一直处于落后阶段,并且过了很长时间才给出patch。但比赛后段,有好几道题the machine率先给出了patch,有时候甚至优先于大多数队伍给出exploit。这次比赛的很多题目比较复杂(如解释器),并不利于the machine分析,但最终the machine在这些题目上仍然有着不俗的表现。


5 比赛中你觉得最困难的时刻是?

小花椒:最困难的就是决定该上自己的补丁还是别人的补丁。。。

母鸡:自己上了通用防御然后把0007搞挂了的时候T_T


Serenade:重放PPP的patch,在比赛后段才发现其中植入了PPP的后门(小编:捂脸)



6 比赛中你觉得最激动的时刻是?

小花椒:最激动的是从流量里找到了一条新的exploit。。。

母鸡:发现个一个题目的问题然后不会利用,又在流量里看到了其他队伍的攻击方法恍然大悟的时候

Serenade:第二天开场所有题目吊打全场(小编:此处应有掌声)!


7 评选一下你心目中的本次比赛最佳(选手或者队伍,可以选自己哦)

小花椒:B1o0p

母鸡:b1o0p,选手我提名jackyxty(小编:提名平时在实验室就坐自己旁边的队友真的好吗)


Serenade:b1o0p


(小编:看来大家都对自己的表现非常满意!)


8 除了CTF,本次Blackhat / DEF CON之行的其它见闻?

小花椒:DEF CON主办方觉得Ballys和Paris酒店太小,明年会把DEF CON放到对面的Caesars Palace(凯撒宫);明年DEF CON CTF Finals中,LegitBS将会Custom Architecture,相信会带来更多的惊(tong)喜(ku)。


母鸡:因为一直在宾馆所以没有去看- -~

Serenade: DEF CON的小会场里有贩卖一种叫spy coin的小工具,用特定的工具套上特制外形的硬币,用力一砸,硬币就可以分成两部分,中间是中空的,可以放一些东西。


9 预测一下未来,明年我们还会更上一层楼吗?

小花椒:人在,奇迹就在。

母鸡:更上一层楼不就是明年第一的意思了么- -~ 我自己这次通过这次比赛确实看了很多自己还可以提升的方面~

Serenade:会!

================================分割线================================

最后,我们祝愿这一群中国的信息安全希望之星,在未来能够登顶信息安全的世界巅峰!

编辑于 2016-08-14 12:12