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