第2章
出山------------------------------------------,沈奕坐在一辆黑色商务车的后座上,膝盖上摆着一副棋盘。——是一副围棋。。他低着头,左手黑子,右手白子,在空无一子的棋盘上飞快地落子又收起,像是在和自己下一场只有他自己能看懂的快棋。“你在做什么?”她问。“复盘。复盘什么?过去两年。”。她踩下油门,车子驶出新安市区的拥堵路段,拐上了一条通往郊区的快速路。,二十七八岁,戴着一副金丝边眼镜,穿着一件皱巴巴的格子衬衫,怀里抱着一个笔记本电脑,手指在键盘上敲个不停。他叫周铭,是省厅技术科最年轻的网络安全工程师。“沈……沈老师。”周铭转过身,语气里带着一种小心翼翼的恭敬,“我看了您两年前发表在《计算机学报》上的那篇论文,关于分布式系统共识算法的——那篇论文的第三部分有个错误。”沈奕头也不抬。:“什么错误?Paxos算法在异步系统中的活锁问题,我用了一个优先级排序的方案来解决,但那个方案在实际部署中会导致消息复杂度的指数级增长。我当时写论文的时候忽略了这一点。那……正确的解决方案是什么?”:“没有正确的解决方案。FLP不可能性定理已经证明了,在异步系统中,不存在一个确定性的共识算法能够同时保证安全性和活性。我只能做到近似最优,做不到完美。”
周铭张了张嘴,不知道该说什么。
“你不需要叫我老师。”沈奕终于抬起头,看了周铭一眼,“我也不是什么老师。我是一个被关了两年、刚刚被特许在警方监控下参与案件调查的犯罪嫌疑人。”
周铭尴尬地咳了一声:“林队说,您是我们的技术顾问。”
“顾问。”沈奕重复了一遍这个词,嘴角微微弯了弯,看不出是笑还是嘲讽,“好。那就顾问吧。”
“方仲年的资料。”林薇从后视镜里递了一个文件袋过来。
沈奕放下棋子,接过文件袋,拆开封口。
方仲年,男,五十四岁,新安大学计算机学院教授,博士生导师,主要研究方向为人工智能与模式识别。曾任**“863”计划信息技术领域专家组专家,享受***特殊津贴。
“学术地位很高。”沈奕翻着资料,“这种人被绑架,不像是普通的刑事案件。”
“我们查过方仲年近三年的所有科研项目、论文发表、学术交流记录,没有发现任何异常。”林薇说,“他的研究方向虽然是人工智能,但主要是理论层面的研究,没有涉及任何**或****相关的敏感领域。”
“那不一定。”沈奕翻到下一页,“人工智能的理论研究,如果走对了方向,完全可以转化为具有战略价值的应用技术。一个学者自己可能都没有意识到,他的某个理论突破在别人手里会成为什么样的武器。”
他停在一页资料上,目光凝住了。
那是一张方仲年实验室的合影。照片里,方仲年站在中间,周围是一群年轻的博士生和硕士生。所有人的脸上都带着那种学术圈特有的、略显疲惫但充满热情的笑容。
沈奕的目光落在照片最左边的一个年轻人身上。
那个年轻人很瘦,********,表情严肃,和其他人的笑容格格不入。他的胸前挂着一块工牌,上面依稀可以辨认出几个字——
“这个人是谁?”沈奕把照片举起来。
林薇瞥了一眼:“方仲年的学生,叫……等等,我看一下。”她翻了翻自己的笔记,“叫楚天明。方仲年带的博士生,去年因为学术不端被开除学籍。”
“学术不端?”
“据说是论文数据造假。方仲年亲自向学校学术委员会举报的。”
沈奕盯着照片上那个年轻人的脸,沉默了几秒。
“被自己的导师举报学术不端,开除学籍——这个人现在在哪里?”
“不知道。被开除之后就消失了。我们没有把他列为嫌疑人,因为绑架案发生的时候,他在监控里已经消失了将近一年。”
“把他找出来。”沈奕把照片放回文件袋,“一个被导师毁掉学术前途的人工智能博士生,消失一年之后,他的导师被一伙能够入侵全城交通系统的绑匪绑架——这两件事之间不太可能是巧合。”
林薇看了他一眼,没有说话,但方向盘上的手指微微收紧了一下。
车子驶入了一个戒备森严的院落。这里是省厅刑侦总队的技术中心,一栋灰色的六层楼房,外墙上没有任何标志,但门口的岗哨和围墙上的监控探头密度暴露了它的特殊性。
沈奕下车的时候,眯起眼睛看了看天上的太阳。
他已经两年没有见过没有被铁栅栏分割过的天空了。
阳光刺得他眼眶发酸,但他没有低头,反而微微仰起脸,像是在感受某种久违的东西。
“这边走。”林薇在前面带路。
技术中心的四楼是一个大型的网络安全实验室,摆满了服务器、工作站和各种叫不出名字的设备。十几个技术人员正在各自的工位上忙碌,键盘敲击声和服务器风扇的嗡鸣声混在一起,像是某种电子生物的呼吸。
沈奕走进去的时候,所有人的目光都投了过来。
那些目光里有好奇,有审视,有警惕,也有不加掩饰的敌意。
“这就是那个……沈奕?”一个穿着黑色卫衣的年轻技术员低声对同事说,“听说他就是因为入侵银行系统被抓的。”
“一个罪犯来给我们当技术顾问?开什么玩笑。”
“安静。”林薇的声音不大,但有一种不容置疑的力度,“所有人回到自己的岗位上。沈奕现在是这个案子的技术顾问,他的指令等同于我的指令。有意见的,现在可以提出来。”
没有人说话。
沈奕对这一切视若无睹。他走到最大的那台工作站前,拉开椅子坐下,手指搭上键盘,但没有敲击。他闭上眼睛,像是在倾听什么。
“给我看绑架案发生当天,交通系统被入侵时的所有日志。”他说。
周铭立刻凑过来,在另一台终端上操作了几下,把数据投射到墙上的大屏幕上。
密密麻麻的数据流如瀑布般倾泻而下。
沈奕睁开眼睛,盯着那些滚动的十六进制数据,一动不动。
“这是交管中心中央系统的入侵日志。”周铭解释,“入侵发生在凌晨三点十七分,攻击者利用了系统的一个零日漏洞,获得了最高权限——”
“不是零日漏洞。”沈奕打断了他。
“什么?”
“这不是利用漏洞入侵。这是一次合法的登录。”
所有人都愣住了。
“你看这个时间戳,”沈奕指着屏幕上的某一行数据,“凌晨三点十七分二十一秒,一个拥有系统***权限的账户登录了交管中心的核心服务器。这个账户的用户名是‘jiaotong_admin’,密码哈希值在这里。”他手指移动,“这个哈希值对应的明文密码,是‘Jiaotong2023!’。”
周铭快速查询了一下:“这个账户……是交管中心内部的一个备用***账户,权限极高,但平时很少使用。我们查过,这个账户没有被盗用的痕迹——”
“因为它不是被盗用的。”沈奕说,“这个账户的登录,使用的是正确的用户名和正确的密码。没有任何****、没有任何漏洞利用、没有任何恶意代码注入。它就是一个合法的登录。”
“那……那怎么可能?”周铭瞪大了眼睛,“如果是一个合法的登录,那就意味着——”
“意味着攻击者拥有交管中心内部某个***的账户凭证。”沈奕说,“用户名和密码。或者——攻击者本身就是交管中心的内部人员。”
会议室里的空气骤然紧绷。
林薇快步走过来:“你确定?”
“百分之九十五。”沈奕说,“剩下的百分之五,留给某种我目前还无法想象的、能够实时破解SHA-256哈希值的量子计算技术。如果绑匪有这个技术,他们就不需要绑架方仲年了。”
林薇沉默了几秒,然后拿起手机拨了一个号码:“老赵,我是林薇。我需要交管中心所有拥有核心系统***权限的人员名单——包括在职的、离职的、借调的,一个都不能少。”
挂断电话后,她看向沈奕:“还有呢?”
沈奕的手指在键盘上飞快地敲击起来。他的打字速度极快,指法精准得像是钢琴家在演奏一首练习曲。屏幕上,一行行命令闪过,各种数据被调取、比对、分析。
“交管中心只是冰山一角。”他一边操作一边说,“入侵交通系统需要同时控制三个层级:中央控制系统、区域分控节点、路口终端信号机。如果攻击者只控制了中央系统,最多只能改变全局性的信号配时方案,做不到——像你们描述的那样——十七条主干道同时亮起绿灯。”
“你的意思是……”
“攻击者同时入侵了至少二十三个区域分控节点和一百七十个路口终端信号机。这些设备分布在城市的各个角落,物理隔离,网络架构各异,安全防护水平参差不齐。要同时控制它们,需要的不是一次精心策划的入侵行动——”
他停下手指,转过身来。
“需要的是一张已经预先布置好的、覆盖全城的僵尸网络。”
周铭的脸色变了:“你是说……那些交通信号设备早就被植入了后门?”
“不是后门。”沈奕摇头,“后门是可检测的。这是一次更精巧的攻击——攻击者利用了这些设备固件中本身就存在的、设计者自己都没有意识到的逻辑缺陷。这些缺陷不是漏洞,而是……特性。”
他从键盘上抬起手,十根手指微微颤抖——不是因为紧张,而是因为兴奋。
“交管中心的设备采购来自七家不同的供应商,每家供应商的固件都是闭源的、各自独立的。但我在刚才四十分钟的分析中发现了一个模式——这七家供应商的固件中,有一小段代码是完全相同的。”
“什么代码?”
“一个处理时间同步功能的模块。所有交通信号设备都需要通过NTP协议与中央时钟同步,以确保信号配时的精确性。这七家供应商的固件中,实现NTP同步的代码竟然一模一样——连注释里的拼写错误都一样。”
他调出屏幕上的代码对比。
“你们看这一行注释——‘// Syncing time with **ster server, do not modify’。‘Syncing’这个词拼错了,少了一个‘h’。七家不同供应商的固件里,同一个单词拼错了同一个地方。”
周铭凑近屏幕,瞳孔微微收缩。
“这说明……”他喃喃道。
“说明这七家供应商的固件,很可能都来自同一个底层代码库。而这个代码库的源头——很可能就是某个被广泛使用的、开源的嵌入式操作系统。攻击者发现了这个代码库中NTP模块的一个设计缺陷,然后利用这个缺陷,在所有运行这个代码库的设备上植入了一个隐蔽的触发机制。”
“什么样的触发机制?”
“一个时间锁。”沈奕说,“攻击者在代码中预设了一个条件——当系统时间到达某个特定时刻时,NTP模块会执行一段额外的指令。这段指令不在正常的代码路径中,而是隐藏在时间同步的边界条件里——比如闰秒处理、时区转换这些边缘场景。”
他站起身,走到白板前,拿起一支马克笔。
“想象一下,”他一边画图一边说,“你在写一段处理闰秒的代码。正常的逻辑是:当检测到闰秒时,将系统时钟回拨一秒。但攻击者在代码中添加了一个隐藏的分支——如果闰秒发生的日期是某个特定的值,那么不仅回拨时钟,还要执行一个预设的命令。”
他在白板上写下了一串伪代码。
“这个预设的命令可以是任何东西——改变信号灯状态、开放某个防火墙端口、向某个IP地址发送数据。而最可怕的是,这段代码在正常的代码**中几乎不可能被发现,因为它隐藏在闰秒处理这种极其边缘的逻辑里。”
林薇虽然不懂技术细节,但她听懂了结论:“所以你的意思是,这些交通信号设备,早在出厂的时候,就已经被动了手脚?”
“不一定是在出厂的时候。”沈奕把马克笔扔回白板槽里,“也可能是在系统升级的时候。攻击者可能入侵了固件分发的渠道,在官方发布的升级包中植入了恶意代码。无论是哪种方式,结果都是一样的——一张覆盖全城的、潜伏期长达数年的僵尸网络。”
会议室内一片寂静。
周铭的脸色变得很难看:“如果交通系统可以被这样渗透,那……电力系统?供水系统?燃气系统?”
沈奕看了他一眼,没有说话。
但那一眼已经说明了一切。
林薇的手机响了。她接起来,听了几秒,表情骤然变得凝重。
“好,我知道了。马上到。”
她挂断电话,看向沈奕。
“方仲年的家里发现了新的线索。我们需要现在就过去。”
沈奕站起身,膝盖上的棋盘滑落在地,黑白子洒了一地,发出清脆的碰撞声。
他没有弯腰去捡。
“走吧。”他说。
周铭张了张嘴,不知道该说什么。
“你不需要叫我老师。”沈奕终于抬起头,看了周铭一眼,“我也不是什么老师。我是一个被关了两年、刚刚被特许在警方监控下参与案件调查的犯罪嫌疑人。”
周铭尴尬地咳了一声:“林队说,您是我们的技术顾问。”
“顾问。”沈奕重复了一遍这个词,嘴角微微弯了弯,看不出是笑还是嘲讽,“好。那就顾问吧。”
“方仲年的资料。”林薇从后视镜里递了一个文件袋过来。
沈奕放下棋子,接过文件袋,拆开封口。
方仲年,男,五十四岁,新安大学计算机学院教授,博士生导师,主要研究方向为人工智能与模式识别。曾任**“863”计划信息技术领域专家组专家,享受***特殊津贴。
“学术地位很高。”沈奕翻着资料,“这种人被绑架,不像是普通的刑事案件。”
“我们查过方仲年近三年的所有科研项目、论文发表、学术交流记录,没有发现任何异常。”林薇说,“他的研究方向虽然是人工智能,但主要是理论层面的研究,没有涉及任何**或****相关的敏感领域。”
“那不一定。”沈奕翻到下一页,“人工智能的理论研究,如果走对了方向,完全可以转化为具有战略价值的应用技术。一个学者自己可能都没有意识到,他的某个理论突破在别人手里会成为什么样的武器。”
他停在一页资料上,目光凝住了。
那是一张方仲年实验室的合影。照片里,方仲年站在中间,周围是一群年轻的博士生和硕士生。所有人的脸上都带着那种学术圈特有的、略显疲惫但充满热情的笑容。
沈奕的目光落在照片最左边的一个年轻人身上。
那个年轻人很瘦,********,表情严肃,和其他人的笑容格格不入。他的胸前挂着一块工牌,上面依稀可以辨认出几个字——
“这个人是谁?”沈奕把照片举起来。
林薇瞥了一眼:“方仲年的学生,叫……等等,我看一下。”她翻了翻自己的笔记,“叫楚天明。方仲年带的博士生,去年因为学术不端被开除学籍。”
“学术不端?”
“据说是论文数据造假。方仲年亲自向学校学术委员会举报的。”
沈奕盯着照片上那个年轻人的脸,沉默了几秒。
“被自己的导师举报学术不端,开除学籍——这个人现在在哪里?”
“不知道。被开除之后就消失了。我们没有把他列为嫌疑人,因为绑架案发生的时候,他在监控里已经消失了将近一年。”
“把他找出来。”沈奕把照片放回文件袋,“一个被导师毁掉学术前途的人工智能博士生,消失一年之后,他的导师被一伙能够入侵全城交通系统的绑匪绑架——这两件事之间不太可能是巧合。”
林薇看了他一眼,没有说话,但方向盘上的手指微微收紧了一下。
车子驶入了一个戒备森严的院落。这里是省厅刑侦总队的技术中心,一栋灰色的六层楼房,外墙上没有任何标志,但门口的岗哨和围墙上的监控探头密度暴露了它的特殊性。
沈奕下车的时候,眯起眼睛看了看天上的太阳。
他已经两年没有见过没有被铁栅栏分割过的天空了。
阳光刺得他眼眶发酸,但他没有低头,反而微微仰起脸,像是在感受某种久违的东西。
“这边走。”林薇在前面带路。
技术中心的四楼是一个大型的网络安全实验室,摆满了服务器、工作站和各种叫不出名字的设备。十几个技术人员正在各自的工位上忙碌,键盘敲击声和服务器风扇的嗡鸣声混在一起,像是某种电子生物的呼吸。
沈奕走进去的时候,所有人的目光都投了过来。
那些目光里有好奇,有审视,有警惕,也有不加掩饰的敌意。
“这就是那个……沈奕?”一个穿着黑色卫衣的年轻技术员低声对同事说,“听说他就是因为入侵银行系统被抓的。”
“一个罪犯来给我们当技术顾问?开什么玩笑。”
“安静。”林薇的声音不大,但有一种不容置疑的力度,“所有人回到自己的岗位上。沈奕现在是这个案子的技术顾问,他的指令等同于我的指令。有意见的,现在可以提出来。”
没有人说话。
沈奕对这一切视若无睹。他走到最大的那台工作站前,拉开椅子坐下,手指搭上键盘,但没有敲击。他闭上眼睛,像是在倾听什么。
“给我看绑架案发生当天,交通系统被入侵时的所有日志。”他说。
周铭立刻凑过来,在另一台终端上操作了几下,把数据投射到墙上的大屏幕上。
密密麻麻的数据流如瀑布般倾泻而下。
沈奕睁开眼睛,盯着那些滚动的十六进制数据,一动不动。
“这是交管中心中央系统的入侵日志。”周铭解释,“入侵发生在凌晨三点十七分,攻击者利用了系统的一个零日漏洞,获得了最高权限——”
“不是零日漏洞。”沈奕打断了他。
“什么?”
“这不是利用漏洞入侵。这是一次合法的登录。”
所有人都愣住了。
“你看这个时间戳,”沈奕指着屏幕上的某一行数据,“凌晨三点十七分二十一秒,一个拥有系统***权限的账户登录了交管中心的核心服务器。这个账户的用户名是‘jiaotong_admin’,密码哈希值在这里。”他手指移动,“这个哈希值对应的明文密码,是‘Jiaotong2023!’。”
周铭快速查询了一下:“这个账户……是交管中心内部的一个备用***账户,权限极高,但平时很少使用。我们查过,这个账户没有被盗用的痕迹——”
“因为它不是被盗用的。”沈奕说,“这个账户的登录,使用的是正确的用户名和正确的密码。没有任何****、没有任何漏洞利用、没有任何恶意代码注入。它就是一个合法的登录。”
“那……那怎么可能?”周铭瞪大了眼睛,“如果是一个合法的登录,那就意味着——”
“意味着攻击者拥有交管中心内部某个***的账户凭证。”沈奕说,“用户名和密码。或者——攻击者本身就是交管中心的内部人员。”
会议室里的空气骤然紧绷。
林薇快步走过来:“你确定?”
“百分之九十五。”沈奕说,“剩下的百分之五,留给某种我目前还无法想象的、能够实时破解SHA-256哈希值的量子计算技术。如果绑匪有这个技术,他们就不需要绑架方仲年了。”
林薇沉默了几秒,然后拿起手机拨了一个号码:“老赵,我是林薇。我需要交管中心所有拥有核心系统***权限的人员名单——包括在职的、离职的、借调的,一个都不能少。”
挂断电话后,她看向沈奕:“还有呢?”
沈奕的手指在键盘上飞快地敲击起来。他的打字速度极快,指法精准得像是钢琴家在演奏一首练习曲。屏幕上,一行行命令闪过,各种数据被调取、比对、分析。
“交管中心只是冰山一角。”他一边操作一边说,“入侵交通系统需要同时控制三个层级:中央控制系统、区域分控节点、路口终端信号机。如果攻击者只控制了中央系统,最多只能改变全局性的信号配时方案,做不到——像你们描述的那样——十七条主干道同时亮起绿灯。”
“你的意思是……”
“攻击者同时入侵了至少二十三个区域分控节点和一百七十个路口终端信号机。这些设备分布在城市的各个角落,物理隔离,网络架构各异,安全防护水平参差不齐。要同时控制它们,需要的不是一次精心策划的入侵行动——”
他停下手指,转过身来。
“需要的是一张已经预先布置好的、覆盖全城的僵尸网络。”
周铭的脸色变了:“你是说……那些交通信号设备早就被植入了后门?”
“不是后门。”沈奕摇头,“后门是可检测的。这是一次更精巧的攻击——攻击者利用了这些设备固件中本身就存在的、设计者自己都没有意识到的逻辑缺陷。这些缺陷不是漏洞,而是……特性。”
他从键盘上抬起手,十根手指微微颤抖——不是因为紧张,而是因为兴奋。
“交管中心的设备采购来自七家不同的供应商,每家供应商的固件都是闭源的、各自独立的。但我在刚才四十分钟的分析中发现了一个模式——这七家供应商的固件中,有一小段代码是完全相同的。”
“什么代码?”
“一个处理时间同步功能的模块。所有交通信号设备都需要通过NTP协议与中央时钟同步,以确保信号配时的精确性。这七家供应商的固件中,实现NTP同步的代码竟然一模一样——连注释里的拼写错误都一样。”
他调出屏幕上的代码对比。
“你们看这一行注释——‘// Syncing time with **ster server, do not modify’。‘Syncing’这个词拼错了,少了一个‘h’。七家不同供应商的固件里,同一个单词拼错了同一个地方。”
周铭凑近屏幕,瞳孔微微收缩。
“这说明……”他喃喃道。
“说明这七家供应商的固件,很可能都来自同一个底层代码库。而这个代码库的源头——很可能就是某个被广泛使用的、开源的嵌入式操作系统。攻击者发现了这个代码库中NTP模块的一个设计缺陷,然后利用这个缺陷,在所有运行这个代码库的设备上植入了一个隐蔽的触发机制。”
“什么样的触发机制?”
“一个时间锁。”沈奕说,“攻击者在代码中预设了一个条件——当系统时间到达某个特定时刻时,NTP模块会执行一段额外的指令。这段指令不在正常的代码路径中,而是隐藏在时间同步的边界条件里——比如闰秒处理、时区转换这些边缘场景。”
他站起身,走到白板前,拿起一支马克笔。
“想象一下,”他一边画图一边说,“你在写一段处理闰秒的代码。正常的逻辑是:当检测到闰秒时,将系统时钟回拨一秒。但攻击者在代码中添加了一个隐藏的分支——如果闰秒发生的日期是某个特定的值,那么不仅回拨时钟,还要执行一个预设的命令。”
他在白板上写下了一串伪代码。
“这个预设的命令可以是任何东西——改变信号灯状态、开放某个防火墙端口、向某个IP地址发送数据。而最可怕的是,这段代码在正常的代码**中几乎不可能被发现,因为它隐藏在闰秒处理这种极其边缘的逻辑里。”
林薇虽然不懂技术细节,但她听懂了结论:“所以你的意思是,这些交通信号设备,早在出厂的时候,就已经被动了手脚?”
“不一定是在出厂的时候。”沈奕把马克笔扔回白板槽里,“也可能是在系统升级的时候。攻击者可能入侵了固件分发的渠道,在官方发布的升级包中植入了恶意代码。无论是哪种方式,结果都是一样的——一张覆盖全城的、潜伏期长达数年的僵尸网络。”
会议室内一片寂静。
周铭的脸色变得很难看:“如果交通系统可以被这样渗透,那……电力系统?供水系统?燃气系统?”
沈奕看了他一眼,没有说话。
但那一眼已经说明了一切。
林薇的手机响了。她接起来,听了几秒,表情骤然变得凝重。
“好,我知道了。马上到。”
她挂断电话,看向沈奕。
“方仲年的家里发现了新的线索。我们需要现在就过去。”
沈奕站起身,膝盖上的棋盘滑落在地,黑白子洒了一地,发出清脆的碰撞声。
他没有弯腰去捡。
“走吧。”他说。
阅读下一章(解锁全文)
点击即可畅读完整版全部内容
相关书籍
友情链接