谷歌阿爾法狗完勝天才高手李世石,全球矚目的人機(jī)圍旗大戰(zhàn)落下帷幕。但另一場(chǎng)網(wǎng)絡(luò)空間社區(qū)的人機(jī)大戰(zhàn)已經(jīng)悄悄點(diǎn)燃戰(zhàn)火,并將在今年8月的拉斯維加斯,上演人類有史以來(lái)的首次人機(jī)黑客大戰(zhàn)!
別說(shuō)圈外人,就算是安全社區(qū)的專業(yè)人員也鮮有人了解CGC人機(jī)黑客大戰(zhàn)的來(lái)龍去脈。安全牛為此查詢了大量資料,并分別采訪了國(guó)內(nèi)網(wǎng)絡(luò)安全對(duì)抗聯(lián)賽XCTF創(chuàng)始人諸葛建偉博士,以及今年入圍決賽的兩支機(jī)器程序戰(zhàn)隊(duì)的兩位華人學(xué)者——李康教授和張超博士。接下來(lái)我們就從頭開始了解這場(chǎng)將在人機(jī)對(duì)抗領(lǐng)域掀起更大波瀾的顛峰之戰(zhàn)!
什么是CGC?
想要了解人機(jī)黑客大戰(zhàn),就要先了解CGC(Cyber Grand Challenge,即網(wǎng)絡(luò)超級(jí)挑戰(zhàn)賽)。CGC是美國(guó)國(guó)防部先進(jìn)項(xiàng)目研究局(DARPA)于2013年發(fā)起的全球性網(wǎng)絡(luò)安全競(jìng)賽,舉辦CGC的主要原因是日益嚴(yán)重的網(wǎng)絡(luò)安全問(wèn)題,而目前基于漏洞的軟件安全攻防很大程度上依賴于人。CGC的目標(biāo)是推動(dòng)程序自動(dòng)攻防的能力并超越人的手動(dòng)能力,最終實(shí)現(xiàn)全自動(dòng)的網(wǎng)絡(luò)安全攻防系統(tǒng)。也就是說(shuō),CGC的參賽隊(duì)伍全部都是代表著機(jī)器程序的戰(zhàn)隊(duì),可以將其視作機(jī)器黑客CTF戰(zhàn)隊(duì)。
DARPA一向有通過(guò)舉辦挑戰(zhàn)賽來(lái)加速科技實(shí)用化的傳統(tǒng),網(wǎng)絡(luò)超級(jí)挑戰(zhàn)賽的思路來(lái)源于過(guò)去成功舉辦的超級(jí)挑戰(zhàn)賽(Grand Challenge),如2004首屆超級(jí)挑戰(zhàn)賽的目標(biāo)是推動(dòng)無(wú)人駕駛技術(shù)。參賽者從首次比賽沒(méi)有任何隊(duì)伍完成賽程,到后來(lái)實(shí)現(xiàn)了自動(dòng)沙漠穿越(2005年),再到后來(lái)實(shí)現(xiàn)了復(fù)雜城市路段自動(dòng)穿越(2007年)。DARPA舉辦的另一項(xiàng)知名度較高的比賽是機(jī)器人挑戰(zhàn)賽(DARPA Robotics Challenge)。
了解完CGC的舉辦背景,我們?cè)賮?lái)看一看CGC的賽程和賽制。
賽程及賽制
CGC的賽程主要分為兩輪,2015年6月預(yù)選賽開始,2016年8月進(jìn)行決賽。預(yù)選賽階段的參賽隊(duì)伍分為資助(Funded Track)和公開(Open Track)兩種。Funded Track 是預(yù)先向DARPA提交項(xiàng)目申請(qǐng)并獲得75萬(wàn)美元資助的團(tuán)隊(duì)。Open Track 則是面向全球公開報(bào)名,由民間自由組織的團(tuán)隊(duì)。
Funded Track共有七支隊(duì)伍,通俗地講它們是DARPA資助扶持的 “正規(guī)軍”。其中包括伯克利、卡內(nèi)基梅隆、弗吉尼亞等大學(xué)的研究團(tuán)隊(duì)以及幾支企業(yè)團(tuán)隊(duì)。Open Track是來(lái)自全球的近100支隊(duì)伍,北美以外的包括至少18支來(lái)自歐洲、亞洲等地區(qū)的隊(duì)伍。Open Track 有很多象 disekt,shellphish 這樣的傳統(tǒng)CTF強(qiáng)隊(duì),也有由知名安全企業(yè)(如雷神)資助的比賽團(tuán)隊(duì)。
預(yù)賽是由Funded Track 和 Open Track 所有團(tuán)隊(duì)一同參加,排名前七位的隊(duì)伍成為進(jìn)入第二階段決賽的隊(duì)伍。目前這七支決賽隊(duì)伍已經(jīng)勝出,其中三支來(lái)自 Funded Track,四支來(lái)自O(shè)pen Track,均為北美地區(qū)參賽隊(duì)伍。
初賽有104支來(lái)自全球的隊(duì)伍參加競(jìng)爭(zhēng),初賽后現(xiàn)在還剩七支隊(duì)伍有資格參加決賽。
值得一提的是,七支入圍決賽的機(jī)器戰(zhàn)隊(duì)中,有多名華人的面孔。如disekt的領(lǐng)隊(duì)李康教授,CodeJitsu領(lǐng)隊(duì)宋曉東教授,以及協(xié)助領(lǐng)隊(duì)張超和戰(zhàn)隊(duì)成員楊坤,shellphish戰(zhàn)隊(duì)的fish等。而且他們大多與國(guó)內(nèi)著名CTF戰(zhàn)隊(duì)百度-藍(lán)蓮花有關(guān)。李康教授是藍(lán)蓮花啟蒙導(dǎo)師,楊坤博士是藍(lán)蓮花隊(duì)長(zhǎng)、張超博士是藍(lán)蓮花隊(duì)員,fish則是前藍(lán)蓮花隊(duì)員。此篇文章的主要采訪對(duì)象諸葛建偉老師,更是藍(lán)蓮花的聯(lián)合創(chuàng)始人。
張超博士(左)和李康教授(右)
決賽階段從2015年7月末開始,七支通過(guò)預(yù)賽進(jìn)入決賽的隊(duì)伍均獲得DARPA的獎(jiǎng)金和計(jì)算資源資助。決賽將于2016年8月在拉斯維加斯舉行。挑戰(zhàn)的內(nèi)容是:在更貼近實(shí)際網(wǎng)絡(luò)攻防的對(duì)戰(zhàn)環(huán)境中,自動(dòng)化地挖掘漏洞并生成利用程序(exploit)攻擊其他隊(duì)伍,同時(shí)自動(dòng)化地防護(hù)自己隊(duì)伍的程序,包括系統(tǒng)和網(wǎng)絡(luò)層面防護(hù)。
DARPA官方提供的決賽計(jì)算資源總價(jià)值達(dá)60萬(wàn)美元:
每個(gè)獨(dú)立的HPC包含64個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)包括
20 Xeon cores
256GB of RAM
2TB of storage
總計(jì):
1,280 Xeon cores
16,384GB of RAM
128TB of storage
介紹了這么多,最吸引人的獎(jiǎng)金是如何分發(fā)的呢?
一向財(cái)大氣粗的DAPRA在預(yù)賽階段就投入了825萬(wàn)美元,含7支Funded Track隊(duì)伍的資助和4支入圍決賽的Open Track隊(duì)伍的獎(jiǎng)金。決賽階段獎(jiǎng)金總計(jì) 375萬(wàn)美元,其中冠軍獎(jiǎng)金200萬(wàn)美元,第二名100萬(wàn),第三名75萬(wàn),獎(jiǎng)金直接發(fā)給相應(yīng)名次的戰(zhàn)隊(duì)。把資助、獎(jiǎng)金、設(shè)備提供、平臺(tái)和賽題的開發(fā)等費(fèi)用全部統(tǒng)計(jì)起來(lái),本次CGC的總投入至少在2500萬(wàn)美元以上!美國(guó)政府在高科技的投入上一向不乏大手筆。
獎(jiǎng)金雖然誘人,但如何在比賽中勝出呢?像這種機(jī)器程序的競(jìng)賽,比賽規(guī)則和賽題又是什么樣的呢?
賽題與賽規(guī)
比賽的最重要規(guī)則是全自動(dòng),每支隊(duì)伍在比賽前有一年時(shí)間開發(fā)系統(tǒng),在比賽系統(tǒng)上線后必須全自動(dòng)攻防。
賽題由主辦方開發(fā),針對(duì)自動(dòng)漏洞挖掘所面臨的困難所設(shè)計(jì)。初賽包括131道賽題,即已知存在漏洞的Linux二進(jìn)制程序(無(wú)源碼),所有程序都存在內(nèi)存處理方面的漏洞,漏洞種類覆蓋 53 個(gè)不同類型的CWE(常見缺陷列表)。在預(yù)賽以前,每支參賽團(tuán)隊(duì)需要開發(fā)一套全自動(dòng)的程序分析工具,可以對(duì)Linux二進(jìn)制程序進(jìn)行全自動(dòng)化的分析發(fā)現(xiàn)其中的漏洞,并自動(dòng)生成能夠觸發(fā)漏洞的驗(yàn)證代碼(POC),自動(dòng)對(duì)程序漏洞進(jìn)行防御和修補(bǔ)。在CGC正式初賽前有幾次系統(tǒng)自動(dòng)化的預(yù)演,用來(lái)調(diào)試系統(tǒng)自動(dòng)化程度以及與主辦方系統(tǒng)對(duì)接。
CGC所涉及到的程序、網(wǎng)絡(luò)分析及防御生成
無(wú)論來(lái)自O(shè)penTrack還是Funded Track,所有團(tuán)隊(duì)面對(duì)的是同樣的挑戰(zhàn)。正式預(yù)選賽是一個(gè)在線自動(dòng)分析和異步攻防的過(guò)程,在指定的24小時(shí)內(nèi),每支隊(duì)伍的自動(dòng)分析系統(tǒng)需要在無(wú)人干預(yù)的情況下自動(dòng)從主辦方下載應(yīng)用程序,分析程序查找漏洞,提交可觸發(fā)漏洞的攻擊輸入,并提交修補(bǔ)后的加固程序。 在24小時(shí)的時(shí)間段之后,主辦方對(duì)所有提交的攻擊輸入與加固過(guò)的程序在隊(duì)伍之間進(jìn)行交叉攻防比較,通過(guò)攻防成功率和加固程序的性能綜合評(píng)測(cè)來(lái)決定預(yù)賽的名次。本次預(yù)賽中,開發(fā)者預(yù)留的590個(gè)漏洞,均被參賽隊(duì)伍成功修補(bǔ)。
決賽的挑戰(zhàn)內(nèi)容基本相同,但是引入了線上的實(shí)時(shí)對(duì)抗,是一個(gè)在線實(shí)時(shí)攻防的過(guò)程。決賽開始后,主辦方會(huì)不定時(shí)發(fā)布新的二進(jìn)制應(yīng)用,每個(gè)戰(zhàn)隊(duì)的系統(tǒng)需要實(shí)時(shí)對(duì)應(yīng)用程序進(jìn)行分析和修補(bǔ),部署修補(bǔ)后的程序,同時(shí)生成攻擊程序,提交給主辦方。與預(yù)賽不同的是,決賽的系統(tǒng)增加了網(wǎng)絡(luò)防御能力,系統(tǒng)可以自動(dòng)生成IDS規(guī)則,系統(tǒng)還可以選擇攻擊目標(biāo)。另外決賽階段的攻擊輸入不再是POC,而是實(shí)際可用的exploit,即它可用直接用于獲取程序控制權(quán)限或者泄露信息。
整個(gè)決賽過(guò)程類似 DEF CON CTF 的決賽過(guò)程,主要區(qū)別是對(duì)戰(zhàn)系統(tǒng)需要賽前準(zhǔn)備好,比賽中無(wú)人工參與。與CTF競(jìng)賽賽制一樣。各隊(duì)伍的自動(dòng)化分析系統(tǒng)需要實(shí)時(shí)地分析目標(biāo)程序,找到漏洞并生成攻擊樣本,進(jìn)而攻擊其他隊(duì)伍。各隊(duì)伍還需要在軟件層面和網(wǎng)絡(luò)層面部署防御措施,保護(hù)自身的程序不受攻擊。通過(guò)綜合計(jì)算攻擊得分、防御得分、以及防御措施引入的性能損失和功能損失,最終評(píng)判出優(yōu)勝隊(duì)伍。
1. 回合制在線攻防賽
2. 攻擊
類型1:崩潰在指定無(wú)效地址+控制一個(gè)寄存器為指定值
類型2:泄露flag內(nèi)存頁(yè)任意4字節(jié)
3. 防御
自動(dòng)修補(bǔ)
自動(dòng)生成IDS規(guī)則
4. 策略
流量分析,重放對(duì)手的攻擊
分析對(duì)手補(bǔ)丁,定位漏洞
分析對(duì)手IDS規(guī)則,繞過(guò)檢測(cè)
CGC決賽規(guī)則
網(wǎng)絡(luò)超級(jí)挑戰(zhàn)賽的技術(shù)亮點(diǎn)和難點(diǎn)相同,即系統(tǒng)的全自動(dòng)化。主要的難點(diǎn)在于,如何在“無(wú)限”的狀態(tài)下如何盡快找到觸發(fā)漏洞的輸入,尤其是在復(fù)雜輸入和有不確定因素(例如隨機(jī)數(shù)生成)等情況下。程序運(yùn)行的“無(wú)限狀態(tài)”是指,由于程序多樣化和單一復(fù)雜程序中大量分支循環(huán)運(yùn)行路徑,導(dǎo)致程序中的狀態(tài)要比類似于圍棋、國(guó)際象棋等“封閉有限狀態(tài)集”更加“無(wú)限”,自動(dòng)化攻防的分析搜索空間更大,也更加無(wú)法窮盡。圍棋原理上大致的上界是19*19,即361的階乘種可能性選擇。
CGC的內(nèi)容介紹了這么多,細(xì)心的人也許會(huì)問(wèn),這與前面提到的 DEF CON CTF 有何關(guān)系?人機(jī)黑客的世紀(jì)之戰(zhàn)又在哪里?
人機(jī)黑客顛峰對(duì)決
起初,在決賽的七支隊(duì)伍最終決出冠軍之后,本屆CGC即宣告結(jié)束。也就是說(shuō),產(chǎn)生出一支機(jī)器黑客的CTF冠軍隊(duì)伍。有意思的是,DARPA在2015年DEFCON大會(huì)上宣傳CGC比賽時(shí),受到 DEF CON CTF 組織者的現(xiàn)場(chǎng)挑戰(zhàn),引起現(xiàn)場(chǎng)參會(huì)者的極大興趣。
之前,包括深藍(lán)與國(guó)際象棋大師、中國(guó)超算天梭與象棋大師、認(rèn)知計(jì)算沃森與智力競(jìng)賽冠軍等類似的人機(jī)大戰(zhàn)已經(jīng)舉行過(guò)數(shù)次,但把計(jì)算機(jī)程序用到黑客攻防對(duì)抗上面還是首次。人類和程序相比到底誰(shuí)會(huì)更“黑”的爭(zhēng)議得到了業(yè)界乃至美國(guó)政府的關(guān)注,最終成就了這場(chǎng)極具歷史意義的人機(jī)CTF競(jìng)賽之約。而且就在上周,主辦方剛剛確定在今年的DEF CON CTF 期間,人類CTF競(jìng)賽的冠軍隊(duì)伍與CGC競(jìng)賽的機(jī)器冠軍隊(duì)伍,將進(jìn)行一場(chǎng)獨(dú)立的攻防對(duì)抗賽。而人類CTF競(jìng)賽的傳統(tǒng)國(guó)際強(qiáng)隊(duì)也將在今年4月份XCTF聯(lián)賽上海站國(guó)際賽0CTF齊聚上海,爭(zhēng)奪直通到DEF CON CTF總決賽的名額。
這次比賽對(duì)于安全領(lǐng)域的意義類似于1970年的首屆機(jī)器國(guó)際象棋比賽,雖然CGC系統(tǒng)的初期表現(xiàn)還沒(méi)有跡象能夠全面超越人類黑客的能力,但自動(dòng)系統(tǒng)用于安全攻防實(shí)踐可能來(lái)的很快,就像無(wú)人駕駛技術(shù)在三屆 Grand Challenge 比賽之后,技術(shù)成熟程度就已經(jīng)頗為清晰。
據(jù)分析,由于人機(jī)黑客大戰(zhàn)的具體規(guī)則細(xì)節(jié)尚未完全敲定,目前階段人機(jī)大戰(zhàn)的結(jié)果很難預(yù)測(cè)。機(jī)器的優(yōu)勢(shì)在于能夠快速分析程序,并快速部署不同的防御方案,但難于部署針對(duì)性的高級(jí)攻擊技術(shù)。人類隊(duì)伍的優(yōu)勢(shì)在于對(duì)程序語(yǔ)義的準(zhǔn)確理解,并針對(duì)性地開發(fā)攻擊技術(shù)。
人機(jī)黑客顛峰對(duì)決,不僅僅是對(duì)于安全社區(qū),甚至對(duì)于整個(gè)社會(huì),都將是一場(chǎng)值得矚目的比賽,一個(gè)歷史性的時(shí)刻,一個(gè)機(jī)器黑客的時(shí)代即將到來(lái)!