你好,别惹我,我一个 bug 就能让你滚蛋。明星程序员非要上线一个新功能时。
我当着全部门的面,直接红牌罚下。不行,这个版本有致命漏洞。他气得脸都白了。
你凭什么说有漏洞?代码是我写的,我最清楚!老板都等着开庆功宴了!
可我就是不松口,死死摁住上线按钮。他直接冲进 CEO 办公室,声泪俱下地告状。
老板!她就是嫉妒我,故意打压新人!这个项目要是黄了,公司的损失她担得起吗?
她这是***,想毁掉我的职业生涯啊!眼看全公司的矛头都指向我。我冷笑一声,
将他的代码投到大屏上,并圈出其中一行。睁大你的眼睛看清楚,这个后门,你想留给谁?
01我的声音不大,却像一把冰锥,刺穿了会议室里浮躁的空气。大屏幕上,
那行被我用红色方框圈出的代码,像一道丑陋的疤痕,烙在每个程序员的瞳孔里。张浩的脸,
瞬间从涨红变成了惨白。你……你胡说!这是……这是我留的测试接口!
他的声音发着抖,眼神躲闪,不敢与我对视。测试接口?我轻笑一声,
手指在键盘上敲击了几下。屏幕上的代码旁边,立刻弹出了一连串的注释和分析。
一个需要连接到境外匿名服务器,并且拥有最高系统权限,
可以绕过所有防火墙和日志审计的测试接口?张浩,你当在座的都是傻子,
还是觉得我们公司的法务是摆设?我的话音刚落,技术部几个资深的工程师脸色就变了。
他们凑近屏幕,反复确认着那行代码的逻辑。天……这真的是个后门。这个IP地址,
我查了,在东欧的一个灰色地带,根本无法追踪。一旦上线,
等于把我们整个用户数据库的钥匙,交到了别人手上。议论声此起彼伏,像一把把小锤子,
敲在张浩脆弱的神经上。CEO的脸色已经不能用难看来形容了。他死死地盯着张浩,
眼神里是抑制不住的怒火和失望。张浩,你还有什么话说?张浩嘴唇哆嗦着,
汗水从额角滑落。老板,不是的,这是个误会……我只是……我只是想在上线后,
方便自己进行线上调试,绝对没有别的意思!他还在狡辩,试图把恶意的后门,
粉饰成一个无伤大雅的技术失误。我冷眼看着他拙劣的表演。线上调试?我切换了屏幕,
调出了这份代码的git提交记录。那你告诉我,为什么这个所谓的『调试接口』,
是在最终封版前三分钟,伪装成一个『性能优化』的补丁,偷偷提交上来的?
为什么整个代码审查流程,你都完美地绕了过去?你甚至,没有把这个版本,
提交给我做最后的安全审计。我每问一句,张浩的脸色就白一分。提交记录是铁证,
上面清晰地记录着他每一次的操作,时间、说明,一应俱全。他百口莫辩。CEO的拳头,
重重地砸在了会议桌上。保安!把张浩的工卡和电脑全部收走!
在事情调查清楚之前,暂停他的一切职务!张浩瘫倒在椅子上,面如死灰。他知道,
他的职业生涯,从我圈出那行代码的瞬间,就已经结束了。02保安冲了进来,
一左一右架住了失魂落魄的张浩。他像一滩烂泥,被拖出了会议室。闹剧收场,
会议室里却依旧死寂。所有人都还沉浸在刚才的震惊之中。
一个被大家捧上神坛的明星程序员,竟然会在公司的核心产品里,埋下如此恶毒的后门。
这简直是匪夷所思。CEO揉着发痛的眉心,疲惫地看向我。林未,这次……幸亏有你。
他的声音里带着一丝后怕。如果我今天没有坚持,如果我被唾沫星子淹没,选择了妥协。
那么现在,庆功的香槟已经打开,而公司的命脉,也已经被人握在了手里。后果不堪设想。
这是我的职责。我平静地回答。你是怎么发现的?CEO问出了所有人心中的疑问,
他隐藏得这么深。他不是隐藏得深,他是太自信了。我看着屏幕上那行代码。
他笃定我是个只懂流程,不懂技术的QA质量保证,笃定封版前的最后时刻,
没人会再去做代码级的审计。他更笃定,他『明星程序员』的光环,
可以压过我这个『只会找茬』的拦路石。我顿了顿,补充道。只可惜,我有个习惯。
所有最终上线的版本,我都会亲自,从头到尾,把代码再过一遍。这是我为自己,
也为公司上的最后一道保险。会议室里,几位和我打交道比较多的技术人员,
都露出了恍然大悟的神情。他们都曾抱怨过我这个多此一举的流程。现在看来,
这道保险,价值千金。CEO长长地舒了一口气,眼神里的欣赏毫不掩饰。从今天起,
这个流程,将作为公司的最高发布准则,永久执行。他环视众人,一字一句地宣布。
任何人都不得有异议。就在大家以为事情告一段落时,被保安架到门口的张浩,
突然像疯了一样回头。他挣脱了保安,猩红着双眼,用手指着会议室里的另一个人。
不是我!不是我一个人的主意!他嘶吼着,声音凄厉。是他!是他让我这么做的!
所有人的目光,都顺着他手指的方向,落在了角落里一个沉默的身影上。
技术部的元老级工程师,李谦。一个平日里话不多,老实巴交,与世无争的老好人。
李谦整个人都懵了,他扶了扶眼镜,满脸的不可置信。张浩,你……你胡说什么?
张浩却像是抓住了最后一根救命稻草。就是你!
你说这是公司给核心运维团队留的秘密通道,为了应付紧急故障!你说这是老板默许的!
是你骗我的!一瞬间,整个会议室的空气,再次凝固了。03李谦的脸涨得通红,
气得浑身发抖。我没有!我什么时候跟你说过这种话!他是一个典型的老实人,
不善言辞,被人当众泼上这样一盆脏水,急得连话都说不完整。你就有!
张浩彻底豁出去了,开始胡编乱造。上周二下午,茶水间,就我们两个人!
你亲口跟我说的!你还说这是公司的潜规则,是给核心员工的信任!他说得有鼻子有眼,
时间、地点、人物,要素齐全。一些不明真相的同事,看向李谦的眼神,开始变得有些微妙。
毕竟,一个是即将被开除的骗子,一个是公司的老实人。但万一呢?万一张浩说的是真的,
这背后其实是一个更深的阴谋?CEO的眉头又一次紧紧锁起。他看向李谦,
眼神中带着审视。李谦,他说的是真的吗?老板,我没有!李谦急得快要哭了,
我跟他就没在茶水间单独待过!他这是血口喷人!你有证据吗?张浩冷笑着反问,
我也有证据,证明我们当时就在一起!他拿出手机,点开一张照片。看!
这是茶水间的咖啡机,我当时拍下来问你要不要带一杯,上面有时间戳!
照片确实是茶水间的咖啡机,时间也对得上。这下,连我都感到了一丝棘手。张浩这手栽赃,
玩得太脏了。他很清楚,这种私下的对话,根本无法证实,也无法证伪。
但他只要成功地把水搅浑,把李谦也拖下水,就能为自己争取到喘息和周旋的时间。甚至,
可以把这件事,定性为公司内部的派系斗争。用心何其歹毒。就在李谦百口莫辩,
快要被这盆脏水淹没时。我开口了。张浩,你的表演很精彩。我走到他面前,
拿过他的手机。只可惜,漏洞太多。我将他的手机屏幕,投到大屏上。你说,
你拍这张照片,是为了问李工要不要喝咖啡,对吧?对!张浩梗着脖子。
那你告诉我,你的聊天记录里,为什么没有把这张照片发给李工的记录?
我……我后来当面问他了!是吗?我笑了笑,那你再解释一下,
为什么这张照片的EXIF信息里,GPS定位,显示的是在公司对面的那家商业银行里?
我话音刚落,全场皆惊。张浩的表情,瞬间凝固了。他大概从没想过,一张随手拍的照片,
竟然还记录了地理位置信息。我没给他反应的机会,继续说道。那个时间点,
李工正在和我开一个需求评审会,整个项目组的人都可以作证。而你,张浩,
我的目光变得锐利,你不在公司,你在银行。一个上班时间,偷偷跑到银行去的人,
现在却拿着一张在银行拍的照片,来污蔑一个正在开会的同事。张浩,你不觉得,
你的故事,编得太离谱了吗?04我的声音在会议室里回荡,每一个字都像一记重锤,
砸在张浩的谎言上。他的心理防线,彻底崩溃了。不……不是的……他语无伦次,
眼神涣散,整个人像是被抽走了骨头。CEO的耐心也到了极限。把他带走!立刻!马上!
这一次,保安没有再给他任何机会,直接将他拖了出去。一场闹剧,
终于以一种无可辩驳的方式,落下了帷幕。CEO看向我,眼神复杂。林未,
今天如果不是你……老板,我打断了他,现在不是说这些的时候,
我们还有更重要的事情要做。我指了指屏幕上的代码。张浩不是一个人。
这个后门的复杂程度和隐蔽性,不像是一个人能完成的。
背后一定有更高明的黑客在指导他。而且,他选择在这个版本上线,一定有他的目的。
我的话让刚刚缓和的气氛,再度紧张起来。CEO立刻明白了我的意思。
你是说……竞争对手?***不离十。我迅速在键盘上操作起来。
我们必须立刻检查公司所有核心代码库,排查是否还有类似的安全隐患。同时,
要对张浩所有的内部通讯记录,进行筛查。还有他刚才提到的那家银行,
他上班时间去那里做什么,也必须查清楚!我的大脑在飞速运转,一条条指令清晰地发出。
在巨大的危机面前,我没有时间去享受胜利的喜悦,而是本能地进入了战斗状态。
CEO完全采纳了我的建议,立刻安排信息安全部、人事部、法务部,成立联合调查组。
整个公司,像一台精密的战争机器,开始高速运转。会议室的人渐渐散去,
各自投入到紧张的工作中。最后,只剩下我和CEO。他看着我,
忽然提起了一件毫不相干的旧事。林未,你还记得三年前的『蓝鲸项目』吗?我的心,
猛地一沉。蓝鲸项目。那是我职业生涯中,唯一的一个污点,也是我心中一根拔不掉的刺。
那是我刚升任测试主管后,负责的第一个重大项目。项目上线当晚,
发生了灾难性的数据库雪崩,核心数据被大量污染和破坏。公司损失惨重,股价暴跌。
虽然事后查明,事故原因极其复杂,有第三方组件的未知漏洞,
也有服务器硬件的偶发性故障。但作为项目质量的最终负责人,我难辞其咎。那段时间,
我成了全公司的罪人,背负了所有的指责和非议。如果不是CEO力排众议保下了我,
我可能早就卷铺盖走人了。我记得。我的声音有些干涩。那次事故,对你打击很大。
CEO的语气,带着一丝愧疚,让你背了黑锅。都过去了。我摇了摇头。
可就在我说出过去了这三个字的时候,一个疯狂的念头,像一道闪电,劈开了我的记忆。
蓝鲸项目……张浩……那次事故中,有一个非常诡异的现象。数据库的损坏,不是随机的,
而是呈现出一种……一种带有明显逻辑性的、人为的破坏特征。但当时,
所有的证据都指向了硬件故障,我们最终也只能以此结案。可是……如果那不是故障呢?
我猛地抬起头,冲到大屏幕前,调出了张浩留下的那个后门代码。我死死地盯着代码的结构,
它的加密方式,它的混淆算法……一种熟悉的、令人毛骨悚然的感觉,涌上心头。
这种写法……这种独一无二的、带着炫技色彩的、属于张浩的代码指纹。和三年前,
我们从蓝鲸项目损坏的数据库日志里,抢救出来的那些无法解释的、碎片化的……乱码。
何其相似!我的血液,在瞬间凝固了。我转过身,看着CEO,一字一句地说道。老板,
我们可能……从一开始,就搞错了。『蓝鲸项目』的崩溃,不是事故。
是人为的,彻头彻尾的,蓄意破坏。05CEO脸上的血色,以肉眼可见的速度褪去。
他显然也想到了这件事情的严重性。如果三年前的蓝令项目不是事故,而是人为破坏,
那就意味着,公司内部早就潜伏着一只巨大的蛀虫。而我们,对此一无所知。
你……有什么证据?他的声音有些发颤。证据就在三年前的服务器硬盘里。
我的大脑飞速运转,无数被忽略的细节,在这一刻串联成线。当时我们都以为是数据损坏,
所以只做了数据恢复,没有对硬盘做底层的代码取证。
但那些执行破坏指令的碎片化代码,一定还残留在硬盘的某个扇区里!
张浩的代码风格,就像他的签名一样,独一无二。只要对比,就一定能发现!
CEO没有丝毫犹豫,立刻抓起电话,打给了公司的首席信息官。老王!
马上启动最高安全预案!把三年前『蓝鲸项目』的所有服务器硬盘,从封存库里找出来!
对,所有的!一块都不能少!我不管你用什么方法,就算把硬盘泡在液氮里恢复,
也必须把里面的原始数据给我挖出来!他的吼声在空旷的会议室里回响。挂掉电话,
他看向我,眼神里充满了信任。林未,调查组,由你来全权负责。我给你最高的权限,
公司所有资源,任你调动。我只要一个结果。好。我重重地点了点头。
这不仅仅是为了公司,更是为了三年前那个被冤枉、被误解的自己。我必须要为自己,
讨回一个公道。接下来的48小时,我几乎没有合眼。我和信息安全部的同事们,
泡在冰冷的机房里。封存了三年的服务器硬盘,被小心翼翼地取了出来。
它们像一口口黑色的棺材,静静地躺在那里,埋葬着三年前的真相。数据恢复的过程,
异常艰难。但每当看到一丝进展,我的精神就会为之一振。与此同时,对张浩的调查,
也有了突破性的进展。法务部通过他那张银行照片的GPS信息,向银行申请了协查。
结果令人震惊。张浩根本不是去办什么业务。他去的是银行的保险库。他在那里,
有一个匿名的保险箱。而更关键的是,就在他被抓的当天下午,一个神秘人,用副钥匙,
取走了保险箱里的所有东西。线索,在这里断了。另一边,人事部也查到了张浩的入职背景。
他毕业于一所名不见经传的野鸡大学,简历平平无奇。但进入公司后,却像开了窍一样,
技术突飞猛进,很快就成了部门的明星。现在看来,他之前的平庸,全都是伪装。
他从进入公司的第一天起,就带着不可告人的目的。就在所有线索都陷入僵局的时候,
机房里传来一阵欢呼。找到了!林总,我们找到了!
一个安全工程师激动地朝我挥手。我立刻冲了过去。电脑屏幕上,一段残缺的代码,
被成功恢复。那段代码的逻辑,无比刁钻,无比恶毒。它伪装成一个正常的数据库同步程序,
却在特定的时间点,对数据进行底层的、不可逆的篡改和删除。而它的写法,它的变量命名,
它那独特的循环结构……都带着一种强烈的,属于张浩的个人印记。铁证如山。
我长长地吐出一口浊气,三年来压在心口的巨石,终于被搬开了。我拿出手机,
正准备向CEO汇报。一个陌生的号码,却打了进来。我犹豫了一下,按下了接听键。
电话那头,传来一个经过变声器处理的、阴冷的笑声。林未,对吗?三年前,
你没能抓住我。三年后,你抓住了我的棋子,感觉如何?我的瞳孔,骤然收缩。
是张浩的上线!06你是谁?我的声音冰冷。我是谁不重要。