9月21日上午9点,首届国际机器人网络安全大赛开始,22支机器人战队正式厮杀。
9月20日晚上7点,同期网络安全峰会的演讲者参加晚宴时,22支机器人战队的在会场紧急调试他们的机器人接口,进行赛前的最后一轮检查。当时有位工作人员告诉雷锋网宅客频道编辑,其实结局在调试完就已“命中注定”。
因为只等比赛开始,一切程序自动化运行,再也没人类什么事了——除了和机器人战队一起参赛的少量远程在线的人类战队,但是雷锋网宅客频道编辑从大赛承办方之一永信至诚了解到,此次人类战队甚至不参与积分排名。
机器人背后的选手在开赛后也不能再进行任何调试,只能旁观。
几乎可以说,这是一场纯机器人的战斗,虽然背后闪耀的是人类智慧之光。
这不是世界上第一场机器人参与的网络安全大赛。
2016年,美国国防部国防高等研究计划署(DARPA)推出了第一场机器人CGC(Cyber GrandChallenge)漏洞自动攻防赛。在同年的DEF CON CTF比赛上,共有15支队伍参赛,包括14支人类队伍和CGC比赛冠军机器人队伍,他们在CGC平台上比赛查找漏洞的速度。
在这场较量中,机器人队伍与国际顶尖CTF 人类战队一战的结果不好也不坏——它没拿到第一名,也没拿到最后一名。
这意味着,一部分人可以吊打机器人,另一部分人被机器人吊打。
既然还能被吊打我就不开心,人家阿法狗在围棋上可以打遍人类无敌手,在攻防领域,机器人能不能这样?
▲潘柱廷(上),张凯(下)
永信至诚高级副总裁潘柱廷和CTO 张凯这样介绍中国首届机器人网路安全大赛诞生的部分原因:
第一,人工智能在网络安全领域要想得到发展,需要在比围棋更复杂的训练环境,先让机器人在这种环境里自己battle,才能锻造出最牛的机器人;
第二,既然wannacry 能自动化攻击,机器人也要自动化地挖掘漏洞以及防御,以彼之道,还之彼身。
第三,其实大家以前也搞自动化漏洞挖掘工具,安全圈都知道这件事,但是谁搞得好,这些工具到底行不行,得拉出来一起比拼才知道。
在 22 支战队中,不乏曾参与 2016 年那次机器人与人类战队混战的著名国际战队。在参赛名单中,还有打惯 CTF 的好手,也有顶尖科研院校和安全公司的研究人员。
CGC 使用的是自建系统(某种程度上看,也可以被称为改良版的 Linux 系统)——主办方担心标准的 Linux 系统一旦 0 day 被发现和利用,这场比赛还有什么搞头?
与 CGC 比赛不同的是,在此次“中国制造”的RHG(robot hacking game)平台上,这是第一场基于标准Linux二进制的自动化漏洞挖掘和防御竞赛。官方称,当前互联网上大多数业务系统运行于 Linux 操作系统之上,针对 Linux 系统二进制文件的漏洞挖掘和防御具有极佳的现实意义。
意思就是,既然比赛能这样搞,以后自己真正挖漏洞时,完全没问题。
不过,雷锋网宅客频道此前也报道过,对于复杂的逻辑漏洞等,还是要靠技艺高超的安全研究人员的,这也是为什么此次针对的是二进制漏洞挖掘。
张凯认为,对大规模的漏洞挖掘,如人类与机器人水平比较接近的二进制漏洞挖掘上,机器人拥有无与伦比的资源优势——它可以24小时不间断工作,用大量计算量和硬件的扩充在同一时间完成更多漏洞挖掘,解决人类靠人力难以解决的问题。
在 RHG 上,机器人需要完成这些步骤:
第一,利用 fuzz 模块,输入错误的东西让程序崩溃;
第二,利用漏洞挖掘引擎,找到可以挖掘的漏洞;
第三,根据漏洞点,生成可利用的 EXP;
第四,验证该漏洞利用程序的破坏性。
他们是这样给机器人打分的:把机器人在二进制的漏洞挖掘和利用过程中的攻击成果划分为程序崩溃、程序执行流程可控、指定内存的内容读取、指定内存的内容写入、有效防御 5 个得分点,衡量机器人生成的攻击流量的价值。
事实证明,文头出现的那位工作人员是从哲学角度下的结论(约等于瞎扯)。
20日调试当晚,一支参赛队伍冲进了前三。21日开赛后它表现尚可,下午时情况却没有像调试时那样顺利了。
该队员对宅客频道称,正式比赛的题目难度比赛前调试的题目要大得多了。“跑得不太顺利,还要看后面的情况。”他说。
此时已经是 21 日下午 1 点多,该队伍的得分在四位数,而第一名得分是五位数,距离比赛结束还有一个半小时。但局势瞬息万变,城头大王旗换了好几拨。
下午 3 点,机器人大战分出了胜负:国防科技大学电子科学学院 hatbit 战队以总分 78822 分夺得第一名,山东科技大学PSK 战队和北京邮电大学天枢战队夺得第二名和第三名。
不过,比赛相当戏剧化,最后夺冠的国防科技大学电子科学学院 halfbit 战队是从第六名慢慢爬上去的,相当稳健。而整个比赛最后的分数分成了三大梯队:第一梯队平均得分四万分以上,第二梯队几千分,第三梯队零分,甚至负分。
张凯称,这取决于针对这场比赛的准备和积累。比如,夺冠的 halfbit 战队背后是6个博士、1名硕士和1个博导,他们利用的技术是之前两年的研究成果。
但是,宅客频道了解到,这次参赛的海外战队DCUA(乌克兰战队)和俄罗斯LC↯BC战队的准备时间相当少,前者是两个星期,后者也就一个星期。LC↯BC战队的一个小哥称,对战平台是中文的,难度很大,前天他们才急匆匆地找了一位翻译……小哥表示:“没事,我们也没啥期待,这次可以为来年机器人大战做铺垫。”
比赛过程中,还发生了这么几件有趣的事情:
1.为什么有些队伍在防御失误那一项上扣分那么多?因为机器人出了故障,胡乱地生成了针对所有10道题的防御,结果,既起不到有效防御,还影响系统的正常功能,扣分,眼睁睁地看着10道题扣下分来没商量……
2.在比赛过程中,因为只有漏洞利用,没有修补程序,所以虽然赶在前面发现了漏洞的机器人就可以对没有发现漏洞的机器人所在系统发起攻击,但后者留过神分析了攻击流量后,就会发起攻击……大家一起扣分吧!
但是问题来了?为什么有的战队扣分稍微少一点?因为人家防御措施做得好,你攻击他,攻击成功得分,他防守成功,你的一次攻击又帮助对手涨了一次分。
3.之前也提到,这次正式比赛现场机器人背后的选手很清闲,听听会唱唱歌就好,没想到选手们开始跟张凯套瓷了:看见我扣分、不涨分很捉急,你们能不能改个规则?还有的选手直接把分数一轮一轮抄下来再写一个自动化分析工具分析数据,看自家机器人的失误在哪。
4.张凯称,21日当天抽取的 10 道赛题并没有之前选手说的比测试时难。那为什么第一天做得好好的,第二天杯具了?张凯分析,很可能是有些选手在设计机器人系统时,没有设计识别题目名字,以为题目都是从pwn 01 开始,万万没想到,今天抽到的第一道题其实命名为 pwn 02。
“很多人问 AI 在网络安全领域到底能做什么?这次比赛中有一个初级例子供大家了解,一个大概两百行代码编译出来的含溢出漏洞的二进制文件,丢到机器人面前,机器在10秒左右的时间里就能发现漏洞点,而生成exp仅用了6秒左右的时间。人类打开ida的平均时间是多少?作为安全从业十七年的安全人,我被惊到了。当然,人工智能的网络安全应用路还很长,今天我们见证了日出光辉。”
永信至诚CEO 蔡晶晶在比赛结束后这样感慨。
事实上,张凯称,这次比赛的赛题难度没有很高,他更愿意把这场比赛看作一场表演:在公众面前,将此前可能只有网络安全圈才了解的自动漏洞挖掘技术呈现出来,打开一扇窗,让大家看到人工智能技术在网络安全上是一种怎样的状态。
在潘柱廷一条激动的朋友圈里,他说:希望今天的武汉,今天的赛场,不会成为时间穿越回来的恼怒的未来人的攻击目标。
正如他们所说,路还远,但窗子打开了,未来人类定义安全,但机器人会助一臂之力。