0
本文作者: 李勤 | 2017-11-21 10:14 |
這不是一個(gè)順風(fēng)順?biāo)膴Z冠故事。
甚至,騰訊科恩在移動(dòng) Pwn2Own 上參賽的第一個(gè)項(xiàng)目就遭失利,第一天賽事還未結(jié)束,宅客頻道見(jiàn)到的報(bào)道中,就有其第一個(gè)項(xiàng)目“失敗”和競(jìng)爭(zhēng)對(duì)手“獲勝”的慘烈對(duì)比照。
但賽況跌宕起伏,峰回路轉(zhuǎn)。
在移動(dòng) Pwn2Own 上,騰訊安全科恩戰(zhàn)隊(duì)“出師不利”,但扭轉(zhuǎn)態(tài)勢(shì),拿下了總積分 44 分,獲得了總冠軍 “Master of Pwn(世界破解大師)”的稱(chēng)號(hào)。
在這場(chǎng)戰(zhàn)役中,這群黑客實(shí)現(xiàn)了蘋(píng)果 iOS 11.1 最新操作系統(tǒng)下 WiFi 和Safari 瀏覽器的破解,并完成手機(jī)重啟后仍然保持攻破以及提取內(nèi)核權(quán)限等高級(jí)別破解操作,獲得賽事主辦方的額外獎(jiǎng)勵(lì)。此外,科恩戰(zhàn)隊(duì)還選擇挑戰(zhàn)了本屆賽事公認(rèn)最難單項(xiàng),利用堆棧溢出攻破基帶。
通向冠軍的道路上充滿(mǎn)荊棘,童話故事真的不是騙人的。
9月1日,隊(duì)長(zhǎng)陳良接到了 主辦方 ZDI 發(fā)來(lái)的破解賽題,今年的破解花樣真多:不再是單純通過(guò)瀏覽器、短信、彩信等奪取手機(jī)系統(tǒng)的控制權(quán),而是更強(qiáng)調(diào)芯片級(jí)的控制。因此,本次比賽出現(xiàn)了一個(gè)新項(xiàng)目:攻破機(jī)器的基帶。
這樣的攻擊方式有個(gè)好處:更隱蔽,用戶(hù)的感知更小,不像以前,黑客要“誘使”用戶(hù)點(diǎn)擊瀏覽器,或掃一個(gè)二維碼,才能奪得機(jī)器的系統(tǒng)權(quán)限?!笆铝朔饕氯?,深藏功與名”,這樣的攻擊無(wú)聲無(wú)息。
留給選手的準(zhǔn)備時(shí)間只有兩個(gè)月,要從最新的系統(tǒng)上找出連廠商都找不出漏洞,想到利用方式,還要尋找合適的設(shè)備,保證破解成功率。
橫掃世界頂級(jí) CTF 大賽的隊(duì)員謝天憶被抽調(diào)參加基帶破解項(xiàng)目。隔行如隔山,挑戰(zhàn)不同的研究項(xiàng)目……呃,怎么著也隔了一堵墻吧。
謝介紹,攻破基帶小組(以下簡(jiǎn)稱(chēng)“基組”)以前沒(méi)破解過(guò)基帶,想著要不拆開(kāi)基帶看一下結(jié)構(gòu),再圖大計(jì)。賽前一個(gè)星期,基組終于找到了稱(chēng)手的測(cè)試裝備,開(kāi)心地開(kāi)始拆基帶,搞清楚原理、漏洞和利用方法,測(cè)試成功了一次后,以為大功告成,只待去日本打比賽。突然,在賽前兩天發(fā)現(xiàn)測(cè)試裝備被搞壞了。
凌晨 3 點(diǎn)發(fā)現(xiàn)裝備已毀的基組的劉穆清吃了一驚,和另外兩名隊(duì)員一起,乘坐了當(dāng)天早上 6 點(diǎn)從上海飛往深圳的航班,火急火燎地趕到深圳重新買(mǎi)了一臺(tái)測(cè)試裝備。
“時(shí)間非常緊,其實(shí)當(dāng)時(shí)我們最后的代碼還沒(méi)有完全整合完,剛把設(shè)備這個(gè)地方弄好,又花了很多時(shí)間去調(diào)試我們攻擊代碼,最后大概是在比賽前一個(gè)到兩個(gè)小時(shí)才把代碼跑通,再測(cè)試成功了一次?!眲⒛虑逭f(shuō)。
萬(wàn)萬(wàn)沒(méi)想到,僅在成功測(cè)試一次后,手機(jī)就出來(lái)?yè)v亂了,新測(cè)之后的手機(jī)啟動(dòng)了防盜機(jī)制,機(jī)主站在面都都解不開(kāi),24小時(shí)內(nèi)不能清空數(shù)據(jù)。當(dāng)時(shí)基組只有一臺(tái)同款比賽項(xiàng)目版本的手機(jī),這意味著,接下來(lái)沒(méi)法用這臺(tái)手機(jī)繼續(xù)測(cè)試了。
“但從跑通的情況看,我們的成功率應(yīng)該能保證是100%?!标惲颊f(shuō),雖然因?yàn)楣ぞ呤Ю麩o(wú)法繼續(xù)測(cè)試,捏了一把汗,但是他們成功在比賽現(xiàn)場(chǎng)拿下了這個(gè)基帶破解的“一血”(該項(xiàng)目第一個(gè)破解成功)。
了解 PWN 類(lèi)型黑客比賽的人都知道,主辦方在比賽時(shí)一定會(huì)下載最新的系統(tǒng)版本,供參賽選手破解。但參賽選手賽前準(zhǔn)備的漏洞、利用方式是既定的,這意味著,一旦手機(jī)廠商在比賽前發(fā)布了最新系統(tǒng)版本,“不小心”堵上了選手發(fā)現(xiàn)的漏洞,那么“功虧一簣”。
手機(jī)廠商和選手之間從來(lái)不乏這種“貓捉老鼠”的游戲,有些手機(jī)廠商甚至?xí)室獯騻€(gè)措手不及——在比賽開(kāi)始前幾個(gè)小時(shí)發(fā)布新版本。
“在比賽前期,寫(xiě)應(yīng)用的同學(xué)比較辛苦,因?yàn)榻?jīng)常會(huì)出現(xiàn)版本更新,如果在當(dāng)天上午出現(xiàn)大版本的更新,會(huì)造成我們很多利用的細(xì)節(jié)和漏洞方面出現(xiàn)問(wèn)題,需要大家一塊通宵去完善這個(gè)整個(gè)方案?!眎OS 項(xiàng)目成員、科恩研究員梁偉說(shuō)。
在這次比賽中,四家手機(jī)廠商都做了“類(lèi)似”的更新。其他廠商提前兩三天,或者一個(gè)星期進(jìn)行了更新,蘋(píng)果做得比較絕,在比賽當(dāng)天早上更新了11.1。
iOS 項(xiàng)目成員傅裕斌對(duì)雷鋒網(wǎng)宅客頻道表示:當(dāng)時(shí)時(shí)間非常緊。比賽前幾天我們有一套方案,但不是特別穩(wěn)定,那時(shí)我們?cè)?1.0.2上完成了90%,我們預(yù)估,比賽前一天蘋(píng)果會(huì)放11.1,結(jié)果那天晚上蘋(píng)果沒(méi)有放11.1,我們一直等到凌晨?jī)牲c(diǎn),因?yàn)樘O(píng)果沒(méi)有放11.1,穩(wěn)妥起見(jiàn),我們下載了11.0.3,也就是當(dāng)時(shí)的最新版。”
傅裕斌評(píng)估了一下,發(fā)現(xiàn)系統(tǒng)版本從0.2到0.3,變化不是特別大,可能在一個(gè)小時(shí)之內(nèi)就能在最新版本上成功應(yīng)用,當(dāng)時(shí)他心情不錯(cuò)。
結(jié)果在比賽當(dāng)天凌晨,蘋(píng)果放11.1,進(jìn)行了大版本更新。當(dāng)時(shí)科恩團(tuán)隊(duì)光在蘋(píng)果手機(jī)上,就有兩個(gè)項(xiàng)目要打,一個(gè)是瀏覽器,一個(gè)是Wi-Fi,要把兩套移到最新版上,時(shí)間已經(jīng)不多了。
還好,他們?cè)谑虑皽?zhǔn)備了四套漏洞及利用方式并在短暫的時(shí)間內(nèi)針對(duì)新版本更新,所以蘋(píng)果的更新對(duì)其影響不大。
但另一個(gè)“策略”來(lái)了。
比賽一共有五個(gè)隊(duì)伍、五個(gè)項(xiàng)目和iOS相關(guān),一旦抽簽順序不佳,科恩戰(zhàn)隊(duì)被安排在最后兩個(gè),那么前面的隊(duì)伍如果使用的漏洞與科恩相同且破解成功,那么科恩即使最后也破解成功,“撞洞”會(huì)讓他們直接失敗。
對(duì)手之間也在這樣“對(duì)抗”,利用比賽順序和規(guī)則,盡量壓低對(duì)手分?jǐn)?shù)。
“如果我們抽簽在前,我們就要花一些時(shí)間想,用什么漏洞可以把后面選手的漏洞給撞掉,壓低他們的分?jǐn)?shù),這也是保證我們可以拿到冠軍的策略。”陳良說(shuō)。
結(jié)果,他們真的把對(duì)手 Wi-Fi方案中非常關(guān)鍵的一個(gè)漏洞給撞掉了,導(dǎo)致對(duì)手被扣了兩分。
傅裕斌表示,幾乎所有選手在賽前都會(huì)剖析對(duì)手,預(yù)估對(duì)方用的是什么偏門(mén)的漏洞,從而準(zhǔn)備很多方案。由于主辦方不會(huì)提前告知前面選手的漏洞情況,只會(huì)在其官方推特上發(fā)布一些推文,因此后面的選手還要根據(jù)蛛絲馬跡推測(cè)對(duì)手此前用了什么漏洞,避免自己“撞洞”。
有心人會(huì)發(fā)現(xiàn),獲得比賽冠軍的騰訊科恩戰(zhàn)隊(duì)其實(shí)在比賽第一天第一場(chǎng)破解項(xiàng)目——三星Galaxy S8瀏覽器時(shí)遭遇失利。
難道是“馬前失蹄”?
故事要從主辦方配置最新版本和蘋(píng)果、安卓的“不同”說(shuō)起。
陳良介紹,蘋(píng)果官方網(wǎng)站更新了后,會(huì)告訴你11.1已經(jīng)下發(fā),地球上所有用戶(hù)可以在同一時(shí)間拿到11.1,但是安卓不是,如果發(fā)布了一個(gè)新版本,會(huì)優(yōu)先選出10% 的全球性用戶(hù)拿到這個(gè)更新,其他用戶(hù)需要等待一到兩個(gè)星期,或者兩到三個(gè)星期。
比賽項(xiàng)目針對(duì)的手機(jī)廠商谷歌和三星會(huì)在比賽前幾天臨時(shí)發(fā)一個(gè)更新,但不能確保這個(gè)更新一定到了主辦方的手機(jī)。比賽當(dāng)天雖然要求是最新版本,但科恩戰(zhàn)隊(duì)突然發(fā)現(xiàn),比賽用的三星手機(jī)上不是最新版本,主辦方還沒(méi)拿到最新版本,但科恩在準(zhǔn)備時(shí)用的卻是最新版本。
雖然不是新版本,但可以主動(dòng)下載新的,但這一次,科恩卻吃了抽簽排在前面的虧。
“等抽簽下來(lái),到環(huán)境搭建只有半個(gè)小時(shí),我們第一個(gè)上,讓它下載的過(guò)程里,只有一刻鐘,但他們出現(xiàn)了失誤,下錯(cuò)了一個(gè)版本,到比賽時(shí)我們要求主辦方調(diào)整,已經(jīng)沒(méi)有時(shí)間了,比賽開(kāi)始了就不行?!标惲紝?duì)雷鋒網(wǎng)宅客頻道說(shuō)。
馮震進(jìn)一步解釋了“配置錯(cuò)誤”:“谷歌下發(fā)的安卓有兩個(gè)版本、四個(gè)文件,你可以認(rèn)為是A1、B1、A2、B2,本來(lái)A1和B1是一套,A2和B2是一套,結(jié)果他們給我們安裝的是 A1 加 B2 ?!?/p>
陳良認(rèn)為,理論上也不影響后續(xù)的所有選手,因?yàn)橹蟮倪x手在每一場(chǎng)比賽之前,都有一個(gè)半小時(shí)的休息時(shí)間,在這段時(shí)間里,通過(guò)充分的溝通就可以把這個(gè)版本調(diào)整過(guò)來(lái)。所以,抽簽順序是一把雙刃劍,如果抽簽抽在前,準(zhǔn)備時(shí)間不足和配置環(huán)境溝通可能造成問(wèn)題。
[來(lái)到采訪現(xiàn)場(chǎng)的科恩戰(zhàn)隊(duì)隊(duì)員:傅裕斌、梁偉、謝天憶、陳良、Marco、劉穆清、馮震]
看到這張照片你可能會(huì)吃驚:圖中的Marco是做什么研究的?
事實(shí)上,Marco是一位來(lái)自意大利的科恩實(shí)驗(yàn)室的研究員,他是上述基帶漏洞的發(fā)現(xiàn)者。
Marco 告訴雷鋒網(wǎng),本來(lái)他在意大利好好做著研究,有一天,在YouTube上看到了陳良的一則演講視頻,深受感動(dòng),受到“內(nèi)心的感召”,一心想加入這個(gè)團(tuán)隊(duì),于是小伙子直接聯(lián)系了某次大會(huì)上認(rèn)識(shí)的科恩實(shí)驗(yàn)室成員,與陳良建立了聯(lián)系。
科恩安排 Marco 在中國(guó)玩了一天,雙方聊得實(shí)在很愉快,于是 Marco 就留在了科恩實(shí)驗(yàn)室。
動(dòng)筆前,一位同行問(wèn)我,這次比賽好像沒(méi)什么新鮮點(diǎn):你看,都是補(bǔ)洞、撞洞、掉鏈子什么的,每次比賽不都這樣嗎?
其實(shí),在與科恩的對(duì)話中,他們?cè)卮鸨荣愔谧约旱囊饬x——
陳良:一年沒(méi)有幾次這樣的漏洞可以破解,你在探索一個(gè)未知世界,當(dāng)一個(gè)完全不可控的東西變得逐漸可控,最后這個(gè)東西被你遠(yuǎn)程攻破,我很享受這樣一種體驗(yàn)。
傅裕斌:我覺(jué)得主要是興趣。對(duì)這個(gè)東西挺感興趣的,這是從一個(gè)什么都沒(méi)有到最終能夠在舞臺(tái)上呈現(xiàn)出一個(gè)非常好的效果的過(guò)程,研究整套攻擊的流程是一個(gè)非常美好的事情。
梁偉:通過(guò)打比賽,我學(xué)到了很多東西,在整個(gè)過(guò)程中看到他們一次又一次創(chuàng)造了很多奇跡,我們也會(huì)通過(guò)努力實(shí)現(xiàn)目標(biāo),增強(qiáng)自己的信心?,F(xiàn)在在做很多事的時(shí)都會(huì)想,這么難的事我們都做到了,現(xiàn)在的事情也不算什么。
謝天憶:打比賽會(huì)學(xué)到很多東西,最后這個(gè)東西能不能打成,還是有一些運(yùn)氣在里面,通過(guò)研究這個(gè)東西,總歸能學(xué)到新的東西,特別當(dāng)你涉足一個(gè)未知領(lǐng)域,比賽可能會(huì)強(qiáng)制驅(qū)動(dòng)你去學(xué)習(xí),這些東西可能是平時(shí)自己想學(xué),但覺(jué)得非常痛苦的東西。
馮震:我剛來(lái)科恩實(shí)驗(yàn)室第一年時(shí),沒(méi)有參加這種比賽。但是,我們都會(huì)轉(zhuǎn)發(fā)一些朋友圈消息。當(dāng)時(shí)我轉(zhuǎn)發(fā)之后,吳老板(指科恩實(shí)驗(yàn)室負(fù)責(zé)人吳石)在我朋友圈點(diǎn)了個(gè)贊,而且對(duì)我說(shuō)——我看好你,那時(shí)吳老板直接把我調(diào)到了別的組研究瀏覽器。我當(dāng)時(shí)想,我一定要搞成,不要讓老板失望。在某種程度上,吳老板像我的師傅一樣,第一次比賽特別緊張,特別害怕撞洞,吳老板告訴我,你不要緊張,就算你成功了,你也只是運(yùn)氣好而已,但既使是失敗了,你覺(jué)得你明年還會(huì)再失敗嗎?我運(yùn)氣比較好,第一年就成功了。時(shí)間久了,現(xiàn)在我更把比賽當(dāng)成是一個(gè)大家享受、團(tuán)結(jié)合作的樂(lè)趣,沒(méi)有人喜歡失敗,但是大家更看重的是團(tuán)隊(duì)的成功,在這種氛圍下,已經(jīng)超越了個(gè)人利益,大家一起努力,才能獲得最好的成功。
我想,上述三個(gè)故事就是這些感想的承載。只有真的熱愛(ài)與拼盡全力,才會(huì)去挽救賽前“失控”的工具,才會(huì)在外界環(huán)境不如人意時(shí)爭(zhēng)分奪秒,面對(duì)對(duì)手時(shí)絞盡腦汁要贏。
他們的對(duì)手,從來(lái)都是自己,他們要超越的,也是每一次的自己。
這樣的故事,我從來(lái)不嫌多,你呢?
想了解更多網(wǎng)絡(luò)安全內(nèi)容?歡迎關(guān)注雷鋒網(wǎng)旗下微信公眾號(hào):宅客頻道(letshome)。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。