凌晨零点,全国超过两百家企业同时停摆。
这不是演习。是战争。
指挥部的大屏幕上,代表受影响企业的红点密密麻麻,像一片血色的星图。沈主任站在屏幕前,声音很沉。“48小时。我们只有48小时。48小时内,必须完成所有系统的安全加固和数据清洗。48小时后,国家将统一恢复服务。”
会议室里安静得能听见呼吸声。
秦豫柔看着那个屏幕,手心出汗。向风站在她旁边,握住她的手。她看了他一眼,他什么都没说,但她的手不抖了。
向风带着团队,在指挥部的一间小会议室里开始了攻坚战。
十二个人,十二台电脑,桌上堆满了外卖盒和咖啡杯。向风站在白板前,画了一张图。是模型参数的拓扑结构。
“污染的数据不是随机分布的,是有规律的。攻击者通过后门注入了恶意样本,但这些样本只影响特定的参数子集。”他指着图上几个关键节点,“如果我们能识别出这些被污染的参数,就可以定向清洗,不需要重建整个模型。”
技术总监举手。“怎么识别?”
向风调出一段代码。“看这个。正常的模型参数,分布是连续的。被污染的参数,会有明显的离群值。我们可以通过统计学方法,自动标记出这些异常点。”
他顿了顿。“但标记只是第一步。标记之后,需要人工复核。因为有些离群值可能是正常的边缘数据,不是污染。”
有人问:“工作量多大?”
向风估算了一下。“三万个参数。一个人一天能复核一千个。需要三十个人。”
技术总监说:“我们只有十二个。”
向风看着秦豫柔的方向。她正在隔壁会议室里忙。他收回目光。“借。从其他公司借。”
秦豫柔在隔壁会议室里,面对着另一堆代码。
摇不滚App的数据查询接口被攻击者植入了SqL注入漏洞。攻击者可以通过这个漏洞,窃取用户的个人信息。秦豫柔需要重写整个接口,修复漏洞,同时保证性能不下降。
她盯着屏幕,一行一行写代码。
李忠在旁边看着她。“秦总,您要不要休息一下?”
“不用。”她头也不抬,“帮我倒杯咖啡。”
李忠去倒咖啡。回来的时候,看见她已经写完了一个模块。他愣了一下。“这么快?”
“这个模块比较简单。”她接过咖啡,喝了一口,“难的还在后面。”
凌晨三点,贺嘉打来电话。
秦豫柔看了一眼来电显示,接起来。“怎么还没睡?”
“妈,你也没睡。”贺嘉的声音有点急,“我看到新闻了。全国两百多家企业停摆,摇不滚也在里面。”
“嗯。”
“同学们都在讨论。有人说这次攻击是境外势力搞的,有人说要打仗了。”贺嘉顿了顿,“我跟他们说,我妈在指挥部,他们都不信。”
秦豫柔笑了。“那你怎么说的?”
“我说,我妈是英雄。”贺嘉的声音很认真,“你等着,我会证明给你看。”
秦豫柔的眼眶红了。“好。妈等着。”
挂了电话,她看着手机。向风走过来。
“贺嘉?”
“嗯。他说我是英雄。”
向风笑了。“他说得对。”
她瞪他。“你少来。”
他握住她的手。“我说真的。”
柴鹏和胡可可是凌晨四点到的。
柴鹏开着一辆面包车,后座塞满了保温箱。胡可可坐在副驾,挺着五个月的肚子,手里拿着一份清单。到了指挥部楼下,柴鹏下车,打开后备箱。
胡可可也跟着下车。柴鹏回头看她。“你上去坐着,我搬就行。”
“你一个人搬得完?”
“搬得完。”
“那你搬。我上去泡茶。”
胡可可走进大楼,电梯上了十二楼。门一开,她看见满屋子的人,满桌子的电脑,满地的外卖盒。她皱了皱眉,走到蔡董面前。
“蔡董,厨房在哪?”
蔡董指了指走廊尽头。“那边。需要帮忙吗?”
“不用。您坐着。”
胡可可走进厨房,打开保温箱。里面是热乎乎的粥、小菜、包子。她一份一份分好,装进托盘,端出去。
“来,吃点东西。别饿着。”
有人抬头,愣了一下。“胡姐?你怎么来了?”
“来送饭。”胡可可把粥递过去,“趁热吃。”
那人接过来,喝了一口。“真好喝。”
胡可可笑了。“废话。我店里熬的。”
柴鹏搬完东西,也上来了。他看见胡可可挺着肚子端盘子,脸都白了。
“你坐着!我来!”
“你别大惊小怪的。”
“你肚子里有孩子!”
“孩子好着呢。”
柴鹏不敢跟她争,只好跟在后面,她端一盘,他端一盘。两个人像在唱双簧。
蔡董在旁边看着,笑了。
夏无极走过来,站在她旁边。“你看他们,像不像年轻时候的我们?”
蔡董看了他一眼。“我们年轻时候,没这么腻歪。”
夏无极笑了。“那是你不让我腻歪。”
蔡董没说话。夏无极说:“我去泡茶。你坐着。”
夏无极泡茶的手艺,是从蔡董那学的。
他烧水,温杯,投茶,注水。动作不快不慢,稳稳当当。泡好了,他端着茶盘,一杯一杯送到每个人桌前。有人接过来,说谢谢。他点点头,继续送。
送到秦豫柔面前时,她正在敲代码,没抬头。
“茶。”夏无极说。
她愣了一下,抬头。“夏叔?你怎么在?”
“帮忙。”夏无极把茶放在她桌上,“趁热喝。”
秦豫柔端起来,喝了一口。是铁观音,她喜欢的味道。
“谢谢夏叔。”
夏无极摆摆手,继续送茶。
向风的团队借到了人。
秦豫柔从自己的技术团队里抽了十个人过来帮忙。其他企业也支援了十几个人。三十个人挤在小会议室里,一人一台电脑,对着三万个参数,一个一个复核。
向风站在白板前,讲解标记规则。
“正常的参数,分布是连续的。被污染的,会有离群值。你们要做的就是找出这些离群值,判断它是不是污染。是,就标记;不是,就跳过。”
有人举手。“判断依据是什么?”
向风调出一组对比图。“左边是正常参数,右边是被污染的。你们看,被污染的会在特定范围内出现异常波动。这个波动模式是一致的。”
他顿了顿。
“一开始会慢。但熟悉了,就会快。”
天亮了。
窗外的bJ,灰蒙蒙的。秦豫柔揉了揉眼睛,继续写代码。她的手腕有点酸,肩膀有点僵,但她没停。李忠在旁边看着她,想说什么,又咽回去了。
向风的团队复核完了第一批参数。五千个,耗时四个小时。技术总监看着结果,松了口气。
“正确率百分之九十九。”
向风点点头。“继续。”
胡可可和柴鹏又送了一顿饭。
这次是午饭。红烧排骨、清炒时蔬、西红柿鸡蛋汤。有人看着那碗汤,眼眶红了。
“胡姐,你太贴心了。”
胡可可笑了。“别废话。趁热吃。”
柴鹏站在旁边,看着胡可可。她忙了一上午,脸有点红,额头上渗着汗。他伸手,帮她擦了一下。
“你休息会儿。”
胡可可瞪他。“你别动手动脚的。”
柴鹏笑了。“你是我老婆,我动手动脚怎么了?”
胡可可脸红了。“滚。”
蔡董和夏无极也没闲着。
蔡董负责协调各企业的资源,谁家缺人,谁家缺设备,谁家需要技术支持,她一个电话一个电话打。夏无极负责跑腿,送文件、取资料、接人送人。他的腿脚不太好,但走得不慢。
中午,夏无极从外面回来,手里拎着一袋水果。
“蔡董,给你。”
蔡董接过来。“哪来的?”
“楼下买的。你嗓子哑了,多吃点梨。”
蔡董看着他,没说话。夏无极被她看得不自在。
“怎么了?”
“没怎么。”蔡董低下头,拿出一个梨,咬了一口。“甜。”
夏无极笑了。“甜就好。”
下午三点,向风的团队完成了第二批参数的复核。
一万个,耗时五个小时。速度在提升,正确率保持百分之九十九。技术总监看着进度条,松了口气。
“凌总,照这个速度,明天早上能完成。”
向风点头。“让大家轮班休息。别累垮了。”
秦豫柔的代码也进入了最后阶段。
她写完最后一个模块,开始测试。第一次,报错。她找到错误,修改。第二次,还是报错。她再找,再改。第三次,通过了。
她靠在椅背上,闭上眼睛。
李忠走过来。“秦总,好了?”
“好了。”她睁开眼,“部署到测试环境,跑一遍全量数据。”
李忠点头。“明白。”
晚上八点,向风的团队完成了全部参数的复核。
三万个,耗时十八个小时。正确率百分之九十九点五。技术总监把结果递给向风,向风看着那串数字,沉默了一会儿。
“辛苦了。”他说,“大家休息。”
有人趴在桌上睡着了。有人靠在椅背上闭眼。有人还在盯着屏幕,不肯走。
向风没催。他知道,他们和自己一样,睡不着。
秦豫柔的代码在测试环境跑通了。
全量数据,没有报错。性能测试,比原来提升了百分之十。李忠看着报告,笑了。
“秦总,成了。”
秦豫柔点点头。“通知沈主任。摇不滚App可以恢复服务了。”
“明天?”
“不。现在。”
晚上十点,指挥部宣布:第一批企业系统安全加固完成,可以恢复服务。摇不滚App和向风科技的AI手办,在列。
秦豫柔站在大屏幕前,看着那个红点变成绿色。向风站在她旁边。
“我们赢了。”他说。
她看着他。“还没。但快了。”
他笑了。“嗯。”
? ?后来,秦豫柔问他。“你当时累不累?”
?
向风想了想。“累。但不敢停。”
?
她看着他。“为什么?”
?
“因为你在旁边。”他笑了,“你都没停,我怎么敢停。”
?
窗外的风,还是那样吹着。有些人,一个人扛。有些人,一起扛。他们是后者。