十月二十六日,周日,燕京,阴。
林燃是被手机震醒的。凌晨两点十七分,曹阳的来电。他接起来的时候对面的声音比平时紧了一度:“未名湖的后台被人挂了木马,数据接口有异常访问。技术组已经紧急切断了外部调用,但需要你确认一下授权流程。”
他坐起来的时候金琦灵也醒了,侧过身看着他。他没来得及解释,披上外套走进书房打开了电脑。屏幕上曹阳发来的日志截图显示,从凌晨一点四十分开始,有一组来自境外的Ip在反复尝试调用用户数据接口,尝试次数已经超过了正常阈值的三十倍。
“切断是对的。把受影响的节点隔离,明天上午之前把审计报告发我。”他挂了电话之后在书房里坐了一会儿。窗外的夜色很深,光秃秃的枝丫在路灯底下投出细密的影子。他重新看了一遍曹阳发来的日志,把异常流量的来源和路径在纸上画了一遍,确认了切断的范围和影响面。
他走回卧室的时候金琦灵还醒着,靠在床头看着他。
“出什么事了?”
“未名湖后台被攻击了。已经切断了,明天上午处理。”
她没有追问细节,只是点了点头,把被子往他那边推了推。
第二天上午,林燃坐在书房里跟曹阳开了两个小时的远程会议。技术组的审计报告显示,异常访问来自一个东南亚的Ip段,攻击方式是有针对性的接口爬取,目的很明确——试图批量获取用户数据。好在切断及时,没有造成实际泄露。曹阳在电话那头的声音比昨晚稳了一些:“安全组建议升级认证协议,把接口的权限校验再加密一层。但升级需要停服两天。”
“停。安全比什么都重要。把停服公告发出去,时间定在明天上午。”
他挂了电话之后给唐念发了一条消息,说明了情况。唐念的回信来得很快:“信息中心这边可以协调服务器资源做备份迁移。停服期间用户数据不会丢失。”他又给林芷发了一条,让她帮忙协调创业基地的技术支持。林芷回了两个字:“收到。”
那天下午他坐在书房里把安全升级的方案从头到尾理了一遍,在几个关键节点上做了标注。窗外的天色阴沉沉的,光秃秃的枝丫在风里摇晃着,投在窗玻璃上的影子忽长忽短。
傍晚的时候金琦灵从学校回来,进门之后没有像往常一样直接去厨房。她走到书房门口站住,看着他。
“处理完了?”
“方案定了。明天停服升级。”
她走进来在书桌对面的椅子上坐下来,双手搭在膝盖上,看着他。她的表情很平静,但目光里有一样东西在缓慢地沉淀着。
“林燃。”
“嗯。”
“你今天上午处理那个攻击的时候,有没有想过——如果数据真的泄露了,你会怎么办?”
他看着她。她没有等他回答,自己接了下去。
“你不会怎么办。你会把责任担下来,然后从头再修一遍。你从三月到现在做的所有事,都是这个模式。出了问题就修,修完了继续走。”她偏了一下头,“但你有没有想过,有些东西是修不回来的。”
他沉默了两秒。窗外的风把枝丫吹得撞在窗玻璃上,发出短促的轻响。
“我想过。”他说,“所以我要把安全升级做到最前面。不能再有第二次。”
她看了他几秒,然后站起来,绕过桌子走到他身边,伸手把他面前那叠已经翻得卷了边的方案纸整理好,放在桌角。她的手指在纸页边缘停了一拍,然后收回去。
“你明天停服的时候,在家处理就行。我晚上回来做饭。”
第二天上午,未名湖正式停服。曹阳那边的技术组开始按计划升级认证协议,唐念协调的服务器资源同步做备份迁移,林芷那边的人手也按时到位。林燃坐在书房里盯着进度表,每半个小时跟曹阳确认一次节点。到下午三点的时候,升级的第一阶段完成,没有出现异常。
傍晚金琦灵回来的时候,他正靠在椅背里看当天的审计报告。她换了鞋走到书房门口,没有进去,只是靠在门框上看着他。
“升级怎么样了?”
“第一阶段过了。明天走第二阶段。”
她点了点头,转身走向厨房。走到一半的时候她停下来,侧过头来看了他一眼。
“林燃。”
“嗯。”
“你今天做得好。”
那天晚上他坐在书房里把当天的处理记录整理完,然后翻开笔记本写下一行字:“十月二十七日。未名湖遭遇攻击,已切断并启动安全升级。第一阶段完成。金琦灵说‘你今天做得好’。窗外的枝丫在风里撞着窗玻璃,但屋子里的灯还亮着。”
他合上笔记本走到客厅。金琦灵正坐在沙发上看书,他走过去在她旁边坐下来。窗外的风把光秃秃的枝丫吹得撞在窗玻璃上,发出短促的轻响。她翻了一页书,翻页的声响在安静的客厅里短促而清晰。他坐在那里,听着那道声音和窗外枝丫的撞击声交替着落下来,在暮色已经沉底的屋子里,一层一层地铺开。