首页 女生 都市言情 职场蜕变:从棋子到棋手

第4章 红色警报

  汇报会后的第四天,上午十点零三分。

  林叙正站在二十二层茶水间的窗边,等咖啡机完成萃取。他手里拿着一只白色的陶瓷杯——那是他专用的杯子,杯身上印着一行小字:“Hello, World!”,是五年前他通过星澜终面时,导师送的入职礼物。

  窗外阳光很好,但林叙眼睛里布满了血丝。

  过去三天,他只睡了不到十五个小时。赵启明要求的一周实施计划,他必须要在周五下班前交出第一版。而这份计划,按照正常流程至少需要一个月。

  他几乎把每分钟都拆成了两半用。

  白天和技术团队开分解会,晚上一个人做技术架构设计,深夜写文档。咖啡从一天两杯变成一天六杯,现在他站在这里,等今天的第四杯。

  机器发出“滴滴”的完成提示音。

  林叙拿起杯子,滚烫的液体注入,浓郁的香气弥漫开来。他加了一小勺糖——破例了,他需要一点能量——然后搅拌,看着深褐色的漩涡在杯子里旋转。

  就在这时,手机突然开始疯狂震动。

  不是来电,而是连续不断的消息提示音。密集、急促,像是某种警报。

  林叙皱起眉头,放下杯子,掏出手机。

  屏幕亮了,上面弹出了几十条消息,全部来自“星澜集团全员紧急通知群”。这个群平时几乎没人说话,只有行政部会偶尔发一些全公司范围的通知,比如消防演习、空调维修。

  但此刻,消息在疯狂刷屏。

  “@所有人技术部紧急通知:天枢系统检测到异常数据访问,请所有相关项目组立即停止线上操作。”

  “重复:立即停止所有线上操作!”

  “安全中心已介入,正在排查。”

  “请各部门负责人立即到28层大会议室集合,紧急会议!”

  林叙的心脏猛地一沉。

  他快速往上翻,看到第一条消息是两分钟前发的,来自技术副总裁张总的助理:

  “【红色警报】天枢系统发生大规模数据泄露,涉及用户隐私信息。技术部所有P7及以上人员,立即中断手头工作,到22层A会议室集合。重复,立即!”

  红色警报。

  在星澜的技术体系中,警报分四个等级:蓝、黄、橙、红。红色是最高级别,意味着系统级重大事故,可能对公司造成不可估量的损失。

  林叙手指有些发凉。他退出微信,打开公司内部的安全监控平台。

  输入权限账号,登录。

  平台首页通常是绿色的健康状态指示,但此刻,整个屏幕一片血红。正中央是一个巨大的警告图标,下面滚动着实时数据:

  受影响用户数:1,243,857(持续增长中)

  泄露数据类型:姓名、手机号、身份证号、住址、交易记录

  泄露时间窗口:09:47 - 10:02(持续中)

  攻击路径:未知

  处置状态:已切断主数据库外联,正在追踪

  一百二十四万用户。

  林叙感觉喉咙发干。天枢系统是星澜智慧城市业务的核心,存储着超过八千万用户的实名信息。如果这些信息大规模泄露,不仅会造成巨额的经济赔偿,更可能引发监管部门的严厉处罚,甚至危及公司牌照。

  他转身冲向办公室。

  茶水间到工位不过三十米,但这三十米里,整个办公区已经乱成一团。

  电话铃声此起彼伏,有人在大声质问:“为什么权限管控没生效?!”有人在对着电脑吼叫:“快点把日志导出来!”更多的人在惊慌失措地互相询问:“怎么回事?到底怎么回事?”

  恐慌像病毒一样蔓延。

  林叙跑到自己工位,抓起笔记本就往会议室冲。路上他撞到了周晓曼——她刚从座位上站起来,脸色苍白,手里紧紧握着手机。

  “叙哥,这……”她张了张嘴,声音在发抖。

  “先去会议室。”林叙没时间多说,侧身从她身边跑过。

  推开A会议室的门,里面已经坐满了人。

  技术部所有P7及以上的工程师、架构师、项目经理,加起来三十多人,挤在能容纳二十人的会议室里。空气闷热,气氛凝重得像要凝固。

  技术副总裁张总站在前方,脸色铁青。他五十多岁,平时总是沉稳从容,但此刻,他握着激光笔的手在微微发抖。

  “安静!”张总吼道,声音嘶哑。

  会议室瞬间安静下来。只剩下空调出风口的嗡嗡声,和一些人压抑的呼吸声。

  “情况大家都看到了。”张总深吸一口气,强迫自己冷静,“十分钟前,天枢系统的用户数据库被大规模拖取。泄露还在继续,我们已经切断了所有外部访问,但攻击者很可能已经拿到了足够的数据。”

  他停顿了一下,目光扫过全场。

  “现在,我需要知道三件事。第一,攻击是怎么发生的?第二,谁干的?第三,怎么补救?”

  没有人说话。

  几秒钟令人窒息的沉默后,安全团队的负责人李工站了起来。他是个四十多岁的中年男人,头发稀疏,眼袋很重,此刻额头上全是冷汗。

  “张总,我们初步分析,攻击者应该是通过一个合法的API接口进来的。”李工的声音在发抖,“但这个接口的权限本应该是受限的,只允许内部系统调用。不知道为什么,它的权限被临时提级了,而且……”

  “而且什么?”张总厉声问。

  “而且攻击者似乎有完整的密钥链,绕过了所有的二次校验。”李工说完,几乎不敢看张总的眼睛。

  会议室里响起一阵倒吸冷气的声音。

  完整的密钥链——这意味着攻击者要么是内部人员,要么是拿到了内部人员的权限凭证。

  “权限是谁提的?”张总的声音冷得像冰。

  “正在查。”李工擦了擦汗,“但日志系统显示,提级操作是在今天凌晨三点左右完成的,操作账号是……是林叙的账号。”

  所有人的目光,瞬间集中在林叙身上。

  林叙愣住了。

  他张了张嘴,想说什么,但大脑一片空白。凌晨三点?他在睡觉。而且他根本不知道哪个API接口需要临时提级。

  “不可能。”林叙站起来,声音很干,“我的账号密码只有我知道,而且我昨晚十一点就下班了,今天早上八点半才到公司。有打卡记录可以证明。”

  “账号共享过吗?”张总盯着他。

  “没有。”林叙斩钉截铁。

  “那你怎么解释日志记录?”张总走到投影前,示意李工把数据投出来。

  屏幕上出现了一行行系统日志。时间戳:03:14:22。操作类型:权限提级。目标接口:/api/v2/user/export。操作账号:linxu@xinglan.com。IP地址:113.87.XX.XX。

  “这个IP查了吗?”张总问。

  “查了。”李工的声音更低了,“是林叙家的IP。宽带运营商确认,今天凌晨三点左右,这个IP有活跃的网络连接。”

  林叙感觉全身的血液都在往头上涌。

  “有人盗用我的账号。”他说,每个字都说得很用力,“我家里的电脑昨晚是关机的,而且我从来不会在家里操作生产环境。这是常识。”

  “那你怎么解释IP?”张总反问。

  “我不知道。”林叙说,“但肯定有问题。我要求调取完整的操作日志,包括登录方式、会话令牌、操作轨迹。我的账号是双因素认证,光有密码不可能登录。”

  “已经在调了。”李工说,“但认证服务器的日志有五分钟的延迟,还需要一点时间。”

  会议室里再次陷入沉默。

  但这次的沉默里,多了很多复杂的目光。怀疑的,同情的,幸灾乐祸的,事不关己的。林叙站在这些目光的中心,感觉自己像被剥光了扔在舞台上。

  “继续。”张总说,“攻击路径。”

  安全团队的另一个成员站起来,开始讲解。

  攻击者通过提级后的API接口,以合法身份进入系统。然后利用一个“补丁包”中的漏洞,绕过了数据导出的数量限制和频率限制,在十五分钟内,分批拖取了超过一百二十万条用户数据。

  “补丁包?”张总打断,“什么补丁包?”

  “是……”讲解的人看了一眼手里的平板,声音小了下去,“是昨天下午上线的一个热修复补丁,编号HF-2023-0720-01。用于修复天枢系统的一个边界条件处理BUG。”

  “谁提交的?”张总问。

  会议室里,至少有一半人,看向了林叙。

  林叙的心脏像被一只冰冷的手攥住了。

  他想起来了。

  昨天下午,测试团队报了一个BUG:在天枢系统处理特定类型的并发请求时,有极低概率会发生死锁。问题不严重,但需要修复。他花了一个小时,写了一个修复补丁,在下午四点左右提交到代码库,五点半通过测试,六点上线。

  那是一个很小的补丁,总共不到五十行代码。他检查了至少三遍,确保没有问题。

  “是我提交的。”林叙说,声音还算平稳,“但那只是个简单的死锁修复,不可能导致数据泄露。”

  “把补丁包的代码调出来。”张总说。

  代码被投到大屏幕上。

  林叙只看了一眼,就感觉全身的血液都凉了。

  那确实是他写的修复代码,但中间多了几行——他绝对没有写过的几行。

  在原本的锁超时处理逻辑后面,插入了这样一段:

  #临时调试代码,用于验证性能优化效果

  if request.params.get('debug_mode')=='true':

  bypass_export_limit = True

  logging.info('Export limit bypassed for debug purposes')

  就这四行代码,让整个补丁包变成了一个后门。

  如果请求中携带

  “debug_mode=true“参数,系统就会绕过所有的导出限制。而攻击者显然发现了这个后门,并利用了它。

  “这不是我写的。”林叙说,声音已经开始发抖。

  “Git提交记录显示是你。”李工调出另一个屏幕,“看,昨天下午16:07,账号linxu提交了这次修改。提交备注是‘修复天枢系统死锁BUG’。代码差异里,就包括这几行。”

  “我提交的时候,没有这几行!”林叙几乎是吼出来的。

  “那这几行代码是怎么进去的?”张总盯着他,眼神锐利得像刀,“代码库有完整的版本控制,每一次修改都有记录。如果这几行不是你写的,那会是谁?鬼吗?”

  林叙张着嘴,却说不出话。

  他脑子里一片混乱。昨天下午,他确实提交了代码。提交前,他确实检查过。当时绝对没有这几行。但Git记录不会说谎,白纸黑字,那几行代码就在他的提交里。

  唯一的可能是——有人在他提交后,篡改了代码库的记录。

  但这需要极高的权限。至少是代码库的管理员权限,而且要知道如何不留痕迹地修改Git历史。

  能做到这一点的人,整个技术部不超过五个。

  “我需要看完整的Git操作日志。”林叙强迫自己冷静下来,“看除了我之外,还有谁动过这个补丁包。”

  “已经在看了。”李工说,“但Git服务器昨晚十点到今早六点在进行例行维护,部分日志可能不完整。”

  巧合太多了。

  林叙账号凌晨三点被“盗用”,家里IP“恰好”有活跃记录,他提交的补丁包“恰好”被插入了恶意代码,Git服务器“恰好”在案发时段维护,日志“恰好”不完整。

  这不像意外,更像一个精心设计的局。

  “张总,”林叙说,声音平静得连他自己都意外,“我请求公司立即启动内部调查,并且报警。这是一起有预谋的、针对公司核心系统的攻击,而且有人试图栽赃给我。”

  “报警?”张总眯起眼睛。

  “对。涉及一百多万用户的隐私泄露,这已经构成刑事犯罪。让警方介入,才能查清真相。”林叙说。

  会议室里响起一阵窃窃私语。

  报警意味着把事情闹大,意味着媒体会知道,股价会暴跌,监管部门会介入。对公司来说,这是最坏的选择。

  “事情还没查清,报什么警。”一个声音从门口传来。

  所有人转头。

  赵启明走了进来。他脸色阴沉,但步伐沉稳。他走到张总身边,低声说了几句什么。张总皱了皱眉,点点头。

  “林叙,”赵启明转向他,表情痛心疾首,“我知道你现在很慌,但越是这样,越要冷静。公司会调查清楚,如果真有人陷害你,一定会还你清白。但现在最重要的,是止损,是修复系统,是防止更多数据泄露。”

  他说得很诚恳,很顾全大局。

  但林叙从他的眼神里,看到了一丝别的东西。

  那是警告,是威胁,是“你最好闭嘴”的潜台词。

  “赵总,”林叙迎着他的目光,“我的账号被冒用,我的代码被篡改,我是最大的嫌疑人。如果公司不报警,不进行彻底调查,我怎么自证清白?”

  “清者自清。”赵启明拍了拍他的肩膀,力度很重,“你现在要做的,是配合调查,是好好想想,有没有把账号密码告诉过别人,有没有在什么不安全的电脑上登录过,有没有……”

  “我没有。”林叙打断他。

  赵启明的脸色沉了下来。

  “林叙,现在不是闹情绪的时候。”他的声音冷了下去,“系统是你负责的,补丁是你提交的,现在出了这么大的事,你第一个要做的,是承担责任,是解决问题,而不是在这里质疑公司的调查程序。”

  承担责任。

  林叙听懂了。赵启明的意思是,让他认了。认了账号管理不善,认了代码审查不严,认了这起事故的主要责任。

  然后呢?然后公司会“从轻处理”,他会“戴罪立功”,事情会“内部解决”。

  至于真相,至于谁在背后搞鬼,不重要了。重要的是尽快平息事态,保住公司的声誉,保住某些人的位置。

  “如果我拒绝呢?”林叙问。

  会议室里的空气凝固了。

  所有人都看着他,像在看一个疯子。在星澜,没有人敢这样对赵启明说话,尤其是在这种场合。

  赵启明盯着他,看了足足五秒。

  然后,他笑了。那种冰冷的,没有温度的笑。

  “林叙,你还年轻,可能不太懂职场的规矩。”赵启明缓缓地说,“在事情查清之前,为了配合调查,也为了避嫌,你需要暂时停职。等调查结果出来,我们再谈下一步。”

  停职。

  林叙的心沉到了谷底。

  这不是惩罚,这是隔离。把他从系统中剥离,让他失去所有的信息渠道,让他无法为自己辩护,让他成为众矢之的。

  “我反对。”林叙说,“停职等于默认我有问题。我要求继续工作,我可以用技术手段协助调查,我可以……”

  “这是公司的决定。”赵启明打断他,转向张总,“张总,您看呢?”

  张总看着林叙,眼神复杂。有同情,有无奈,也有决断。

  “林叙,你先回去休息几天。”张总说,“等调查清楚了,如果没问题,再回来工作。这也是为你好。”

  为你好。

  三个字,轻飘飘的,却彻底堵死了林叙所有的路。

  他站在那里,看着会议室里一张张熟悉或陌生的脸。那些曾经一起加班、一起讨论技术、一起解决问题的同事,此刻都避开了他的目光。他们低着头,看着手机,或者盯着桌面,没有人敢与他对视。

  除了一个人。

  周晓曼坐在角落,也低着头。但她的肩膀在微微发抖,像是在哭。偶尔抬头看林叙一眼,眼睛红红的,满是担忧和同情。

  但只有林叙注意到了,她握在桌下的手,握得很紧,指节发白。

  那不是恐惧,也不是悲伤。

  那是紧张,是兴奋,是猎物即将落网时的战栗。

  林叙突然明白了。

  这一切,从他交出竞品分析脑图的那一刻,就已经开始了。那个脆弱的、需要帮助的周晓曼,那个感激涕零的周晓曼,那个说要记住他一辈子恩情的周晓曼,是假的。

  全都是假的。

  “好。”林叙听到自己说,声音出奇的平静,“我接受停职。但我保留报警的权利。如果公司不能在三天内给我一个公正的调查结果,我会自己报警。”

  他说完,转身,拉开会议室的门。

  门外,走廊里站满了人。都是技术部的同事,他们听到动静,都围了过来。看到林叙出来,所有人都下意识地后退了一步,让开一条路。

  那是一条孤零零的,被目光包围的路。

  林叙走过人群,背挺得很直。

  他回到工位,开始收拾东西。笔记本电脑是公司配的,不能带走。私人物品很少:那支印着“Hello, World!”的杯子,几本技术书籍,一个便携式键盘,还有那盆绿萝。

  他把这些东西装进自己的双肩包。

  背包很沉,但更沉的是心情。

  他最后看了一眼工位。电脑屏幕还亮着,上面是他昨晚写的天枢2.0实施计划。已经完成了70%,再给他两天,就能完成第一版。

  但现在,没机会了。

  他关掉屏幕,拿起背包,转身。

  周晓曼站在不远处,欲言又止。

  “叙哥,我……”她开口,声音带着哭腔。

  林叙看了她一眼。

  就一眼,很短,很平静。但周晓曼像被烫到一样,猛地移开了目光,低下头,肩膀抖得更厉害了。

  林叙没说话,从她身边走过。

  走出办公区,走进电梯,下楼,走出大厦。

  阳光刺眼。

  他站在路边,看着街道上熙熙攘攘的人流。这个世界还在正常运转,没有人知道,就在刚才,他的人生被彻底改变了。

  他拿出手机,打开通讯录。

  翻了一遍,不知道能打给谁。

  父母在老家,不能让他们担心。朋友……他已经很久没有跟工作之外的朋友联系了。同事?现在所有人都觉得他是罪人。

  他收起手机,走向地铁站。

  背包很沉,脚步也很沉。

  他不知道要去哪里,也不知道接下来该怎么办。他只知道一件事:有人陷害他,而且那个人,或者那些人,就在星澜大厦里。

  他要找出真相。

  不惜一切代价。

  而在二十八层的会议室里,紧急会议还在继续。

  赵启明站在投影前,表情凝重:“各位,事已至此,我们要做的,是最大限度减少损失。我已经安排公关部准备对外声明,就说系统遭受了‘高级持续性威胁攻击’,我们正在全力修复。对内,要统一口径,就说还在调查中,不要传播不实信息。”

  “那林叙那边……”张总问。

  “先停职,看他的态度。”赵启明说,“如果他识相,愿意配合,等风头过了,可以给他换个部门,从新开始。如果他不识相……”

  他没说完,但所有人都听懂了。

  “那补丁包的代码,到底是谁改的?”安全团队的李工小声问。

  赵启明看了他一眼,眼神冰冷。

  “这还需要问吗?Git记录清清楚楚,是林叙提交的。至于他为什么要那么做,可能是因为压力太大,可能是想走捷径,也可能是……”

  他停顿了一下,声音压得更低。

  “我听说,有几家猎头最近在挖他,开价很高。”

  会议室里一片哗然。

  原来如此。林叙故意在代码里留后门,然后盗取用户数据,卖给竞争对手。这样一切就说得通了。

  “这只是猜测。”张总皱起眉。

  “但也是最合理的解释。”赵启明说,“当然,最终要等调查结果。但在结果出来前,我们要做好最坏的准备。”

  他顿了顿,环视全场。

  “这件事,关系到公司的生死存亡。我希望在座的每一位,都能以公司利益为重,不要传播谣言,不要妄加猜测。一切,等调查结果。”

  众人纷纷点头。

  会议结束,人群散去。

  赵启明回到办公室,关上门。

  他从抽屉里拿出那个黑色的U盘——周晓曼给他的,装着天枢系统密钥文件的那个。他插上电脑,输入密码,打开文件。

  密钥库完好无损。

  他删除了文件,格式化U盘,然后拉开抽屉最底层,那里有一个小小的强磁铁。他把U盘放在磁铁上,停留了十秒。

  这样一来,U盘里所有的数据都会被彻底破坏,无法恢复。

  做完这一切,赵启明靠在椅背上,长长地吐出一口气。

  窗外的阳光很好,天空很蓝。

  一切都很完美。

  除了那个不识相的年轻人。

  但没关系,很快,他就会学会职场的第一个,也是最重要的规则:

  有些游戏,你玩不起。

目录
设置
手机
书架
书页
评论