零日青春
凌晨?jī)牲c(diǎn)十七分,工科樓*座四層只剩最后一盞燈。
不是什么浪漫的事。這層樓有三個(gè)實(shí)驗(yàn)室、兩個(gè)研究生工位區(qū)和一個(gè)永遠(yuǎn)沒(méi)人去的會(huì)議室,到了凌晨一點(diǎn),最后一批寫(xiě)論文的研究生也會(huì)收拾東西走人。但404實(shí)驗(yàn)室的燈從來(lái)不滅——因?yàn)榱帜墓の簧嫌幸慌_(tái)二十四小時(shí)運(yùn)行的數(shù)據(jù)采集服務(wù)器,散熱風(fēng)扇的嗡嗡聲已經(jīng)成了這間屋子的一部分,像冰箱的壓縮機(jī),你注意不到它響,但如果它停了你一定會(huì)覺(jué)得不對(duì)勁。
林墨盯著屏幕上跳動(dòng)的日志,手指懸在鍵盤(pán)上方。他面前的終端窗口里,校園教務(wù)系統(tǒng)的訪問(wèn)日志正以每秒四十行的速度向上翻滾,大部分是常規(guī)請(qǐng)求——選課、查分、登錄、退出。偶爾混進(jìn)來(lái)一條校園卡充值記錄,或者某個(gè)研究生半夜提交論文查重的請(qǐng)求。這些他都不看。他在找的是另一種東西。
每隔大約兩百行,就會(huì)出現(xiàn)一條不該存在的請(qǐng)求。
`POST /api/internal/grade_query ****/1.1`
`Host: jwxt.sust.edu.cn`
`Content-Type: application/json`
`{"student_id":"******","semester":"2025-1","de*ug":"true"}`
那條請(qǐng)求里的 `de*ug` 參數(shù),在正常前端頁(yè)面中根本不存在。教務(wù)系統(tǒng)的API文檔他翻過(guò)不下三遍——說(shuō)起來(lái)也是搞笑,他一個(gè)網(wǎng)絡(luò)安全學(xué)院的學(xué)生,比開(kāi)發(fā)這套系統(tǒng)的研究生更了解它的每一根血管。`de*ug=true` 是一個(gè)調(diào)試后門(mén),開(kāi)發(fā)者忘了關(guān),或者更可能,故意留著方便自己查數(shù)據(jù)。這種事在高校系統(tǒng)里太常見(jiàn)了——開(kāi)發(fā)經(jīng)費(fèi)不夠,工期壓縮,研究生寫(xiě)完代碼跑路,文檔和注釋一起失蹤,留下一堆沒(méi)人審計(jì)的接口在公網(wǎng)上裸奔。
但問(wèn)題不在于后門(mén)存在。問(wèn)題在于有人在用它。
而且不只是查詢(xún)。
林墨把那杯已經(jīng)涼透的美式咖啡推到一邊。便利店的咖啡,他喝了三年,已經(jīng)分不清是喜歡這個(gè)味道還是習(xí)慣了——總之沒(méi)有它就寫(xiě)不動(dòng)代碼。指尖落下去,開(kāi)始追蹤請(qǐng)求來(lái)源。IP經(jīng)過(guò)三層**跳轉(zhuǎn),第一跳是國(guó)內(nèi)某云服務(wù)商的VPS,第二跳是一個(gè)Tor出口節(jié)點(diǎn),第三跳……
他停住了。
第三跳指向的,是工科樓*座地下二層的服務(wù)器機(jī)房。
有人在樓里。就在他腳下。
林墨的第一反應(yīng)不是害怕,是煩躁。就像你在家里發(fā)現(xiàn)了一只蟑螂——你不會(huì)害怕蟑螂,你煩的是你知道肯定不止這一只。他拔掉手機(jī)充電線(xiàn),把手機(jī)塞進(jìn)口袋,關(guān)掉顯示器背光。屏幕一黑,整個(gè)工位只剩下機(jī)箱電源燈的微弱藍(lán)光。他站起來(lái),椅子輪子在地板上發(fā)出一聲悶響。
404實(shí)驗(yàn)室一共六個(gè)工位,其他五個(gè)都空著。隔壁工位上貼著一張便利貼,寫(xiě)著"林墨:外賣(mài)到了放門(mén)口就行——張浩",字跡歪歪扭扭,是室友兼同門(mén)師兄張浩留的。張浩的研究方向是蜜罐系統(tǒng),但大部分時(shí)間在打游戲,兩個(gè)人共用這間實(shí)驗(yàn)室快兩年了,默契是各忙各的、互不打擾。桌上還放著張浩昨天吃剩的半盒鴨脖,保鮮膜都沒(méi)蓋。
走廊里的聲控?zé)粢呀?jīng)全部熄滅。林墨摸著墻走向電梯,走了兩步又改了主意——電梯有運(yùn)行記錄,凌晨?jī)牲c(diǎn)坐電梯去地下二層,日志上寫(xiě)得清清楚楚。他轉(zhuǎn)向消防樓梯。
樓梯間的燈是聲控的,但靈敏度調(diào)得很低,你得跺一腳才亮。林墨跺了一腳,燈亮了,慘白的光照亮了**石臺(tái)階和墻上貼的消防疏散圖。疏散圖上*座地下二層的標(biāo)注是"網(wǎng)絡(luò)中心/服務(wù)器機(jī)房",旁邊用紅筆畫(huà)了一個(gè)圈,寫(xiě)著"非授權(quán)禁止入內(nèi)"——這字不知道是哪年寫(xiě)的,紅色的墨水已經(jīng)褪成了粉色。
*座地下二層平時(shí)需要門(mén)禁卡才能進(jìn)入。林墨的導(dǎo)師方遠(yuǎn)行給他配過(guò)一張臨時(shí)卡,名義上是"網(wǎng)絡(luò)安全課程實(shí)驗(yàn)用"。這張卡他用了兩年,門(mén)禁系統(tǒng)從來(lái)沒(méi)問(wèn)過(guò)他為什么凌晨?jī)牲c(diǎn)出現(xiàn)在機(jī)房門(mén)口。學(xué)校的門(mén)禁系統(tǒng)就是這樣——記錄是有的,但沒(méi)人看。
門(mén)禁燈亮了綠燈。鎖扣彈開(kāi)的聲音在地下走廊里回蕩了一下,像有人在空房間里拍了一下巴掌。
機(jī)房被分割成三個(gè)區(qū)域:A區(qū)是校園網(wǎng)核心交換機(jī),一排黑色機(jī)柜立在防靜電地板上,指示燈閃爍的頻率比心跳還快;*區(qū)是各院系托管服務(wù)器,大部分是本科生課程用的虛擬機(jī)平臺(tái),這會(huì)兒全在空轉(zhuǎn);C區(qū)是教務(wù)和財(cái)務(wù)系統(tǒng)的專(zhuān)屬機(jī)柜,用鐵絲網(wǎng)圍了一圈,上面掛著一把掛鎖——鎖是虛掩的,鎖梁沒(méi)扣到位。此刻A區(qū)和*區(qū)一片漆黑,只有C區(qū)的機(jī)柜指示燈在閃。
有人坐在C區(qū)3號(hào)機(jī)柜前的折疊椅上。
那是一把從樓上也學(xué)教室借來(lái)的折疊椅——林墨認(rèn)得那個(gè)款式,椅腿上貼著"工科樓*-302"的標(biāo)簽。那個(gè)人背對(duì)著他,穿一件深灰色連帽衛(wèi)衣,**拉起來(lái)遮住了大半張臉。面前架著一臺(tái)筆記本電腦,網(wǎng)線(xiàn)直接插在機(jī)柜內(nèi)部的交換機(jī)上。對(duì)方的屏幕上是一個(gè)Python腳本的運(yùn)行界面,輸出行正在快速刷新——成績(jī)數(shù)據(jù)的結(jié)構(gòu)化導(dǎo)出,字段名和學(xué)號(hào)都看得清清楚楚。
林墨在門(mén)口站了三秒鐘。
"你膽子不小。"
他開(kāi)口的時(shí)候聲音比預(yù)想的要平。那個(gè)人猛地一僵,手往鍵盤(pán)上移——顯然是要執(zhí)行清除腳本或者直接拔線(xiàn)。
"別動(dòng)。"林墨往前走了一步,右手從口袋里摸出手機(jī),拇指搭在錄音鍵上,"你碰一下那臺(tái)電腦,我就把剛才的監(jiān)控日志和你的MAC地址一起發(fā)給網(wǎng)絡(luò)中心。"
對(duì)方?jīng)]動(dòng)。
沉默持續(xù)了大約十秒??照{(diào)外機(jī)的低頻震動(dòng)從墻壁里傳過(guò)來(lái),變成一種幾乎能感覺(jué)到的振動(dòng)。然后那個(gè)人緩緩摘下**。
是個(gè)女生。年輕,短發(fā),皮膚很白,嘴唇抿成一條線(xiàn)。她的臉在機(jī)柜指示燈的綠光下顯得有點(diǎn)不真實(shí),像隔了一層水。她看著林墨,眼神里沒(méi)有驚慌,反而帶著一種被強(qiáng)行打斷的不耐煩——就像你在圖書(shū)館自習(xí),有人拍你肩膀說(shuō)你的包占了別人的座位。
"你是方老師的人?"她問(wèn)。
林墨沒(méi)回答這個(gè)問(wèn)題。"你在拉什么數(shù)據(jù)?"
"成績(jī)。"她說(shuō),語(yǔ)氣平淡得像在說(shuō)"我在喝水","整屆計(jì)算機(jī)學(xué)院2025春季學(xué)期的全部成績(jī)。"
"為什么?"
"因?yàn)橛腥嗽诟某煽?jī)。"她轉(zhuǎn)過(guò)身來(lái)面對(duì)他,"有人在用那個(gè)de*ug接口,不只是查詢(xún)——他在寫(xiě)入。你追的那條日志是我留的,用來(lái)標(biāo)記真實(shí)入侵者的請(qǐng)求模式。我比你晚了三天,但我比你更確定改了哪些數(shù)據(jù)。"
林墨沒(méi)說(shuō)話(huà)。他在消化這段話(huà)。
過(guò)去一周他追蹤到的異常請(qǐng)求,他以為是同一個(gè)人在批量導(dǎo)出數(shù)據(jù)。但眼前這個(gè)人說(shuō)的是另一個(gè)故事:有人在用 `de*ug` 參數(shù)寫(xiě)入修改后的成績(jī)數(shù)據(jù),而這個(gè)女生在做入侵檢測(cè)——以一種不太合法的方式。他自己也是非法接入機(jī)房來(lái)抓數(shù)據(jù)的,所以誰(shuí)也沒(méi)資格說(shuō)誰(shuí)。
"你是誰(shuí)?"林墨問(wèn)。
"蘇晚晴。"她說(shuō),"網(wǎng)絡(luò)安全學(xué)院,大三。方老師讓我來(lái)的。"
她從口袋里掏出一張校園卡,朝林墨晃了一下??嫔系恼掌_實(shí)是她,姓名欄寫(xiě)著"蘇晚晴",學(xué)院欄寫(xiě)著"網(wǎng)絡(luò)空間安全學(xué)院"。卡面有點(diǎn)磨損,照片邊角翹了起來(lái)——用了至少兩年。
林墨認(rèn)識(shí)方遠(yuǎn)行兩年了。方遠(yuǎn)行從來(lái)不提任何學(xué)生的名字,也從不讓他的學(xué)生之間互相認(rèn)識(shí)——這是他一貫的做派。所以如果蘇晚晴真是方遠(yuǎn)行派來(lái)的,那說(shuō)明這件事比方遠(yuǎn)行愿意讓他知道的要嚴(yán)重得多。
"改了哪些?"林墨走到她旁邊,蹲下來(lái)看屏幕。
蘇晚晴的腳本已經(jīng)輸出了一個(gè)列表。三十七門(mén)課程,涉及四個(gè)專(zhuān)業(yè)、兩屆學(xué)生,被修改的成績(jī)?nèi)渴巧险{(diào)——有人在大面積幫人改成績(jī)。每條記錄后面跟著時(shí)間戳,集中在凌晨一點(diǎn)到三點(diǎn)之間。
"你查過(guò)寫(xiě)入請(qǐng)求的來(lái)源嗎?"林墨問(wèn)。
"查過(guò)。"蘇晚晴的語(yǔ)氣第一次出現(xiàn)了一絲波動(dòng),"第三跳,Tor出口。再往前,追不動(dòng)了。"
"和我一樣。"
"所以你也在追這條線(xiàn)。"蘇晚晴轉(zhuǎn)過(guò)頭來(lái)看他,"你叫什么?"
"林墨。"
他報(bào)出名字的時(shí)候,蘇晚晴的眼睛幾不可察地瞇了一下。那個(gè)反應(yīng)很短,但林墨捕捉到了——她聽(tīng)過(guò)這個(gè)名字。
"方老師說(shuō)過(guò)你。"蘇晚晴說(shuō),"他說(shuō)你是他見(jiàn)過(guò)最快的逆向手。"
林墨沒(méi)接話(huà)。方遠(yuǎn)行從來(lái)不夸人。如果他說(shuō)"快",那意味著他見(jiàn)過(guò)更快的——或者他需要林墨覺(jué)得自己需要證明什么。跟方遠(yuǎn)行相處兩年,林墨學(xué)會(huì)了一件事:方遠(yuǎn)行的每句話(huà)都有至少兩層意思,第一層是讓你聽(tīng)的,第二層是讓你做的。
"但他說(shuō)你有一個(gè)毛病。"蘇晚晴繼續(xù)說(shuō),"你不跟人合作。"
"我不需要。"
"那你在追這條日志的時(shí)候,有沒(méi)有想過(guò),如果那個(gè)改成績(jī)的人比你技術(shù)更高,你一個(gè)人追到頭也拿不到證據(jù)?"
林墨沒(méi)有回答。不是因?yàn)樗麤](méi)想過(guò),是因?yàn)樗恢痹诨乇苓@個(gè)問(wèn)題。
走廊盡頭傳來(lái)一聲悶響,像是什么重物落在了地上。兩個(gè)人同時(shí)轉(zhuǎn)頭看向機(jī)房入口的方向。地下二層沒(méi)有聲控?zé)簦挥谐A恋膽?yīng)急指示燈,此刻投下一片幽綠色的光,把走廊照得像水下。
"這里不應(yīng)該有別人。"蘇晚晴壓低聲音。
林墨已經(jīng)站直了。他走到機(jī)房門(mén)口,探頭看走廊。綠色的應(yīng)急燈照亮了十幾米長(zhǎng)的通道,盡頭拐角處的墻面上有一扇 **intenance 門(mén)——平時(shí)鎖著,通往更下層的電纜層。門(mén)上貼著一張標(biāo)簽,寫(xiě)著"電纜層·限工作人員進(jìn)入",標(biāo)簽的邊角已經(jīng)卷起來(lái)了。
那扇門(mén)開(kāi)著。
門(mén)縫里透出的不是燈光,而是一個(gè)極其微弱的紅色光點(diǎn),像某個(gè)設(shè)備待機(jī)時(shí)的指示燈。
"走。"林墨回頭說(shuō)了一個(gè)字。
不是什么浪漫的事。這層樓有三個(gè)實(shí)驗(yàn)室、兩個(gè)研究生工位區(qū)和一個(gè)永遠(yuǎn)沒(méi)人去的會(huì)議室,到了凌晨一點(diǎn),最后一批寫(xiě)論文的研究生也會(huì)收拾東西走人。但404實(shí)驗(yàn)室的燈從來(lái)不滅——因?yàn)榱帜墓の簧嫌幸慌_(tái)二十四小時(shí)運(yùn)行的數(shù)據(jù)采集服務(wù)器,散熱風(fēng)扇的嗡嗡聲已經(jīng)成了這間屋子的一部分,像冰箱的壓縮機(jī),你注意不到它響,但如果它停了你一定會(huì)覺(jué)得不對(duì)勁。
林墨盯著屏幕上跳動(dòng)的日志,手指懸在鍵盤(pán)上方。他面前的終端窗口里,校園教務(wù)系統(tǒng)的訪問(wèn)日志正以每秒四十行的速度向上翻滾,大部分是常規(guī)請(qǐng)求——選課、查分、登錄、退出。偶爾混進(jìn)來(lái)一條校園卡充值記錄,或者某個(gè)研究生半夜提交論文查重的請(qǐng)求。這些他都不看。他在找的是另一種東西。
每隔大約兩百行,就會(huì)出現(xiàn)一條不該存在的請(qǐng)求。
`POST /api/internal/grade_query ****/1.1`
`Host: jwxt.sust.edu.cn`
`Content-Type: application/json`
`{"student_id":"******","semester":"2025-1","de*ug":"true"}`
那條請(qǐng)求里的 `de*ug` 參數(shù),在正常前端頁(yè)面中根本不存在。教務(wù)系統(tǒng)的API文檔他翻過(guò)不下三遍——說(shuō)起來(lái)也是搞笑,他一個(gè)網(wǎng)絡(luò)安全學(xué)院的學(xué)生,比開(kāi)發(fā)這套系統(tǒng)的研究生更了解它的每一根血管。`de*ug=true` 是一個(gè)調(diào)試后門(mén),開(kāi)發(fā)者忘了關(guān),或者更可能,故意留著方便自己查數(shù)據(jù)。這種事在高校系統(tǒng)里太常見(jiàn)了——開(kāi)發(fā)經(jīng)費(fèi)不夠,工期壓縮,研究生寫(xiě)完代碼跑路,文檔和注釋一起失蹤,留下一堆沒(méi)人審計(jì)的接口在公網(wǎng)上裸奔。
但問(wèn)題不在于后門(mén)存在。問(wèn)題在于有人在用它。
而且不只是查詢(xún)。
林墨把那杯已經(jīng)涼透的美式咖啡推到一邊。便利店的咖啡,他喝了三年,已經(jīng)分不清是喜歡這個(gè)味道還是習(xí)慣了——總之沒(méi)有它就寫(xiě)不動(dòng)代碼。指尖落下去,開(kāi)始追蹤請(qǐng)求來(lái)源。IP經(jīng)過(guò)三層**跳轉(zhuǎn),第一跳是國(guó)內(nèi)某云服務(wù)商的VPS,第二跳是一個(gè)Tor出口節(jié)點(diǎn),第三跳……
他停住了。
第三跳指向的,是工科樓*座地下二層的服務(wù)器機(jī)房。
有人在樓里。就在他腳下。
林墨的第一反應(yīng)不是害怕,是煩躁。就像你在家里發(fā)現(xiàn)了一只蟑螂——你不會(huì)害怕蟑螂,你煩的是你知道肯定不止這一只。他拔掉手機(jī)充電線(xiàn),把手機(jī)塞進(jìn)口袋,關(guān)掉顯示器背光。屏幕一黑,整個(gè)工位只剩下機(jī)箱電源燈的微弱藍(lán)光。他站起來(lái),椅子輪子在地板上發(fā)出一聲悶響。
404實(shí)驗(yàn)室一共六個(gè)工位,其他五個(gè)都空著。隔壁工位上貼著一張便利貼,寫(xiě)著"林墨:外賣(mài)到了放門(mén)口就行——張浩",字跡歪歪扭扭,是室友兼同門(mén)師兄張浩留的。張浩的研究方向是蜜罐系統(tǒng),但大部分時(shí)間在打游戲,兩個(gè)人共用這間實(shí)驗(yàn)室快兩年了,默契是各忙各的、互不打擾。桌上還放著張浩昨天吃剩的半盒鴨脖,保鮮膜都沒(méi)蓋。
走廊里的聲控?zé)粢呀?jīng)全部熄滅。林墨摸著墻走向電梯,走了兩步又改了主意——電梯有運(yùn)行記錄,凌晨?jī)牲c(diǎn)坐電梯去地下二層,日志上寫(xiě)得清清楚楚。他轉(zhuǎn)向消防樓梯。
樓梯間的燈是聲控的,但靈敏度調(diào)得很低,你得跺一腳才亮。林墨跺了一腳,燈亮了,慘白的光照亮了**石臺(tái)階和墻上貼的消防疏散圖。疏散圖上*座地下二層的標(biāo)注是"網(wǎng)絡(luò)中心/服務(wù)器機(jī)房",旁邊用紅筆畫(huà)了一個(gè)圈,寫(xiě)著"非授權(quán)禁止入內(nèi)"——這字不知道是哪年寫(xiě)的,紅色的墨水已經(jīng)褪成了粉色。
*座地下二層平時(shí)需要門(mén)禁卡才能進(jìn)入。林墨的導(dǎo)師方遠(yuǎn)行給他配過(guò)一張臨時(shí)卡,名義上是"網(wǎng)絡(luò)安全課程實(shí)驗(yàn)用"。這張卡他用了兩年,門(mén)禁系統(tǒng)從來(lái)沒(méi)問(wèn)過(guò)他為什么凌晨?jī)牲c(diǎn)出現(xiàn)在機(jī)房門(mén)口。學(xué)校的門(mén)禁系統(tǒng)就是這樣——記錄是有的,但沒(méi)人看。
門(mén)禁燈亮了綠燈。鎖扣彈開(kāi)的聲音在地下走廊里回蕩了一下,像有人在空房間里拍了一下巴掌。
機(jī)房被分割成三個(gè)區(qū)域:A區(qū)是校園網(wǎng)核心交換機(jī),一排黑色機(jī)柜立在防靜電地板上,指示燈閃爍的頻率比心跳還快;*區(qū)是各院系托管服務(wù)器,大部分是本科生課程用的虛擬機(jī)平臺(tái),這會(huì)兒全在空轉(zhuǎn);C區(qū)是教務(wù)和財(cái)務(wù)系統(tǒng)的專(zhuān)屬機(jī)柜,用鐵絲網(wǎng)圍了一圈,上面掛著一把掛鎖——鎖是虛掩的,鎖梁沒(méi)扣到位。此刻A區(qū)和*區(qū)一片漆黑,只有C區(qū)的機(jī)柜指示燈在閃。
有人坐在C區(qū)3號(hào)機(jī)柜前的折疊椅上。
那是一把從樓上也學(xué)教室借來(lái)的折疊椅——林墨認(rèn)得那個(gè)款式,椅腿上貼著"工科樓*-302"的標(biāo)簽。那個(gè)人背對(duì)著他,穿一件深灰色連帽衛(wèi)衣,**拉起來(lái)遮住了大半張臉。面前架著一臺(tái)筆記本電腦,網(wǎng)線(xiàn)直接插在機(jī)柜內(nèi)部的交換機(jī)上。對(duì)方的屏幕上是一個(gè)Python腳本的運(yùn)行界面,輸出行正在快速刷新——成績(jī)數(shù)據(jù)的結(jié)構(gòu)化導(dǎo)出,字段名和學(xué)號(hào)都看得清清楚楚。
林墨在門(mén)口站了三秒鐘。
"你膽子不小。"
他開(kāi)口的時(shí)候聲音比預(yù)想的要平。那個(gè)人猛地一僵,手往鍵盤(pán)上移——顯然是要執(zhí)行清除腳本或者直接拔線(xiàn)。
"別動(dòng)。"林墨往前走了一步,右手從口袋里摸出手機(jī),拇指搭在錄音鍵上,"你碰一下那臺(tái)電腦,我就把剛才的監(jiān)控日志和你的MAC地址一起發(fā)給網(wǎng)絡(luò)中心。"
對(duì)方?jīng)]動(dòng)。
沉默持續(xù)了大約十秒??照{(diào)外機(jī)的低頻震動(dòng)從墻壁里傳過(guò)來(lái),變成一種幾乎能感覺(jué)到的振動(dòng)。然后那個(gè)人緩緩摘下**。
是個(gè)女生。年輕,短發(fā),皮膚很白,嘴唇抿成一條線(xiàn)。她的臉在機(jī)柜指示燈的綠光下顯得有點(diǎn)不真實(shí),像隔了一層水。她看著林墨,眼神里沒(méi)有驚慌,反而帶著一種被強(qiáng)行打斷的不耐煩——就像你在圖書(shū)館自習(xí),有人拍你肩膀說(shuō)你的包占了別人的座位。
"你是方老師的人?"她問(wèn)。
林墨沒(méi)回答這個(gè)問(wèn)題。"你在拉什么數(shù)據(jù)?"
"成績(jī)。"她說(shuō),語(yǔ)氣平淡得像在說(shuō)"我在喝水","整屆計(jì)算機(jī)學(xué)院2025春季學(xué)期的全部成績(jī)。"
"為什么?"
"因?yàn)橛腥嗽诟某煽?jī)。"她轉(zhuǎn)過(guò)身來(lái)面對(duì)他,"有人在用那個(gè)de*ug接口,不只是查詢(xún)——他在寫(xiě)入。你追的那條日志是我留的,用來(lái)標(biāo)記真實(shí)入侵者的請(qǐng)求模式。我比你晚了三天,但我比你更確定改了哪些數(shù)據(jù)。"
林墨沒(méi)說(shuō)話(huà)。他在消化這段話(huà)。
過(guò)去一周他追蹤到的異常請(qǐng)求,他以為是同一個(gè)人在批量導(dǎo)出數(shù)據(jù)。但眼前這個(gè)人說(shuō)的是另一個(gè)故事:有人在用 `de*ug` 參數(shù)寫(xiě)入修改后的成績(jī)數(shù)據(jù),而這個(gè)女生在做入侵檢測(cè)——以一種不太合法的方式。他自己也是非法接入機(jī)房來(lái)抓數(shù)據(jù)的,所以誰(shuí)也沒(méi)資格說(shuō)誰(shuí)。
"你是誰(shuí)?"林墨問(wèn)。
"蘇晚晴。"她說(shuō),"網(wǎng)絡(luò)安全學(xué)院,大三。方老師讓我來(lái)的。"
她從口袋里掏出一張校園卡,朝林墨晃了一下??嫔系恼掌_實(shí)是她,姓名欄寫(xiě)著"蘇晚晴",學(xué)院欄寫(xiě)著"網(wǎng)絡(luò)空間安全學(xué)院"。卡面有點(diǎn)磨損,照片邊角翹了起來(lái)——用了至少兩年。
林墨認(rèn)識(shí)方遠(yuǎn)行兩年了。方遠(yuǎn)行從來(lái)不提任何學(xué)生的名字,也從不讓他的學(xué)生之間互相認(rèn)識(shí)——這是他一貫的做派。所以如果蘇晚晴真是方遠(yuǎn)行派來(lái)的,那說(shuō)明這件事比方遠(yuǎn)行愿意讓他知道的要嚴(yán)重得多。
"改了哪些?"林墨走到她旁邊,蹲下來(lái)看屏幕。
蘇晚晴的腳本已經(jīng)輸出了一個(gè)列表。三十七門(mén)課程,涉及四個(gè)專(zhuān)業(yè)、兩屆學(xué)生,被修改的成績(jī)?nèi)渴巧险{(diào)——有人在大面積幫人改成績(jī)。每條記錄后面跟著時(shí)間戳,集中在凌晨一點(diǎn)到三點(diǎn)之間。
"你查過(guò)寫(xiě)入請(qǐng)求的來(lái)源嗎?"林墨問(wèn)。
"查過(guò)。"蘇晚晴的語(yǔ)氣第一次出現(xiàn)了一絲波動(dòng),"第三跳,Tor出口。再往前,追不動(dòng)了。"
"和我一樣。"
"所以你也在追這條線(xiàn)。"蘇晚晴轉(zhuǎn)過(guò)頭來(lái)看他,"你叫什么?"
"林墨。"
他報(bào)出名字的時(shí)候,蘇晚晴的眼睛幾不可察地瞇了一下。那個(gè)反應(yīng)很短,但林墨捕捉到了——她聽(tīng)過(guò)這個(gè)名字。
"方老師說(shuō)過(guò)你。"蘇晚晴說(shuō),"他說(shuō)你是他見(jiàn)過(guò)最快的逆向手。"
林墨沒(méi)接話(huà)。方遠(yuǎn)行從來(lái)不夸人。如果他說(shuō)"快",那意味著他見(jiàn)過(guò)更快的——或者他需要林墨覺(jué)得自己需要證明什么。跟方遠(yuǎn)行相處兩年,林墨學(xué)會(huì)了一件事:方遠(yuǎn)行的每句話(huà)都有至少兩層意思,第一層是讓你聽(tīng)的,第二層是讓你做的。
"但他說(shuō)你有一個(gè)毛病。"蘇晚晴繼續(xù)說(shuō),"你不跟人合作。"
"我不需要。"
"那你在追這條日志的時(shí)候,有沒(méi)有想過(guò),如果那個(gè)改成績(jī)的人比你技術(shù)更高,你一個(gè)人追到頭也拿不到證據(jù)?"
林墨沒(méi)有回答。不是因?yàn)樗麤](méi)想過(guò),是因?yàn)樗恢痹诨乇苓@個(gè)問(wèn)題。
走廊盡頭傳來(lái)一聲悶響,像是什么重物落在了地上。兩個(gè)人同時(shí)轉(zhuǎn)頭看向機(jī)房入口的方向。地下二層沒(méi)有聲控?zé)簦挥谐A恋膽?yīng)急指示燈,此刻投下一片幽綠色的光,把走廊照得像水下。
"這里不應(yīng)該有別人。"蘇晚晴壓低聲音。
林墨已經(jīng)站直了。他走到機(jī)房門(mén)口,探頭看走廊。綠色的應(yīng)急燈照亮了十幾米長(zhǎng)的通道,盡頭拐角處的墻面上有一扇 **intenance 門(mén)——平時(shí)鎖著,通往更下層的電纜層。門(mén)上貼著一張標(biāo)簽,寫(xiě)著"電纜層·限工作人員進(jìn)入",標(biāo)簽的邊角已經(jīng)卷起來(lái)了。
那扇門(mén)開(kāi)著。
門(mén)縫里透出的不是燈光,而是一個(gè)極其微弱的紅色光點(diǎn),像某個(gè)設(shè)備待機(jī)時(shí)的指示燈。
"走。"林墨回頭說(shuō)了一個(gè)字。