第1122章 你替誰扛?
蘇哲轉過來。
「鏡像節點歸誰管?」
「機要處。」
這兩個字落在房間裡,分量不輕。市委機要處負責全市黨政系統的加密文件流轉,等於是信息管道的總閘。
蘇哲回到桌前坐下,從抽屜里拿出丁家成的內線號碼本。他沒有打電話,而是翻到機要處的編制頁面,數了一下——在編人員十一人,包括處長、兩個副處長和八個科員。
「有沒有可能是外部入侵?」
林銳搖頭:「我讓產業島的網絡安全工程師初步掃了一遍,沒發現外部入侵的痕跡。但他說這台鏡像節點上掛了一個腳本,定時抓取文件流轉系統里含特定關鍵詞的文檔摘要。腳本寫得不算精密,但藏的位置刁鑽——嵌在系統日誌的清理模塊里,不專門找,看不見。」
「關鍵詞有哪些?」
「'原材料'、'航線'、'量產'、'晶圓'、'供應鏈'、'封鎖'。六個。」
蘇哲把這六個詞在腦子裡過了一遍。全是光子晶片項目的核心詞彙。
有人建議過拔網線——程度在電話里說的第一句話就是「要不要切斷外聯」。
蘇哲否了。
「拔了網,線斷了,人跑了。讓它繼續看。」
他拿起手機撥了陳默的視頻。
敦煌超算中心那邊是半夜,陳默還沒睡,屏幕里他的臉被顯示器照得發青,桌上擺著三罐空的咖啡。
蘇哲用三分鐘把情況講完,最後問了一句:「能不能把這隻眼睛反過來?」
陳默沒有立刻答話。他皺著眉頭,手指在鍵盤邊緣來回搓了幾下——這是他處理複雜問題時的習慣動作。
然後他問了三件事。
「腳本第一次出現在節點上的時間。過去三十天的訪問頻次。抓取欄位的具體格式。」
林銳把日誌投屏,陳默在那頭看了大概兩分鐘。
「米國那套舊工具改的。我在敦煌被攻擊的時候見過類似的架構,但這個版本降了級,像是二手轉手過。不高級,但藏的時間長——至少三個月了。」
蘇哲:「能不能在不驚動它的情況下,反向追蹤它往外送數據的通道?」
「可以。更好的辦法是——不光追蹤,還給它換一套食物。」
陳默敲了幾下鍵盤,調出一個框架圖。
「我在盤古系統的安全模塊里有一套'影子文檔庫'的工具。原理很簡單:把真實文件複製一份,內容做細微修改——每份假文件的修改位置不同,相當於編了號。腳本繼續抓取,但抓到的全是假的。哪份假文件出現在外部伺服器上,就能倒推是從哪個終端流出去的。」
蘇哲想了五秒。
「修改不能太明顯。」
「不會。錯別字級別的。比如'磷化銦'寫成'磷化鋁','七十八'寫成'七十六'。對方如果不拿原件逐字對照,看不出來。但每份文件的錯字位置獨一無二,等於指紋。」
蘇哲點了一下頭。
「今晚部署。」
陳默掛了視頻。半小時後,盤古團隊從敦煌遠程接入京州市政府內網,開始構建影子文檔庫。整個過程不到四十分鐘——文件流轉系統里的四十七份涉密項目文檔,全部生成了對應的帶水印假版本。
與此同時,蘇哲讓林銳打了另一個電話。
丁家成接電話的時候語氣很清醒,不像是被吵醒的。
「丁書記,有件事需要您出面。」
蘇哲把機要處的情況簡要說了——沒提腳本,沒提影子文檔,只說系統巡檢發現異常,需要凍結相關人員。
丁家成聽完,安靜了幾秒。
「我明天一早叫秘書長過來,以全市檔案規範化檢查的名義,凍結機要處全體人員的調崗和休假。理由現成——年底了,檔案整理本來就是常規工作。」
蘇哲沒想到丁家成反應這麼快。
「這次我站前面。」丁家成在電話里加了這句。
蘇哲回了三個字:「您站前面,我看後門。」
丁家成那頭輕輕「嗯」了一聲,掛了。
接下來是等。
影子文檔庫啟動後的第二十六個小時,陳默那邊發來提醒。
一份編號為SY-031的假文件被外部伺服器下載。文件內容是量產線第三輪試產的良率數據摘要,真實數據是78%,假版本寫的是「76%」。同時,「磷化銦襯底」被替換成了「磷化鋁襯底」。
陳默把下載記錄的回溯路徑發過來——境外伺服器的地址,又是東京新宿區。
更關鍵的是本地端。
SY-031號文件對應的生成終端,是機要處三號辦公室的一台老式台式機。使用人登記欄里寫著一個名字。
**副處長,廖文斌。**
蘇哲把這個名字在腦子裡過了一遍——不熟。他翻了翻林銳之前整理的機要處人員檔案,找到了廖文斌的那頁。四十一歲,京州本地人,在機要處幹了九年,考核評價全是「稱職」,沒有任何違紀記錄。
一個存在感極低的人。
程度接到消息後,十五分鐘內完成了廖文斌的住址確認和手機定位。
定位顯示,手機在他家。
程度剛安排了兩組便衣盯上去,蘇哲這邊又收到林銳的匯報。
「廖文斌今天上午九點向機要處長遞了病假條。診斷證明是京州第二人民醫院開的,說是急性胃炎。」
蘇哲拿過病假條的掃描件看了一眼。
「手機呢?」
「開著,信號在他家小區。但我打了他登記的座機,沒人接。」
程度那邊的便衣到了廖文斌的住處。
敲門,沒人應。物業開門一看——家裡空了。衣櫃翻過,洗漱台上的牙刷牙膏不在。
程度的聲音從電話里傳出來,帶著一股火氣。
「手機扔在茶几上充著電。人跑了。」
蘇哲掛了程度的電話,看了一眼牆上的鐘。晚上七點四十。
廖文斌上午九點請的假,手機留在家裡,說明他最晚在今天白天就已經離開住所。如果是中午走的,到現在已經過去七八個小時。七八個小時,開車足夠到省界。
「查他名下的車。」
林銳三分鐘內調出來:「一輛白色大眾朗逸,車牌號蘇G-7X829。」
程度那邊同步在公安系統里跑了一遍:這輛車今天沒有出現在京州城區的任何監控攝像頭裡。
「要麼換了車,要麼用了套牌。」程度的判斷很直接。
蘇哲撥了陳默的號。
「交通大腦系統調出來,回溯京州城區過去十二小時內所有白色大眾朗逸的軌跡。同時掃一遍今天新出現的套牌車記錄。」
陳默那頭鍵盤響了一陣。三分鐘後回了話。
「白色朗逸,蘇G-7X829,今天在城區沒有記錄。但是——」他頓了一下,「有一輛白色朗逸,掛的是蘇A開頭的牌照,上午十點四十三分從老城區西四環匝道上了高速,方向是北港。牌照是套的,車型年份和廖文斌那輛一致。」
「後面呢?」
「進了北港高速後,經過兩個收費站的攝像頭,之後消失了。最後出現的位置是北港服務區以南三十公里。」
程度接過話:「他沒走主幹道,繞小路了。北港高速有三個出口能拐進縣道,縣道上的攝像頭密度低,按老式路線走,可以一直繞到北邊的省界口岸。」
蘇哲站起來,走到牆上那張京州地圖前面。他的手指沿著北港高速劃了一條線,在三個出口處各點了一下。
「他帶了什麼?」
林銳的聲音壓低了半度:「我剛跟機要處長確認過。今天的日常核查發現,三號辦公室的一隻加密U盤不在櫃裡。編號KJ-2024-047。」
「裡面存過什麼?」
「按照檔案記錄,這隻U盤最近一次使用是四天前,導入過量產線第四輪試產的參數報告。」
蘇哲的手從地圖上收回來。
第四輪試產良率85.3%。參數報告裡包含盤古系統優化後的全部一百三十七個工藝參數。這套數據如果流出去,等於把京州的核心競爭力拱手送人。
「不是去機場。」蘇哲回到桌前坐下,「機場有安檢,U盤過不去。他走陸路,目標是北邊的省界口岸——過了口岸上高速,六小時到大連,從大連坐船去高麗或者東瀛,比飛機隱蔽。」
程度在電話那頭已經動了:「我通知北港高速交警大隊,在北港服務區和省界收費站兩個點設卡。同時調京州特巡警備勤。他換了車的話,查加油站——套牌車油箱容量有限,七八個小時的路程至少要加一次油。」
「查。快。」
陳默的交通大腦在後台跑了四分鐘,彈出一條記錄。
北港高速往北六十公里處,一個中石油加油站的車牌識別系統捕捉到了一輛車。不是白色朗逸——是一輛灰色的雪佛蘭科沃茲。但駕駛員的面部特徵被加油站的高清攝像頭抓到了。
陳默把截圖發過來。模糊,但能辨認。
程度拿著截圖跟廖文斌的證件照比了一遍:「是他。換了車,沒換臉。」
「車牌號?」
「蘇K開頭,查了一下,登記在一個叫'周敏'的人名下。京州本地身份證,但這個身份證號對應的人三年前已經去世了。」
死人的身份證,死人的車牌。
程度的火氣從電話里滲出來:「準備得夠細。」
蘇哲沒有接這句話。他把地圖上的路線重新描了一遍。廖文斌在加油站被拍到的時間是下午四點十七分,距離省界口岸還有大概三個小時的車程。算上他可能在路上停留休息的時間,最遲晚上十點到達口岸。
現在七點五十。
還有兩個小時的窗口。
「攔在北港服務區。」蘇哲做了決定。「服務區是封閉空間,進出只有兩個口,適合收網。高速口不動,省界口岸不動,別讓他提前警覺改道。」
程度掛了電話,十分鐘後回了消息:兩組特巡警已經出發,另有兩輛便衣車從側翼跟進,預計四十分鐘到位。
等待的時間是最難熬的。
蘇哲坐在辦公室里,桌上攤著廖文斌的人事檔案。四十一歲,已婚,一個女兒在讀初中。在機要處九年,績效考核從來沒拿過優秀,也從來沒出過差錯。年收入十二萬左右,京州的房價,夠他在老城區供一套九十平的房子。
一個不起眼的人。
但就是這種不起眼的人,在機要處坐了九年,什麼文件都從他手裡過,誰都不會多看他一眼。
八點四十七分,程度來了消息。
「灰色科沃茲進北港服務區了,停在加油區。他下車去了衛生間,車還在。」
蘇哲攥著手機沒回。
八點五十一分。
「控制住了。人在服務區衛生間門口被按住,沒有反抗。U盤在他隨身攜帶的保溫杯夾層里。」
蘇哲把手機放下,長吐了一口氣。
他看了看窗外。雨停了,路燈下的積水反著光。
一個小時後,廖文斌被帶回京州市局。
審訊室的燈很白。廖文斌坐在鐵椅子上,兩隻手放在膝蓋上,指甲縫裡還殘著加油站洗手台的水漬。他的表情出奇的平靜,不像一個剛被抓獲的人,倒像一個在候診室里排隊的病人。
程度問了三輪,他只有一句話。
「我只是傳普通材料。」
程度拍了一下桌子。廖文斌縮了一下脖子,但嘴巴閉得更緊了。
蘇哲在監控室里看了十分鐘。他讓林銳拿了一個文件夾進去。
林銳把文件夾打開,放在廖文斌面前。
裡面是影子文檔SY-031的列印件,左邊是真實版本,右邊是廖文斌經手傳出的假版本。兩份並排放著,紅筆把差異處圈了出來——「磷化銦」和「磷化鋁」,「78%」和「76%」。
「你傳出去的東西是假的。」林銳的聲音不高,但每個字都砸在點上。「我們在你碰過的每一份文件里都做了標記。你以為你在傳情報,實際上你在替我們做分揀。」
廖文斌低頭看著那兩份文件,臉上的血色一點一點褪了。
林銳又從文件夾底部抽出一頁紙。
「宮本慎介付給你的錢,走的是一個註冊在高麗濟州島的帳戶,戶名是一個不存在的大夏公民。這種帳戶在國際反洗錢框架下,凍結只需要四十八小時。你拿命換的錢,一分都取不出來。」
廖文斌的肩膀開始發抖。
林銳合上文件夾,往後退了一步。
「你替誰扛?」
「鏡像節點歸誰管?」
「機要處。」
這兩個字落在房間裡,分量不輕。市委機要處負責全市黨政系統的加密文件流轉,等於是信息管道的總閘。
蘇哲回到桌前坐下,從抽屜里拿出丁家成的內線號碼本。他沒有打電話,而是翻到機要處的編制頁面,數了一下——在編人員十一人,包括處長、兩個副處長和八個科員。
「有沒有可能是外部入侵?」
林銳搖頭:「我讓產業島的網絡安全工程師初步掃了一遍,沒發現外部入侵的痕跡。但他說這台鏡像節點上掛了一個腳本,定時抓取文件流轉系統里含特定關鍵詞的文檔摘要。腳本寫得不算精密,但藏的位置刁鑽——嵌在系統日誌的清理模塊里,不專門找,看不見。」
「關鍵詞有哪些?」
「'原材料'、'航線'、'量產'、'晶圓'、'供應鏈'、'封鎖'。六個。」
蘇哲把這六個詞在腦子裡過了一遍。全是光子晶片項目的核心詞彙。
有人建議過拔網線——程度在電話里說的第一句話就是「要不要切斷外聯」。
蘇哲否了。
「拔了網,線斷了,人跑了。讓它繼續看。」
他拿起手機撥了陳默的視頻。
敦煌超算中心那邊是半夜,陳默還沒睡,屏幕里他的臉被顯示器照得發青,桌上擺著三罐空的咖啡。
蘇哲用三分鐘把情況講完,最後問了一句:「能不能把這隻眼睛反過來?」
陳默沒有立刻答話。他皺著眉頭,手指在鍵盤邊緣來回搓了幾下——這是他處理複雜問題時的習慣動作。
然後他問了三件事。
「腳本第一次出現在節點上的時間。過去三十天的訪問頻次。抓取欄位的具體格式。」
林銳把日誌投屏,陳默在那頭看了大概兩分鐘。
「米國那套舊工具改的。我在敦煌被攻擊的時候見過類似的架構,但這個版本降了級,像是二手轉手過。不高級,但藏的時間長——至少三個月了。」
蘇哲:「能不能在不驚動它的情況下,反向追蹤它往外送數據的通道?」
「可以。更好的辦法是——不光追蹤,還給它換一套食物。」
陳默敲了幾下鍵盤,調出一個框架圖。
「我在盤古系統的安全模塊里有一套'影子文檔庫'的工具。原理很簡單:把真實文件複製一份,內容做細微修改——每份假文件的修改位置不同,相當於編了號。腳本繼續抓取,但抓到的全是假的。哪份假文件出現在外部伺服器上,就能倒推是從哪個終端流出去的。」
蘇哲想了五秒。
「修改不能太明顯。」
「不會。錯別字級別的。比如'磷化銦'寫成'磷化鋁','七十八'寫成'七十六'。對方如果不拿原件逐字對照,看不出來。但每份文件的錯字位置獨一無二,等於指紋。」
蘇哲點了一下頭。
「今晚部署。」
陳默掛了視頻。半小時後,盤古團隊從敦煌遠程接入京州市政府內網,開始構建影子文檔庫。整個過程不到四十分鐘——文件流轉系統里的四十七份涉密項目文檔,全部生成了對應的帶水印假版本。
與此同時,蘇哲讓林銳打了另一個電話。
丁家成接電話的時候語氣很清醒,不像是被吵醒的。
「丁書記,有件事需要您出面。」
蘇哲把機要處的情況簡要說了——沒提腳本,沒提影子文檔,只說系統巡檢發現異常,需要凍結相關人員。
丁家成聽完,安靜了幾秒。
「我明天一早叫秘書長過來,以全市檔案規範化檢查的名義,凍結機要處全體人員的調崗和休假。理由現成——年底了,檔案整理本來就是常規工作。」
蘇哲沒想到丁家成反應這麼快。
「這次我站前面。」丁家成在電話里加了這句。
蘇哲回了三個字:「您站前面,我看後門。」
丁家成那頭輕輕「嗯」了一聲,掛了。
接下來是等。
影子文檔庫啟動後的第二十六個小時,陳默那邊發來提醒。
一份編號為SY-031的假文件被外部伺服器下載。文件內容是量產線第三輪試產的良率數據摘要,真實數據是78%,假版本寫的是「76%」。同時,「磷化銦襯底」被替換成了「磷化鋁襯底」。
陳默把下載記錄的回溯路徑發過來——境外伺服器的地址,又是東京新宿區。
更關鍵的是本地端。
SY-031號文件對應的生成終端,是機要處三號辦公室的一台老式台式機。使用人登記欄里寫著一個名字。
**副處長,廖文斌。**
蘇哲把這個名字在腦子裡過了一遍——不熟。他翻了翻林銳之前整理的機要處人員檔案,找到了廖文斌的那頁。四十一歲,京州本地人,在機要處幹了九年,考核評價全是「稱職」,沒有任何違紀記錄。
一個存在感極低的人。
程度接到消息後,十五分鐘內完成了廖文斌的住址確認和手機定位。
定位顯示,手機在他家。
程度剛安排了兩組便衣盯上去,蘇哲這邊又收到林銳的匯報。
「廖文斌今天上午九點向機要處長遞了病假條。診斷證明是京州第二人民醫院開的,說是急性胃炎。」
蘇哲拿過病假條的掃描件看了一眼。
「手機呢?」
「開著,信號在他家小區。但我打了他登記的座機,沒人接。」
程度那邊的便衣到了廖文斌的住處。
敲門,沒人應。物業開門一看——家裡空了。衣櫃翻過,洗漱台上的牙刷牙膏不在。
程度的聲音從電話里傳出來,帶著一股火氣。
「手機扔在茶几上充著電。人跑了。」
蘇哲掛了程度的電話,看了一眼牆上的鐘。晚上七點四十。
廖文斌上午九點請的假,手機留在家裡,說明他最晚在今天白天就已經離開住所。如果是中午走的,到現在已經過去七八個小時。七八個小時,開車足夠到省界。
「查他名下的車。」
林銳三分鐘內調出來:「一輛白色大眾朗逸,車牌號蘇G-7X829。」
程度那邊同步在公安系統里跑了一遍:這輛車今天沒有出現在京州城區的任何監控攝像頭裡。
「要麼換了車,要麼用了套牌。」程度的判斷很直接。
蘇哲撥了陳默的號。
「交通大腦系統調出來,回溯京州城區過去十二小時內所有白色大眾朗逸的軌跡。同時掃一遍今天新出現的套牌車記錄。」
陳默那頭鍵盤響了一陣。三分鐘後回了話。
「白色朗逸,蘇G-7X829,今天在城區沒有記錄。但是——」他頓了一下,「有一輛白色朗逸,掛的是蘇A開頭的牌照,上午十點四十三分從老城區西四環匝道上了高速,方向是北港。牌照是套的,車型年份和廖文斌那輛一致。」
「後面呢?」
「進了北港高速後,經過兩個收費站的攝像頭,之後消失了。最後出現的位置是北港服務區以南三十公里。」
程度接過話:「他沒走主幹道,繞小路了。北港高速有三個出口能拐進縣道,縣道上的攝像頭密度低,按老式路線走,可以一直繞到北邊的省界口岸。」
蘇哲站起來,走到牆上那張京州地圖前面。他的手指沿著北港高速劃了一條線,在三個出口處各點了一下。
「他帶了什麼?」
林銳的聲音壓低了半度:「我剛跟機要處長確認過。今天的日常核查發現,三號辦公室的一隻加密U盤不在櫃裡。編號KJ-2024-047。」
「裡面存過什麼?」
「按照檔案記錄,這隻U盤最近一次使用是四天前,導入過量產線第四輪試產的參數報告。」
蘇哲的手從地圖上收回來。
第四輪試產良率85.3%。參數報告裡包含盤古系統優化後的全部一百三十七個工藝參數。這套數據如果流出去,等於把京州的核心競爭力拱手送人。
「不是去機場。」蘇哲回到桌前坐下,「機場有安檢,U盤過不去。他走陸路,目標是北邊的省界口岸——過了口岸上高速,六小時到大連,從大連坐船去高麗或者東瀛,比飛機隱蔽。」
程度在電話那頭已經動了:「我通知北港高速交警大隊,在北港服務區和省界收費站兩個點設卡。同時調京州特巡警備勤。他換了車的話,查加油站——套牌車油箱容量有限,七八個小時的路程至少要加一次油。」
「查。快。」
陳默的交通大腦在後台跑了四分鐘,彈出一條記錄。
北港高速往北六十公里處,一個中石油加油站的車牌識別系統捕捉到了一輛車。不是白色朗逸——是一輛灰色的雪佛蘭科沃茲。但駕駛員的面部特徵被加油站的高清攝像頭抓到了。
陳默把截圖發過來。模糊,但能辨認。
程度拿著截圖跟廖文斌的證件照比了一遍:「是他。換了車,沒換臉。」
「車牌號?」
「蘇K開頭,查了一下,登記在一個叫'周敏'的人名下。京州本地身份證,但這個身份證號對應的人三年前已經去世了。」
死人的身份證,死人的車牌。
程度的火氣從電話里滲出來:「準備得夠細。」
蘇哲沒有接這句話。他把地圖上的路線重新描了一遍。廖文斌在加油站被拍到的時間是下午四點十七分,距離省界口岸還有大概三個小時的車程。算上他可能在路上停留休息的時間,最遲晚上十點到達口岸。
現在七點五十。
還有兩個小時的窗口。
「攔在北港服務區。」蘇哲做了決定。「服務區是封閉空間,進出只有兩個口,適合收網。高速口不動,省界口岸不動,別讓他提前警覺改道。」
程度掛了電話,十分鐘後回了消息:兩組特巡警已經出發,另有兩輛便衣車從側翼跟進,預計四十分鐘到位。
等待的時間是最難熬的。
蘇哲坐在辦公室里,桌上攤著廖文斌的人事檔案。四十一歲,已婚,一個女兒在讀初中。在機要處九年,績效考核從來沒拿過優秀,也從來沒出過差錯。年收入十二萬左右,京州的房價,夠他在老城區供一套九十平的房子。
一個不起眼的人。
但就是這種不起眼的人,在機要處坐了九年,什麼文件都從他手裡過,誰都不會多看他一眼。
八點四十七分,程度來了消息。
「灰色科沃茲進北港服務區了,停在加油區。他下車去了衛生間,車還在。」
蘇哲攥著手機沒回。
八點五十一分。
「控制住了。人在服務區衛生間門口被按住,沒有反抗。U盤在他隨身攜帶的保溫杯夾層里。」
蘇哲把手機放下,長吐了一口氣。
他看了看窗外。雨停了,路燈下的積水反著光。
一個小時後,廖文斌被帶回京州市局。
審訊室的燈很白。廖文斌坐在鐵椅子上,兩隻手放在膝蓋上,指甲縫裡還殘著加油站洗手台的水漬。他的表情出奇的平靜,不像一個剛被抓獲的人,倒像一個在候診室里排隊的病人。
程度問了三輪,他只有一句話。
「我只是傳普通材料。」
程度拍了一下桌子。廖文斌縮了一下脖子,但嘴巴閉得更緊了。
蘇哲在監控室里看了十分鐘。他讓林銳拿了一個文件夾進去。
林銳把文件夾打開,放在廖文斌面前。
裡面是影子文檔SY-031的列印件,左邊是真實版本,右邊是廖文斌經手傳出的假版本。兩份並排放著,紅筆把差異處圈了出來——「磷化銦」和「磷化鋁」,「78%」和「76%」。
「你傳出去的東西是假的。」林銳的聲音不高,但每個字都砸在點上。「我們在你碰過的每一份文件里都做了標記。你以為你在傳情報,實際上你在替我們做分揀。」
廖文斌低頭看著那兩份文件,臉上的血色一點一點褪了。
林銳又從文件夾底部抽出一頁紙。
「宮本慎介付給你的錢,走的是一個註冊在高麗濟州島的帳戶,戶名是一個不存在的大夏公民。這種帳戶在國際反洗錢框架下,凍結只需要四十八小時。你拿命換的錢,一分都取不出來。」
廖文斌的肩膀開始發抖。
林銳合上文件夾,往後退了一步。
「你替誰扛?」