你好,別惹我,我一個(gè) bug 就能讓你滾蛋。明星程序員非要上線(xiàn)一個(gè)新功能時(shí)。
我當著(zhù)全部門(mén)的面,直接紅牌罰下?!覆恍?,這個(gè)版本有致命漏洞?!顾麣獾媚樁及琢?。
「你憑什么說(shuō)有漏洞?代碼是我寫(xiě)的,我最清楚!老板都等著(zhù)開(kāi)慶功宴了!」
可我就是不松口,死死摁住上線(xiàn)按鈕。他直接沖進(jìn) CEO 辦公室,聲淚俱下地告狀。
「老板!她就是嫉妒我,故意打壓新人!」「這個(gè)項目要是黃了,公司的損失她擔得起嗎?」
「她這是濫用職權,想毀掉我的職業(yè)生涯??!」眼看全公司的矛頭都指向我。我冷笑一聲,
將他的代碼投到大屏上,并圈出其中一行?!副牬竽愕难劬辞宄?,這個(gè)后門(mén),你想留給誰(shuí)?
」01我的聲音不大,卻像一把冰錐,刺穿了會(huì )議室里浮躁的空氣。大屏幕上,
那行被我用紅色方框圈出的代碼,像一道丑陋的疤痕,烙在每個(gè)程序員的瞳孔里。張浩的臉,
瞬間從漲紅變成了慘白?!改恪愫f(shuō)!這是……這是我留的測試接口!」
他的聲音發(fā)著(zhù)抖,眼神躲閃,不敢與我對視?!笢y試接口?」我輕笑一聲,
手指在鍵盤(pán)上敲擊了幾下。屏幕上的代碼旁邊,立刻彈出了一連串的注釋和分析。
「一個(gè)需要連接到境外匿名服務(wù)器,并且擁有最高系統權限,
可以繞過(guò)所有防火墻和日志審計的測試接口?」「張浩,你當在座的都是傻子,
還是覺(jué)得我們公司的法務(wù)是擺設?」我的話(huà)音剛落,技術(shù)部幾個(gè)資深的工程師臉色就變了。
他們湊近屏幕,反復確認著(zhù)那行代碼的邏輯?!柑臁@真的是個(gè)后門(mén)?!埂高@個(gè)IP地址,
我查了,在東歐的一個(gè)灰色地帶,根本無(wú)法追蹤?!埂敢坏┥暇€(xiàn),
等于把我們整個(gè)用戶(hù)數據庫的鑰匙,交到了別人手上?!棺h論聲此起彼伏,像一把把小錘子,
敲在張浩脆弱的神經(jīng)上。CEO的臉色已經(jīng)不能用難看來(lái)形容了。他死死地盯著(zhù)張浩,
眼神里是抑制不住的怒火和失望?!笍埡?,你還有什么話(huà)說(shuō)?」張浩嘴唇哆嗦著(zhù),
汗水從額角滑落?!咐习?,不是的,這是個(gè)誤會(huì )……」「我只是……我只是想在上線(xiàn)后,
方便自己進(jìn)行線(xiàn)上調試,絕對沒(méi)有別的意思!」他還在狡辯,試圖把惡意的后門(mén),
粉飾成一個(gè)無(wú)傷大雅的技術(shù)失誤。我冷眼看著(zhù)他拙劣的表演?!妇€(xiàn)上調試?」我切換了屏幕,
調出了這份代碼的git提交記錄?!改悄愀嬖V我,為什么這個(gè)所謂的『調試接口』,
是在最終封版前三分鐘,偽裝成一個(gè)『性能優(yōu)化』的補丁,偷偷提交上來(lái)的?」
「為什么整個(gè)代碼審查流程,你都完美地繞了過(guò)去?」「你甚至,沒(méi)有把這個(gè)版本,
提交給我做最后的安全審計?!刮颐繂?wèn)一句,張浩的臉色就白一分。提交記錄是鐵證,
上面清晰地記錄著(zhù)他每一次的操作,時(shí)間、說(shuō)明,一應俱全。他百口莫辯。CEO的拳頭,
重重地砸在了會(huì )議桌上?!副0?!」「把張浩的工卡和電腦全部收走!」
「在事情調查清楚之前,暫停他的一切職務(wù)!」張浩癱倒在椅子上,面如死灰。他知道,
他的職業(yè)生涯,從我圈出那行代碼的瞬間,就已經(jīng)結束了。02保安沖了進(jìn)來(lái),
一左一右架住了失魂落魄的張浩。他像一灘爛泥,被拖出了會(huì )議室。鬧劇收場(chǎng),
會(huì )議室里卻依舊死寂。所有人都還沉浸在剛才的震驚之中。
一個(gè)被大家捧上神壇的明星程序員,竟然會(huì )在公司的核心產(chǎn)品里,埋下如此惡毒的后門(mén)。
這簡(jiǎn)直是匪夷所思。CEO揉著(zhù)發(fā)痛的眉心,疲憊地看向我?!噶治?,這次……幸虧有你?!?/p>
他的聲音里帶著(zhù)一絲后怕。如果我今天沒(méi)有堅持,如果我被唾沫星子淹沒(méi),選擇了妥協(xié)。
那么現在,慶功的香檳已經(jīng)打開(kāi),而公司的命脈,也已經(jīng)被人握在了手里。后果不堪設想。
「這是我的職責?!刮移届o地回答?!改闶窃趺窗l(fā)現的?」CEO問(wèn)出了所有人心中的疑問(wèn),
「他隱藏得這么深?!埂杆皇请[藏得深,他是太自信了?!刮铱粗?zhù)屏幕上那行代碼。
「他篤定我是個(gè)只懂流程,不懂技術(shù)的QA(質(zhì)量保證),篤定封版前的最后時(shí)刻,
沒(méi)人會(huì )再去做代碼級的審計?!埂杆V定,他『明星程序員』的光環(huán),
可以壓過(guò)我這個(gè)『只會(huì )找茬』的攔路石?!刮翌D了頓,補充道?!钢豢上?,我有個(gè)習慣?!?/p>
「所有最終上線(xiàn)的版本,我都會(huì )親自,從頭到尾,把代碼再過(guò)一遍?!埂高@是我為自己,
也為公司上的最后一道保險?!箷?huì )議室里,幾位和我打交道比較多的技術(shù)人員,
都露出了恍然大悟的神情。他們都曾抱怨過(guò)我這個(gè)「多此一舉」的流程?,F在看來(lái),
這道保險,價(jià)值千金。CEO長(cháng)長(cháng)地舒了一口氣,眼神里的欣賞毫不掩飾?!笍慕裉炱?,
這個(gè)流程,將作為公司的最高發(fā)布準則,永久執行?!顾h(huán)視眾人,一字一句地宣布。
「任何人都不得有異議?!咕驮诖蠹乙詾槭虑楦嬉欢温鋾r(shí),被保安架到門(mén)口的張浩,
突然像瘋了一樣回頭。他掙脫了保安,猩紅著(zhù)雙眼,用手指著(zhù)會(huì )議室里的另一個(gè)人。
「不是我!」「不是我一個(gè)人的主意!」他嘶吼著(zhù),聲音凄厲?!甘撬?!是他讓我這么做的!
」所有人的目光,都順著(zhù)他手指的方向,落在了角落里一個(gè)沉默的身影上。
技術(shù)部的元老級工程師,李謙。一個(gè)平日里話(huà)不多,老實(shí)巴交,與世無(wú)爭的老好人。
李謙整個(gè)人都懵了,他扶了扶眼鏡,滿(mǎn)臉的不可置信?!笍埡?,你……你胡說(shuō)什么?」
張浩卻像是抓住了最后一根救命稻草?!妇褪悄?!
你說(shuō)這是公司給核心運維團隊留的秘密通道,為了應付緊急故障!」「你說(shuō)這是老板默許的!
是你騙我的!」一瞬間,整個(gè)會(huì )議室的空氣,再次凝固了。03李謙的臉漲得通紅,
氣得渾身發(fā)抖?!肝覜](méi)有!我什么時(shí)候跟你說(shuō)過(guò)這種話(huà)!」他是一個(gè)典型的老實(shí)人,
不善言辭,被人當眾潑上這樣一盆臟水,急得連話(huà)都說(shuō)不完整?!改憔陀?!」
張浩徹底豁出去了,開(kāi)始胡編亂造?!干现芏挛?,茶水間,就我們兩個(gè)人!
你親口跟我說(shuō)的!你還說(shuō)這是公司的潛規則,是給核心員工的信任!」他說(shuō)得有鼻子有眼,
時(shí)間、地點(diǎn)、人物,要素齊全。一些不明真相的同事,看向李謙的眼神,開(kāi)始變得有些微妙。
畢竟,一個(gè)是即將被開(kāi)除的騙子,一個(gè)是公司的老實(shí)人。但萬(wàn)一呢?萬(wàn)一張浩說(shuō)的是真的,
這背后其實(shí)是一個(gè)更深的陰謀?CEO的眉頭又一次緊緊鎖起。他看向李謙,
眼神中帶著(zhù)審視?!咐钪t,他說(shuō)的是真的嗎?」「老板,我沒(méi)有!」李謙急得快要哭了,
「我跟他就沒(méi)在茶水間單獨待過(guò)!他這是血口噴人!」「你有證據嗎?」張浩冷笑著(zhù)反問(wèn),
「我也有證據,證明我們當時(shí)就在一起!」他拿出手機,點(diǎn)開(kāi)一張照片?!缚?!
這是茶水間的咖啡機,我當時(shí)拍下來(lái)問(wèn)你要不要帶一杯,上面有時(shí)間戳!」
照片確實(shí)是茶水間的咖啡機,時(shí)間也對得上。這下,連我都感到了一絲棘手。張浩這手栽贓,
玩得太臟了。他很清楚,這種私下的對話(huà),根本無(wú)法證實(shí),也無(wú)法證偽。
但他只要成功地把水攪渾,把李謙也拖下水,就能為自己爭取到喘息和周旋的時(shí)間。甚至,
可以把這件事,定性為公司內部的派系斗爭。用心何其歹毒。就在李謙百口莫辯,
快要被這盆臟水淹沒(méi)時(shí)。我開(kāi)口了?!笍埡?,你的表演很精彩?!刮易叩剿媲?,
拿過(guò)他的手機?!钢豢上?,漏洞太多?!刮覍⑺氖謾C屏幕,投到大屏上?!改阏f(shuō),
你拍這張照片,是為了問(wèn)李工要不要喝咖啡,對吧?」「對!」張浩梗著(zhù)脖子。
「那你告訴我,你的聊天記錄里,為什么沒(méi)有把這張照片發(fā)給李工的記錄?」
「我……我后來(lái)當面問(wèn)他了!」「是嗎?」我笑了笑,「那你再解釋一下,
為什么這張照片的EXIF信息里,GPS定位,顯示的是在公司對面的那家商業(yè)銀行里?」
我話(huà)音剛落,全場(chǎng)皆驚。張浩的表情,瞬間凝固了。他大概從沒(méi)想過(guò),一張隨手拍的照片,
竟然還記錄了地理位置信息。我沒(méi)給他反應的機會(huì ),繼續說(shuō)道?!改莻€(gè)時(shí)間點(diǎn),
李工正在和我開(kāi)一個(gè)需求評審會(huì ),整個(gè)項目組的人都可以作證?!埂付?,張浩,」
我的目光變得銳利,「你不在公司,你在銀行?!埂敢粋€(gè)上班時(shí)間,偷偷跑到銀行去的人,
現在卻拿著(zhù)一張在銀行拍的照片,來(lái)污蔑一個(gè)正在開(kāi)會(huì )的同事?!埂笍埡?,你不覺(jué)得,
你的故事,編得太離譜了嗎?」04我的聲音在會(huì )議室里回蕩,每一個(gè)字都像一記重錘,
砸在張浩的謊言上。他的心理防線(xiàn),徹底崩潰了?!覆弧皇堑摹顾Z(yǔ)無(wú)倫次,
眼神渙散,整個(gè)人像是被抽走了骨頭。CEO的耐心也到了極限?!赴阉麕ё?!立刻!馬上!
」這一次,保安沒(méi)有再給他任何機會(huì ),直接將他拖了出去。一場(chǎng)鬧劇,
終于以一種無(wú)可辯駁的方式,落下了帷幕。CEO看向我,眼神復雜?!噶治?,
今天如果不是你……」「老板,」我打斷了他,「現在不是說(shuō)這些的時(shí)候,
我們還有更重要的事情要做?!刮抑噶酥钙聊簧系拇a?!笍埡撇皇且粋€(gè)人?!?/p>
「這個(gè)后門(mén)的復雜程度和隱蔽性,不像是一個(gè)人能完成的。
背后一定有更高明的黑客在指導他?!埂付?,他選擇在這個(gè)版本上線(xiàn),一定有他的目的?!?/p>
我的話(huà)讓剛剛緩和的氣氛,再度緊張起來(lái)。CEO立刻明白了我的意思。
「你是說(shuō)……競爭對手?」「八九不離十?!刮已杆僭阪I盤(pán)上操作起來(lái)。
「我們必須立刻檢查公司所有核心代碼庫,排查是否還有類(lèi)似的安全隱患?!埂竿瑫r(shí),
要對張浩所有的內部通訊記錄,進(jìn)行篩查?!埂高€有他剛才提到的那家銀行,
他上班時(shí)間去那里做什么,也必須查清楚!」我的大腦在飛速運轉,一條條指令清晰地發(fā)出。
在巨大的危機面前,我沒(méi)有時(shí)間去享受勝利的喜悅,而是本能地進(jìn)入了戰斗狀態(tài)。
CEO完全采納了我的建議,立刻安排信息安全部、人事部、法務(wù)部,成立聯(lián)合調查組。
整個(gè)公司,像一臺精密的戰爭機器,開(kāi)始高速運轉。會(huì )議室的人漸漸散去,
各自投入到緊張的工作中。最后,只剩下我和CEO。他看著(zhù)我,
忽然提起了一件毫不相干的舊事?!噶治?,你還記得三年前的『藍鯨項目』嗎?」我的心,
猛地一沉。藍鯨項目。那是我職業(yè)生涯中,唯一的一個(gè)污點(diǎn),也是我心中一根拔不掉的刺。
那是我剛升任測試主管后,負責的第一個(gè)重大項目。項目上線(xiàn)當晚,
發(fā)生了災難性的數據庫雪崩,核心數據被大量污染和破壞。公司損失慘重,股價(jià)暴跌。
雖然事后查明,事故原因極其復雜,有第三方組件的未知漏洞,
也有服務(wù)器硬件的偶發(fā)性故障。但作為項目質(zhì)量的最終負責人,我難辭其咎。那段時(shí)間,
我成了全公司的罪人,背負了所有的指責和非議。如果不是CEO力排眾議保下了我,
我可能早就卷鋪蓋走人了?!肝矣浀??!刮业穆曇粲行└蓾??!改谴问鹿?,對你打擊很大?!?/p>
CEO的語(yǔ)氣,帶著(zhù)一絲愧疚,「讓你背了黑鍋?!埂付歼^(guò)去了?!刮覔u了搖頭。
可就在我說(shuō)出「過(guò)去了」這三個(gè)字的時(shí)候,一個(gè)瘋狂的念頭,像一道閃電,劈開(kāi)了我的記憶。
藍鯨項目……張浩……那次事故中,有一個(gè)非常詭異的現象。數據庫的損壞,不是隨機的,
而是呈現出一種……一種帶有明顯邏輯性的、人為的破壞特征。但當時(shí),
所有的證據都指向了硬件故障,我們最終也只能以此結案??墒恰绻遣皇枪收夏??
我猛地抬起頭,沖到大屏幕前,調出了張浩留下的那個(gè)后門(mén)代碼。我死死地盯著(zhù)代碼的結構,
它的加密方式,它的混淆算法……一種熟悉的、令人毛骨悚然的感覺(jué),涌上心頭。
這種寫(xiě)法……這種獨一無(wú)二的、帶著(zhù)炫技色彩的、屬于張浩的「代碼指紋」。和三年前,
我們從「藍鯨項目」損壞的數據庫日志里,搶救出來(lái)的那些無(wú)法解釋的、碎片化的……亂碼。
何其相似!我的血液,在瞬間凝固了。我轉過(guò)身,看著(zhù)CEO,一字一句地說(shuō)道?!咐习?,
我們可能……」「從一開(kāi)始,就搞錯了?!埂浮核{鯨項目』的崩潰,不是事故?!?/p>
「是人為的,徹頭徹尾的,蓄意破壞?!?5CEO臉上的血色,以肉眼可見(jiàn)的速度褪去。
他顯然也想到了這件事情的嚴重性。如果三年前的「藍令項目」不是事故,而是人為破壞,
那就意味著(zhù),公司內部早就潛伏著(zhù)一只巨大的蛀蟲(chóng)。而我們,對此一無(wú)所知。
「你……有什么證據?」他的聲音有些發(fā)顫?!缸C據就在三年前的服務(wù)器硬盤(pán)里?!?/p>
我的大腦飛速運轉,無(wú)數被忽略的細節,在這一刻串聯(lián)成線(xiàn)?!府敃r(shí)我們都以為是數據損壞,
所以只做了數據恢復,沒(méi)有對硬盤(pán)做底層的代碼取證?!?/p>
「但那些執行破壞指令的碎片化代碼,一定還殘留在硬盤(pán)的某個(gè)扇區里!」
「張浩的代碼風(fēng)格,就像他的簽名一樣,獨一無(wú)二。只要對比,就一定能發(fā)現!」
CEO沒(méi)有絲毫猶豫,立刻抓起電話(huà),打給了公司的首席信息官?!咐贤?!
馬上啟動(dòng)最高安全預案!」「把三年前『藍鯨項目』的所有服務(wù)器硬盤(pán),從封存庫里找出來(lái)!
」「對,所有的!一塊都不能少!」「我不管你用什么方法,就算把硬盤(pán)泡在液氮里恢復,
也必須把里面的原始數據給我挖出來(lái)!」他的吼聲在空曠的會(huì )議室里回響。掛掉電話(huà),
他看向我,眼神里充滿(mǎn)了信任?!噶治?,調查組,由你來(lái)全權負責?!埂肝医o你最高的權限,
公司所有資源,任你調動(dòng)?!埂肝抑灰粋€(gè)結果?!埂负??!刮抑刂氐攸c(diǎn)了點(diǎn)頭。
這不僅僅是為了公司,更是為了三年前那個(gè)被冤枉、被誤解的自己。我必須要為自己,
討回一個(gè)公道。接下來(lái)的48小時(shí),我幾乎沒(méi)有合眼。我和信息安全部的同事們,
泡在冰冷的機房里。封存了三年的服務(wù)器硬盤(pán),被小心翼翼地取了出來(lái)。
它們像一口口黑色的棺材,靜靜地躺在那里,埋葬著(zhù)三年前的真相。數據恢復的過(guò)程,
異常艱難。但每當看到一絲進(jìn)展,我的精神就會(huì )為之一振。與此同時(shí),對張浩的調查,
也有了突破性的進(jìn)展。法務(wù)部通過(guò)他那張銀行照片的GPS信息,向銀行申請了協(xié)查。
結果令人震驚。張浩根本不是去辦什么業(yè)務(wù)。他去的是銀行的保險庫。他在那里,
有一個(gè)匿名的保險箱。而更關(guān)鍵的是,就在他被抓的當天下午,一個(gè)神秘人,用副鑰匙,
取走了保險箱里的所有東西。線(xiàn)索,在這里斷了。另一邊,人事部也查到了張浩的入職背景。
他畢業(yè)于一所名不見(jiàn)經(jīng)傳的野雞大學(xué),簡(jiǎn)歷平平無(wú)奇。但進(jìn)入公司后,卻像開(kāi)了竅一樣,
技術(shù)突飛猛進(jìn),很快就成了部門(mén)的明星?,F在看來(lái),他之前的平庸,全都是偽裝。
他從進(jìn)入公司的第一天起,就帶著(zhù)不可告人的目的。就在所有線(xiàn)索都陷入僵局的時(shí)候,
機房里傳來(lái)一陣歡呼?!刚业搅?!」「林總,我們找到了!」
一個(gè)安全工程師激動(dòng)地朝我揮手。我立刻沖了過(guò)去。電腦屏幕上,一段殘缺的代碼,
被成功恢復。那段代碼的邏輯,無(wú)比刁鉆,無(wú)比惡毒。它偽裝成一個(gè)正常的數據庫同步程序,
卻在特定的時(shí)間點(diǎn),對數據進(jìn)行底層的、不可逆的篡改和刪除。而它的寫(xiě)法,它的變量命名,
它那獨特的循環(huán)結構……都帶著(zhù)一種強烈的,屬于張浩的個(gè)人印記。鐵證如山。
我長(cháng)長(cháng)地吐出一口濁氣,三年來(lái)壓在心口的巨石,終于被搬開(kāi)了。我拿出手機,
正準備向CEO匯報。一個(gè)陌生的號碼,卻打了進(jìn)來(lái)。我猶豫了一下,按下了接聽(tīng)鍵。
電話(huà)那頭,傳來(lái)一個(gè)經(jīng)過(guò)變聲器處理的、陰冷的笑聲?!噶治?,對嗎?」「三年前,
你沒(méi)能抓住我?!埂溉旰?,你抓住了我的棋子,感覺(jué)如何?」我的瞳孔,驟然收縮。
是張浩的上線(xiàn)!06「你是誰(shuí)?」我的聲音冰冷?!肝沂钦l(shuí)不重要?!?/p>