1
本文作者: 李勤 | 2017-04-13 10:12 |
本文作者:李勤,雷鋒網(wǎng)網(wǎng)絡(luò)安全專欄作者,入錯(cuò)行的八卦愛好者。
4 月 5 日,雷鋒網(wǎng)編輯要 360 安全戰(zhàn)隊(duì)隊(duì)長、世界著名黑客 MJ 0011 (以下簡(jiǎn)稱 MJ)拿著前不久在 Pwn2Own 2017 世界黑客大賽上的冠軍獎(jiǎng)杯拍個(gè)照。
MJ 轉(zhuǎn)了轉(zhuǎn)獎(jiǎng)杯的齒輪說,把它放在辦公室里還能磨磨指甲。
其實(shí),一個(gè)月前, MJ 本以為會(huì)云淡風(fēng)輕地去加拿大參加大賽,沒想到等待他的是一場(chǎng)“坑爹”之旅。
[MJ 很傷心,沒想到經(jīng)過一場(chǎng)高度緊張的黑客大賽后,他沒有瘦下來]
3 月11日,攜帶一攬子“神奇漏洞”的 MJ 和 360 安全戰(zhàn)隊(duì)隊(duì)員抵達(dá)加拿大溫哥華,準(zhǔn)備參加 3 月 15 日到 3 月 17 日舉辦的 Pwn2Own 2017 世界黑客大賽。
Pwn2Own 是世界著名、獎(jiǎng)金豐厚的黑客大賽,由美國五角大樓網(wǎng)絡(luò)安全服務(wù)商、 TippingPoint 的項(xiàng)目組 ZDI(Zero Day Initiative)主辦,谷歌、微軟、蘋果、Adobe 等互聯(lián)網(wǎng)和軟件巨頭都對(duì)比賽提供支持。
Pwn2Own 大賽從2007年起開始舉辦,難度一屆比一屆高。今年是第十周年, MJ 認(rèn)為,拿下此次大賽頗有意義,與MJ 有相同想法的還有參加比賽的 10 支戰(zhàn)隊(duì),包括 amuel grob and nicolas baumstark、Ether:玄武實(shí)驗(yàn)室、長亭安全團(tuán)隊(duì)、ralf philipp weinmann、Sniper:科恩實(shí)驗(yàn)室+電腦管家團(tuán)隊(duì)、Richard Zhu、Lance:湛盧實(shí)驗(yàn)室、Moritz Jodeit,Blue Frost Security、Shield:科恩實(shí)驗(yàn)室+電腦管家團(tuán)隊(duì)。
Google Chrome、Microsoft IE 、Adobe Reader、Adobe Flash、Mozilla Firefox ……是此次大賽的攻克目標(biāo)。Pwn2Own 要求,攻擊所利用的漏洞必須是未知、未公布、未向供應(yīng)商提交過的。漏洞不能重復(fù)利用,遠(yuǎn)程攻擊必須要排除操作背后的人為干擾(如瀏覽惡意內(nèi)容),必須出現(xiàn)在用戶正常的會(huì)話中,不會(huì)出現(xiàn)重啟或者下線/登錄的情況。
也就是說,攻擊者的漏洞是真正的“零日漏洞”,基本靠一個(gè)鏈接“發(fā)動(dòng)攻擊”,“用戶”點(diǎn)擊鏈接后,攻擊者不再“動(dòng)作”,攻擊要一氣呵成地進(jìn)行。而且,只有三次攻擊機(jī)會(huì)。
2017年 Pwn2Own 共設(shè)置 15 個(gè)項(xiàng)目,根據(jù)比賽難度的不同,每一項(xiàng)設(shè)置了相應(yīng)的積分和獎(jiǎng)金。在 3 天所有賽程結(jié)束后,積分最高的參賽團(tuán)隊(duì),將贏得“Master of Pwn”(破解大師)世界冠軍稱號(hào),并獲得65000個(gè)ZDI積分(約合25000美元)的額外獎(jiǎng)勵(lì)。
在這樣的高難度大賽里,難怪 ZDI 在其官網(wǎng)上大呼,雖然 2017 年的這次 Pwn2Own 準(zhǔn)備了 100 多萬美元的獎(jiǎng)金,但廠商也歡欣鼓舞、嚴(yán)陣以待——這可能是除了自家平時(shí)正常打補(bǔ)丁外,要補(bǔ)高漏洞質(zhì)量最多的日子了!
嗯,有點(diǎn)像過年的感覺。
來到溫哥華的第一天,MJ 和隊(duì)員們神清氣爽、信心滿滿。
MJ 壓力不大是因?yàn)椤@是 MJ 第三次參加 Pwn2Own 大賽,此前他也是各類頂級(jí)黑客大賽的常客,對(duì)一個(gè)資深黑客而言,只要平時(shí)功夫深,“鐵杵也能磨成針”,更何況,賽前戰(zhàn)隊(duì)做了詳細(xì)的戰(zhàn)略部署,并準(zhǔn)備了應(yīng)對(duì)比賽的超級(jí)漏洞。
Pwn2Own 大賽要持續(xù)三天,對(duì)單個(gè)黑客而言,如果每個(gè)項(xiàng)目都要參加,三天的強(qiáng)度基本沒人能承受,所以,團(tuán)隊(duì)作戰(zhàn)是Pwn2Own 大賽常見的參賽方式。然而,即使是團(tuán)隊(duì)作戰(zhàn),強(qiáng)度依然不小。一般,報(bào)名單個(gè)項(xiàng)目的居多。
參加此次大賽的 360 安全戰(zhàn)隊(duì)由從 360Vulcan Team、360代碼衛(wèi)士和虛擬化研究團(tuán)隊(duì)360Marvel Team抽調(diào)的 10 名黑客組成,包括名聲在外的 360Vulcan Team 安全研究員 YukiChen (古河)、虛擬化漏洞挖掘?qū)<姨魄嚓坏热耍?nbsp;MJ 擔(dān)任隊(duì)長。
360 安全戰(zhàn)隊(duì)瞄準(zhǔn)了8個(gè)參賽項(xiàng)目,包括 Adobe Reader、Adobe Flash+系統(tǒng)提權(quán)、Apple mac OS、Apple Safari +Apple mac OS、Microsoft Windows 10 、Microsoft Edge +系統(tǒng)提權(quán)+虛擬機(jī)逃逸、Firefox、Vmware,準(zhǔn)備大干一場(chǎng)。
但是, MJ 沒有想到,這次比賽他們犯下了兩個(gè)“大”錯(cuò)誤,讓他們的“冠軍”來得沒有像以前那樣順利,這也是 MJ 與雷鋒網(wǎng)編輯對(duì)談幾個(gè)小時(shí)的過程中,他一直心心念念的兩點(diǎn)。
第一個(gè)失誤是,這支有老牌黑客坐鎮(zhèn)的隊(duì)伍這次低估了“連環(huán)攻擊”的難度,賽前缺少環(huán)境調(diào)試。
所謂連環(huán)攻擊,是指今年 Pwn2Own 除了獨(dú)立項(xiàng)目,又加了一項(xiàng),如果打完瀏覽器,在全部攻擊完成后,還能再進(jìn)行虛擬逃逸,就另行加分 。
比如,在攻擊 Edge 后,再進(jìn)行系統(tǒng)提權(quán),最后如果來一場(chǎng)華麗的虛擬機(jī)逃逸,這就是一場(chǎng)連過三關(guān)的連環(huán)攻擊。但是,連環(huán)攻擊分?jǐn)?shù)高,失敗的風(fēng)險(xiǎn)也相當(dāng)高。
這是一場(chǎng)華麗的冒險(xiǎn)。
攻擊一個(gè)項(xiàng)目時(shí),如果成功率是 90%,在這個(gè)項(xiàng)目里要攻擊三個(gè),疊加后的成功率可能就降低了。而且,它的風(fēng)險(xiǎn)比單純攻擊虛擬機(jī)風(fēng)險(xiǎn)更大。比如,就算前兩關(guān)成功闖過,一旦最后關(guān)頭演示失敗,整個(gè)攻擊都算失敗,攻擊項(xiàng)目所累計(jì)的積分點(diǎn)和所有獎(jiǎng)金都會(huì)失去。
如果不進(jìn)行連環(huán)攻擊,只進(jìn)行前兩項(xiàng)攻擊,不僅成功率高,成功之后積分點(diǎn)和獎(jiǎng)金雙雙都能抱回家。
To be or not to be,that is a question.
【哈姆雷特電影劇照】
MJ 雖然不是執(zhí)意復(fù)仇的哈姆雷特,但在高風(fēng)險(xiǎn)面前也異常執(zhí)著,連環(huán)攻擊難,好,就要挑戰(zhàn)。
作為一名世界頂尖的超級(jí)黑客,MJ 曾傲視諸多對(duì)手。雖然,他和隊(duì)員都很看重比賽成果,就是奔著冠軍去的,但是,就算有比較大的風(fēng)險(xiǎn),從不畏懼、不斷挑戰(zhàn)的“hacker”精神深深印刻在 MJ 的心里。
做十拿九穩(wěn)的事沒什么意義。
不過,360Vulcan Team、360代碼衛(wèi)士和虛擬化研究團(tuán)隊(duì)360Marvel Team 雖然都在北京,但平時(shí)不在一棟樓辦公。除了參加黑客大賽,大家平日還有手頭工作,很難湊到一塊調(diào)程序。于是,大伙決定,就在賽前,也就是從 11 號(hào)到 14 號(hào)這幾天,在加拿大一起碰頭“搞一搞”。
沒想到,碰頭的第一天,他們就發(fā)現(xiàn)了問題——一般進(jìn)行一次攻擊時(shí),對(duì)系統(tǒng)環(huán)境會(huì)造成很多影響,導(dǎo)致整個(gè)系統(tǒng)環(huán)境不那么單純了。如果攻擊質(zhì)量不夠高,可能接下來系統(tǒng)就會(huì)崩潰,后面的攻擊根本無法進(jìn)行。
“比如,我們?cè)緶?zhǔn)備的逃逸虛擬機(jī),獨(dú)立跑的話,是90%以上的成功率,如果配合瀏覽器,不進(jìn)行一些代碼優(yōu)化,成功率就低很多,因?yàn)閷?duì)整個(gè)環(huán)境有很多影響?!盡J 說。
不配合不知道,一配合嚇一跳。他們之前低估了連環(huán)攻擊對(duì)環(huán)境的影響——單獨(dú)攻擊的時(shí)候,各自的成功率都能到達(dá) 90% 以上,三次攻擊接起來時(shí),成功率直線下降到令人心驚膽戰(zhàn)的 30%。
也就是說,如果按照這個(gè)情形來打連環(huán)攻擊,呵呵,三次機(jī)會(huì)可能只有一次成功。
一直十分淡定的 MJ 突然有了前所未有的緊張感。
以前,MJ 領(lǐng)隊(duì)參加國外一些牛氣哄哄的黑客大賽,還能先逛蕩幾天,給親戚朋友買點(diǎn)什么,這次,整個(gè)隊(duì)伍窩在古河的只有一張桌子的賓館房間里緊張調(diào)試,MJ 和隊(duì)友們?cè)诜块g內(nèi)像打仗一般和程序較勁,和成功率較勁。
他們甚至來不及出去吃飯,讓服務(wù)員把餐送到了房間,調(diào)試間隙扒一口飯。
內(nèi)憂同時(shí),外患四起。
Pwn2Own 大賽還有一個(gè)看點(diǎn)是——廠商可能會(huì)在賽前打補(bǔ)丁,你辛辛苦苦準(zhǔn)備為比賽準(zhǔn)備的漏洞說不定就被補(bǔ)了,拼的就是刺激?。?/p>
MJ 告訴雷鋒網(wǎng),比賽之前,他準(zhǔn)備了 FireFox、Safari 以及 Edge 的三個(gè)“神洞”——很難發(fā)現(xiàn)的偏僻漏洞,沒想到,就在賽前陣亡了!
最刺激的是,這次官方補(bǔ)洞的日子就在賽前一兩天。
有的是“命運(yùn)的使然”——微軟的補(bǔ)丁日一般在每月的第二個(gè)星期二,3 月的第二個(gè)星期二就是 3 月 14日,比賽就在15日。
“我們當(dāng)時(shí)認(rèn)為,這個(gè)漏洞是不太可能被補(bǔ)的一個(gè)洞,因?yàn)槲覀冊(cè)谌ツ?月就發(fā)現(xiàn)了這個(gè)漏洞,當(dāng)時(shí)微軟在 10 月補(bǔ)了一次,但是沒補(bǔ)好。我們想,既然都補(bǔ)過一次了,而且微軟補(bǔ)漏洞的質(zhì)量一般非常高,應(yīng)該這個(gè)沒發(fā)現(xiàn)的洞就逃過一劫了,不太可能被補(bǔ)了,當(dāng)時(shí)還是比較有信心的。結(jié)果,在補(bǔ)丁日之前把這個(gè)補(bǔ)丁給補(bǔ)了。我們不得不換了另外一套替補(bǔ)的漏洞,當(dāng)然,備選的漏洞也是比較神奇的一個(gè)漏洞。”
隨后,Firefox 和 Safari 的漏洞也被補(bǔ)了。
有時(shí),是“狡詐”的廠商善于利用規(guī)則——“Flash 的漏洞也是一個(gè)非常神奇的漏洞,當(dāng)時(shí)我們認(rèn)為不太可能被補(bǔ)。Flash 的安全人員雖然不知道漏洞在哪兒?但是他覺得這個(gè)地方有漏洞,故意設(shè)置不釋放內(nèi)存,內(nèi)存一直在那兒占著,我們這個(gè)漏洞雖然沒有被修補(bǔ)掉,但沒法利用了,只好就換了一套新的漏洞。”
有時(shí),甚至是廠商故意挑戰(zhàn)參賽選手的情緒——“Vmware一開始我們準(zhǔn)備了三套漏洞,一套漏洞用于打獨(dú)立項(xiàng)目,然后,另外兩個(gè)項(xiàng)目再用兩套漏洞,但是,Vmware 在10 號(hào)的時(shí)候發(fā)了一個(gè)補(bǔ)丁,沒補(bǔ)我們的漏洞,當(dāng)時(shí)我們覺得估計(jì)這個(gè)事就過去了,結(jié)果它在14號(hào)的晚上,我們都看完漏洞,覺得終于可以休息一會(huì)兒,然后第二天早上去打比賽了,結(jié)果那天晚上,突然它又發(fā)了一個(gè)更新,把我們準(zhǔn)備打獨(dú)立項(xiàng)目的漏洞給補(bǔ)了。”
廠商很任性,能不給的錢和分絕對(duì)不會(huì)給你。
受到影響不只是 360 安全戰(zhàn)隊(duì),據(jù)雷鋒網(wǎng)了解,廠商“任性”地圍追堵截后,一些參賽隊(duì)伍的項(xiàng)目沒法報(bào)了,中國其他參賽隊(duì)伍也受到了沖擊。
不幸的是,F(xiàn)irefox 無備用漏洞, MJ 所在的戰(zhàn)隊(duì)只好放棄了這個(gè)項(xiàng)目。幸運(yùn)的是, Safari 以及 Edge 還有“替補(bǔ)”,雖然獨(dú)立項(xiàng)目的漏洞沒了,但涉及“連環(huán)攻擊”和“附加分選項(xiàng)”的這些項(xiàng)目的漏洞還在。
一時(shí)間,8 個(gè)項(xiàng)目只剩下 6 個(gè)可以打: Adobe Reader、Adobe Flash+系統(tǒng)提權(quán)、Apple mac OS、Apple Safari +Apple mac OS、Microsoft Windows 10 、Microsoft Edge +系統(tǒng)提權(quán)+虛擬機(jī)逃。
同時(shí),MJ 犯下了第二個(gè)失誤。
就在 3 月 14 日下午, MJ 去簽署參賽項(xiàng)目確認(rèn)書時(shí),在單獨(dú)的 Vmware 逃逸項(xiàng)目沒有報(bào)名,只報(bào)名了連環(huán)項(xiàng)目。就在簽字前的那一剎那,史上最喜怒不形于色的安全研究員古河還朝著 MJ 使了使眼色。MJ 打了個(gè)冷顫,表示我對(duì)你沒有興趣,沒有接收到這個(gè)神秘的信息。
“我們當(dāng)時(shí)只有兩個(gè)能打 VMware 的洞,所以就報(bào)了這個(gè)附加項(xiàng)目(即連環(huán)攻擊),沒有報(bào)獨(dú)立的 Vmware 項(xiàng)目 ,其實(shí)可以再報(bào)一個(gè)獨(dú)立的。”據(jù) MJ 事后回憶,古河當(dāng)時(shí)是要自己也在單獨(dú)項(xiàng)目那里打勾——這樣,可以給連環(huán)項(xiàng)目減輕壓力,如果連環(huán)項(xiàng)目失敗, VMware 單獨(dú)項(xiàng)目的分和獎(jiǎng)金還能拿回來!”
最可怕的是,360 安全戰(zhàn)隊(duì)這次抽簽運(yùn)氣不佳,雖然看上去每天都是第一個(gè)出場(chǎng),但是在報(bào)名的 6 個(gè)項(xiàng)目中,只有兩個(gè)項(xiàng)目抽到了第一個(gè)打,有兩個(gè)項(xiàng)目抽到倒數(shù)第二,分?jǐn)?shù)最重、打的人最多的 Edge 項(xiàng)目最慘慘,抽到第七名(倒數(shù)第二)。
【各戰(zhàn)隊(duì)比賽順序】
更令他懊惱的是,360 安全戰(zhàn)隊(duì)在 Edge 項(xiàng)目上打的是連環(huán)項(xiàng)目( Edge +系統(tǒng)提權(quán)+VMware 逃逸),難度十分高,而參加比賽的人很多人選擇打單獨(dú)的瀏覽器項(xiàng)目。剛好今年的比賽規(guī)則發(fā)生了變化,在瀏覽器這一大類中,只有第一個(gè)打下來的人能拿全獎(jiǎng),其他打下來的人只能拿半獎(jiǎng)——雖然積分點(diǎn)不受到影響,十分富有、沒有從比賽中分過一毛錢獎(jiǎng)金的 MJ 不高興了,“我對(duì)獎(jiǎng)金也很看重啊,我們還有兄弟可以分啊!”
一著不慎,他們戰(zhàn)戰(zhàn)兢兢地怕撞洞,又擔(dān)心連環(huán)項(xiàng)目出岔子,“重頭大戲”無奈地因?yàn)槌楹灹舻搅说谌欤簿褪潜荣惖淖詈笠惶臁?/p>
打Mac提權(quán)項(xiàng)目時(shí),還發(fā)生了一件匪夷所思的事——隊(duì)員從主辦方處拿到全新的 Apple 電腦時(shí),發(fā)動(dòng)第一次攻擊,發(fā)現(xiàn)攻擊無法進(jìn)行。
本來就深受“放棄項(xiàng)目”陰霾的 MJ 心里咯噔了一下。
“一定是發(fā)生了別的問題?!?nbsp;MJ 找到主辦方,兩方一起檢查了電腦,發(fā)現(xiàn)主辦方搞出了一個(gè)大烏龍。
“主辦方給錯(cuò)了系統(tǒng)環(huán)境,他買了 8 臺(tái) 16G 的蘋果電腦,但官方居然給了他兩臺(tái) 8G 的。他說回去要找蘋果電腦算帳。”主辦方承認(rèn)了自己的失誤,但堅(jiān)決不改,換了電腦后,只給隊(duì)員剩下的兩次機(jī)會(huì)繼續(xù)打。
“這事我記得比較清楚,我還跟隊(duì)員說,我們上場(chǎng)之前先查系統(tǒng)環(huán)境,然后一上場(chǎng),我當(dāng)時(shí)腦子都蒙了,直接就忘了,上來就打。這也說明,我們真的有點(diǎn)緊張。”MJ 說。
在這種緊張的陰霾中,前兩天除了在其他項(xiàng)目打比賽,MJ 就是和隊(duì)員一起抽出時(shí)間調(diào)初始成功率只有 30% 的連環(huán)項(xiàng)目的程序,另外,還得時(shí)不時(shí)地繞到復(fù)核項(xiàng)目的評(píng)委那,小心翼翼地問一句:“我們沒被撞吧?”
但是,從另外一個(gè)角度看,抽簽不利也給他們爭(zhēng)取了兩天的調(diào)試時(shí)間,到第三天比賽前,唐青昊開心地跟 MJ 說,終于把成功率控制在 90%以上,測(cè)試了三次,都是這樣。
MJ 暫時(shí)松了口氣,但不敢徹底放松。
拖了三天的戰(zhàn)線, MJ 和隊(duì)員又緊張又疲憊。
他們連著熬了幾個(gè)通宵,白天還打著比賽。
終于,第三天來了。360安全團(tuán)隊(duì)小心翼翼地給出了一個(gè)攻擊鏈接,點(diǎn)擊,等待。
對(duì)攻擊項(xiàng)目進(jìn)行 Review 的工作人員確定了攻擊有效后,打開了大門,與MJ 握了握手,輕輕告訴他:Edge +系統(tǒng)提權(quán)+VMware 逃逸成功。
這也是全場(chǎng)唯一一個(gè)連環(huán)攻擊成功的項(xiàng)目。
現(xiàn)場(chǎng)其他人還在緊張地比賽,他抑制住內(nèi)心的狂喜,與隊(duì)員一起輕輕地走了出去。
他們沒有擁抱,沒有歡呼,但接受了大家的掌聲——360 安全戰(zhàn)隊(duì)拿下了分?jǐn)?shù)最高的連環(huán)攻擊項(xiàng)目,總積分排名第一,MJ 穿上了那件與自己身材異常匹配的冠軍皮夾克,和主辦方合影。
讓 MJ 印象深刻的是,遇到什么事都波瀾不驚的古河看著 MJ 擺出了人生第一個(gè)最激烈的手勢(shì)——他內(nèi)心激動(dòng),嘴角微微抽動(dòng),雙手握拳甩動(dòng),說了聲“Yeah”。
他們一起,以黑客的名義,不僅拿下了這場(chǎng)艱難的比賽,還踐行了打死不放棄的理想。
雖然雷鋒網(wǎng)沒有拍到古河的現(xiàn)場(chǎng)照,但是按照 MJ 的描述,我們派出了編輯史中還原了古河的“開心”。
附:Pwn2Own 2017 總戰(zhàn)況匯總列表。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。