有人曾將頂尖駭客分為兩種:
一種是賓士在真實路況的“城市賽車手”。他們的賽場是如真實的城市路況一樣複雜的 Windows、MacOS、Safari、Chrome 等平臺軟體。
一種是喜歡封閉賽道的“賽場賽車手”。他們的賽場是經過精心構建的代碼世界,是一次次解謎的智力盛宴—— CTF 大賽。
然而無論哪一種,他們展示在世人面前的大多只有華麗的技術以及看似不可思議的結果:
10 秒破解 Edge 流覽器
5 秒破解蘋果系統
3 秒攻破 Flash 播放機
臺上十分鐘,台下十年功,這話在任何行業都行得通,但在安全領域變得尤其誇張,十分鐘變成了5秒、3秒,甚至更短。這背後究竟發生了什麼台前幕後的事情?此次騰訊安全科恩實驗室的謝天憶和他的小夥伴阿左向雷鋒網分享了一些駭客競賽背後的故事。
回顧:賽前驚慌
36 小時
一
他叫阿左,此時正在加拿大的一家酒店裡睡著大覺,
睡前他告訴自己:
不出意外,兩天之後我將站在全球頂尖的駭客大賽 Pwn2Own 上,成功破解鼎鼎大名的虛擬機器系統 VMware ,想想都有些小激動……
事實證明,不要隨便立 Flag,哪怕只是對自己說。
“快起來,出事了!” 一道晴天霹靂把他從睡夢中打醒:“你利用的那個
VMware 漏洞,被廠商修補了!” 此時淩晨四點多,聽到漏洞被修補的消息,阿左還是驚出了冷汗了,頓時睡意全無。
廠商就是這樣,一言不合就修復幾個漏洞,而且偏偏選在破解大賽前兩天,讓參賽選手猝不及防。
賽前的一兩天漏洞被修補,這種事情在駭客破解大賽上並不少見。但阿左第一次現場參加 Pwn2Own 這樣世界頂尖的大賽,就撞上了這種情況,他還是有些手足無措。
這個消息對他來說,意味著自己和隊友們幾個月的努力成果在那一刻就付之一炬,本該有榮譽、獎金泡湯,一次本該是證明自我的旅途變成一次單純的公費出國旅遊,這讓他難以接受。
二
幾個月前,阿左還不太瞭解如何破解 VMware 虛擬機器,但實驗室依然決定把破解 VMware 的部分任務交給他,說是讓年輕人多鍛煉鍛煉。只要他能完成破解,就能帶著自己的成果去參加 Pwn2Own 。
作為資歷並不深的安全研究員,阿左非常珍惜這次去參加這樣世界頂級的駭客破解大賽的機會。
“絕望也沒什麼用,總得試一試的,萬一成功了呢?” 在被告知漏洞被修補後的一分鐘內,他就決定和隊友一起想辦法再找一套破解方法。
阿左擅長打 CTF 比賽 —— 在規定的24小時或48小時內,利用自己的駭客技巧攻破主辦方構建的諸多難題,從而取得相應分數。在隊友的眼中,阿左是打雞血一樣的存在,有時比賽打到興起,他甚至48小時不睡覺,而且依然保持頭腦興奮。
Pwn2Own 這類駭客破解大賽和 CTF 比賽並不一樣,Pwn2Own 大賽不出題,而是讓參賽選手自己對目標系統,比如 Edge、Chrome 流覽器進行充分的研究,找到可以利用的 0Day 漏洞(廠商未知的漏洞),提前製作做好演示程式,最後到場上演示一遍。
如今對阿左來說,擺在他們面前的是一道非常難的 CTF 題:
36小時之內,重新找到 VMware 的其他漏洞,並且完成從漏洞挖掘到利用,最後編寫出演示程式的整個過程。
顯然,一個獎金10萬美元的破解方式並不那麼容易實現,要在36小時內完成,看起來更加不可能。
三
天還沒亮,科恩實驗室和騰訊電腦管家的所有參賽隊員都已經聚在一間屋子。他們趕緊聯繫上了國內後援的同事,一起討論如何在短時間內再找到一套破解方法。加拿大和中國有15小時左右的時差,但此時所有人都顧不上白天黑夜。
一番研究過後,他們發現了新的機會,但36小時實在緊迫,於是
趕緊按照以往的經驗,將任務分成四部分,兩名隊員負責 VMware 的兩個漏洞,一名隊員負責 Windows 內核漏洞,寫完漏洞利用程式之後再統一交給其他隊員來組合成一套完整的破解程式。
“分好工之後幾乎就進入忘我的狀態了,完全分不清白天黑夜,實在盯著螢幕久了才抬頭看看。” 回憶當時情況,阿左已經記不清當時外面發生了什麼。他腦子裡只知道所有人都在為這最後的機會而努力,任何一個環節的小小失誤或者時間延誤都可能會導致破解項目失敗。
當阿左頂著巨大的壓力完成自己手頭那部分漏洞利用,交到隊友手中時,這個被稱為“精力旺盛”的年輕人也實在受不了,倒頭便睡著了。
3月17日中午12點,一張破解成功後的合影傳回國內,成功的笑容掩蓋了隊員眼中疲憊的神情,因為這一切付出都是值得的。
第二天,阿左曬了一條朋友圈:
4天被補了7套利用,48小時、100% exploit (有效利用)的逃逸漏洞,這就是團隊的力量!I love KeenLab (騰訊安全科恩實驗室)
他告訴雷鋒網,其實在那幾天裡,其他幾個破解項目也遇到過類似漏洞被修補的問題,但所有人頂著巨大的壓力,冷靜地分工合作,努力解決問題。雖然有的最後成功了,也有失敗了。但在這個過程中大家共同分擔和努力已經讓他深受感動,這是理想當中的技術團隊該有的,也是他愛這個團隊的原因。
訪談· 駭客競技CTF
那些事
雷鋒網宅客:你覺得以往打CTF 比賽的經驗對那次 Pwn2Own 的緊急回應經歷有幫助嗎?
阿左
:有的,CTF 比賽除了可以幫助提升技術水準之外,也涉及到很多的參賽技巧。如果經常參加 CTF比賽的話,寫 exploit(漏洞利用程式)的能力會有所增強,速度變得更快。思考問題的時候,思路也更開闊一些。另外兩種比賽都涉及到分工合作的問題,這一點非常重要。
雷鋒網宅客:打 CTF 競賽的門檻高嗎?你當時是怎麼入坑的?
阿左
:有些門檻,但是這並不會成為什麼問題。我是14年底,上大學的時候第一次接觸 CTF,在此之前,我其實一直在做單機遊戲的破解和漢化。 剛開始當然菜到不行,到什麼程度呢?Linux 系統不會用,最基本的 ls 參數、拷貝、移動什麼的都不會寫。因為之前一直是用的 Windows系統。
做技術的很多都這樣,碰到問題就學,CTF 比賽還是能接觸到很多東西的,遇到一個我就去學怎麼用,然後再去實踐,在不斷地打 CTF 比賽的過程中我也發現大多數情況下還是要以實踐為主。 很多技術看了文章覺得自己懂了,但真正利用起來的時候還是不會。安全技術說起來其實也就是用進廢退的。
雷鋒網宅客:CTF 比賽的題目的應用性如何?
天憶:
現在的 CTF 題目大多還是非常接地氣的,比如一個題目可能就是從一些技術模型中抽象出來的,因此經常可以在一些 CTF 題目裡看到經典漏洞的影子。好的題目還會契合目前最前沿的駭客技術和新的學術研究成果。所以完全不用擔心應用性不強。作為安全研究人員,我們還可以從 CTF 的題目裡找到靈感,發現一些以前沒有發現的東西,反過來啟發我們的實際研究。
透露一個小秘密,騰訊安全科恩實驗室最近新招進來的同學,基本上多少有些 CTF 的背景,我自己也覺得參加CTF比賽經歷是可以體現出很多方面能力的。
雷鋒網宅客:CTF 比賽進入國內的時間並不算太長,這幾年國內 CTF 環境有什麼變化嗎?
天憶:
最明顯的變化就是難度越來越難了,早些年的CTF競賽題和現在的根本沒法比。就以三年前來說,2014年我覺得最難的題目,放在如今也就相當於入門級的難度;其次是隊伍越來越多了,CTF 剛被引入國內時比賽是少之又少,隊伍也不多,厲害的更少,如今人數多了很多,算是遍地開花了,湧現了不少在國際上。高校裡面的 CTF 氛圍也越來越濃了;另外國內的比賽也越來越多了,而且品質也很高,意在向DEFCON這樣的國際大賽看齊。
前不久騰訊就成立了一個新的 CTF 比賽——TCTF,本人在其中擔任技術負責人,也是朝著國際化大型 CTF 競賽來做的,畢竟只有一個一流的比賽和平臺才能夠吸引和塑造一流的人才。
雷鋒網宅客:我們注意到這次騰訊主辦的 TCTF 只有解題模式而沒有攻防模式,是出於什麼考慮?
天憶
:這兩種模式,其實是”快“和“難”的關係。
在 CTF 比賽中,解題模式和攻防模式側重點有差別的,攻防模式更看重攻防效率,講究快速攻擊得分,所以攻防模式上不太會採用一些特別難的題目。尤其在國內,攻防模式因為欣賞性更高,有一些“氾濫”,甚至有種被玩壞了的感覺。優勢第一名的分數是第二名的兩倍,其實他們的水準並沒有相差那麼多,也許只是第一名“手速更快”而已。
解題模式則朝著越來越專業、技術難度更高的方向發展,更貼近前沿技術。比如二進位漏洞利用上,“快”是起不了什麼作用的,更需要高難度的漏洞挖掘能力。
就目前而言,TCTF 面向國內高校大學生,很大程度上承擔著發掘安全人才的使命,從這一角度上來看,解題模式是更合適的,這是一個考量。只保留
解題模式,這並不是我們首創的,現在很多知名比賽也有這麼做的先例,這次 TCTF 的題目是是往高難度的方向去,基本是朝著 DEFCON 的難度來看齊的。
雷鋒網宅客:據說這次 TCTF 的優秀隊伍除了獎金之外還有別的福利?
天憶:
對的,冠軍可以獲得 DEFCON CTF大賽的直通卡。然後這次騰訊推了“百人計畫”,除了豐厚的獎金之外,還可以通過全明星導師團為他們提供專業指導。在就業方面,據我所知也有相當豐厚的福利,比如入職騰訊和支持企業都有綠色通道,可以不用筆試直接面試等等。
其實這次騰訊舉辦 TCTF 本身就是希望通過安全資訊競賽的形式,來發現高校裡更多熱愛安全技術的人才,最後
形成一個從高校向社會輸送安全人才的平臺,解決現在網路安全人才缺失的問題。我周圍認識的很多安全從業者,包括我自己還有阿左,一開始都是從高校打 CTF 比賽開始的,我覺得這是一個很好的方式。