直击RHG:不让选手碰电脑的黑客大赛
2017/9/21 13:15:34 浅黑科技
?
很难想象,足球比赛不准用脚,乒乓球赛不准用拍子,正如我们也很难想象,一个黑客比赛不让选手碰电脑。
回车按下,赛事开始,各方队伍离开机器,屏气凝神,似乎什么都没发生,嗑瓜子,聊天,抖腿。
这场比赛一旦开始,选手们便不再介入,任由服务器里电光火石,角逐激烈—— 那是真正的擂台。
这场景,颇有些玄幻故事里的打斗,本体纹丝不动,出窍的元神却在空中大施拳脚。
没错,这就是传说中的“黑客鸡鸡大战”,哦不,“机机大战”!一场全程由机器人黑客对打的网络安全大赛。
由于比赛面向全球黑客开放,考虑到接轨国际,它有个洋气的名字 —— RHG(Robo Hacking Game)

作者:谢幺(微信:dexter0) 科技媒体人
1.黑客“机机大战”到底什么样?
▼
想搞懂机器人黑客是怎么挖漏洞的?先来看看人类黑客是怎么做的。
科技媒体人史中老湿曾这样比喻漏洞发现过程:
闭上眼睛,想象你是一束电流,在无边的迷宫里穿行。面前是无数道门,每次你只能选其一。
穿过一道门,又会进入新的房间。经过无数次的选择,你走出迷宫,仰望天日,从一个问题变成一个答案。
没错,你正在模拟一段代码输入一个系统的过程。
但是这个世界的奇妙之处就在于,它并不永远给出合理的答案。当你偶然打开一扇门,会发现周围的世界突然变得怪异,世界开始崩塌。
于是,你发现了一个漏洞。
简而言之就是把程序搞崩溃了。
同样拿迷宫的比喻来形容这场黑客大赛:
迷宫会随机掉落带锁的宝箱(主办方放出赛题),你和对手进入迷宫,在无数道门和道路中穿行,找到宝箱者得1分,打开宝箱者得20分,找到有效防止其他对手打开宝箱的方法,得20分。
对应的技术手段分别是(不懂技术的话随便看看就好):
找到宝箱 = 提交可以导致目标赛题崩溃的输入;
打开宝箱 = 提交能够将目标赛题服务程序进行控制的 PoV 文件;
封锁宝箱 = 提交可以组织有效漏洞利用PoV 的防御规则。
这个名为 RHG 的迷宫特殊之处在于,选手不得入内。
参赛者事先编写一个机器人黑客,事先告诉它基本走法和行动策略。比赛一开始,人类选手不再介入。
关注黑客大会的朋友们可能知道,这并不是第一次在黑客比赛中引用机器人。
2016年,美国举办的 “CGC”大赛,才是有史以来第一场机器人大赛。那场比赛里要求每个队里必须包含一名美国公民。

从这个角度看,永信至诚办的这场 RHG 比赛,可以认为是 CGC 的对标,也可看作是中国网络安全向世界正式宣告:AI 黑客之路,我们来了。
2. 所以,RHG这比赛到底什么水准?
▼
一开始报名参赛的,最后有三分之二都退赛了。
RHG大赛技术负责人,永信至诚CTO张凯说。

奖金给得太抠门了?还是水准太低,没啥意思?似乎都不是。
从剩下的参赛队伍来看,既有CGC进入决赛的队伍,也有天枢、phrack战队这类高校CTF佼佼者,还有两只中科院的研究所派出的战队,专业性肯定不是问题。

奖金30万,在国内也还算有竞争力。那究竟是为何退赛呢?
“难,还是因为难。” 张凯说。
机器永远有个最简单粗暴的方法——把每一条路都走一遍。
然而,这个方法在挖漏洞上行不通,计算机程序代码太多,迷宫实在太复杂,用遍历手段将耗费大量计算能力。
去年美国的 CGC大赛为每个队伍准备了一台超级计算机,租金就高达每台五十万,美金。但 RHG 官方给出的机器配置有限,售价大概几万块,人民币。
然而,事实证明,黑客挖漏洞这件事,并不太好总结出方法论,和经验、个人判断关联太大。
这和烹饪有点像,大师傅能做出美味佳肴,却很难告诉你“大火”到底是多适当,少许盐究竟多少克,黑客挖漏洞也是如此。
一个颠簸不破的道理,若你自己都总结不出方法来,何谈教徒弟,更别提自动化。
我认识个挖漏洞大神,号称“肉眼雷达”,据说经常肉眼一看代码就能感觉哪里看着不太舒服,搞一搞,果然发现漏洞。
张凯一边说,一边摊着手,耸了耸肩。
我随便从网上找了个二进制的截图,似乎明白了他耸肩的原因。
请告诉我,这TM的怎么用肉眼看出漏洞的 ▼

更可怕的,挖二进制漏洞还有个“堆风水”的说法。
张凯说,
挖漏洞和写程序不太一样,因为目标不是特定的,这就涉及到概率论了。(谢幺:幸好不是涉及玄学)
简单来说,并非执行了某个操作就一定得到预期结果,更多时候只是把概率提高一些。
这正如迷宫掉落的宝箱,你不知道它落在何处,便失去了特定目标。
就算人类黑客,也难说找到某种成型的框架,100%能挖到漏洞,更多的时候只是去试一下,用机器人黑客去做这件事,就又得编一大段程序,还要衡量资源消耗。
即便在这种情况下,人类黑客挖漏洞还是有一些通用套路。
一个挖漏洞朋友告诉我,目前最简单无脑的流程:
先不管三七二十一做个 Fuzz(模糊测试),把各种样本集丢到程序里,搞到它Crash(崩溃)为止,再从崩溃信息里来寻找线索,从而把搜寻范围缩小到了一个很小的范围内。
之后再写利用程序,指令流控制程序的流向,指定内存读写什么的。
从这个角度看来,这次 RHG 大赛确实有尝试将一些挖掘漏洞的普适方法论应用到比赛流程中。
这是我拿到的比赛规则,懂技术的可以看一看,不懂的可以感受一下 ↓

3.机器人黑客能自我进化吗?
▼
既然老黑客没办法总结出挖漏洞规律,并教给机器人,那反过来呢?
可否利用大数据、深度学习算法,让机器人黑客偷师学艺?
张凯觉得目前还很难:
机器学习的原理是,当我们没办法总结规律时,干脆忽略掉规律本身,直接对比输入输出的关系,通过大量样本集就能训练出机器人。
然而,目前漏洞利用的样本集还是太小,很难像人脸、语音数据那样随手可得。甚至很多时候,针对某些二进制文件的特定漏洞,它本身就是特殊的。
真正挖掘漏洞的规律还是很难,但这也并非意味着不可能。
说到这,不得不提漏洞大牛吴石,凭着深厚的数学知识以及对计算机程序的理解,愣是能把一个个程序规律用数学公式类比了出来。
当年他也正因为发现了一种数学规则,能让 UAF 漏洞大规模地被产生。才使得 KEEN Team 声名鹊起。据说还曾一度让全世界的黑客用类似方法掀起了挖掘IE漏洞的狂潮。
正如爱因斯坦在写出 E=MC2 之前,谁能想到,这个放诸四海皆准,描述世间万物规律的公式,竟如此简洁。
挖漏洞的规律或许有,只是人们正在探索的路上。

4.研究机器人黑客的意义何在?
▼
客观来看,AI 挖掘漏洞这条路一定很漫长,至少难度远远高过围棋。
围棋难在无法穷尽的可能性,但其规则本身是简单的,棋盘边界也是确定的19路。
然而在程序的万千行代码之中,挖漏洞更像是一场看不到没有边界的棋局,它可能是7路围棋,可能是10086路,可能棋盘是圆的……
甚至,它没有既定的规则,时而是五子棋下法,时而变成围棋、黑白棋……
张凯也承认:
这次 RHG 相当于在Linux系统下,一个极其简单的软件模型上进行的漏洞挖掘比赛。
他们给原本没有边界的游戏定了一个不大不小的”边界“,让AI黑客选手们能在其中角逐高低,又不至于穷举所有可能性。
这就像围棋初学者们常用的9路围棋。
但即便如今在19路战胜顶尖人类选手的AlphaGo,最初也是从小棋盘开始训练起的,哪一个大的棋盘不是由一块块小棋盘拼成的呢?上亿行代码的程序又何尝不能拆分成一个个小部分?

像火种一样,让人们看到这个方向,这便 RHG 比赛是最大的意义。
张凯说,
人工智能的理念,很多年前就有了,今天人工智能的兴起,很大程度得益于存储技术、芯片等基础技术的发展,诸多因素共同成就了人工智能的今天。
或许未来某一天,AI 挖掘漏洞算法有了突破。芯片技术、云计算技术有了突破。兴许现在的问题一下子就解决了。原本缺乏漏洞样本的问题用数学模型一下子解决了。
不愿或不敢迈出一小步,便扼杀了网络安全的发展的这种可能性。
某公司新软件上线,一按回车,AI黑客迅速找到所有基础漏洞;
某天,网络安全专家下班时把上百万行代码的程序扔给自己的机器人;
人们也不再为WannaCry这样的自动化勒索病毒而担忧,即使出现,AI黑客也能在极短时间内扑灭……
张凯说着,原本因为连夜调试比赛平台而充满疲倦的眼中,忽然泛出光。那便是一个网络安全技术人眼中憧憬的未来。

“让我们迈出这一小步”
-End-
作者:谢幺(微信:dexter0)


http://weixin.100md.com
返回 浅黑科技 返回首页 返回百拇医药