凌晨三点,县城的电网检修,停电了。
整条街瞬间陷入黑暗。路灯灭了,招牌的霓虹灯灭了,窗户里的光一盏接一盏熄灭。只有远处国道上的车灯还在移动,像黑暗中游弋的光点。
林浩坐在电脑前,屏幕暗下去的瞬间,他保存了文档。然后靠在椅背上,在黑暗里听著。
整栋楼很安静。父母房间传来翻身的声音,父亲嘟囔了一句什么,又睡了。窗外有蝉鸣,在停电后的寂静里格外清晰。
他等了两分钟,电没来。看来是区域性停电,一时半会儿不会恢復。
他起身,摸黑走到窗边。外面一片漆黑,只有月亮的光,淡淡地照在街道上。几个窗口亮起了烛光,摇曳的,微弱的光。
他想起了什么,走到抽屉前,摸出那台黑色手机。按亮屏幕,电量:0.1%。红色警告標誌闪烁得越来越急促。
“小艺。”他低声说。
屏幕亮起,但很暗,像隨时会熄灭。
“我在。警告:电量即將耗尽。请立即充电。”
“查询:王磊,id『楚飞』,当前位置和状態。”
“正在查询离线资料库……最后记录:2002年7月3日,王磊在深圳罗湖区『极点网吧』登录。当前状態:根据歷史数据推测,他將於7月5日凌晨被当地国安部门带走,原因是涉嫌入侵银行系统。但您的介入可能已改变时间线。”
林浩的心臟一紧。今天就是7月5日。
“能查到实时位置吗?”
“需要连接网络。但当前电量无法支持。建议:如果他在线,可通过qq定位。”
林浩抓起书包,衝出房间。父母房间的门关著,他轻手轻脚地开门、下楼。自行车在楼道里,他推出来,骑上去。
街上很黑,只有月光。他骑得很快,链条哗啦哗啦响。风吹在脸上,带著夏夜的闷热。
科技街。网吧因为停电,大部分都关门了。只有“蓝海”还亮著——门口掛著一盏应急灯,黄色的光。玻璃门里也有光,是蜡烛和几台笔记本电脑屏幕的光。老板自备了发电机。
林浩推门进去。收银台那里,黄毛正在摆弄一台小型发电机,柴油味很重。大厅里只有五六个人,都挤在有插座的位置,用笔记本电脑。屏幕的光映在脸上,明明暗暗。
“上网?”黄毛头也不抬。
“找人。”林浩说。
他扫视大厅。角落里,一个胖子。很胖,估计有两百斤,坐在那种网吧椅上,椅子被压得变形。穿一件黑色的t恤,上面印著“i love linux”的白色字,但字已经洗得发白了。头髮油腻,一缕一缕贴在额头上。戴著一副黑框眼镜,镜片很厚。
他面前摆著两台笔记本电脑,一台是ibm thinkpad,黑色,厚实;一台是东芝的,银色,薄一些。两台都连著网线——网吧的交换机接了发电机,还能上网。
胖子正在快速敲击键盘。手指很粗,但动作极快,几乎看不清。屏幕上是黑色的终端窗口,绿色的字符滚动。他在跑什么脚本。
林浩走过去,站在他身后。胖子没察觉,全神贯注。屏幕上的代码在滚,是某种网络扫描脚本,在检测埠和服务。
“楚飞?”林浩说。
胖子的手停住了。他慢慢转过身,抬起头。镜片后的眼睛很小,但很锐利。他打量了林浩几秒。
“horizon?”
“是我。”
胖子——王磊,点了点头,转回去继续敲键盘:“等一下,马上好。”
林浩拉过旁边一张椅子坐下。他看著王磊操作。那双手在键盘上飞舞,像弹钢琴,但更快,更有力。他在同时操作两台电脑,左边那台在分析日誌,右边那台在跑渗透测试工具。
“你在干什么?”林浩问。
“银行系统有个漏洞,我得在他们修復前提交报告。”王磊说,声音很低,很沉,“不然明天就来不及了。”
“什么漏洞?”
“转帐接口的验证绕过。不用密码,改个参数就能转走钱。”王磊敲了几下,调出一个页面,那是某银行的网上银行界面,2002年的版本,很简陋,“你看,这里,session_id是可预测的。我写了脚本,能撞出来。”
“你试了?”
“没,只读模式。我不偷钱。”王磊说,“但得证明漏洞存在,不然他们不信。”
“你打算怎么提交?”
“匿名邮件,给他们的安全部门。附上漏洞详情和修復建议。”
“他们会信吗?”
“不知道。但得试试。”王磊停下,擦了擦额头的汗。网吧里很闷,发电机的声音轰轰响,柴油味混著汗味。“你怎么找到我的?”
“你说过你在深圳。”
“嗯,罗湖。但这两天感觉不对,有人盯我。我换了地方,来这个小县城避避风头。”王磊看向林浩,“你说你是horizon,怎么证明?”
林浩从书包里拿出笔记本,翻到某一页。上面是他手绘的网吧更新系统架构图,还有核心算法的偽代码。
王磊接过,看了几眼,眼睛亮了。
“这是你设计的?”
“嗯。”
“这个增量更新算法……有点意思。用rsync的思路,但加了压缩和校验。传输效率能提三成。”王磊指著图上的一个模块,“但这里,这个並发控制,有问题。如果同时多个客户端下载,服务端压力会很大。得加队列,加限流。”
“对,这是我找你来的原因。”林浩说,“我需要一个懂网络、懂系统、懂性能优化的人。”
王磊把笔记本合上,递迴来。
“待遇呢?”
“没有固定工资,项目分成。你是核心,至少5%。如果成功,一个月几千到几万都有可能。如果失败,一分没有。”
“和跟阿坤说的一样?”
“嗯,公平。”
王磊沉默了一会儿,看著屏幕。绿色的字符还在滚动,扫描快结束了。
“我考虑考虑。”他说。
“你在被盯上,对吧?”林浩突然说。
王磊的手顿了一下。他没回头,但肩膀绷紧了。
“你怎么知道?”
“猜的。”林浩说,“你这样的技术,做这种事,迟早会被盯上。银行系统是重点保护对象,你进去转一圈,就算什么都没做,也会留下痕跡。”
王磊转过身,看著他。镜片后的眼睛眯起来。
“你到底是谁?”
“我说了,horizon。”
“不,你不是普通的程式设计师。”王磊说,“普通程式设计师不会懂这些。你说话的语气,看问题的角度,不像这个年纪的人。你多大?十八?十九?”
“十八。”
“不像。”王磊摇头,“我十八岁时还在背c语言语法,你已经在设计分布式系统了。”
林浩没回答。他看著王磊的眼睛,缓缓说:“如果你被带走,会怎么样?”
“不知道。可能批评教育,可能拘留,可能更严重。”王磊说,“我没做坏事,但法律不看动机,看行为。我入侵了系统,这就是事实。”
“那你为什么还要做?”
“因为漏洞就在那里。”王磊说,声音很平静,“像山上有个洞,会掉下去人。我看见了,我不能假装没看见。我得立个牌子,或者把洞填上。”
很朴素的想法。白帽黑客的初心。
“但如果立牌子的人被当成挖洞的人呢?”林浩问。
王磊沉默了。他低下头,看著自己的手。那双手很大,手背上有汗毛,指关节粗大。
“那我也得做。”他最终说。
林浩看著他,心里有些感慨。这就是2002年的中国黑客,野蛮生长,没有规范,没有平台,全凭一腔热血和技术理想。他们中的很多人会走偏,会进去,会消失。但也会有一些人,成为未来网络安全的中坚力量。
他要救下这个人。
“小艺。”他在心里默念。
口袋里,手机震动了一下,极其微弱。电量:0.0%。
“紧急状態。最后电量。请指示。”
“查询:如果王磊现在被带走,最可能的后果是什么?”
“根据2002年相关案例,类似行为通常处以15日拘留,罚款5000元,列入重点监控名单。但如果有证据表明『主观恶意』或『造成损失』,可能面临刑事责任。”
“如何避免?”
“建议:立即停止所有测试行为,清除日誌,关闭电脑。在执法人员到达前,表现出配合態度,並强调『白帽测试』和『漏洞报告』的意图。2002年对此类行为尚无明確法律界定,態度和证据是关键。”
林浩抬起头,正要说话,网吧的门被推开了。
进来了三个人。
两个穿便衣,一个穿警服。便衣的年纪三十多岁,表情严肃。警服的年轻些,手里拿著记录本。
黄毛老板立刻站起来:“警察同志,有什么事?”
“例行检查。”一个便衣说,亮了一下证件,“看看上网登记。”
“好好,登记本在这里。”黄毛忙不迭地拿出一个本子,是手写的,歪歪扭扭的字。
便衣翻看著,另一个便衣和警察扫视大厅。他们的目光扫过那几个用笔记本电脑的人,最后停在王磊身上。
王磊的背僵直了。他的手还放在键盘上,但停下了。
便衣走过来。脚步很轻,但很稳。他站在王磊身后,看著屏幕。
“在干什么?”
“写代码。”王磊说,声音有点干。
“什么代码?”
“一个小程序,测试网络性能的。”王磊努力让声音平稳。
便衣弯腰,看著屏幕。屏幕上是一个终端窗口,绿色的字符,看不懂是什么。
“能看懂吗?”便衣问旁边的警察。
警察摇头:“看不懂,像天书。”
便衣直起身,看向王磊:“身份证。”
王磊从钱包里拿出身份证递过去。便衣看了看,又看了看王磊的脸。
“王磊。深圳来的?”
“嗯,来旅游。”
“旅游?带著两台电脑,在网吧写代码?”
“我是程式设计师,走到哪写到哪。”
便衣没说话,拿起王磊的ibm笔记本,看了看。又拿起东芝的,看了看。然后他看向林浩:“你是?”
“我朋友,来找他聊天。”林浩说。
“聊天?”便衣看了看林浩的学生证,“县一中的?刚高考完?”
“嗯。”
便衣把身份证和学生证还给他们,但没走。他站在那儿,看著王磊的两台电脑。
“能打开看看吗?”
“可以。”王磊说,但声音有点紧。
便衣坐下,操作ibm笔记本。他点开“我的电脑”,瀏览文件夹。里面很乱,各种工具、脚本、日誌文件。他点开一个文件夹,名字是“bank_test”。
王磊的脸色变了。
便衣点开文件夹,里面有几个文件:bank_vuln_report.txt、exploit.py、log_analysis.txt。他点开报告文件,看了几行,抬起头。
“这是什么?”
“漏洞报告。”王磊说,“我在测试银行系统的安全性,准备提交给他们。”
“谁让你测试的?”
“没人。我自己测试的。”
“有授权吗?”
“没……没有。”
便衣的表情严肃起来。他合上笔记本,看向王磊:“你涉嫌非法入侵计算机信息系统,请跟我们走一趟,协助调查。”
王磊的脸白了。他张了张嘴,想说什么,但没说出来。
警察上前一步,准备带人。
“等一下。”林浩突然开口。
便衣看向他:“同学,有什么事?”
“警察同志,我能说两句吗?”林浩站起来,语气很平静。
“你说。”
“王磊是我请来的技术顾问。我们在做一个网络安全项目,这个测试是项目的一部分。”林浩说,“目的是为了研究国內银行系统的安全现状,撰写研究报告,提供给相关部门参考。”
便衣皱眉:“什么项目?谁批准的?”
“是我个人的研究项目。我是今年的高考生,报考了计算机专业,想提前做一些研究。”林浩说,从书包里拿出那个笔记本,翻到某一页,“这是我的研究计划,包括测试方法、伦理规范、报告流程。王磊是我聘请的技术指导,所有测试都在可控范围內,没有进行任何破坏性操作,没有获取任何敏感数据,没有造成任何损失。”
他递过去。便衣接过,翻看。那一页確实是林浩手写的研究计划,標题是“2002年中国金融系统网络安全现状调研”,下面有详细的研究目標、方法、伦理声明。写得有模有样,像那么回事。
这是林浩早就准备好的。从小艺那里知道王磊的事后,他就准备了这套说辞。没想到真用上了。
便衣看了几分钟,抬头:“你是高中生,做这种研究?”
“是的。我对网络安全感兴趣,將来想从事这方面的工作。所以想提前了解行业现状。”林浩说,语气很诚恳,“王磊老师是圈內有名的白帽黑客,技术很好,人品也可靠。我特意请他指导我。”
“白帽黑客?”
“就是做好事的黑客。发现漏洞,报告漏洞,帮助修復,而不是利用漏洞做坏事。”林浩解释,“在国外,这叫『道德黑客』,是受尊敬的职业。国內刚刚起步,但很需要这样的人才。”
便衣沉默了一会儿,看向王磊:“他说的是真的?”
王磊愣了一下,隨即反应过来,用力点头:“真的。我就是来指导他做研究的。那些测试,都是在他的研究框架內进行的,有记录,有边界,绝对合法合规。”
“你们有证据证明吗?”
“有。”林浩说,“所有测试都有完整日誌,可以查看。我们没进生產系统,只用了测试环境。没碰真实数据,没做任何转帐操作。报告也只写了漏洞描述和修復建议,没留攻击代码。”
便衣和警察对视了一眼。他们走到一边,低声商量。
王磊看著林浩,眼神复杂。有感激,有惊讶,也有不解。
几分钟后,便衣走回来。
“这样吧,笔记本我们先带回去检查。如果真如你们所说,只是研究性质,没有恶意行为,那批评教育一下就算了。但如果发现有违法事实,还是要追究。”便衣说,“王磊,你暂时不能离开县城,隨时配合调查。这位同学,你也一样。”
“好的,我们一定配合。”林浩说。
便衣和警察拿著两台笔记本走了。门关上,网吧里又恢復了安静。其他几个上网的人偷偷看著这边,窃窃私语。
黄毛老板走过来,脸色难看:“你们搞什么?警察都来了,影响我做生意!”
“对不起,老板。”林浩说,“今天所有人的上网费我出,算赔礼。”
他拿出五十块钱,放在收银台。黄毛的脸色缓和了些,收起钱,没再说什么。
王磊坐在椅子上,像虚脱了一样。他擦了擦额头的汗,手在抖。
“谢谢。”他低声说。
“不用。”林浩说,“收拾东西,换个地方。”
“去哪?”
“我那儿。”
他们离开了网吧。天快亮了,东边的天空泛起鱼肚白。街上有了早起的人,扫地的,晨练的,买早点的。
林浩推著自行车,王磊背著包——包轻了很多,笔记本被拿走了。两人沉默地走著。
走到林浩家楼下,王磊停下。
“你爸妈……”
“没事,他们起得早,但不会多问。”林浩说,“上楼吧。”
他们上了三楼。林浩开门,父母果然已经起来了。母亲在厨房做早饭,父亲在阳台浇花。
“爸,妈,这是我朋友王磊,做技术的,来县里出差,住几天。”林浩说。
父母有些惊讶,但没多问。母亲说:“那快进来,一起吃早饭。”
“谢谢阿姨。”王磊说,声音有点不自然。
他们进了林浩的房间。房间很小,只有一张床,一张桌子,一把椅子。王磊把包放在地上,坐在地板上——他太胖,椅子坐不下。
“为什么帮我?”他问。
“我说了,我需要你。”林浩坐在床上,“你做的那道题,工程思路很好。网吧更新系统需要这样的思维。”
“就因为这个?”
“还因为,你是个人才。”林浩看著他,“中国网际网路刚起步,需要你这样懂技术、有原则的人。如果你进去了,是损失。”
王磊沉默了很久。他低著头,看著自己的手。
“我小时候,家里穷。”他突然说,“我爸是工人,我妈下岗。我成绩不好,考不上好大学,就去读技校,学计算机。老师说我笨,学不会。我不服,就自己学。图书馆的书,我能看的都看了。网吧的电脑,我能摸的都摸了。”
“后来呢?”
“后来我进了个网络公司,做运维。一个月八百块。我发现公司的系统到处都是漏洞,跟老板说,老板说別多事。我偷偷修了,被发现了,老板说我擅自修改系统,开除了我。”
王磊笑了笑,很苦的笑:“我不懂,我做好事,为什么会被开除。后来明白了,在有些人眼里,稳定比安全重要。漏洞在那里,只要不炸,就没人管。你去修,反而可能修出问题。”
“所以你单干了?”
“嗯。接私活,做渗透测试,写安全报告。有些公司给钱,大部分不给,说我是骗子。我不在乎,给不给钱我都做。但我得吃饭,得交房租。最穷的时候,三天吃一顿泡麵。”
他抬起头,看著林浩:“你说我做的是好事,是受尊敬的职业。但在中国,没人在乎。警察不在乎,公司不在乎,普通人更不在乎。他们只在乎,你有没有偷钱,有没有犯法。”
“会在乎的。”林浩说,“再过几年,网络安全会成为国家战略。白帽黑客会有平台,有认可,有前途。但在这之前,得有人先做,先趟路。”
“你怎么知道?”
“因为这是必然的。”林浩说,“网际网路越发展,安全越重要。银行、政府、企业,都会需要安全。你这样的人,会成为稀缺资源。”
王磊看著他,眼神复杂。
“你真的只有十八岁?”
“真的。”
“不像。”王磊摇头,“你说话像个四十岁的老江湖,看问题像个战略家。你身上有种……我说不清的东西。像见过大世面,经过大风浪。”
林浩没回答。他起身,从抽屉里拿出那台手机。电量:0.0%。屏幕是黑的,按不亮了。
“这是什么?”王磊问。
“一个设备。”林浩说,“没电了。”
“造型很特別,没见过这种牌子。”
“嗯,定製的。”林浩把手机放回去,“王磊,加入horizon吧。我们一起,做点真正有意义的事。不只是网吧更新系统,是更大的事。网络安全,系统架构,基础软体,作业系统……未来需要什么,我们就做什么。”
“我们能做成吗?”
“不知道。但如果我们不做,谁来做?”
王磊又沉默了。他看著窗外,天已经大亮了。阳光照进来,落在水泥地上,明亮的光斑。
“好。”他终於说,“我加入。”
“欢迎。”林浩伸出手。
王磊握住。他的手很大,很厚,很有力。
“分成比例,你说了算。”王磊说,“但有个条件。”
“什么条件?”
“如果以后我们做大了,有钱了,我想成立一个安全基金。帮助那些像我一样,想做白帽但没路走的人。”
“可以。”林浩说,“我答应你。”
厨房传来母亲的声音:“浩子,小磊,吃饭了!”
两人走出房间。餐桌上摆著粥、馒头、咸菜、煮鸡蛋。很简单,但热气腾腾。
“快坐,趁热吃。”母亲说。
“谢谢阿姨。”王磊说,坐下,拿起一个馒头,咬了一大口。他吃得很香,像很久没好好吃过饭了。
林浩看著他,心里有些酸楚。这个两百斤的胖子,这个技术天才,这个中国第一代白帽黑客,此刻坐在他家的餐桌前,吃著最简单的早饭,眼里有光。
他会让他吃饱,让他有尊严地做他想做的事。
这是承诺。
早饭很安静。父母没多问,只是不时给王磊夹菜。王磊吃得很认真,一口一口,像在品尝什么珍饈美味。
吃完饭,林浩带王磊去了阿坤那里。三人见了面,在阿坤的小屋里,开了第一个正式的会。
简陋,但认真。林浩讲架构,阿坤讲算法,王磊讲工程实现。爭论,碰撞,妥协,达成一致。
太阳升高了,照进小屋。灰尘在光柱里飞舞。
三个年轻人,在2002年的夏天,在一个小县城的出租屋里,开始做一件没人理解、没人看好的事。
但他们会做下去。
因为他们相信,未来在那里。
他们要做的,就是把未来,带到现在。