凌志軍
(一)
“我們發(fā)現(xiàn)了一個(gè)黑客,在中國。”
2003年1月的一個(gè)早上,微軟亞洲研究院現(xiàn)任院長張亞勤來到辦公室,打開電子郵箱,這一行字立即彈了出來。
郵件來自微軟公司總部的安全小組。這小組的職責(zé)之一是監(jiān)視因特網(wǎng)瀏覽器在全球的運(yùn)行情況,專門尋找“臭蟲”,然后彌補(bǔ),同時(shí)還要監(jiān)視網(wǎng)絡(luò)上面神出鬼沒的“黑客”行蹤。
對(duì)于微軟公司來說,網(wǎng)上“黑客”的性質(zhì)是不同的。有些“黑客”的確對(duì)微軟抱著敵意,專門尋找微軟軟件產(chǎn)品中的“臭蟲”,利用軟件本身存在的漏洞,去攻擊那些軟件使用者。這種攻擊帶有極大的破壞性,還讓微軟公司難堪。另外一些“黑客”則純粹屬于“技術(shù)狂”,對(duì)技術(shù)的熱愛導(dǎo)致他們?nèi)ふ掖蠊井a(chǎn)品的毛病。他們決不出手攻擊網(wǎng)站,他們知道那是違法的,還會(huì)給別人帶來損失。但是他們通常把自己的發(fā)現(xiàn)在網(wǎng)絡(luò)上公布,還詳細(xì)說明,怎樣通過他們的“發(fā)現(xiàn)”抓住軟件上的“臭蟲”。
根據(jù)微軟總部安全小組的判斷,新出現(xiàn)的“中國黑客”屬于后一種情況。他不是惡意的攻擊者,但他技術(shù)高超、眼光獨(dú)到。他的矛頭直指“微軟因特網(wǎng)瀏覽器”,還把他發(fā)現(xiàn)的4個(gè)“臭蟲”公布在網(wǎng)上。
“他的發(fā)現(xiàn)真是讓人難以置信。他比我們迄今為止見過的最棒的黑客還要棒?!卑踩〗M在電子郵件中這樣說,“他知道這些‘臭蟲是什么原因造成的,能猜出程序員在寫程序的時(shí)候大概犯了什么錯(cuò)誤,他還告訴別人怎么攻擊。每當(dāng)他公布一個(gè)‘臭蟲,就會(huì)有一大堆惡意攻擊者尾隨而來,攻擊那些使用微軟產(chǎn)品的人。”
微軟的安全人員防不勝防,因?yàn)檫@個(gè)“中國黑客”差不多每個(gè)月都能在“瀏覽器”上抓到一個(gè)“臭蟲”,而且他也不像別的黑客那樣隱名埋姓。他把自己的來路全部公布在網(wǎng)絡(luò)上。
嚴(yán)格說來,他的行為并不違法,因?yàn)樗]有利用微軟的“臭蟲”去攻擊他人,也沒有給他人造成損害。但這樣的“黑客”讓微軟感到頭疼,微軟安全小組的工程師們非常希望找到他,于是向張亞勤尋求幫助。
“可以肯定他是一個(gè)中國的學(xué)生?!彼麄兏嬖V張亞勤,“在湖南的湘潭大學(xué)讀書,名叫劉蝶雨。”
(二)
湘潭大學(xué)的大二學(xué)生劉蝶雨坐在他的擁擠不堪的房間里,盯著電腦屏幕,目不轉(zhuǎn)睛,那上面是微軟公司最得意的產(chǎn)品之一“因特網(wǎng)瀏覽器”。他知道他想找的東西就在那里面,他已經(jīng)清晰地感覺到它的存在,可它為什么還不出來呢?……過了一會(huì)兒,他就在這瀏覽器上找到了第五個(gè)“臭蟲”。像往常一樣,他把它公布在因特網(wǎng)上,留下了自己的姓名和地址。
“真奇怪!”有個(gè)同學(xué)對(duì)他說,“微軟還沒有對(duì)你采取行動(dòng)啊?”
“采取行動(dòng)?”他將信將疑,不禁緊張起來。
有一天,電話鈴響,他拿起來,聽到那邊有個(gè)聲音:“我是微軟的?!?/p>
劉蝶雨當(dāng)即目瞪口呆。
打來電話的人叫林斌,是微軟亞洲研究院新技術(shù)開發(fā)部的經(jīng)理。他接到張亞勤轉(zhuǎn)發(fā)的郵件,按圖索驥,很容易地找到了劉蝶雨。
“我們找你,沒有什么特別的?!绷直蟾杏X到對(duì)方緊張的喘息聲,希望緩和氣氛,接著自我介紹,說自己在北京,在微軟亞洲研究院負(fù)責(zé)一個(gè)工程師小組。
劉蝶雨只是含糊地“啊,啊”。“我們對(duì)你的工作非常感興趣。”林斌說,“我們很想請(qǐng)你到北京來看看。也許你愿意和我們合作。你寒假如果沒有事的話就來吧,坐飛機(jī)坐火車都行,我們負(fù)責(zé)你的旅行費(fèi)?!?/p>
“我很愿意?!眲⒌暾f,“也許吧?!?/p>
蝶雨放下電話,心里還在咚咚跳。他的第一個(gè)念頭是:“這年頭騙子太多啦。他們是微軟的嗎?”接著又一個(gè)念頭:“就算他們是真的,到底為什么找我呢?該不是要把我關(guān)起來吧?”
蝶雨這樣想著,第一次感覺到“黑客帝國”的驚險(xiǎn)離奇。
春節(jié)過后,蝶雨終于來到北京的希格瑪大廈。
林斌致電微軟總部,說他們要找到的“黑客”現(xiàn)在就在他身邊。
“太棒了!”對(duì)方興奮地說,“我們?cè)谝黄痖_個(gè)會(huì)吧?!?/p>
蝶雨聞聲大驚:“我要見敵人了!”“你怎么會(huì)想到這個(gè)?”林斌很奇怪?!拔沂窃谡夷銈兊穆闊┌ D銈儾皇菙橙藛?”
林斌說:“我們不是敵人,我們只是想把軟件做得更好?!?/p>
“你們想要我做什么?”
林斌對(duì)他說:“你想做什么。就做什么。你如果想繼續(xù)在‘瀏覽器上找‘臭蟲。我們總部的產(chǎn)品組可以和你合作。”
蝶雨開始工作了。連續(xù)7天,他在“因特網(wǎng)瀏覽器”上找到7個(gè)“臭蟲”,一天一個(gè),而且都是很難找到的。他自己興奮,微軟總部的人更興奮,驚嘆:“這個(gè)人怎么這么厲害!”。
第八天,林斌給了蝶雨一本書。此書是專門講怎樣編寫安全代碼的,作者是微軟公司產(chǎn)品部門的一位經(jīng)理。書中列舉了程序員常犯的錯(cuò)誤,極為精致周到,所以這本書成為微軟程序員的必讀書。
林斌說:“讀讀這本書,你能更好地發(fā)現(xiàn)程序員的弱點(diǎn)在哪里。”
蝶雨大喜,拿回去看了第一章,腦子里面馬上有了新主意。他試圖以其人之道還治其人之身,直接深入到書作者領(lǐng)導(dǎo)的那個(gè)小組中去。
林斌聽了他的想法,覺得不會(huì)有結(jié)果:“書是他自己寫的,他不會(huì)在他領(lǐng)導(dǎo)的小組里犯錯(cuò)誤?!?/p>
但是蝶雨更相信自己的直覺。
(三)
按下來的事情,讓所有人都感到意外。蝶雨在“瀏覽器”的地址欄里發(fā)起了他的“戰(zhàn)役”。當(dāng)他使用一種方式來表達(dá)一個(gè)字母的時(shí)候,“瀏覽器”沒有任何問題。他繼續(xù)擴(kuò)展到第二種方式,仍然沒有問題。這都是意料中的,他并不在意,一口氣做下去,不斷擴(kuò)展出新的表達(dá)方式,字符串也迅速延伸,一直延伸到第81次,系統(tǒng)的毛病顯示出來,他笑了,再接再厲,擴(kuò)展出至少200種變化,字符串形成前所未有的長度。最后他莫名其妙地進(jìn)入一家銀行的網(wǎng)頁。
“真是太絕了。”林斌說,“別人的測(cè)試,只變化十幾次、二十幾次,已經(jīng)不得了。實(shí)際上他的變化是從0到200多次。就是在中間一個(gè)短暫的階段,他發(fā)現(xiàn)了問題。問題報(bào)告到總部,那邊的人佩服得一塌糊涂。”