抓“臭虫”的“中国黑客”
2009-02-23凌志军
凌志军
(一)
“我们发现了一个黑客,在中国。”
2003年1月的一个早上,微软亚洲研究院现任院长张亚勤来到办公室,打开电子邮箱,这一行字立即弹了出来。
邮件来自微软公司总部的安全小组。这小组的职责之一是监视因特网浏览器在全球的运行情况,专门寻找“臭虫”,然后弥补,同时还要监视网络上面神出鬼没的“黑客”行踪。
对于微软公司来说,网上“黑客”的性质是不同的。有些“黑客”的确对微软抱着敌意,专门寻找微软软件产品中的“臭虫”,利用软件本身存在的漏洞,去攻击那些软件使用者。这种攻击带有极大的破坏性,还让微软公司难堪。另外一些“黑客”则纯粹属于“技术狂”,对技术的热爱导致他们去寻找大公司产品的毛病。他们决不出手攻击网站,他们知道那是违法的,还会给别人带来损失。但是他们通常把自己的发现在网络上公布,还详细说明,怎样通过他们的“发现”抓住软件上的“臭虫”。
根据微软总部安全小组的判断,新出现的“中国黑客”属于后一种情况。他不是恶意的攻击者,但他技术高超、眼光独到。他的矛头直指“微软因特网浏览器”,还把他发现的4个“臭虫”公布在网上。
“他的发现真是让人难以置信。他比我们迄今为止见过的最棒的黑客还要棒。”安全小组在电子邮件中这样说,“他知道这些‘臭虫是什么原因造成的,能猜出程序员在写程序的时候大概犯了什么错误,他还告诉别人怎么攻击。每当他公布一个‘臭虫,就会有一大堆恶意攻击者尾随而来,攻击那些使用微软产品的人。”
微软的安全人员防不胜防,因为这个“中国黑客”差不多每个月都能在“浏览器”上抓到一个“臭虫”,而且他也不像别的黑客那样隐名埋姓。他把自己的来路全部公布在网络上。
严格说来,他的行为并不违法,因为他并没有利用微软的“臭虫”去攻击他人,也没有给他人造成损害。但这样的“黑客”让微软感到头疼,微软安全小组的工程师们非常希望找到他,于是向张亚勤寻求帮助。
“可以肯定他是一个中国的学生。”他们告诉张亚勤,“在湖南的湘潭大学读书,名叫刘蝶雨。”
(二)
湘潭大学的大二学生刘蝶雨坐在他的拥挤不堪的房间里,盯着电脑屏幕,目不转睛,那上面是微软公司最得意的产品之一“因特网浏览器”。他知道他想找的东西就在那里面,他已经清晰地感觉到它的存在,可它为什么还不出来呢?……过了一会儿,他就在这浏览器上找到了第五个“臭虫”。像往常一样,他把它公布在因特网上,留下了自己的姓名和地址。
“真奇怪!”有个同学对他说,“微软还没有对你采取行动啊?”
“采取行动?”他将信将疑,不禁紧张起来。
有一天,电话铃响,他拿起来,听到那边有个声音:“我是微软的。”
刘蝶雨当即目瞪口呆。
打来电话的人叫林斌,是微软亚洲研究院新技术开发部的经理。他接到张亚勤转发的邮件,按图索骥,很容易地找到了刘蝶雨。
“我们找你,没有什么特别的。”林斌感觉到对方紧张的喘息声,希望缓和气氛,接着自我介绍,说自己在北京,在微软亚洲研究院负责一个工程师小组。
刘蝶雨只是含糊地“啊,啊”。“我们对你的工作非常感兴趣。”林斌说,“我们很想请你到北京来看看。也许你愿意和我们合作。你寒假如果没有事的话就来吧,坐飞机坐火车都行,我们负责你的旅行费。”
“我很愿意。”刘蝶雨说,“也许吧。”
蝶雨放下电话,心里还在咚咚跳。他的第一个念头是:“这年头骗子太多啦。他们是微软的吗?”接着又一个念头:“就算他们是真的,到底为什么找我呢?该不是要把我关起来吧?”
蝶雨这样想着,第一次感觉到“黑客帝国”的惊险离奇。
春节过后,蝶雨终于来到北京的希格玛大厦。
林斌致电微软总部,说他们要找到的“黑客”现在就在他身边。
“太棒了!”对方兴奋地说,“我们在一起开个会吧。”
蝶雨闻声大惊:“我要见敌人了!”“你怎么会想到这个?”林斌很奇怪。“我是在找你们的麻烦啊。你们不是敌人吗?”
林斌说:“我们不是敌人,我们只是想把软件做得更好。”
“你们想要我做什么?”
林斌对他说:“你想做什么。就做什么。你如果想继续在‘浏览器上找‘臭虫。我们总部的产品组可以和你合作。”
蝶雨开始工作了。连续7天,他在“因特网浏览器”上找到7个“臭虫”,一天一个,而且都是很难找到的。他自己兴奋,微软总部的人更兴奋,惊叹:“这个人怎么这么厉害!”。
第八天,林斌给了蝶雨一本书。此书是专门讲怎样编写安全代码的,作者是微软公司产品部门的一位经理。书中列举了程序员常犯的错误,极为精致周到,所以这本书成为微软程序员的必读书。
林斌说:“读读这本书,你能更好地发现程序员的弱点在哪里。”
蝶雨大喜,拿回去看了第一章,脑子里面马上有了新主意。他试图以其人之道还治其人之身,直接深入到书作者领导的那个小组中去。
林斌听了他的想法,觉得不会有结果:“书是他自己写的,他不会在他领导的小组里犯错误。”
但是蝶雨更相信自己的直觉。
(三)
按下来的事情,让所有人都感到意外。蝶雨在“浏览器”的地址栏里发起了他的“战役”。当他使用一种方式来表达一个字母的时候,“浏览器”没有任何问题。他继续扩展到第二种方式,仍然没有问题。这都是意料中的,他并不在意,一口气做下去,不断扩展出新的表达方式,字符串也迅速延伸,一直延伸到第81次,系统的毛病显示出来,他笑了,再接再厉,扩展出至少200种变化,字符串形成前所未有的长度。最后他莫名其妙地进入一家银行的网页。
“真是太绝了。”林斌说,“别人的测试,只变化十几次、二十几次,已经不得了。实际上他的变化是从0到200多次。就是在中间一个短暂的阶段,他发现了问题。问题报告到总部,那边的人佩服得一塌糊涂。”