林昊在金龍集團提供的安全辦公室裡度過了第一個不眠之夜。
房間不大,大約十坪,但配備了最新的網路設備——三台二十七吋的顯示器並排擺放,連接著一台高性能工作站;旁邊還有一台獨立的筆記型電腦,用於運行隔離環境中的分析工具。牆上掛著一面白板,已經被他畫滿了網路拓撲圖和攻擊路徑的分析草圖。窗外的金邊夜景燈火輝煌,但他完全沒有心思欣賞。空調的低頻嗡嗡聲和顯示器散熱風扇的微弱噪音是他唯一的陪伴。
他面前的螢幕上,一串串十六進制代碼正在快速滾動。Wireshark的封包分析器已經連續運行了六個小時,捕捉到了超過四百萬個網路封包。他喝了一口已經涼透的咖啡,眼睛一刻也沒有離開螢幕。咖啡的苦澀在舌尖上蔓延,但他已經麻木了——這是他今天喝的第六杯咖啡,每一杯都是為了對抗不斷襲來的疲倦。
攻擊者的手法確實高明。他們使用了多層跳板——從一個被入侵的越南郵件伺服器出發,經過新加坡的一台VPS,再到荷蘭的中繼節點,最後才抵達金龍集團的內部網路。每一層都使用了不同的加密協議,像是俄羅斯套娃一樣層層包裹,讓追踪變得極其困難。林昊追踪這些跳板花了將近四個小時,每一步都像是在迷宮中尋找出口,好不容易突破了一層,又遇到了下一層。
但林昊注意到了一個不尋常的細節。
在所有這些複雜的跳板背後,攻擊者犯了一個很小的錯誤——他們的其中一個封包攜帶了一段殘留的元數據,指向了一個在金邊本地註冊的公有雲服務器。這個IP地址的歸屬不是金龍集團,也不是任何已知的柬埔寨企業。這個錯誤非常微小,如果不是林昊多年來訓練出來的敏銳直覺,他很可能也會錯過它。
林昊的手指在鍵盤上飛舞。他啟動了Nmap掃描,對那個可疑IP進行了深度探測。端口掃描結果顯示,這台服務器開放了三個端口:80(HTTP)、443(HTTPS)和一個非標準的3307端口。3307是MySQL的常用替代端口——這意味著這台服務器很可能是一個資料庫節點。這個發現讓林昊的精神為之一振——如果那是一個資料庫服務器,裡面很可能儲存著攻擊者的關鍵資訊。
他順著這條線索深入調查。利用Shodan的搜尋引擎,他查詢了這個IP的歷史記錄——過去三個月中,這台服務器曾經多次與柬埔寨本地的一家小型ISP有過通訊。而這家ISP的客戶列表中,赫然出現了一個讓他眉頭緊鎖的名字:金色未來小額信貸公司。
「金色未來……」林昊低聲重複著這個名字。他感覺到有一條看不見的線正在將這些碎片串聯起來,但他還不確定那條線的盡頭連接著什麼。
他暫停了分析工作,打開瀏覽器搜索了這個名字。金色未來是一家註冊在柬埔寨商務部的合法微型金融機構,主要業務是為金邊郊區的貧困家庭提供小額貸款。創始人是一個名叫林阿蓮的柬埔寨華裔女子,她在三年前辭去了金邊一家商業銀行的高管職位,創立了這家NGO性質的信貸公司。
網頁上的照片中,阿蓮看起來大約三十出頭,穿著一件白色的傳統高棉上衣,笑容溫暖而堅定。她的簡介中提到,她來自柬埔寨馬德望省的一個貧困家庭,靠著獎學金完成了大學學業,之後在銀行業工作了十年,最終決定回到家鄉幫助那些和她有著相似背景的人。林昊看著那張照片,心中莫名地感到了一種信任——這個女人的眼神中沒有一絲虛偽,只有真誠和堅韌。
林昊直覺地感到,金色未來和這次攻擊之間有著某種關聯。但他還需要更多證據。
他重新打開Wireshark,對捕捉到的封包進行了更深層次的過濾。他用Python編寫了一個自動化腳本,從四百萬個封包中提取出所有與那個可疑IP相關的通訊記錄。腳本運行了將近十五分鐘,期間他盯著進度條,每一秒都像是一個世紀。結果令人震驚——在過去的七十二小時內,那個IP和金龍集團的內部網路之間存在著至少兩百次成功的連線記錄。這些連線使用了偽裝成正常HTTPS流量的加密隧道,繞過了金龍集團的入侵檢測系統。
攻擊者不僅僅是在試探——他們已經進入了系統內部,而且很可能已經在其中潛伏了很長一段時間。林昊感到一陣寒意從脊背升起。這意味著金龍集團的所有機密資料可能都已經暴露了——客戶資料、財務記錄、交易明細——全部都在攻擊者的掌控之中。
林昊靠回椅背,揉了揉發酸的眼睛。他需要更多資訊——關於金色未來的資料、關於那個可疑IP的註冊資訊、關於攻擊者留下的所有數位足跡。他打開了另一個終端視窗,啟動了自己編寫的OSINT(開源情報)搜集工具,開始對金色未來進行全面的背景調查。
十分鐘後,搜尋結果讓他倒吸一口涼氣。
金色未來在過去六個月中,曾經三次向柬埔寨商業部提出投訴,聲稱有人試圖通過不正當手段獲取它們的客戶資料。每一次投訴都沒有下文。而金色未來的競爭對手——一家名為「速貸金融」的公司——在最近三個月內業務量暴增,擴張速度快得不正常。速貸金融的幕後股東,正是陳金龍的親信。這些碎片開始在林昊的腦海中拼湊成一個清晰的圖案——速貸金融在陳金龍的支持下,試圖透過網路攻擊來摧毀金色未來的業務,奪取其客戶資源。
林昊關閉了螢幕,閉上眼睛。所有碎片開始在他的腦海中拼湊成一幅完整的畫面——陳金龍聘請他來「調查」網路攻擊,但實際上,他想要的是讓林昊幫他找出金色未來的安全漏洞,方便他的團隊進行下一步的攻擊。所謂的網路攻擊,很可能只是一個幌子,一個引誘林昊上鉤的誘餌。陳金龍真正想要的,是讓這個來自台灣的頂尖網路安全專家幫他做髒活。
但陳金龍失算了。林昊不是那種會被人利用的工具。
他睜開眼睛,重新打開了與金色未來相關的頁面。他看著阿蓮那張溫暖而堅定的照片,心中已經做出了決定。他知道自己在玩一場危險的遊戲——在金邊這座城市,知道得太多本身就是一種罪。那些因為知道太多而消失的外國人,他聽說過太多這樣的故事了。但他更清楚,如果他不做點什麼,金色未來和那些依賴它的貧困家庭,將會在陳金龍的算計中化為烏有。那些靠著小額貸款勉強維持生計的家庭,那些因為借不到錢而被迫向高利貸低頭的人們——他們不應該成為權力遊戲中的犧牲品。
林昊拿起手機,撥出了一個號碼。那是他一個在國際刑警組織工作的朋友的私人號碼。電話接通前的那幾秒鐘,他看了一眼窗外金邊的夜景。這座城市在夜晚看起來如此美麗,燈火輝煌,湄公河在月光下靜靜流淌,但他知道在這片美麗的表象之下,隱藏著多少不為人知的黑暗。
電話接通後,他用英文低沉地說:「我需要你幫我查一些東西,關於柬埔寨金邊的一家公司,以及它的創始人。越詳細越好。」
他掛斷電話,靠回椅背。窗外,金邊的夜色仍然深沉,但他知道,黎明終究會到來。
林昊關閉了Wireshark和分析工具,靠在椅背上。房間裡只剩下空調的低頻嗡嗡聲和顯示器散熱風扇的微弱噪音。他閉上眼睛,讓大腦在黑暗中整理這些碎片。跳板服務器的層層追蹤、那個被忽略的元數據、IP位址指向的金色未來——所有線索都在他的腦海中形成了一個三維的網路圖譜,每一個節點都閃爍著不同的顏色,代表著不同的風險等級。
他又重新打開了搜尋引擎,這一次他搜的不是金色未來,而是陳金龍的名字。結果讓他吃了一驚——陳金龍在過去五年中,曾經三次被柬埔寨本地媒體報導涉及暴力催收和不正當競爭,但每一次都不了了之。最新的那篇報導來自一家名為「柬埔寨真相」的獨立媒體,文章中提到陳金龍與執政黨某位高層官員之間的密切關係。那篇文章發布後不到二十四小時,網站就遭到了駭客攻擊,被迫下線。
林昊點擊了那篇報導的緩存版本,仔細閱讀。文章中提到了一位不具名的消息來源——一位曾在陳金龍集團工作過的離職員工。那位員工聲稱,金龍集團不僅從事博彩業務,還涉及高利貸和跨境詐騙,受害者的數量高達數千人。文章中還附了一份錄音檔,是那位員工與陳金龍之間的對話錄音——錄音中陳金龍明確指示下屬如何處理「不聽話」的借貸人。
林昊下載了那段錄音,戴上耳機聽了一遍。錄音品質並不好,背景中有雜音,但陳金龍的聲音清晰可辨。那些冷靜而冷酷的指令讓林昊感到一陣寒意——這不是一個商人在談論生意,這是一個掠食者在討論如何分食獵物。
他關閉了播放器,取下耳機。他的心跳比平時快了幾拍,但他強迫自己保持冷靜。他打開了一個新的終端視窗,啟動了自己編寫的數據分析工具,開始對從金龍集團系統中提取的網路流量數據進行更深層次的分析。他知道,真相就像洋蔥,需要一層一層地剝開,而每一層都會讓他流淚。
林昊從冰箱裡拿出一瓶礦泉水,擰開瓶蓋,一口氣喝了半瓶。冰涼的液體順著喉嚨流下,讓他稍微清醒了一些。他重新回到顯示器前,發現那個可疑IP地址已經離線了——就在他追踪到它的三十分鐘後,它突然從網路上消失得無影無踪。這不是巧合。攻擊者要麼設置了自動化的自毀機制,一旦被發現就立刻切斷連線,要麼他們有人在監控他的調查進度。無論是哪種情況,都說明他面對的是一個組織嚴密、反應迅速的對手。
他調出了金龍集團的安全日誌,仔細檢查了過去七十二小時內的每一次登入嘗試。在凌晨三點十四分到三點四十七分之間,有一個特權帳號進行了異常的數據查詢——查詢的是金色未來小額信貸公司的所有公開和內部記錄。這個帳號屬於金龍集團的IT營運主管,一個名叫Somchai的泰國人。林昊查看了Somchai的登入記錄——他在那個時間段應該在曼谷參加一個技術研討會,但卻有人用他的帳號從金邊本地登入了系統。這要麼是Somchai本人說謊,要麼是他的帳號被盜用了。
林昊將這個發現記錄在了一個加密文件中。他需要更多的證據來確認Somchai是否參與了這次攻擊,但他也知道,時間正在一分一秒地流逝。他打開了通訊錄,找到了Somchai的手機號碼——他決定不打草驚蛇,而是先從側面調查Somchai的活動軌跡。如果Somchai真的在曼谷,那麼他的信用卡消費記錄、手機定位數據都會證明這一點;如果他不在,那麼這些數據會告訴林昊他真正的位置。
林昊將筆記型電腦合上,靠著椅背伸了一個懶腰。他的頸椎發出輕微的咔噠聲——這是長時間保持同一姿勢工作的後遺症。他揉了揉酸澀的眼睛,看了一眼時間——已經是凌晨三點半了。窗外的金邊夜景依然燈火通明,只是街上的車流變得稀疏了許多。他決定在繼續調查之前先休息兩個小時,於是在沙發上躺了下來,把外套蓋在身上。空調的低頻聲和窗外偶爾傳來的摩托車引擎聲伴隨著他進入了淺眠。在他的夢中,一串串十六進制代碼在黑暗中閃爍,像是在訴說著某個無法破解的秘密。