中央控制室。特快線。被騙走的三千萬: 第十三關:複盤查
早已不是第一次這麼做:把系統裡那些噪點、時間戳、登錄記錄一條條抓出來,做成快照、用不同演算法算出哈希值、然後再把哈希值寄存在離線的只讀隨身碟。這是我現在的日常,是我守住自己不被牽連的那一圈小小防線。
「你還沒睡?」盧立人的聲音從門邊傳來,平靜卻有壓力。他把門關上,襯衣袖口還有些微的折痕,像是剛從會議室出來的姿勢。我站起來,把螢幕的光關小,讓房間一片昏黃。
「還沒。剛把昨夜的異常序列做了第二次校驗。」我把手裡的隨身碟遞到桌上,語氣淡然,卻把每一步做好了標注,按下了複本的備份鍵。那按鍵聲在夜裡顯得突兀,但我已習慣這種節奏。
「很好。」盧立人走近,眼光在螢幕上掃過幾行日誌,「你做得細,這點我一直放心你。」
「多虧你教的流程。」我笑了笑,他教我的不是細節,而是做事的嚴謹。把每一步記錄成不可篡改的證據鏈,這套東西讓我從一個早班小職員比別人多了一道保命的牆。
「我們不能只靠運氣。」他坐到我對面,那張辦公椅吱呀一聲,「今晚我來,是想跟你好好把這件事複盤一遍。把你做的那份備份流程,我要親眼看一遍,順便談兩句你下一步可以做的事。」
「我有序列在這兒。」我把螢幕切到那個命名為「A_Fire_Anomaly_2024」的資料夾,裡面按時間排序的是我昨晚和今天凌晨收集到的幾組監控快照、三個臨時帳號的登錄紀錄,以及一些被刪改的操作日誌的碎片。每一個檔案旁,我都留下了註記,寫明來源、讀取次數與我做過的處理方式。
「先別急。」盧立人用手指在資料夾上敲了敲,「把你的註記從頭說一遍,說得清楚一點。從你最初發現那個監控雪花開始。」
「好。」我把椅子拉近,在他面前展開那個邏輯鏈,「昨晚三點五十八分,支線A後台那支攝影機發出了短暫的雜訊——不到一秒,但足夠讓那幀畫面出現雪花。系統把它標為瞬斷,但我在多角度回放中,B角與C角的時間線裡出現了一個身影,模糊但輪廓一致:短髮、工作服、背個布包。這人出現時伴隨一個未授權帳號的VPN連線,IP顯示來自一台外部維護端。」
「你把那段回放做了幾種還原?」盧立人問,眼神緊貼著我的臉。自從事情發生,他比平日更少說客套話。
「做了三種:把每一格做逐格放大,用降噪算法恢復頻譜,還有把前後兩秒做差分對比。結果顯示那個人確實有意識地在三點五十八分的那個時刻進入後台,並且有動作去開一個箱子。那箱子的標籤我之前在餐車抽屜那裡也見過——標籤的字跡與平常不一樣,像是撕下重貼過,黏膠痕跡很明顯。」
「那你有把那塊標籤照片上傳,做可視化對比?」他點開了我剛存的照片放大鏡。
「有,兩張高解析對比。我用邊緣檢測把邊框收窄後疊圖,對齊結果顯示形狀、黏膠殘留位置一致。這是第一層證據。」我說,「第二層證據是那個臨時帳號的操作日誌。有人在凌晨三點五十六至三點五十八之間,短暫登錄了系統,做了參數調整——不是例行維護可以解釋的調整,是把某支攝像頭的回放保護關閉了五分鍾。這段期間,正好與那個身影出現的時間重疊。」
「那麼那個帳號是哪兒來的?」盧立人問。
「是被註冊為外部維護端,但IP卻顯示它的來源在我們系統的平常認證之外。我把此IP和整個城市外圍幾個常用VPN節點比對過,發現它屬於一個臨時性運維集群——你知道那種,工程外包會用的跳板。」我把手一攤,「因此這很可能是一個被設計好的跳板,用來避免回溯到內部員工。」
盧立人沉吟,指間敲著桌面。「你這樣的邏輯我沒意見。下一步要做的,是怎麼把這條跳板鏈追到底。你有沒有想到技術上能立刻推進的事?」
「有幾件。」我把列表拉出來,語氣平靜而清晰,像在念工作流程,「第一,做全局的IP時序回放。不只是抓那三分鐘,而是把前後一小時內進出外部維護端的所有登錄時序拉出來,做時間序列比對。第二,對那個臨時帳號做證據級的鏡像備份,包括它的TLS握手包、會話ID與任何可能殘留下的客戶端指紋。第三,把那些錄像的原始影格做時間碼同步,然後以為證據做加密封存——MD5和SHA256雙重哈希,同時把哈希值上傳到司法可認的第三方保存,這樣任何人要動原始檔案,哈希會立即顯示差異。」
「說得實在。」盧立人點頭,「你先把那份清單的步驟做成操作手冊,今晚我會安排技術組與你一起復核。不過這裡有一個政治層面的問題,你也知道,系統內部有些帳號,看起來像是臨時,但可能實際上屬於上下級某個域裡的高權限流程。你如果直接把所有東西推給外部IT,說不定會有人以為你在洩密或越權。」
「我知道這點。」我早想過這種陷阱,因此每一步我都先做了內部的數據存證,留有可查的登錄紀錄與多重備份,「所以我的建議是,先在我們的範圍內完成數據的鏡像和哈希,然後再通報上級或需要的調查單位。保證證據鏈從我們這頭出去時,不會被人有機會改動。」
「你在說你希望暫時控制證據的流向?」盧立人語氣微微帶著試探。
「是。」我直視他的眼睛,「不是為了隱匿,而是為了防止有人趁亂抹去痕跡。你也知道,這種案子一旦有內部權限被利用,最危險的就是某些人會在證據還沒被法律封存前,把它們改掉或做一些表面修補。我的辦法是把證據先鎖進一個我們能證明從未被打開的容器裡,再讓司法來介入取樣。」
盧立人停了一下,眼神在我的臉上讀了幾秒,像是在衡量我是否有足夠的判斷力來執行這份責任。然後他深吸口氣,伸手在桌上推來一杯水。
「阿辰,」他用比較軟的語氣說,「你有沒有想過,一旦你把這些事做得太好,你自己也會被推上風口。你在公司內的位置現在很敏感,一個動作不慎,可能會讓你成為‘吹哨者’,但同時也可能成為第一個被質疑的人。」
我點點頭,這個我知道。我每天做的,就是在這種敏感與風險之間走鋼絲。升職到現階段不是因為我想要權力,而是因為我的工資與生活都靠這份安穩撐著。可現在事情已經牽扯到比我更冷狠的利益線,我不能讓自己毫無後路。
「我知道。」我把手心攤開,「這也是我想說的第二步。若我們要做這些鑑證性工作,我需要你在行政上給我一個‘臨時保護指令’:在我們把證據上交司法前,不將我的名字在任何公開文檔上出現。這樣至少能讓我在履行職責時,少一些被外界干擾的風險。」
「你要保護指令?」他一驚,然後微笑,「這要求不小。」
「我不想把事情做成誰也不能承擔的選擇題。」我看著他,語氣平穩,「我想要的是程序上的安全。像你說的,證據上交要走司法流程,但在那之前,必須保護證據、保護證人、保護我們這個資訊鏈路不被外界篡改。」
盧立人沉吟,他的眉頭一瞬間緊了一下,像是在權衡一盤重大的棋。
「好,我會在管理層那邊把你的角色臨時列為‘系統保全主管’,並寫入臨時職責,這能在一定程度上把你的名字和這次證據處理做個界定。」他終於點頭,「不過這份指令我要以私下方式處理,不能在例行會議上擺出來,否則會引來更多的注意。」
「我知道。」我心裡鬆了一口氣,這個承諾意味著我可以在夜裡更安心地把資料做成鏡像,而不是擔心第二天醒來有人說我私藏證據。
「今晚的具體步驟就由你負責,我會幫你把人手調配好,技術組的核心帳密由我來下指示。」盧立人把手掌按在資料夾上,語氣裡有稀薄的鼓勵,「你按你的清單走,任何問題第一時間告訴我,不要單獨行動。」
「明白。」我握手,他的手溫暖而堅定,像一個老長官對年輕人的理解與交付。
接著我們把話題拉回更細緻的技術層面。我把我準備要在今晚做的具體步驟一條條念給他聽,盧立人則在旁邊把每一項的負責人和時間點記下:
「第一,對A、B、C三組攝像頭的原始數據進行原盤複製,保證連續錄像的原始檔不被破壞。這項工作交給你和技術組的主機管理員,鏡像完成後打印MD5與SHA256的哈希值,並把哈希值寄存在司法授權的第三方服務上。」
「第二,把所有臨時帳號的登錄信息抽取成CSV格式,包含時間戳、來源IP、賬號行為描述、以及權限級別,並分三類:日常維護、異常調用與高權限交接。」我拿過紙筆,認真寫在桌面空白頁上,聲音盡量平穩不讓人聽出太多壓力,「有的臨時帳號雖然表面只屬於維修,但如果對照權限授權表,有些其實是技術部名義借用,可那天凌晨調整點卻是從外圍IP跳進來的。這類數據要單列處理,不能和正常交接攪在一起。」
我把字一劃一劃寫得很慢,其實有點像給自己加深記憶。我還記得剛入職的那些夜裡,盧主管總愛在日誌本邊上留字:凡事有根有據,能對得起自己——這句話說來像廢話,但真落在生活裡時,只能靠這點龜毛過關。
「你自己一邊抓監控一邊核查這些帳號,會不會累壞?最近早夜輪得緊,休息得夠嗎?」盧主管語氣難得帶點關心,他臉上帶著白天留下來的疲累,眼神卻依然很利。
「老實說,還行。」我回以公式化微笑,把昨日備份的水杯推過去,「頂多就是下班回去腦子還轉個不停,有時候半夜醒來還會想,要不要補錄點什麼。」
「小子你腦袋是好用,就是別燒壞。別學公司那些老油條,一出事先推一推,出成果都說是自己。」盧主管輕輕碰了下杯子,語氣裡沒什麼火氣,卻不自覺點醒一點現實。
「哎,講到這個,那天早班小林還專門挖苦我。他看我還沒下班,就說,‘你是不是又在搞什麼數據奇技淫巧?’我回他一句:‘人蠢要多複盤,誰像你一鍵下班!’他倒說我是‘老派新人’。」我說出這話時自己先笑了出來。
「你們年輕人就是會互相整,這才有活力。」盧主管搖搖頭,還是那種長輩的口氣,「說正經的,你這套步驟準備多久?今晚你打算怎麼分配時間?」
「我是這樣想的,」我拉過控制台右角的小記事板給他看,手指也敲上去,「現在主控台的權限還歸我這一組,但可疑帳號接觸的端口多半來自E區加密交換。預計先花兩小時把這幾天所有異常時段的原始包全部鏡像下來。這批資料體積大,我准備建一個臨時數據倉庫,口令另設,否則被日班同事翻一翻,又怕亂了底細。」
「嗯,」盧主管的眼神落在板子左下角那堆數字上,「這裡面的端口和備份規範你熟不熟?要不要今晚現場再過一次?有時候IT那邊變更太快,我怕你漏了新指引。」
「我都對過文檔,你昨天發那版修正我也抄寫在私人本子裡了。」我拍了拍背包,「其實這種事我是自找麻煩。有同事還說我‘阿辰你真是閒不住’,以前新手都衝著能混就混,像我這種反而容易撞槍口。」
「莫說,你做得準。控制室不就是要有這種主動挑事的?你不用怕麻煩,有事我兜著。」盧主管說得很認真。
這話倒讓我一時不知道該怎麼回,只是鼻頭有點熱。其實我知他的人情世故比公司大部分人都深,這麼多年下來很少見他像這樣直接給我承諾。
「是,謝謝主管。」我把話音落得很實,「有事一定先跟你報。」
他輕輕一笑,起身去倒了杯溫熱的水回來,放在我手邊。
「好了,你又爽口啦。說回帳號,你剛才提到E區加密交換,這地段一直以來都特別敏感。當年剛改建的時候,還只有兩條維修線;後來加了資料映射和遠端備用,帳戶就開始變複雜。你查那批臨時帳,你覺得最大的異常是什麼?」
我慢慢咀嚼問題,想了想。
「最大的異常…一是權限跳得太多,有幾組臨時登錄表面上是維護人員,但連回頭交接時都沒在工作時間出現在現場。二是這批帳號最近三天都沒有人在白班輪查,全部是夜班流動;尤其昨晚那個三點五十八的臨維帳,循環率明顯高於平時。」我指著檔案,「還有一個我覺得很古怪:這段時間臨時帳號的密碼更換次數不自然,有時候連同一天被更三四次。這不是普通忘記密碼能解釋的。」
「對。」盧主管點頭,「以前這種情況,一般只有技術部要臨時追查突發故障才會出現。你有核對過維保日誌真正有多少次實地維修?」
「有。我早班剛好遇上巡檢小組,他們說最近一周只上過一次夜班維修,還是在遠端系統做備份同步。剛巧不是現場調整,因此這批夜班操作絕大多數都是假條,或者就是人頭帳戶在做掩護。」我語調落地有聲。
他笑了,聲音還帶著點欣慰。
「好樣的。你這才像是控制室該做的事。將來升上去比這種事還多。我年輕的時候還不敢像你這麼查,同事說我太正經,吃多了教條。其實正經不正經都沒要緊,怕的是公司裡沒幾個人真能把細節按照規矩來,就算被人說死心眼也比糊裡糊塗強。」
「主管你不是以前也有一回……」我想到什麼便笑,「莫不是我還得學你那套‘誤刪’備份自保法?」
「哼,你敢學我那套,回頭真出事了我也救不了你!」他揚揚下巴,「說到底,備份是保命用,不是用來害人的。像我們這種基層,除了記錄詳實遙控有證據,其餘漏洞都要跟督察隨時對表。」
「說的也是。不過這次我還是堅持照流程走。」我默默覺得安心,有人兜底底氣就足。
他點點頭。
「你那清單還有第三步嗎?」
我翻開筆記本,繼續念:
「第三,把整支監控線路的關鍵時段做雙重分段備份。」我往下寫,「因不同時段監控畫面流量大,容易影格掉漏。這部分我和IT確認過,要用主機內建的段落模組自動分批導出,防止一次性寫入過慢導致掉幀。這樣每個時段都能有獨立哈希標簽。將來要查的話,一段對不上就能及時定位。」
「細條做得妥當。」盧主管又在本子上寫了幾個字,「注意你查段落時有人要求提前解壓或者修改格式,一定別自己做主,有異動就報我。現在公司裡人心不定,小心出內鬼。」
「放心,我這邊每一步改動都只做只讀快照。」我答得乾脆,「這麼大的事,還有好幾個同事都暗裡問我是不是‘老闆心腹’,大概是嫌我查得太勤快,怕牽連自己。其實我也明白,他們只是怕誰都當背鍋俠。」
「這事我會盯著。」盧主管語氣堅決,「你就是該查得再嚴格一點,壞的怕嚴,好的更要防背黑鍋。你放心,等資料全數彙整完,下一步在上層開會時,我會直接說你查得細,該記你的功記你的功。有好表現就該上報。」
聽到這裡,我心裡那點壓力鬆了不少。
「謝謝主管,你講的話我明白。我不是圖功勞,只是不想哪天一出事自己成替罪羊。」
「這是求生本能。你年輕但腦子精明,難得沒亂竄。」他頓了下,「你講講這幾天家裡還好嗎?家人對你查案查到這麼晚會不會唸你?」
我搖搖頭笑,「家裡沒說什麼,多是勉勵,要我別太‘吹毛求疵’。媽媽倒是常說做什麼事只要盡自己責任。以前家裡教的那些,看起來土,這年頭其實還是有用。你也是這麼想?」
「我做這行這麼多年,沒幹過什麼大事,能堅持下來就是因為守住底線。你們年輕人有衝勁,加上這種認死理的穩定,將來機會多得很。」盧主管語調很暖。
他頓了幾秒,神色忽然變得複雜。
「你要記得,這陣子外面流言不斷,高層對這起意外很關注。你要是有懷疑的同事,不要隨意點名,先拿證據。別給別人亂扯,免得人心亂。」
「放心吧,我清楚的。我習慣有一說一,有証明才會下結論。」我低聲回。
我又默默記錄下他說的這句話,每次有機會都加註一點新經驗,這樣的機會不多,我自知道可遇不可求。
「你那段新的日誌快錄完沒?」他望向我面前螢幕。
「還有一組數據最後一遍哈希校驗,完成這步就算結束。」我指著計時條道。
「好,檢查流程完畢前你別再亂動線路,也別讓其他同事靠近你的座位。等日班來換,交接時記得只說技術異常,其他的讓我去跟上頭解釋。」他吩咐。
「明白。」我點頭,示意沒問題。
氣氛落下短暫安靜,兩人都沒插話。夜裡的控制室只剩主機CPU電扇的細微嗡鳴。我看著螢幕上的進度條一節一節地慢慢跑,心臟跳動恢復正常,不再那麼緊張。那些錄音、監控、雜訊、權限變動,彷彿終於在有序裡獲得暫時歸位。
「你還記得剛進公司的第一天是什麼感覺?」我為了緩和氣氛隨口問。
「記得,當時我剛下夜班,制服還沒燙平。第一天就碰上月台信號異常,緊張得手都在抖。」他笑著回憶,「現在回看,覺得這種緊張是好事。人若永遠麻木,不怕,也就完了。」
「是啊。」我邊說邊記錄最後一組序列,「我也是那時候開始,覺得凡事記錄就能安定,其實記錄也帶點自我安慰,總比糊裡糊塗強。」
「你要記住,這工作有它的價值。等你將來真的升職了,比現在更忙,到時候還要比現在更細心。最近流動這麼大,下屬會因為信你才肯幫你頂事,別讓人家失望。」盧主管金玉良言,道出我心底的顧慮。
「你說我有沒有機會?」我試探地問了一句,「你覺得我這種個性、做事方式能不能調整得更強一點?」
「能。你缺的是資歷,不是聰明。等這案子結束我會親自幫你遞升級申報,不急在一時。」他拍了拍我肩。
「聽你這話,我今天就算加班也甘願了。」我側頭笑。
「好,那你繼續錄吧。我等你最後報告,明早見。」他起身準備離開。
我送他到門邊。
「主管,今晚你辛苦了,明早見。」我小聲道。
「你更辛苦。你放心,有我兜底,看誰敢亂動你的資料。」他聲音透著安慰,也像一把安全鎖。
門輕輕關上。剩下我一個人在夜裡的主控台前繼續看進度條跑完。外面世界暫時安靜下來,這種夜裡的自律和慎重,是我在這個崗位上學會的最大本事。
我低頭把剛才所有對話要點記進隨身筆記本。條條項項的步驟都寫得很細,甚至哪句該自己查、哪句該跟誰交接都記得一清二楚。我在每條註記旁打小圓點,今晚這些對話,讓我沒那麼怕明天的早班,也沒空去管外面那些人心風雨。其實,細節做穩一點,工作雖然苦,但總歸心裡踏實。
備份進度到100%時,面前螢幕暗了一瞬,系統自動提示「異常錄像備份成功,請立即執行數據封存及證據快照」。我深吸一口氣,把所有流程一一走完,並把最後一份備份硬碟輕輕放進抽屜鎖住。這種動作像打點一份極其重要的保險。
剛做完,手機微微震動,是莫靜嵐發來的訊息:「你還在加班啊?小心別熬壞身體,明天過來餐車請你喝熱湯。」
我失笑,連夜裡都有人提醒,突然覺得這份勤奮不是為了跟誰交代,更多的是要為自己把這轟轟烈烈的城市網絡梳理得更安全一點。
在這裡太多意外,有時候是人事,有時候是時間,但只要住在細節裡,一點點熬出頭,也能有一條屬於自己的光明出路。我準備關掉主控台時,特意在最顯眼的位置貼了張便利貼:「控室核心數據臨時封存,未經主管同意不可動用。」這是我給自己的底線。
夜逐漸深了下來,但我心裡卻比白天更踏實。如果問一個普通基層員工敢不敢與天抗衡,我肯定說自己只是守規矩,但也是守命。
明天的計劃仍然明確:查一查權限異動的源頭,備份所有可疑資料,記錄下每一條痕跡,等待下一個早班。我不曉得那條金錢與權力的戰線會怎樣牽動所有人的命運,但我知道自己做過什麼,記錄過什麼,證明過什麼——這是屬於一個普通人的方式,對抗這場極光城的風暴。
那天夜裡,她反覆想著曾經那些平靜的日常——給孩子做早餐、給母親買藥、下班回來悄悄在手機上存點零錢。但一場火災,一張銀行備註單,一句「舉家搬離」,都把她平凡的生活擊碎得四分五裂。那一幕在我的腦子裡不是故事,而是像投影機一格格放映出來的畫面:人被拖走、文件被翻檢、夜晚被亮起的手電筒照得像舞台燈。可我不能只看電影,我得把畫面裡的每一個像素,分解成數據、記錄、時間戳、IP與操作指令。這是我的習慣,也是我的武器。
「今晚有幾條新告警。」我說完,把一張印好的監控截圖和幾行系統日誌推到桌面上,示意她們看。
我把螢幕轉向莫靜嵐和呂偉龍,他們湊過來,眼神裡帶著那種既好奇又耐心的光。
「你又不睡?」莫靜嵐笑,語氣裡有溫度,她站得不遠,衣袖上還沾著一點番茄醬的油點,這樣的小細節總讓我覺得她更真實、更可靠。
她的笑讓我一剎那想放慢速度,但面前的日誌一條條閃爍著紅色警報,把我的手凜然地按回鍵盤。
「只是例行複核。」我沒回避,直接說明我的工作步驟,「我把昨夜三段可疑錄像做了逐格還原,然後把臨時帳號的登錄紀錄和那些帳戶在深夜的活躍時間做了時間對齊。現在還沒指向明確主謀,但有幾個操作行為非常不尋常:第一是臨時帳號在非維修時間段頻繁出現;第二是同一IP曾在三個不同終端上短時連線;第三是某些錄像的MD5哈希值有前後不同的痕跡,意味著有人嘗試在不同時間對原始檔案做過覆蓋。這些都需要再往下鉆。」
「聽起來就是故意做戲。」呂偉龍把雙手插在褲袋裡,臉上的表情像孩童般直接,「誰會那麼有空閒,一邊玩電腦一邊想把人陷害?」
「人的動機很多,」我答,「也許是自保、也許是賺錢,或者只是想混淆視聽,讓真正的線路找不到。我的角色就是把這些動機無情地拆成可以驗證的步驟。」我把一個時間軸拉長說給他們聽。
「我通常這樣做,先做三層備份:第一層是原盤鏡像,不做任何轉碼;第二層是將鏡像做哈希比對,兩個哈希演算法同時計算(MD5、SHA256);第三層把哈希值上傳到司法可以認可的第三方存證服務。這樣即便有人從內部試圖改檔,任何改動都會在哈希比對時露餡。」我一邊說一邊在桌上畫出簡單流程圖,「現在那些紅色提示,都是第一層和第二層比對出來的異常。我已經把可疑時間段的鏡像存到離線硬碟,兩份物理副本分別鎖在不同抽屜,並用加密密碼保護,這個密碼只有盧主管和我有,我還把一份哈希值發給司法保管。如果你們想看,我可以慢慢教你們怎麼驗證。」
「哇,你這整套流程也太專業了,」莫靜嵐眼裡閃著光,「不過你別太累了,晚上我們餐車那邊還開著,待會你一定得來吃點東西,別只有冷咖啡當晚餐。」
「別擔心,今天你請我吃的那塊蛋糕我還沒忘。」我回她一個笑,她立刻眨眼用肩膀頂我一下,像小女生的撒嬌。那一刻,所有緊張都像被這個動作柔和了幾分。
我把鍵盤上的操作保存成檔案,順手打了幾行備忘。再說回列車——我們三人接下來要做的事比私情更重要。呂偉龍是那種實幹的人,他在月台當保安多年,熟悉每條出入口與各個機房。他能在兩分鐘內把哪扇門常常掛著臨時工牌的問題說得清楚。
「阿辰,如果你要我幫忙,我晚上可以換你值個班,」呂偉龍說,「一來可以順手看那些角落,二來有人在現場就比遠程監控更靈活。」
「你要晚班?」我驚了一下,知道呂平日比較喜歡夜裡睡覺,「別亂說,換班得有程序。你要是願意幫忙,先和盧主管說,我會把我要你注意的點一一列出來,你去現場幫我留心。」
「行,我去,你把那清單寫清楚,我今晚值晚班去巡一圈。」他拍胸口保證,語氣像打趣又很認真。這是最實在的合作方式:我有技術和數據,他有腳與眼睛。
「還有一件事,」莫靜嵐忽然低聲說,「今晚我晚班下來的時候,餐廳後廚那兒好像有人來過。不是人常來的那種,是半夜有個人影在後門徘徊,像是在試探。我本來以為是送貨,沒多想。可是你剛剛說那些人會在夜裡進出,會不會有人刻意安排一些人在場,然後趁機做手腳?」
「這點你說得對。」我立刻把她提供的時間點寫進檔案,「你能幫我把那個時間點的錄像截圖保存下來並存到我給你的雲端資料夾嗎?我會把那段的音頻降噪處理,看看能不能把任何語音或腳步聲識別出來。若能識別出鞋子聲或口音,會是一個關鍵的線索。」
「沒問題,我剛下班時還拍了幾張隱約的照片,我馬上傳給你。」她掏出手機,一邊說一邊把檔案丟到我的專用雲端。
「還有,」呂偉龍補上一句,「如果有人那麼多次在夜裡出沒,任何一位常駐工人的抬頭紀錄都可能出問題。我會把今晚巡查時,注意所有外來人員的身份牌和車牌,如果你和我有聯絡,我就把現場情況回報給你。你把數據和我們的觀察結合在一起,或許能拼出大圖。」
「就是這種協作最有用。」我點頭,腦子已經迅速運轉起來:一邊確認監控備份程序,一邊安排現場巡查,一個技能一個腳步,最終把時間點和人影連成一條路線。
接著,我們收拾東西準備出發。莫靜嵐把包包背好,外套上有她常用那枚粉色心形別針——我常常笑她愛裝點小玩意兒,今天那顆別針在昏黃的站台光下反而像暗號,讓我有一種莫名的安全感。
「你們兩個去,我在餐車等你們回來。」她說,「今晚飯給你們留好,絕對不是冷掉的。」
「好。」呂偉龍拎了個手電筒,笑嘻嘻地「像個夜間巡邏的英雄」一樣。
我們三個並肩走出控制室,踏入月台那片永遠忙碌的縫隙。車站的聲音像一層紗罩,粗糙而有節奏。此刻的我不是英雄,更不是救世主,我只是個會把數據拆解成一條條時間線的普通人,但也正是許多普通人的努力,讓整個系統不至於在混亂時瓦解。
「阿辰,你以後要是升職了別忘了我們,」莫靜嵐半開玩笑說,一邊整理圍裙口袋裡的餐巾紙,「我可以代表餐車給你辦歡送宴會。」
「那得看你那天有沒有空,」我笑,「且等我能做點真正有用的事再說。」
我們在月台邊走邊說笑,偶爾有人投來感激的眼神,更多的是行色匆匆。我們沿著月台向餐廳後門走去,這段路不長,卻讓我有不少念頭在腦裡穿梭。城市的每一個角落都有資料與故事,只取決於你願意多看幾眼。
到了餐廳後廚,呂偉龍先蹲下檢查地面,「這裡有一點不對勁,有被拖曳的痕跡。」他用手指在地面的油斑輕輕描繪出一條線,「這從廚房到後門,和你那個雪花時刻對不上?」
我蹲下仔細看著,手機在暗光下開啟微弱的手電模式,放大地面照片對照昨夜截圖。那條痕跡與昨夜在錄像回放裡推測出來的行進路徑吻合,「這條路的濕痕在凌晨三點五十七分到五十九分間最為明顯,」我說,「而那段錄像的雪花出現於三點五十八。我這邊的數據與現場痕跡時間上一直重合。」
「所以那時候有人真的在後門附近翻動什麼,」莫靜嵐低聲說,她的聲音裡透出些驚懼,「當時我剛好在前廳關燈,沒多看。我應該留心點。」
「不用自責,」我把手機裡的截圖發給她,「你幫我把這些照片上傳到雲端,我會把這些現場照片和控制室的時間軸對齊,做逐格比對。再把我們今天晚上的巡查記錄也存下來,這樣若警隊要確認現場,他們就有了兩套互相印證的證據:系統端與人眼觀察。」
「好,我會的。」她把手機放回圍裙口袋,神情頗有堅定。
現場還有些殘留的油煙味與晚餐的香氣,這股味道讓整個事件不那麼冷冰冰。有人忙著擦拭桌面,似乎想把一天的勞累抹去;有人打電話安排明天的食材供應。這就是城市最真實的面貌——熱鬧與悲涼並存,危險與溫暖並行。
呂偉龍拿起對講機,一邊低聲向我報告今日巡查安排:「阿辰,你要我今晚特別注意那個貨梯口,還有南側的側門。那兩處的燈光不太亮,常被人躲著。晚點我把巡查路線記下來發給你。」
「記得把巡查時間和地點都記下來,特別是要在巡查日誌上填詳細,」我頓了頓,補充,「如果有新的異動,像之前那種凌晨、偏角落的變化,直接發語音過來,不用等我回覆。今晚我會盡量留意雲端同步,你那頭一有狀況我馬上下來會合。」我低聲補充說,語氣認真中帶著一絲無法掩飾的疲憊,畢竟連續幾天幾夜圍著系統數據轉,腦袋都快變成監控主機的一部分。
呂偉龍笑著拍拍我肩,「放心,我不是頭一次跑深夜巡查,要真讓小偷摸進來,我保證比你們電腦記錄得還細!反正這種事情,還是人看得準些。你就負責把後面大腦開好。」他語氣裡那點嘻哈讓我沒來由地舒了一口氣。
「阿辰你有沒有想過,其實巡查最適合由我們這種無聊又多話的中班做,每次溜一溜就能摸到很多八卦,遇到奇怪的事情你還能當場拍照留證。再說,不急的話,餐車晚些我還能給你拿兩個抄手,絕對比你那加班冷饅頭好吃十倍!」他嘴角一歪,壞笑著加了一句,「不過你要是再失眠,記得跟莫姐請個安撫套餐,畢竟每回鬧鬼也都得她哄回來,我們可沒這福分。」
我乾脆順著他玩笑,微笑著點頭,「嗯,有莫姐在,鬼都敢靠近,晚上餐車氣場都特別足。」我假裝正經回,看著莫靜嵐抬了抬眉。
「有你們這麼損人的嗎?」莫靜嵐把手機一甩,嗔道,「我們餐車又不是陰陽宅,我可不幫你們抓鬼,我只會抓偷懶的人。看你們巡查日誌,要是再亂記,我下次直接匯報站長,讓你們多跑兩班!」
我跟呂偉龍互看一眼,他立刻裝傻,「哎呦,莫姐發威我們哪還敢偷懶,下次多寫三倍都行。我這人除了打更就是愛八卦,數據記錄肯定細細又長長,你一查就知道我專業!」他笑得張揚,那種不怕事的樣子馬上把大家情緒都拉得更活潑。
「阿辰,你今天是不是又是夜班,怎麼看起來更蒼老了?」莫靜嵐語氣裡帶著關切,但又故意用調侃來調節氣氛。
「看你說的,哪有你們忙,好歹我還能有口熱飯吃。不像你們餐車,一個晚上三次進倉補貨,再來一次火警差點沒連晚餐也沒了。」我說得誠懇,其實心裡真沒底,如果再出什麼危機,誰都怕牽連。
「說起來最近火警那晚你還記得嗎,那天餐車開到一半,忽然跳電還以為是小黑貓闖進來,結果是後面技術員拉閘修線,我那會兒心臟差點沒碎。」莫靜嵐一邊回想一邊搖頭,「餐廳裡的學生全跑出來圍觀,真要鬼來也只能一塊陪著,你們兩個倒好,一個巡查一個坐控制室,輕鬆得像過年一樣。」
「那天是我排的班。」呂偉龍馬上表忠心,「其實我們都怕出事,不過還得裝輕鬆。說實話,每次有事故,站務裡的老同事都先問一句,阿辰在不在。這傢伙現在都快成救火隊長了,哪裡有問題就先找他去查一圈。」
「他哪是救火隊長,分明是愛湊熱鬧才對,每次一有點風吹草動就忙著加班到天亮。你知不知道上次你在月台餐廳蹲了多久?做蛋餅時打瞌睡都快掉到鍋子裡去了!」莫靜嵐咕噥,「下次遇到這種事我就讓你先搶著報警,別老等著我給你分蛋糕吃。」
我急忙舉手認錯,「行,我下回一定先報警,還給你帶早餐上班,蛋餅、豆漿、甚至你最愛的奶酪通通包上。說不定有一天,你們還能靠我當食堂負責人,專門管巡查吃什麼。」
我們三人在餐車旁的圓桌圍成一圈,桌上擺著莫靜嵐剛剛煮好的熱湯和幾碗小炒。晚班客流退散,餐車剩下幾個夜歸學生和外送員。呂偉龍和莫靜嵐說笑間,我默默舀了幾口湯,眼神卻歪向自己的手機螢幕。那上頭還有剛才同步的異動報表,關於凌晨那幾分鐘的權限操作異常,還沒能完全解釋。
「你發什麼呆?」莫靜嵐故意用湯勺柄敲了敲我碗邊,瞪圓眼,「阿辰,今天沒有數據、監控和流程,只有好好吃飯。你再走神我下次就讓呂偉龍頂你的位置,我來帶巡查!」
「别别别!我還指著你下班能分一點宵夜呢。」我裝出驚恐,把碗端起來,「等我吃完再回控制室複查報表,我可不能讓你搶風頭。」
這時呂偉龍突然壓低聲音,不懷好意地開了個小玩笑,「其實咱們系統裡又出幽靈賬號的話,也不是什麼壞事。說不定真有那麼一天,咱們巡查遇到幽靈乘客,你還能跟他做朋友!那才叫厲害。」
莫靜嵐哈哈大笑,「什麼幽靈乘客?你該不會還信夜裡月台上會有人穿白衣飄過吧?小心我下次巡夜時藏在垃圾桶裡嚇你!」她一邊笑一邊舉杯跟我們碰了一下,「來,朋友們,敬我們這條神神鬼鬼的支線,每天巡查巡得都要成陰陽師了。」
大家舉杯的律動很自然,那種親暱讓我莫名安心。
「你們說,咱們幾個要不改天組個支線趣事討論會?講講夜裡遇到的各種奇怪事——有乘客半夜睡過站不肯下車,有寂寞老人拉著安拉人生,有員工巡夜時撿到貓咪見財起意……」呂偉龍話剛說完,莫靜嵐「呸」了一聲,「你別再講貓咪了,上次你撿回來讓我養,結果一星期換了三個家。」
「沒辦法,那貓太有性格。」呂偉龍故作無辜地攤手,「比我們控制室還難搞。」
我接著說,「你倒是別誇了,你上回寫巡查報表時還能寫掉一分鐘,月台上的時鐘,但忘了記你的飯盒被哪個阿姨拿走,說明你人倒是細心,就是腦子老跳針。」
「說我啊?那你呢?」他不服氣地反擊,「你上次餐車換班都能把自己的保溫杯鎖進維修箱,一找就是兩天。」
我們互相鬥嘴,現場像是久違的正常生活。其實說到底,這種微小瑣碎、你來我往的問答,比查什麼三千萬、帳戶異常來得真實多了。在這個看似平凡的夜晚,每一次打鬧都讓我們暫時忘掉混亂、失落和無力感。
「說回來,阿辰,你巡查這麼細,真的有遇過什麼稀奇古怪的事嗎?」莫靜嵐語氣忽然認真。
我想了想,斟酌著回答,「遇過,有次半夜車廂裡有個大叔說天空有隻飛天老鼠,追著跑了三節車廂,其實是他自己失眠嚇出幻覺。我只能邊哄邊陪他巡查,最後送到醫務處才安心。」我笑著搖頭,「當時我還拍了短片,可惜沒能留住聲音,每回想起來覺得,這份工作比想像還要有人情味。」
「你有沒有怕過?」莫靜嵐托腮問。
「怕有怕過,真怕的不是夜班,而是你走得太快,回過頭來發現同事都不見了。像我們這行,說英雄沒用,其實是習慣和你們這些熟人一起撐場。」我語氣真誠,不自覺有點溫柔。
「說得太文藝,下次讓你寫報表序言!」呂偉龍立刻調侃。
「別,我可寫不了那麼矯情。」我舉手投降。
「要不我們來個願望大放送吧,各自許個下個月一定要完成的小心願!」莫靜嵐心血來潮地提議,「說正經的,工作要忙,心情也不能太苦。」
「我比較想下個月能睡滿七個小時,最好巡查時別再遇見掃碼阿姨追著賣牛奶。」呂偉龍搞怪。
「我嘛,希望餐車減少督導查崗,每天賣出來的湯都能熱著,不用再為了遲到報告被點名。」莫靜嵐說完自己就笑,聲音裡有對未來的憧憬。
我想了一會,低聲說,「我就希望,過幾天能順利輪到正常早班,不要遇到什麼新的緊急,最好在這裡能和大家一起巡查到明年。我不求多大的晉升,也不求什麼大功,日子別像最近這樣驚波不斷就很足夠。」
這種微小願望說出來很輕,卻有一種潛移默化的溫度。
大家交換著心事,那一瞬,我真切體會到什麼叫城市深夜裡的同溫層。日復一日面對的不是多麼轟轟烈烈的大陰謀,而是這些最樸素的同事情誼和細碎溫柔。
晚餐快結束,莫靜嵐主動把我吃剩下的餃子夾起來,調侃道,「你這人,整天只懂報表,其實也挺細心。今晚這頓算請你,待會你還得補我一杯咖啡,別想賴帳。」
「明知請你麻煩還樂意請,你這不是天生欠我吃虧嗎?」我開心回應。
「哪有,一頓飯的能量頂得上一個班的動力。誰叫你老對我好。」她半開玩笑,卻藏著一絲真心。
這種夜裡的小打小鬧,邊吃邊聊,誰都沒再提火災和異常資料。不知不覺,餐車裡音樂聲隨班表切換拉到了半夜。學生和外送員也陸續離去,餐車只剩我們幾個人。
我收拾桌面,呂偉龍主動去打掃地板,「今天挺好,下次還請你們吃炸雞。」
莫靜嵐指著湯碗,「別忘記洗湯鍋,贈品。下回誰洗得快我就送多一個麵包。」
「成交!」我們齊聲。
快走前,莫靜嵐忽然湊過來,拍了拍我的手,「小心點,最近這段日子,雖然大家都很強,但你挺辛苦,有事記得要說,不要一個人撐著,知道嗎?」
我看著她的臉,說話的語氣,旋即明白那種被人惦記的暖流。「有你們在,什麼風暴都能撐過去。」我輕聲應和。
「你可是咱們控制室的福星,說不定下個月你就升值加薪,直接領導巡查大隊,到時還記得請我吃大餐!」呂偉龍大聲打趣。
「等那天,你們兩個給我包場,想吃什麼隨便點。」我笑著承諾。
夜裡走出車廂外,列車剛好發車離站。站台上燈光閃爍,冷風裡,三個人一起迎著那股點心香和熱呼呼的小炒餘韻,心比剛才安靜多了。
我們並肩走到月台出口,誰都沒有先開口告別。那種在動盪和崗位之間保留下來的沉默,更有分量,像承諾,也像默契。
分別時,莫靜嵐主動朝我揮手,「別太拚啊,記得要多睡。下個月還等你請我們吃宵夜!」
「走好,阿辰,記得時刻在線,有事隨時喊我啊!」呂偉龍加一句,語氣爽朗極了。
我目送他們兩個離開,夜風拂過領口,心裡竟有種久違的輕鬆和安慰。只有在這種日常裡,我才更覺得人與人的溫情勝過一切案情與風暴。也許在下一個日出的班次裡,一切都還會有變,但今晚能走過這趟巡查、吃過這頓熱飯,我就足夠滿足。
記錄下新的一頁日常,我於本章再一次提醒自己:守住平凡,就是守住未來。
第十三關完