晨光從會議室的落地窗斜射而來,在橡木長桌上切出一道明暗分明的界限。蘇硯坐在光影交界處,左手邊的膝上型電腦螢幕上,程式碼如瀑布般滾動;右手邊的骨瓷咖啡杯裏,美式咖啡已經涼透了,表麵凝著一層暗淡的油膜。
距離上次庭審已經過去三天。
這七十二個小時裏,蘇硯睡了不到十小時。核心演演算法二次泄露的餘波像一顆投入湖心的石子,漣漪正一圈圈擴散——原本預定下週舉行的a輪融資路演被三家投資方聯名要求推遲,兩名核心研發工程師提交了辭職報告,而最讓他如芒在背的,是公司內網日誌裏那些詭異的訪問記錄。
記錄顯示,在泄露發生前的四十八小時內,有十七次非授權訪問試圖調取“天樞”係統的底層架構。訪問ip來自三個不同的辦公區域,但追蹤到最後,都指向同一台裝置——技術總監周明遠的個人工作站。
蘇硯盯著螢幕上的ip地址序列,指尖在觸控板上輕輕滑動。遊標停在那串數字上:192.168.3.27。
周明遠的辦公室在三樓,靠窗,窗外正對著園區的人工湖。上週五下午,蘇硯還在那裏和他討論過“天樞”係統的迭代方案。周明遠穿著那件洗得發白的格子襯衫,眼鏡片後的眼睛因為連續熬夜布滿血絲,但談到技術細節時依然閃閃發亮。
“蘇總,這套動態加密演演算法如果能落地,至少能領先行業三年。”他說這話時,手指在草稿紙上飛快地演算,字跡潦草得像醫生的處方。
可現在,同一個人的工作站,成了泄露的源頭。
蘇硯端起咖啡杯,抿了一口。冷掉的咖啡又苦又澀,像吞下一口鐵鏽。他放下杯子,手指在鍵盤上敲下一行命令:
sudogrep-r"tianshu_core"/var/log/auth.log
迴車。螢幕閃爍,跳出數十行登入記錄。他的目光快速掃過,最後停在其中的一條:
oct1203:14:22serversshd[28743]:eptedpasswordforzhoumingyuanfrom192.168.1.105port58123ssh2
淩晨三點十四分。周明遠在那個時間登入了伺服器。
但問題在於——根據門禁記錄,周明遠那天晚上十點就離開了公司。而ip地址192.168.1.105,是法務部的公用印表機。
蘇硯靠進椅背,雙手交叉抵在下巴上。窗外,園區裏已經有早到的員工在走動,三三兩兩,手裏拎著早餐袋,步履匆匆。一切都和往常一樣,但在這平靜的表象下,有什麽東西正在腐爛。
他拿起手機,點開通訊錄,手指在“陸時衍”三個字上懸停了片刻,最終還是沒有按下去。
三天前的停車場,他們達成了一個脆弱的共識:資訊交換,有限合作。陸時衍需要他提供的商業資料庫許可權,用來追查原告方證據檔案的時間戳漏洞;而他,需要陸時衍在法律程式上的牽製,為內部調查爭取時間。
很公平的交易。就像兩個在懸崖邊行走的人,各自握住繩子的一端,誰鬆手,兩個人都會掉下去。
但蘇硯不喜歡這種被綁在一起的感覺。尤其是對方還是個律師——一個靠玩弄規則和漏洞為生的人。
手機震動了一下,是一條新訊息。發件人是陌生號碼,內容隻有一行字:
“小心身邊人。——z”
蘇硯盯著那行字,瞳孔微微收縮。z,是周明遠姓氏的首字母。但這條簡訊來得太巧,巧得像一個精心佈置的陷阱。
他按下刪除鍵,但手指在確認鍵上停住了。沉思幾秒後,他截圖,將圖片儲存到加密資料夾,然後才刪除簡訊。
幾乎同時,會議室的門被敲響了。
“進。”
推門進來的是行政總監林薇,三十出頭,短發,西裝裙,手裏抱著一個資料夾,臉色不太好看。
“蘇總,剛收到的。”她把資料夾放在桌上,翻開第一頁。
是封律師函。抬頭是“正清律師事務所”,落款簽著“陸時衍”三個字。內容措辭嚴謹,邏輯縝密,以“涉嫌不正當競爭及技術侵權”為由,要求蘇硯的公司在下週三之前,提供“天樞”係統的完整技術檔案以供覈查。
蘇硯的嘴角勾起一絲冷笑。動作真快。停車場才說過“合作”,轉頭就發律師函,典型的律師做派——永遠把主動權握在自己手裏。
“要迴複嗎?”林薇問。
“迴。”蘇硯合上資料夾,“讓法務部按正常流程處理,該提供的資料提供,不該給的,一個字都不準多。”
“明白。”林薇頓了頓,壓低聲音,“還有件事……周總監今天沒來上班,電話關機,家裏也沒人。”
蘇硯抬起眼:“什麽時候發現的?”
“早上打卡的時候他沒到,行政打電話,關機。我讓小王去他家看了看,敲門沒人應,鄰居說昨天下午就沒見他迴來。”
“報警了嗎?”
“還沒有,想先跟您匯報。”
蘇硯沉默了幾秒。周明遠失蹤了,在成為頭號嫌疑人的二十四小時後。這太像是畏罪潛逃,但也正因為太像,反而顯得可疑。
“先別報警。”他說,“聯係一下他老家的親人,看看有沒有訊息。對外就說他請了年假,出去散心了。”
“可是……”
“按我說的做。”蘇硯的語氣很平靜,但有種不容置疑的力度。
林薇點點頭,抱著資料夾退了出去。門關上後,蘇硯重新看向電腦螢幕。那行淩晨三點的登入記錄,在晨光中泛著冷冰冰的光。
他忽然想起陸時衍在停車場說過的話:“有時候,最明顯的線索,往往是為了掩蓋真正的線索。”
如果周明遠不是內鬼,那會是誰?誰有能力偽造他的登入記錄?誰有動機在這個節骨眼上讓他消失?
還有那條簡訊——如果真是周明遠發的,他為什麽要用這麽隱晦的方式示警?如果他已經暴露,為什麽不直接說出來?
問題像一團亂麻,越理越亂。蘇硯揉了揉眉心,強迫自己冷靜下來。他需要更多的資訊,需要跳出眼前的局麵,從更高的維度看問題。
而能提供這個維度的人……
手機又震動了。這次是來電,螢幕上跳動著“陸時衍”三個字。
蘇硯盯著那個名字看了三秒,接起電話,沒說話。
“律師函收到了?”陸時衍的聲音從聽筒裏傳來,帶著清晨特有的清冽質感,像冰鎮過的檸檬水。
“收到了。”蘇硯說,“效率很高。”
“例行公事而已。”陸時衍頓了頓,“不過,我建議你仔細看看附件第三頁的補充說明。”
蘇硯重新翻開資料夾,找到那份律師函,快速翻到第三頁。那是一段關於“證據保全程式”的說明,措辭嚴謹,但蘇硯很快看出了門道——按照這個程式,原告方需要提供他們聲稱被侵權的“原始技術檔案”,而這份檔案的提交時限,是下週一。
比律師函要求的“下週三”提前了兩天。
“你故意的。”蘇硯說。
“我隻是在規則允許的範圍內,給對手製造一點小小的麻煩。”陸時衍的語氣裏聽不出情緒,“如果他們的證據有問題,這兩天的提前量,足夠讓他們露出馬腳。”
蘇硯沒接話。他快速在腦子裏計算:今天週四,到下週一還有四天。四天時間,如果操作得當,確實能打對方一個措手不及。但前提是,陸時衍真的在幫他,而不是在玩什麽更複雜的遊戲。
“為什麽要這麽做?”蘇硯問。
電話那頭沉默了片刻。背景音裏傳來紙張翻動的聲音,還有遠處模糊的汽車鳴笛聲。陸時衍應該是在辦公室,或者車裏。
“因為我不喜歡輸。”他說,“尤其不喜歡因為對手作弊而輸。”
“很正義的理由。”
“隨你怎麽想。”陸時衍的聲音裏終於有了一絲波動,像是冰麵下的暗流,“另外,有件事你可能需要知道——我查了原告方那家公司的股權結構,最大的外部投資人,是你導師控股的離岸基金。”
蘇硯的手指瞬間收緊,骨節泛白。
導師。又是導師。
十年前父親公司破產的案子,導師是對方的代理律師。十年後的今天,導師又成了對手的幕後金主。這世上沒有那麽多巧合,隻有精心設計的局。
“訊息來源可靠嗎?”蘇硯聽到自己的聲音,冷靜得不像話。
“我讓助理調了開曼群島的公開登記記錄,雖然做了多層巢狀,但順藤摸瓜,最後指向的是你導師的名字。”陸時衍頓了頓,“而且,不隻是這一家公司。過去五年裏,至少有四起針對科技公司的專利訴訟,背後都有他的影子。”
蘇硯閉上眼睛。腦海裏浮現出導師的臉——那張總是掛著溫和笑容的臉,說話慢條斯理,喜歡引用古籍,看起來像個與世無爭的學者。可就是這樣一個人,在過去的十年裏,像一隻蜘蛛,在暗處編織著一張巨大的網。
而他和父親,都曾是網裏的獵物。
“蘇硯?”陸時衍的聲音把他拉迴現實。
“我在聽。”
“這件事比你想象的要複雜。我建議……”陸時衍的話說到一半,突然被打斷了。聽筒裏傳來另一個女人的聲音,很模糊,但蘇硯聽出了是誰——薛紫英。
“時衍,這份檔案需要你簽字。”
“放桌上吧,我一會兒看。”
“可是客戶在等了……”
“我說了,一會兒看。”
電話被結束通話了。忙音嘟嘟地響著,在安靜的會議室裏格外刺耳。蘇硯放下手機,盯著螢幕上那串ip地址,突然笑了。
笑聲很輕,帶著自嘲的味道。
他以為自己在下棋,結果發現自己隻是棋盤上的一顆棋子。陸時衍以為自己在釣魚,結果魚餌後麵還藏著更大的鉤。而導師,那個坐在陰影裏的人,正看著他們在這張棋盤上廝殺,像在看一出精心編排的戲。
手機螢幕又亮了。這次是封郵件,發件人正是周明遠的公司郵箱。標題是“緊急:係統漏洞說明”,傳送時間顯示是今天淩晨四點十七分。
蘇硯點開郵件。內容很短:
“蘇總,天樞係統的動態加密演演算法存在一個邏輯漏洞,具體說明見附件。我懷疑這個漏洞已經被外部利用,建議立即停用相關模組。另外,我可能要離開一段時間,不必找我。——周明遠”
附件是一個加密的壓縮包,密碼是蘇硯的生日。
蘇硯的手指在觸控板上懸停了幾秒,最終還是沒有點下載。他拿起內線電話,撥給技術部:“我是蘇硯,從現在起,封鎖周明遠的所有係統許可權,包括郵箱。另外,通知安全團隊,立即對天樞係統的動態加密模組做全麵檢查,在檢查完成前,該模組暫停使用。”
掛掉電話,他重新看向那封郵件。傳送時間是淩晨四點十七分,而周明遠的家門禁記錄顯示,他最後一次進門是昨天下午六點零三分。
如果他已經“離開”,這封郵件是從哪裏發的?
蘇硯調出郵件頭資訊,追蹤ip地址。結果跳出來時,他的瞳孔微微收縮——ip歸屬地顯示:香港,尖沙咀,彌敦道132號。
那是家二十四小時營業的網咖。
他拿起手機,翻到通訊錄,找到一個備注為“老k”的號碼,撥了過去。電話響了三聲後被接起,那頭傳來一個慵懶的男聲,背景音很嘈雜,有遊戲音效和年輕人的笑罵聲。
“硯哥?稀客啊,這麽早找我?”
“幫我查個人。”蘇硯說,“昨天晚上到今天淩晨,彌敦道132號那家網咖的監控,找一個叫周明遠的男人,三十五六歲,戴眼鏡,穿格子襯衫。”
“什麽時候要?”
“現在。”
電話那頭傳來敲鍵盤的聲音:“行,我讓那邊的兄弟看看。不過硯哥,這人犯什麽事了?需要……”
“別多問。”蘇硯打斷他,“查到後把監控片段發我,不要留備份。”
“明白。”
掛掉電話,蘇硯靠在椅背上,長長地吐出一口氣。窗外的陽光又升高了些,明暗分界線從桌麵上移到了牆壁上。會議室裏很安靜,隻有電腦風扇運轉的嗡嗡聲。
他忽然想起父親破產前的那個下午。也是這樣一個陽光很好的秋日,父親坐在書房裏,看著窗外院子裏那棵老銀杏樹,樹葉金黃金黃的,像掛了一樹的銅錢。
“小硯,”父親說,聲音很輕,像在自言自語,“你知道做生意最怕什麽嗎?”
十歲的蘇硯搖搖頭。
“最怕的不是虧錢,是看不清對手。”父親轉過身,看著他,眼睛裏有種他當時看不懂的情緒,“有些人,表麵上對你笑,給你遞茶,誇你聰明。可轉過身,就能把你推進井裏,還在井口蓋上石頭。”
那時的蘇硯聽不懂。現在他懂了。
手機震動,是老k發來的訊息:“監控找到了,發你郵箱。人確實是昨晚十一點進的網咖,一個人,背著個雙肩包。淩晨四點十分離開的,走的時候很匆忙,差點撞到門。需要繼續追嗎?”
蘇硯迴複:“不用了,謝了。”
他點開郵箱,下載附件。視訊很短,隻有幾個片段,但足夠清晰。畫麵裏,周明遠確實坐在網咖的角落裏,麵前擺著一台電腦,螢幕上閃爍著程式碼界麵。他看起來很疲憊,眼睛紅腫,頭發亂糟糟的,格子襯衫的領口皺成一團。
在最後一段視訊裏,他站起身,從揹包裏掏出錢包付錢。就在他拉開錢包拉鏈的瞬間,蘇硯按下了暫停鍵。
錢包的內層,夾著一張照片。雖然畫麵模糊,但能看出是個女人,長發,笑得很溫柔。照片的一角,露出半個模糊的簽名:
“給明遠,永遠愛你的——小雅”
小雅。周明遠的妻子,三年前因病去世。葬禮上,周明遠抱著骨灰盒,一滴眼淚都沒流,隻是死死咬著嘴唇,咬出了血。
蘇硯關掉視訊,靠在椅背上,閉上了眼睛。
如果周明遠是內鬼,為什麽要在逃亡前發郵件示警?如果他想掩蓋什麽,為什麽要把漏洞主動暴露出來?還有那張照片——一個心懷不軌的人,會在逃亡時還帶著亡妻的照片嗎?
問題又繞了迴來,但這一次,蘇硯有了不同的思路。
他睜開眼,重新看向電腦螢幕。那封來自周明遠的郵件還開著,附件下載按鈕在遊標下微微閃爍。
也許,他應該相信一次直覺。
也許,這封郵件不是陷阱,而是求救訊號。
蘇硯移動遊標,點選下載。壓縮包很快下載完成,他輸入自己的生日,解壓。裏麵隻有一個文字檔案,檔名是“漏洞說明.txt”。
他點開檔案。
沒有長篇大論的技術說明,隻有短短幾行字:
“漏洞是假的,但追蹤程式是真的。誰下載了這個檔案,誰就是內鬼。蘇總,小心法務部的印表機。——周明遠”
蘇硯盯著那幾行字,後背突然冒出一層冷汗。
他猛地抬頭,看向會議室的門。門關著,門外是正常工作的辦公室,鍵盤敲擊聲、電話鈴聲、同事的交談聲,一切都和往常一樣。
但有什麽東西,已經不一樣了。
他拿起手機,撥通陸時衍的號碼。這次,電話隻響了一聲就被接起。
“我需要你幫忙。”蘇硯說,聲音很急,“馬上。”