【人物】TK,不會開鎖的醫生不是個好黑客
導讀他是全球贏得微軟安全技術挑戰懸賞獎金數量最多的人,他被尊為「黑客教主」,他是TK(Tombkeeper),他叫於暘。
這是鑰匙的「口令」,只要記住這串數字和鑰匙的制式,便能造出一把一模一樣的來。因此,他把鑰匙歸還的時候,特別囑咐:「永遠不要把你的鑰匙給別人看。」
這個男子叫於暘,知曉他身份的人,想必不會對他剛才所展現的神奇能力太過吃驚。在安全圈,於暘有一個更廣為人知的名字:Tombkeeper,簡稱TK。
37歲的TK,年紀不算大,卻處處留下傳說:十多年前,還在醫學院讀書的他,靠著自學涉足安全圈,隨後一步步成為中國技術最強、身價最高的白帽子之一,並被業內尊為「黑客教主」。即使從全球範圍中看,於暘也已盛名久負,今年8月,在微軟發布的全球黑客貢獻排行榜上,他位列第二——這並不意外,他是全球贏得微軟安全技術挑戰懸賞獎金數量最高的人,該挑戰被視為證明黑客技術實力的標準之一。
「 研究網路蠕蟲的醫科生騰訊玄武實驗室坐落在北京海淀區的銀科大廈里,於暘常常比規定的上班時間到得更早些。他的辦公室面積不大,布置素凈,書架上擺放著的大半是技術類書籍,此外最為奪目的,還有兩個代表著騰訊形象的企鵝玩偶。2014年,於暘從綠盟「轉會」騰訊,創立玄武實驗室的時候,曾有傳聞說,騰訊為其開出「千萬年薪」。後來,它也成為了屬於TK的諸多傳說中的一個,儘管於暘本人表示了否認,但從某種程度上來說,這個傳聞代表著中國安全圈對頂尖人才所能貢獻的價值的期待,而於暘本人,正是這一代頂級黑客的象徵和標杆。
於暘的成長經歷極富代表性。他1978年出生,上大學時正好與互聯網時代相遇,如果將今天的互聯網比作誰都難免置身其中的「浪潮」,當時就連「水花」的程度都及不上。於暘形容說,他在醫科大學讀書時,電腦課還局限於「開關機、打打字」的水平,老師自己重裝系統時還要帶一份「攻略」,跟著上面的步驟一步步做,然而,「只要會重裝系統,你就是老師了」。
這樣的環境,對中國安全圈的第一批高手而言並不陌生。事實上,在這段互聯網發展的蠻荒歲月中,有無數年輕人像TK那樣,憑著興趣和不懈鑽研,在多年後成為互聯網時代的中流砥柱。但在所有的故事中,TK的經歷仍然具有濃厚的傳奇色彩:2001年前後,「紅色代碼」蠕蟲席捲全世界,標誌著安全威脅開始由病毒轉向蠕蟲,TK在自己的電腦上架設了一個蜜罐,想要研究這種蠕蟲。
結果,他卻在蜜罐中發現了一種新蠕蟲,和紅色代碼完全不同,而且危害更大——事後,這被證明是正在全球蔓延的、傳播性非常強的尼姆達蠕蟲。當時,於暘把自己的研究寫成了一份報告,隨後憑著對安全行業僅有的常識,他猜測「這種事是殺毒公司管的」,於是將它發送給了金山毒霸,後者送了他一套毒霸軟體作為謝禮。
此後幾年間,國內其他安全研究者撰寫蠕蟲分析報告時,竟然都參照於暘撰寫尼姆達蠕蟲報告時所用的格式。這件事給了他極大的信心,並最終決定了其職業發展的方向。
「 一把鎖有多少種開法?
由於大學裡讀的是醫學,圈內人常以「婦科聖手」戲謔於暘。調侃之餘,也帶著肅然起敬的意味:一個醫科出身的人,竟然能在安全領域走得那麼遠。早些年,於暘的故事是許多人投身信息安全的榜樣和動力;現在形勢發生了些變化,隨著信息安全科班教育的呼聲越來越高,越來越多的從業人員更希望年輕人將他的經歷視為「異類」:「因為並非所有人都有TK這樣的天賦,能夠靠著自我摸索取得這麼大的成就。」連於暘本人都是這樣想的,他的傳奇很難複製。從小他就醉心於各種研究和探索,「十幾歲以後,我家裡再也沒有任何東西拿出去修過,因為我已經能夠全部搞定了。」他的能工善巧漸漸出了名,連親戚和父母的同事也會找上門來,請他幫忙修理壞掉的電器。
對萬物本質原理的旺盛好奇心,使於暘投身信息安全,成為一個偶然又必然的事件。十幾歲時,家裡搞裝修,剩下幾把鎖芯,他自己琢磨著就習得了開鎖的原理。直到如今,於暘還常以開鎖作為教學案例,啟發實驗室的年輕人對「攻擊界面」的認識:「如果沒有鑰匙,又要開這把鎖,有幾種方法?」
最傳統的方法是被稱作「單鉤」的萬能鑰匙——那是一組細長的鉤子,配合一根L形鋼片。用L形鋼片對鎖芯施加合適的扭力,用「單鉤」將鎖芯內的彈子頂到恰當的位置,鎖就打開了。
但開鎖的方法並不止這一種。於暘用鉤子將所有彈子全部頂到最高位置,鎖也被打開了。「事實上,你觀察以後還會發現,掛鎖的原理是:彈子控制鎖芯的旋轉,而鎖芯通過鎖舌控制鎖梁的開閉。因此,除了鎖芯里的彈子,還有一個攻擊目標,就是鎖舌。而更進一步分析會發現對鎖舌的攻擊又可分為外部發起和內部發起兩種。外部攻擊的方法很多人都知道,但內部攻擊我還沒見有人提出過」。他一邊說,一邊將鉤子插進鎖眼,往左右各輕輕一撥,鎖又打開了。
「開一把鎖的過程,包含著很多安全攻防的思想:一把工藝完美的鎖是不可能通過撥彈子的方式打開的。能通過撥動彈子開鎖,本質上是因為理想的設計往往不能被理想地實現,這和信息安全是一樣的。很多懂安全理論但沒搞過實踐的人都想不明白這些。從攻擊角度看,你可以複製鑰匙,也可以模擬鑰匙,但最好的方法可能是根本不理會鑰匙-鎖芯這套安全機制,甚至根本不理會整個鎖——開鎖不一定用鑰匙,開門不一定先開鎖,進屋不一定要走門」,於暘說。這些他十幾歲開始逐漸領悟的樸素的方法論,現在仍然是他攻防思想的基礎。
「 「黑客教主」是怎樣煉成的?在科學領域,於暘自小就愛好廣泛:「當時想不出大學志願怎麼填,覺得學什麼都行,都喜歡。後來因為家裡有人從醫,父母便幫我做了主,於是就去了醫科大學。」
進大學以後,家裡買了電腦。喜歡將一切都拆開來看個究竟的於暘,自然也不會放過研究這個新事物的機會,然而不一樣的是,這一回他著迷甚深。「之前所見萬物都有邊界,唯有計算機的世界是沒有窮盡的。」他舉例說,小時候把電視機拆開來,看電路布局、元件功能,都能一一弄清,沒有什麼可探索的了,但計算機不一樣,這台機器里包含著的信息量極為巨大,因為可以通過安裝軟體,近於無限地擴展信息量,「和其他的一切都不一樣」。
在探索的過程中,於暘很快就觸及了安全領域。相比應用軟體,安全是一個更底層、更本質的東西,因此它也註定成為於暘更願意投身研究的領域。那時,他把在學校社團賺得的稿費省下來,走2公里去中科大附近一家專賣計算機類書籍的書店:「安全類的書籍只有一排,其中就有《黑客大曝光》。」
就這樣,靠著自學,這個連C語言都沒學過的醫學生,在對尼姆達蠕蟲的研究中一戰成名,並且自此被「安全圈」所關注。
大學畢業時,於暘決定去綠盟,成為一名安全研究員。之所以把信息安全而非醫科專業當做自己的事業,涉獵廣泛、擅長極多的於暘表示:「它很有意思,和做醫學實驗不一樣,既可以一次次推翻重來,所需物質門檻也非常低」。
「黑客教主」的江湖地位,就是在綠盟科技工作的那段時間中確認的。
並非科班出身,參加工作時連編程語言都沒學過的於暘,是怎樣補足那些基礎知識,並在信息安全專業研究領域快速崛起的?於暘平靜地說,自己從未被學習新事物所困。
「一個比較重要的原因是從小讀書,我的閱讀速度比一般人快,對於特別喜歡讀書的人來說,看書的時候會有一種如饑似渴的感覺,特別希望能夠快速地把書讀完。我從小就把讀書速度給練出來了,可以非常快地進行資料的閱讀和檢索。」他說,「換句話說,我能很快找到解決問題所需要的信息,隨後開始一行行細嚼慢咽地閱讀。」
早些年,他就把這樣的心得寫在了網上。因為那會兒常有人求大牛的技術指點:「怎樣才能獲得你的畢生功力?」於暘寫道,學Windows的方法有三步,沒有訣竅,也不用花錢買書:「一、先把Windows的幫助文件從頭到尾看一遍;二、在Windows目錄下搜索*.txt、*.htm?、*.log、*.ini,把每一個文件內容都看一遍;三、把註冊表瀏覽一遍。」
把他說的這兩點結合起來,便知「黑客教主」是怎樣煉成的——那便是「刻苦」,以及「對自身天賦的善加利用」:「其中刻苦是必須的,因為聰明的人太多了。但也不能忽略自己的優勢和特質,比如我的優勢就在於閱讀、表達、好奇和另闢蹊徑的探索方式。」
過硬的技術加出眾的表達能力,使於暘脫穎而出,成為綠盟科技研究部的代言人。業內其他人提到他時都覺得震驚,一個學醫出身的年輕人,在那麼短的時間裡就取得了那麼快的進步,實在是不可思議。
於是,在安全焦點的某個峰會上,TK就被「刁難」了。那個會議的最後一項議程,是請幾個人上台回答觀眾的提問。有人拿出許多刁鑽古怪的問題,向於暘發問,都被他一一化解,最後主持人笑言:「在這個世界上,我只佩服兩個人,一個是芙蓉姐姐,還有一個就是TK。」
「芙蓉姐姐那時很紅,她不是有個綽號叫『芙蓉教主』么?所以我之後就被叫作『黑客教主』,『教主』之類的,不是尊稱,更近似戲謔。」於暘笑道。
「 獲得微軟大獎如「探囊取物」他的聲名真正從國內流傳出去,並為世界安全圈所周知,則是源於2013年的一系列事件。當時,於暘在CanSecWest介紹了一套技術,能夠非常簡單地突破被視作「無懈可擊」的Windows 7系統。「從Windows XP SP2到Windows Vista再到Windows 7,微軟把自己積累多年的漏洞防禦思想慢慢都在裡面進行了實現,並逐步完善。當時,安全研究屆不少人曾一度絕望,覺得『沒飯吃了』。因為在當時看來,Windows系統的漏洞變得幾乎不可能被利用,不太需要其它安全措施了」,於暘說。但早在幾年之前,他就一直在關注漏洞通用防禦和攻擊,並研究出了相應的技術。
這套攻擊技術在CanSecWest上公布之後,微軟在自己的防禦軟體EMET中加入了相應的措施。緊接著,於暘研究了這個防禦軟體,結果馬上發現了這個軟體的問題:「它確實做到了防範,但是在做防禦的同時,又引入了一個新的問題。就好像是鎖好了門,但在牆上又開了一個更大的洞。」在將這個新問題報告給微軟之後,微軟在官方的blog里特别致謝了於暘。雖然微軟每月發布漏洞的時候都會例行在公告中致謝,但單獨在官方blog里致謝,是很少見的。
這件事也促成了Mitigation Bypass Bounty項目的設立。現在,它已成為微軟常設的安全技術懸賞項目。第一個10萬美元大獎是被一個英國人拿走的,於暘說自己的妻子得知後有些不忿:「這個獎項明明是因為你而設立的,卻被其他人拿走了。」於暘安慰說別著急,「我也給你拿一個回來」。
果然,在幾個月的滿負荷研究後,於暘也拿到了微軟的10萬美元大獎。「還是有些遺憾,總覺得沒拿到第一,於是今年決定在量上取勝。」他說起來輕描淡寫,「總想把這個第一抱在中國人的手裡。」
微軟定下的懸賞標準相當苛刻,滿足條件的技術必須是穩定、高風險且通用的。如果將防禦系統具象化,微軟的要求不是發現一個偷懶的士兵,而是戰略布局的紕漏,此外「它必須是全新的技術,不能包含之前任何的發現」。於暘形容自己第二次拿獎的難度:「就好比世界紀錄的保持者,他要打破的是自己的極限。」好在這一次,他又突破了。
對於暘而言,攻防對抗是一場又一場人與人之間的智力較量,「這個領域的每道關卡都是別人幫你設下的。攻擊時,你要去挑戰對方的頂級高手布下的重重難關;防禦時,你要考慮攻擊者的思維方式。就像周伯通的『左右互搏』,自己打自己,武學才逐漸精進。這是很有意思的事情。」
在各種場合,於暘不止一次將技術比喻成武學,「黑客相當於習武之人。強盜、飛賊、保鏢、捕快是習武之人的職業」。武者醉心於個人功力的精進,便能夠不為外物所困,因而於暘喜歡投身於常人所不能及的領域和高度——「要做就去做困難的事情,如果一個工作門檻低,人人做得了,那你將必然耗費大量的精力在與本職無關的事情上。」
投身安全行業13年,於暘從未感覺厭倦。騰訊的玄武實驗室,也是他所起的名字——「玄武」是北方神獸,龜蛇一體,緊緊纏繞。「蛇」即是攻擊,「龜」便是防禦,攻防並進,推動行業的不斷發展。在「黑客教主」TK的心中,這就是信息安全所具有的、最迷人的特質。
原文首發:【人物】TK,不會開鎖的醫生不是個好黑客
推薦閱讀: