阳光打在琉璃穹顶,碎落一地五颜六色的光斑。光斑散落之处,有牧师正庄严宣读誓词,有新郎身着无尾礼服,有新娘身披洁白纱裙。有亲友掌声作贺,有爱人热情相拥。
这是马克斯出狱的第三年。他成为了联邦调查局的线人,也成为了一名业内享有盛名的白帽黑客。此时,他似乎拥有了一切:挚爱的妻子,前途无量的白帽黑客工作,一个舒适的家。
几个星期后,这一切都将烟消云散。
餐桌上的牛排和沙拉已经凉透了。基米第五次叫马克斯吃饭,她得到的答复和前四次相同“再等等”,
马克斯面前有一行代码,他盯着这行代码沉思已近两个小时。
bcopy(fname,anbuf,alen=(char*)*cpp-fname);
这是构成BIND(伯克利因特网名称域)的9000行代码中的一行。BIND是一种分布式的通讯录,可以将网址转换为数字地址。
1998年,安全专家们在这行代码中发现了致命缺陷。它的功能是将互联网的查询逐个字节复制到服务器内存的临时缓存中,但它不能正确检查接收到数据的大小。黑客可以故意向BIND服务器发送超长查询,导致缓冲区溢出,并用数据填充剩余的计算机内存。
如果黑客足够细心,他还可以在服务器的内存中找到包含BIND程序的内存区,然后用自己的代码改写其中的一部分,直到进入程序内存空间中的“堆栈”,再将返回地址写为他自己恶意程序的位置。
BIND在权限最高的管理员根账户下运行,这意味着如果有黑客做到这一步,这台计算机已经是他的囊中之物。
CERT在马克斯和基米婚礼的两周后发布了缺陷警报,附带一个简单的修复链接。但警报和两个无足轻重的漏洞放在了一起,同时CERT并没有标明漏洞的严重性。因此,很多人没意识到这漏洞意味着什么。
但马克斯完全明白。
BIND是Linux的标配,这意味着无数公司、教育和军事机构的网络服务器在黑客面前几乎毫不设防。
第一时间,马克斯将电话打给了联邦调查局的联系人毕森。他反复强调了漏洞的严重性,“即使一个孩子也可以使用工具入侵这些机构的网络服务器”。他还用一个月前十几个美国军事基地被入侵的事情举例——入侵原因正是因为Sun操作系统的漏洞。国防部宛如惊弓之鸟,一度认为萨达姆是罪魁祸首,但入侵者仅仅是一位年轻的以色列黑客,“只是玩玩而已”。
电话那头沉默了一段时间。马克斯听到毕森回复的声音有些沙哑。“我知道了,这是件很严重的问题。我们需要你提供一份关于此漏洞的详细报告,越快越好。
报告。又是报告。马克斯对这个结果不意外。报告递交上去,还会进行汇报,接下来是评估。做这些事情的时间,够那些黑客把军事机密用英文和西班牙文各抄一遍了。
为什么,为什么就不能用黑客的方式解决问题?堵住一个漏洞,何至于如此复杂?马克斯在心中怒吼。
“好的,报告我会尽快提交。“马克斯用平静的声音回答道。
挂掉电话,妻子的声音第六次响起。牛排被重新加热,吃起来没有了条理清晰的口感。马克斯吃着吃着,突然放下了刀叉。
“这样不行。“
“怎么了?“基米以为丈夫对牛排不满意,”你如果明天再来吃,我打赌它的味道会更糟。“
但基米会错了意。她听到丈夫的语气突然兴奋起来,像学生听到学校下午停课的通知一般。她听到丈夫描述了一堆自己听不懂的词汇,“用自己的方式发起BIND攻击”、“扫描到漏洞的时候把它堵住”、“像喷洒农药灭杀害虫一样”。
她明白这种情况下,反驳和争论都没有意义。她只是说,“别被逮住了“。
马克斯一度被这句话冷却,仿佛那个已经拥有优渥家庭,从事专门职业的已婚男人重新支配了躯体。“现在的一切来之不易,怎么能冒此风险?“
但那个冲动的孩子,那个会被每一次恶作剧的召唤所诱惑的孩子,那个会无限憧憬入侵的满足感和征服欲的孩子,那个在虚拟国度内体会过无上自由的孩子,只用一句话就击溃了已婚男人。
“你难道不想再体验一下那种感觉吗?“
马克斯坐在了电脑前。一行行代码从屏幕上闪过,马克斯体会到从尾椎到天灵盖的战栗。
这是马克斯的瘾,对他而言,这个瘾太难戒了。
马克斯对自己的脚本很满意。
他的程序会通过BIND漏洞进入那些未升级的电脑,然后将被黑的电脑升级到最新的BIND,修补安全漏洞。但封掉自己来路的同时,他会永久为自己开启一条幽径——他在此后仍能自由出入系统。
黑与白在此刻混淆,马克斯只身躲在阴影里。
每次攻击只需要几分钟。每攻下一城,电脑都会出现一个弹窗。没多久,电脑竟因弹窗过多而崩溃。
等他修好电脑,布鲁克斯、麦克斯韦等等数十个空军基地已经悉数被马克斯拿下。在一众战利品中,甚至包括一台总统内阁秘书办公室的电脑。
像是在玩一场沙盘游戏,马克斯完成了自己的征服。他对网络空间的控制随着时间流逝日益壮大,甚至轻松获取了位于艾迪软件公司中《雷神之锤3》的游戏源代码。
他兴冲冲地向基米展示自己的战利品,但基米显得忧心忡忡。“你已经挂掉联邦调查局的电话好几次了。”基米说,“这份代码你能放回去吗?”
妻子提醒了马克斯。事实上,已经有人意识到了他的攻击。劳伦斯·伯克利国家实验室的研究人员特意针对攻击,向CERT提交了一份详细的报告。
马克斯截获了这份报告。实验室的服务器在很久前便已沦陷,马克斯使用实验室根账户向研究人员发送了匿名消息:
“也许你不欣赏我的所作所为,但这是为了大多数人的利益。不过说起来,这一手还不错吧?通过一个冲击波,我掌控了几千台电脑。”
“我承认,被你识破,我很不爽。不如我们都就此打住吧。”
马克斯遵守了自己的承诺。他马上投身于另一项更加光明的项目:WhiteHats.com,这个网站可以让互联网上的任何人对其网络进行自动实时扫描,以评估是否会受到BIND攻击。
马克斯终于接听了毕森的电话。他提交了报告,并将自己的忙碌完全归咎于这个新的合法项目。事实上,这个项目在网络安全领域声名鹊起。白帽子们都喜欢马克斯写的一篇关于ADM蠕虫剖析的论文。清晰的条理、敏锐的观察和出色的判断,让一众安全领域工作者重新认识了马克斯·维京。
看上去,一切风平浪静。马克斯继续为联邦调查局提供着报告。在他提交了最后一份报告后,毕森的电话打过来,声称要核查马克斯的调查结果。“去你家里怎么样?”
但马克斯没想到,毕森并非单独造访。随他一起的还有年轻的FBI调查员,外加一纸搜查令。
“我们对你的攻击行动了如指掌。”毕森坐下的第一句话,便奠定了整场谈话的基调。
交流的氛围出奇友好,调查员饶有兴致地询问着马克斯入侵的细节。有了听众,马克斯也开始滔滔不绝。他将攻击过程描述得迂回曲折,如同一位奇幻故事中的吟游诗人。
马克斯带有一丝侥幸。他确信自己在做对互联网有益的事情,只不过带上了一点私心。
但调查员很快粉碎了他的侥幸。他们带走了马克斯的所有作案设备,弄得家中一片狼藉。他们向马克斯交了底:如果马克斯希望得到宽大处理,必须为他们工作。光写报告可不够。
调查员和毕森很快离去。新婚夫妇四目相对。马克斯吞吞吐吐地准备道歉,但基米生气地抢过话头:
“我提醒过你,别被逮着了!”
广场赌场酒店花哨的展示大厅里,铺着亚麻布的牌桌一字排开。时不时有人抽风般大呼小叫,也有人不住捶胸顿足。一众纸醉金迷间,有一群穿着T恤和短裤的年轻人注视着一排计算机工作站,显得和周围环境格格不入。
马克斯站在后面,静静盯着他们。
在“罪恶之城”拉斯维加斯,这个下定决心挽救自己生活和事业的男人,急于将功赎罪。因此,他丝毫没有被老虎机、桌球和演出分心。他理所当然地发现,面前的这群黑客也没人分心。毕竟,在他们看来,使用虚拟的军火库进行夺旗比赛,要比钢管舞表演有趣得多。
马克斯的任务是,在这场DefCon黑客大会上,结交这些黑客,搞清楚他们的真实姓名,并引诱他们交换公共PGP密钥。
马克斯承认,这里的一切都让人兴奋。那些老式计算机设备,古怪的电子产品和《黑客季刊:2600》,无一不展现出前黑客时代特有的不羁和浪漫。马克斯甚至嗅出了电路板蚀刻的灼烫,像是农业学家嗅到了肥沃土壤的腥气。
光是扫一眼,马克斯就知道,这些人是他的同类。
各种聚会和讨论纷至沓来。他们录制并演奏音乐,在报告会上出微软的洋相。在彼此的故事分享中,有黑客讲了一位信用卡数据库入侵黑客的故事。被捕后,他向联邦调查局坦白了一切,并且配合了他们的所有工作。尽管如此,他仍然被联邦调查局判以重罪。
“即使你准备与警方合作,也要先咨询律师,在达成协议之后再合作。“
马克斯一边咀嚼着这句话,一边感受着身边黑客的真诚和信任。他忽然意识到,自己不可能下得去手。
他回了家,两手空空。
联邦调查局大为恼火。毕森的上司气得七窍生烟。在毕森的劝说下,马克斯再次接到了一个任务。这个任务是他最后的机会,如果他仍不合作,他将失去现有的一切。
这个任务是,马克斯的现老板私下进行着一些黑客活动,他需要拿到证据。特工递给他一张薄薄的纸,告诉他这是窃听器。
“任务很简单,希望你别让我们失望。”
回家的路上,马克斯不发一言。他回想起自己曾经因为坐牢的污点记录,导致没有公司愿意接纳他,是现在的老板伸出了援手。他回想起老板对他工作的认可和肯定,屡屡称他“前途无量”。他回想起老板在黑客活动时的热情和专注,他们是同行,不,是同类。
如今,联邦调查局要马克斯扮演终极背叛角色,成为“数码耶稣”在现实中的犹大。
第二天,马克斯和老板在餐厅碰头,那张被伪装成窃听器的纸已经写满了字,开头第一句是:联邦调查局盯上你了,我需要向你介绍一下目前的情况……
回到家后,马克斯接到了自己律师的电话。律师转达了联邦调查局特工的原话:联邦调查局对与他的合作已经不再感兴趣,他可以掰着手指算日子,等着再次入狱了。
(未完待续)
参考资料,图片来源:
1.维基百科,马克斯·维京词条;
2.掘金黑客,彼得·波尔森。
– END –