合同簽完的當天下午,林遠就正式開始了工作。
馬化騰給他準備的獨立辦公室不大,就是騰迅辦公室角落裡用玻璃隔出來的小房間,大概六七平米的樣子,裡面放了一張辦公桌、一把椅子和一個文件櫃。桌上擺著一台全新的聯想台式機,黑色的機箱還帶著塑料包裝的味道。
"條件有限,"馬化騰有些不好意思,"公司現在確實擠了點。"
馬化騰把幾個技術核心骨幹叫了進來:"這是張小龍,負責QQ客戶端開發;這是Tony,負責後台架構;這是Jason,負責網絡安全。從今天起,你們要全力配合守望的工作,他要什麼數據、什麼權限,你們第一時間給。"
幾人看著林遠,眼神里都帶著疑惑。眼前這個年輕人看起來頂多二十歲,穿著一件普通的黑色羽絨服,背著一個雙肩包,怎麼看都不像個能收十五萬美金的頂級安全專家。
"你們好,"林遠沒有多解釋,只是簡單地點了點頭,"我需要一份QQ伺服器完整的拓撲圖,還有所有核心代碼庫的訪問權限。另外,給我開一個最高權限的測試帳號,要能模擬所有用戶操作。"
幾人對視一眼,都從對方眼裡看到了驚訝。一開口就要完整拓撲圖和全部代碼庫權限——這膽子也太大了。一般的安全顧問,都是先從外圍掃起,慢慢滲透,哪有上來就要核心資產的?
"馬總……"Tony有些猶豫地看向馬化騰。
"按他說的做。"馬化騰沒有絲毫猶豫,"守望要看什麼,你們就給什麼。所有權限全開,不需要審批。"
老闆都發話了,三個人雖然心裡疑惑,但還是照做了。半個小時後,林遠的電腦上就有了所有他需要的東西。
辦公室的門關上,房間裡只剩下林遠一個人。
他靠在椅背上,深吸一口氣,然後打開了拓撲圖。
騰迅的伺服器架構,其實不算複雜——畢竟2003年的QQ,用戶量還只有幾百萬。核心就是幾台登錄伺服器、消息伺服器、文件伺服器,外加資料庫集群。但就是這麼一套看起來簡單的架構,林遠一眼就看到了幾個明顯的問題。
"宿主,"小艾的聲音響起,"拓撲圖分析完成。發現高危漏洞3個,中危7個,低危12個。建議優先處理登錄伺服器的SQL注入漏洞,這個最容易被利用。"
林遠沒有說話,只是在腦子裡把整個架構過了一遍。然後他打開代碼庫,開始一行一行地看。
外面的辦公區,三個技術骨幹聚在一起小聲議論。
"你們說,這小子到底行不行啊?"Jason壓低聲音,"我怎麼看怎麼像個大學生。"
"馬總既然請他來,肯定有他的道理。"張小龍說,"你忘了那份報告了?那份報告的質量,我敢說國內沒,人能寫出來。"
"話是這麼說,但……"Tony皺了皺眉,"十五萬美金啊,還是三周。咱們整個技術部,月的工資都沒這麼多。"
三人正說著,辦公室的門開了。林遠走了出來,手裡拿著一張紙。
"你們三個過來一下。"他把紙放在桌上,"登錄伺服器這邊,有個SQL注入。你們看這裡——"
他指著紙上畫的幾個位置:"用戶登錄的時候,用戶名參數沒有做過濾,直接拼進了SQL語句。只要構造出特殊的用戶名,就能繞過驗證直接登錄任意帳號。"
三個人湊過去一看,臉色瞬間變了。
"你……你怎麼發現的?"Jason的聲音都有些顫抖。他們做安全的,最清楚這個漏洞意味著什麼——只要有人發現了,整個QQ的用戶帳號體系就等於完全敞開了大門。
"看拓撲圖的時候注意到的。"林遠輕描淡寫地說,"你們趕緊補一下,這個漏洞優先級最高。"
說完,他轉身回了辦公室,關上了門。
外面三個人面面相覷,半天說不出話來。
他才進去多久?二十分鐘?
二十分鐘,光看拓撲圖就發現了一個他們三個資深工程師天天看都沒發現的高危漏洞?
"我靠……"Jason忍不住爆了句粗口,"這他媽是怪物吧?"
張小龍盯著那張紙,臉色嚴肅:"馬總沒看錯人。這人……真的是頂級水平。"
一個小時後。
林遠再次走出辦公室,手裡多了三頁紙。
"還有幾個漏洞。"他把紙放在桌上,"我按優先級排了序,你們照著修就行。"
三個人趕緊湊過去看。
第一頁:消息伺服器緩衝區溢出漏洞,高危。攻擊者可以發送特製數據包,遠程執行代碼。
第二頁:文件伺服器目錄遍歷漏洞,中危。可以下載任意用戶上傳的文件。
第三頁:用戶信息接口越權訪問,高危。可以查看任意用戶的個人信息,包括密碼提示問題和答案。
三個漏洞,每個都有詳細的原理說明、利用方式和修復建議。字跡工整,邏輯清晰,一看就是專業水準。
Jason的冷汗都下來了。
這三個漏洞,兩個高危一個中危,他們一個都沒發現。而眼前這個年輕人,只用了一個多小時,就全找出來了?
"守……守望先生,"Tony的聲音都有些發乾,"您是怎麼……這麼快就找到這些漏洞的?"
林遠看了他一眼,淡淡地說:"經驗。常見的漏洞就那麼幾種,看一眼架構就知道哪裡會出問題。"
看一眼架構就知道?
三個人對視一眼,都從對方眼裡看到了震撼。
這是什麼水平?這已經不是普通的安全專家了——這是那種浸淫此道十幾年、見過無數系統的老炮才能有的直覺。
可眼前這個人,看起來頂多二十歲啊!
"還有,"林遠繼續說,"你們的密碼存儲方式有問題,明文加簡單MD5,太容易被破解了。建議改成加鹽哈希,而且要用慢哈希算法。具體方案我寫在最後了。"
說完,他轉身又回了辦公室。
留下三個人站在原地,久久不能平靜。
下午六點,馬化騰過來詢問進度。
"怎麼樣?第一天有收穫嗎?"他走進辦公室,看到林遠面前攤著七八頁紙,上面密密麻麻寫滿了字。
林遠抬起頭:"初步掃了一遍,發現11個漏洞。4個高危,5個中危,2個低危。都在這兒了,按優先級排好了。"
馬化騰拿起那疊紙,越看臉色越凝重。
11個漏洞。
其中4個高危,每一個都足以給騰迅造成致命打擊。SQL注入、緩衝區溢出、越權訪問、明文密碼存儲……這些問題,他們的技術團隊居然全都沒發現?
如果不是林遠過來,這些漏洞哪天被人利用了,他們可能還蒙在鼓裡。
"這些……都是今天發現的?"馬化騰的聲音有些乾澀。
"嗯。"林遠點點頭,"初步審計,主要是架構和代碼層面的。明天開始做滲透測試,模擬真實攻擊場景,可能還會發現更多問題。"
馬化騰深吸一口氣。
十五萬美金,三周。
他本來還有些心疼這筆錢,但現在看來——太值了。
這些漏洞要是真被黑客利用了,造成的損失何止十五萬?可能是一百五十萬,甚至一千五百萬都不止。
"辛苦了。"馬化騰拍了拍林遠的肩膀,語氣裡帶著一絲由衷的敬佩,"需要什麼儘管說,我們全力配合。"
"好。"林遠點點頭,"明天給我準備,隔離的測試環境,我要做完整的滲透測試。可能會有點動靜,提前跟運維打個招呼。"
"沒問題。"馬化騰乾脆利落地答應,"我親自跟運維說。"
走出辦公室的時候,馬化騰的心情久久不能平靜。
他想起了當年在深圳創業的時候,也是這樣一群年輕人,憑著一股衝勁,把QQ從一個小軟體做到了幾百萬用戶。但技術債也越積越多,安全問題就像一顆定時炸彈,不知道什麼時候會炸。
現在,這顆炸彈的引信,終於被人找到了。
而且這個人,居然這麼年輕。
馬化騰搖了搖頭,嘴角露出一絲苦笑。
真是江山代有才人出啊。