路容站在工位旁,手裏端著剛接的熱水。周哲從會議室出來,看到她,笑著走過來。“早啊,若溪。昨晚休息好了嗎?”路容點頭,聲音平穩:“好多了。關於昨晚的規則問題,我想再詳細請教一下,避免以後犯類似錯誤。”周哲拉開旁邊的椅子坐下:“沒問題,你說。”路容放下水杯,手指在桌麵上輕輕敲了敲:“我想瞭解,‘深藍計劃’的資料從接入到最終處理,整個鏈條的許可權是怎麽設計的?比如,誰能看到原始日誌?審計記錄是誰在維護?”周哲想了想,身體微微前傾:“這個啊,核心許可權都在李總那邊。不過……”他壓低聲音,“專案剛開始的時候,其實有一套臨時的本地日誌係統,那時候的許可權分配和操作記錄,我這邊可能還有備份。”
路容的手指在杯壁上停住了。
熱水透過陶瓷杯壁傳來溫度,燙著她的指尖。她聞到茶水淡淡的茉莉花香,混合著辦公室裏空調吹出的、帶著灰塵味道的冷風。遠處傳來印表機工作的嗡嗡聲,規律而單調。
“備份?”她的聲音依然平穩,甚至比剛才更輕了一些,“在哪兒?”
“我工位那台舊測試機。”周哲指了指技術部辦公區角落,“深藍專案剛啟動的時候,我們還沒上安全伺服器,所有日誌都臨時存在本地。後來遷移到正式環境,那台機器就閑置了,一直沒重灌係統。”
路容端起水杯,喝了一口。
熱水滑過喉嚨,帶來灼燒感。
她需要這種灼燒感——來壓製住胸腔裏突然加速的心跳,來冷卻那雙在鏡片後驟然收縮的眼睛。三年前,天啟科技的“燈塔”專案,也是從一套臨時日誌係統開始的。李劍喜歡這種模式:先用本地測試環境跑通流程,記錄所有操作痕跡,等正式上線時再“清理”掉那些不該留下的東西。
同樣的手法。
同樣的幽靈。
“那台機器……”路容放下杯子,陶瓷與桌麵碰撞發出清脆的聲響,“現在還能開機嗎?”
“應該可以。”周哲聳聳肩,“不過裏麵都是些舊資料,可能早就沒用了。而且——”他頓了頓,“那些日誌格式很亂,當時為了趕進度,連時間戳的寫法都沒統一,有的用橫杠,有的用斜杠,有的連時區都沒標。”
路容的呼吸在那一瞬間停滯了半秒。
橫杠。
斜杠。
時區。
十七處細節。
她昨晚在螢幕前數過的那些細節,那些烙印在李劍技術習慣裏的指紋——它們不是偶然,不是巧合,是這個人十年如一日的編碼風格,是他操縱資料時留下的、無法抹去的筆跡。
“聽起來確實很亂。”路容說,聲音裏帶著恰到好處的、新人工程師對技術債務的無奈,“不過如果能看看當時的許可權分配邏輯,也許能幫我理解現在的設計思路。我昨晚設計的過濾規則,可能就是沒吃透資料流轉的完整鏈條。”
周哲看著她,眼神裏閃過一絲欣賞。
“你這種態度很好。”他說,“很多新人遇到問題,第一反應是推卸責任,或者急著掩蓋。你能主動複盤,還想深挖原因,這很難得。”
路容低下頭,整理桌上的檔案。
紙張在她手指間發出沙沙的摩擦聲。她能感覺到周哲的目光落在她身上,溫暖而真誠。這種溫暖像針,紮在她用謊言構築的盔甲上,留下細密的、看不見的孔洞。
“昨晚的事,我確實考慮不周。”她抬起頭,目光直視周哲,“我太想證明自己了,想設計一個足夠嚴密的規則,結果反而忽略了邊界情況。給你添麻煩了,對不起。”
這句話說得很誠懇。
誠懇到連她自己都差點相信——相信她隻是一個急於表現的新人,相信她的愧疚隻源於技術失誤,相信她此刻的冷靜隻是專業素養的體現。
而不是因為,她剛剛確認了仇人就在眼前。
而不是因為,她胸腔裏那團複仇的火焰,已經燒得她五髒六腑都在疼。
“別這麽說。”周哲擺擺手,“技術問題難免。而且你昨晚的反應很快,排查思路也很清晰,這已經比很多人強了。”他站起身,“這樣吧,我上午有個會,下午兩點之後有空。如果你真想看那些舊日誌,我可以幫你把那台機器找出來。”
“謝謝。”路容說。
兩個字,說得輕而穩。
周哲笑了笑,轉身離開。他的腳步聲在走廊裏漸行漸遠,最後消失在電梯間的方向。
路容坐在工位上,沒有動。
她看著電腦螢幕,螢幕上是公司內部係統的登入界麵,藍色的背景上印著星耀集團的logo——一個抽象的、由無數光點組成的星環。那些光點在她瞳孔裏旋轉,旋轉,最後凝固成三年前天啟科技會議室裏,李劍那張微笑著的臉。
“路容,這個資料包是你處理的吧?”
“時間戳對不上。”
“加密金鑰的流轉記錄裏,有你的操作痕跡。”
“董事會需要一個解釋。”
那些話語,那些眼神,那些在會議室慘白燈光下翻動的檔案——所有畫麵在這一刻全部湧迴來,清晰得像是昨天剛發生。路容的手指握緊了滑鼠,塑料外殼在她掌心留下深深的壓痕。
她深吸一口氣。
然後鬆開手,開啟郵箱。
收件箱裏躺著十幾封未讀郵件:專案進度匯報、部門例會通知、資料質量周報。她一封封點開,閱讀,迴複。迴複的語氣專業而克製,用詞精準,標點規範。她甚至在其中一封關於“深藍計劃”資料清洗規範的修訂郵件裏,提出了兩條具體的修改建議。
鍵盤敲擊聲在工位上規律地響起。
噠,噠,噠。
像某種心跳的替代品。
上午十點,王總監從辦公室出來,高跟鞋敲擊地麵的聲音由遠及近。路容沒有抬頭,繼續處理手頭的報表。她能感覺到那道目光在她身上停留了幾秒——審視的,評估的,帶著慣常的挑剔。
“若溪。”王總監的聲音在頭頂響起。
路容抬起頭。
王總監站在她工位旁,手裏拿著一份列印出來的檔案。她今天穿了深灰色的套裝,頭發一絲不苟地盤在腦後,嘴唇塗著正紅色的口紅。那紅色在辦公室慘白的燈光下,顯得格外刺眼。
“昨晚的告警事件,周哲已經寫報告了。”王總監把檔案放在路容桌上,“報告裏提到,是你設計的過濾規則觸發了異常。雖然問題解決了,但這種事以後最好避免。‘深藍計劃’是集團的重點專案,任何資料波動都會引起高層關注。”
路容看著那份報告。
紙張很白,上麵的黑色宋體字整齊排列。她能聞到油墨的味道,混合著王總監身上傳來的、濃鬱的香水味——那是某種昂貴的商業香,前調是柑橘,中調是茉莉,後調是檀木。香氣太濃了,濃到幾乎蓋過了辦公室裏空調的灰塵味。
“我明白。”路容說,“我已經在複盤了,下午會跟周工進一步學習資料流轉的完整機製,確保不再犯類似錯誤。”
王總監盯著她看了幾秒。
那雙塗著精緻眼線的眼睛裏,有什麽東西在閃爍——是懷疑?是試探?還是單純的、對下屬的例行敲打?
“學習是好事。”王總監最終說,聲音裏聽不出情緒,“但也要注意分寸。周哲手頭有更重要的工作,不要占用他太多時間。”
“好的。”
王總監轉身離開。
高跟鞋的聲音再次響起,噠,噠,噠,最後消失在總監辦公室的門後。路容看著那扇關上的磨砂玻璃門,門後隱約能看到王總監坐迴辦公桌前的模糊身影。
她收迴目光,繼續工作。
報表,郵件,會議紀要。
一項項處理,一件件完成。
中午十二點,辦公室裏的同事陸續起身去吃飯。路容沒有動,她點了一份外賣,在工位上吃完。塑料餐盒裏是簡單的番茄炒蛋和米飯,味道寡淡,但她吃得很慢,每一口都仔細咀嚼,像在進行某種儀式。
飯後,她去了洗手間。
洗手間的鏡子很大,很亮,照出她蒼白的臉。她開啟水龍頭,冷水嘩嘩流下。她把手伸到水流下,讓冰冷的水衝刷手指,衝走指尖殘留的、來自餐盒的油膩感。
鏡子裏的人看著她。
黑框眼鏡,馬尾辮,白襯衫。
一張完全陌生的臉。
路容盯著那張臉,看了很久。然後她伸手,調整了一下眼鏡的位置。鏡片後的眼睛,依然平靜,依然專業,看不出任何情緒的波瀾。
下午一點五十分。
路容迴到工位,開啟和周哲的聊天視窗。
“周工,下午方便嗎?想請教一下資料許可權的問題。”
訊息發出去,不到一分鍾,周哲迴複了:“剛開完會。你來我工位吧,那台舊機器我找出來了。”
路容站起身。
她的心跳在這一刻突然加快了——不是緊張,不是恐懼,是一種更複雜的東西:期待,警惕,還有那種在黑暗中摸索了太久、終於看到一線光時,本能產生的戰栗。
她穿過辦公區。
技術部在樓層的另一頭,需要經過一條長長的走廊。走廊兩側是透明的玻璃隔斷,裏麵是各個專案組的辦公區。路容能聽到鍵盤敲擊聲,電話鈴聲,偶爾爆發的討論聲。空氣裏彌漫著咖啡的味道,還有某種電子產品長時間執行後產生的、淡淡的塑料焦味。
她走到技術部門口。
門開著,裏麵比外麵嘈雜一些。十幾張工位排列整齊,每張桌子上都擺著至少兩台顯示器。螢幕上滾動著程式碼,圖表,監控資料。周哲坐在靠窗的位置,正彎腰在一堆雜物裏翻找什麽。
“周工。”路容走過去。
周哲直起身,手裏抱著一台黑色的台式機主機。機器很舊,外殼上積了一層薄灰。他把主機放在桌上,灰塵在空氣中揚起,在午後的陽光裏形成細小的光柱。
“就這台。”周哲拍了拍機箱,發出沉悶的響聲,“放了快一年了,不知道還能不能啟動。”
路容看著那台機器。
黑色的金屬外殼,側麵貼著星耀集團的資產標簽,標簽上的條形碼已經有些模糊。機箱頂部的散熱孔裏,能看到積攢的灰塵,像某種黑色的絨毛。
“電源線應該還在。”周哲蹲下身,在桌子底下的收納箱裏翻找。路容聽到塑料碰撞的聲音,還有紙張摩擦的沙沙聲。幾秒鍾後,周哲抽出一根黑色的電源線,線身上也蒙著灰。
他把電源線插上。
按下開機鍵。
機器發出一陣低沉的嗡鳴——風扇開始轉動,灰塵從散熱孔裏被吹出來,在空氣中飄散。路容聞到一股陳舊電子產品的味道,混合著灰塵和塑料老化後的微酸氣息。
顯示器亮了。
藍色的啟動界麵,windows係統的標誌在螢幕上旋轉。進度條緩慢移動,1%,2%,3%……路容站在周哲身後,看著那個進度條。她的手指在身側微微蜷縮,指甲陷進掌心,留下淺淺的月牙形痕跡。
“看來還能用。”周哲說,聲音裏帶著點意外,“我以為硬碟早就壞了。”
係統啟動完成。
桌麵很幹淨,隻有幾個基本的圖示:我的電腦,迴收站,瀏覽器。背景是windows預設的藍天白雲圖。周哲移動滑鼠,點開“我的電腦”,在d盤裏找到一個名為“深藍_專案歸檔”的資料夾。
“應該在這裏麵。”他說。
路容俯下身。
她的肩膀幾乎捱到周哲的手臂。她能感覺到從他身上傳來的溫度,還有那種幹淨的、洗衣液混合著淡淡汗水的味道。螢幕的光映在她臉上,映在她鏡片上,反射出冷白的光斑。
周哲點開資料夾。
裏麵是幾十個子資料夾,命名雜亂無章:“測試日誌_初版”、“許可權配置_備份”、“操作記錄_臨時”、“資料對映表_廢棄”……路容的目光快速掃過那些名字,最後停在一個叫“初始許可權日誌_本地備份”的資料夾上。
“這個。”她說。
聲音很輕,但很清晰。
周哲點進去。
資料夾裏是幾十個文字檔案,命名格式是“perm_log_yyyymmdd.txt”。最早的日期是十一個月前,正是“深藍計劃”立項的時間。周哲隨機點開一個檔案,螢幕上瞬間彈出密密麻麻的日誌記錄。
路容的瞳孔收縮了。
那些日誌的格式——
時間戳:[2024-04-1214:23:11]
操作者:lj(李劍)
動作:建立資料通道
引數:source_ip=198.51.100.0/24,encrypt_method=aes-256-gcm,key_rotation=7d
審批狀態:已通過(電子簽名:lj_zhao)
時間戳:[2024-04-1214:25:43]
操作者:lj
動作:配置訪問許可權
引數:user_group=core_team,ess_level=full,audit_g=true
審批狀態:已通過(電子簽名:lj_zhao)
橫杠分隔的日期。
方括號包裹的時間戳。
操作者縮寫。
引數列表用等號連線。
審批狀態括號裏的電子簽名。
每一個細節,都和昨晚她在係統日誌裏看到的格式一致。每一個細節,都和三年前天啟科技“燈塔”專案的日誌格式一致。這不是巧合,不是偶然,這是同一個人用同一套思維模式、同一套編碼習慣留下的痕跡。
路容的呼吸變得緩慢而深沉。
她盯著螢幕,眼睛一眨不眨。那些文字在她瞳孔裏跳動,重組,最後拚湊出一幅完整的畫麵:李劍坐在電腦前,敲擊鍵盤,配置許可權,建立資料通道。他的手指在鍵盤上移動,他的思維在程式碼裏流淌,他的習慣在每一個標點、每一個空格裏留下烙印。
而此刻,這些烙印就在她眼前。
就在這台積滿灰塵的舊機器裏。
“這些日誌……”路容開口,聲音依然平穩,但仔細聽能察覺到一絲極輕微的顫抖,“看起來許可權很高。操作者都是lj——是李總嗎?”
“對。”周哲點頭,“專案初期的核心配置都是李總親自做的。他說這些涉及資料安全,不能假手於人。”
“那審批裏的‘zhao’是?”
“趙律師。”周哲說,“集團法務部的負責人。所有涉及資料出口和加密配置的操作,都需要李總和趙律師的雙重電子簽名。這是合規要求。”
路容的手指在桌沿上輕輕敲了敲。
敲擊的節奏很慢,一下,一下,像某種思考時的無意識動作。但實際上,她在用這個動作來分散注意力——分散那股從胸腔深處湧上來的、幾乎要衝破喉嚨的冷笑。
合規要求。
雙重簽名。
多麽完美的設計。用合規的外衣,包裹非法的核心。用雙重審批的流程,製造“集體決策”的假象。等東窗事發時,每個人都可以說:“我隻是按流程簽字,具體內容我不清楚。”
三年前,李劍用的也是這一套。
隻不過那時候,他需要陷害的人是她。所以他在日誌裏偽造了她的操作痕跡,在審批流程裏偷換了她的電子簽名,在資料流轉的關鍵節點上,埋下了足以讓她身敗名裂的“證據”。
而現在,他不需要陷害誰了。
他隻需要保護自己。
所以這套流程變得更嚴密,更“合規”,更無懈可擊。
“那這些日誌現在還有用嗎?”路容問,“既然已經遷移到安全伺服器了,為什麽還要留著本地備份?”
周哲聳聳肩。
“按理說應該銷毀。但當時遷移的時候,安全團隊說要做一次完整性校驗,需要對比本地和伺服器兩邊的日誌,確保沒有遺漏。校驗做完之後,這台機器就閑置了,一直沒人來處理。”他頓了頓,“其實我也想過重灌係統,但總怕萬一哪天需要查什麽舊資料……你知道的,技術債嘛,能拖就拖。”
他說這話時,語氣裏帶著點自嘲。
路容聽出了那種自嘲——那是每個工程師都有的、對技術債務的無奈。但她更聽出了這句話裏潛藏的機會:這台機器還在,資料還在,那些記錄了專案初期所有操作的原始日誌,還在。
“那審計呢?”她繼續問,聲音裏帶著恰到好處的好奇,“這些操作被記錄之後,誰來審計?審計日誌又存在哪兒?”
周哲轉過身,看向她。
午後的陽光從窗外斜進來,照在他臉上,照出他眼睛裏那種認真的、願意分享知識的神情。
“審計係統是獨立的。”他說,“所有核心操作——包括資料訪問、許可權變更、加密配置——都會被實時推送到一個專門的審計伺服器。那台伺服器不在我們部門,在集團安全中心,物理隔離,訪問許可權極高。”
“多高?”
“至少副總裁級別。”周哲說,“而且需要動態令牌和生物識別雙重認證。李總可以看,趙律師可以看,董事會授權的審計委員會可以看。我們這種級別,連伺服器ip地址都不知道。”
路容點點頭。
她的表情很平靜,像隻是在學習一個普通的技術架構。但她的腦子裏,已經在快速構建一幅地圖:核心資料需要李劍和趙律師的雙重審批,操作記錄被獨立審計係統捕獲,審計日誌的檢視許可權極高,普通員工無法接觸。
那麽,她要怎麽拿到證據?
從審計伺服器直接突破?不可能,物理隔離,許可權極高。
從審批流程入手?需要同時破解李劍和趙律師的電子簽名。
從……
她的目光,重新落迴螢幕上。
落迴那些本地備份的日誌檔案上。
“其實最原始的許可權分配和操作日誌,在專案初期有一份本地備份,就在我這邊一台測試機的硬碟裏,後來統一遷移到安全伺服器了,那台機器還沒重灌,不知道還有沒有……”
周哲的聲音在耳邊響起。
路容的心跳,在這一刻驟然加速。
咚。
咚。
咚。
像某種沉重的鼓點,敲擊在她的胸腔裏,敲擊在她的耳膜上。她能感覺到血液在血管裏奔湧,能感覺到指尖傳來的、細微的麻痹感。但她臉上的表情,依然平靜。
她甚至還能繼續提問。
“那如果……”她頓了頓,像是在斟酌用詞,“如果我想學習完整的許可權設計思路,是不是看這些本地備份就夠了?畢竟初期的設計邏輯,應該是最核心的。”
周哲想了想。
“理論上是的。”他說,“初期的設計決定了整個架構的走向。不過——”他看向路容,眼神裏帶著點關切,“你也不用太鑽牛角尖。昨晚的事已經過去了,李總那邊也沒再追問。你現在最重要的是把日常工作做好,慢慢積累經驗。”
路容低下頭。
“我知道。”她說,“但我還是想弄明白。我不想再犯同樣的錯誤。”
這句話說得很輕,但很堅定。
周哲看著她,看了幾秒。然後他笑了,那笑容裏有種無奈的、但又帶著欣賞的意味。
“行吧。”他說,“那這樣,這些日誌檔案你可以拷貝一份迴去研究。但記住——”他的表情嚴肅了一些,“絕對不能外傳,絕對不能放在任何聯網的裝置上。這是公司機密,出了事我們都擔不起責任。”
“我明白。”路容說。
周哲從抽屜裏拿出一個空白的u盤,插到主機上。他開啟資料夾,選中所有日誌檔案,開始拷貝。進度條在螢幕上緩慢移動,檔案數量:47個,總大小:3.2gb。
路容站在旁邊,看著那個進度條。
1%,5%,10%……
每一個百分點的跳動,都像一次心跳。她的目光緊緊鎖定螢幕,鎖定那些正在被複製的檔名。那些名字在她瞳孔裏閃爍,像某種密碼,像某種鑰匙,像某種……複仇的武器。
30%,50%,70%……
辦公室裏的嘈雜聲在這一刻變得遙遠。她能聽到的,隻有主機風扇轉動的嗡鳴,還有自己胸腔裏那沉重的心跳。她的手指在身側蜷縮,指甲再次陷進掌心。這一次,她用了力,掌心傳來清晰的刺痛。
刺痛讓她清醒。
90%,95%,99%……
“好了。”周哲說。
進度條消失,拷貝完成。他拔出u盤,遞給路容。黑色的塑料外殼,在她掌心留下冰涼的觸感。
“拿去吧。”周哲說,“但記住我說的話。”
路容握緊u盤。
塑料外殼的邊緣,硌著她的掌心。
“謝謝。”她說。
兩個字,說得輕而穩。
就像她胸腔裏那團燃燒的火焰,已經被一層厚厚的冰,徹底封存。