第5章
白帽子
擒賊先擒王------------------------------------------“蜜罐”系統(tǒng)的部署會議在第二天上午九點(diǎn)開始。霍林只睡了三個小時,但咖啡和腎上腺素讓他的大腦保持清醒。會議室里多了幾個人,都是來自不同部門的技術(shù)專家——銀行系統(tǒng)的架構(gòu)師、支付平臺的安全工程師、還有***自己的硬件團(tuán)隊(duì)。,開門見山:“霍林提出的蜜罐方案,大家看看可行性。”。核心思想很簡單:搭建一個與真實(shí)支付清算系統(tǒng)高度相似的**環(huán)境,對外開放幾個看似有漏洞的API接口,引誘攻擊者來探測。一旦攻擊者上鉤,蜜罐會記錄所有攻擊行為,并嘗試捕獲攻擊工具。:如何讓蜜罐足夠逼真,騙過“棱鏡”這樣的專業(yè)組織?“支付系統(tǒng)的業(yè)務(wù)邏輯非常復(fù)雜?!眮碜匝胄锌萍妓镜耐豕な紫劝l(fā)言,“不是搭幾個頁面就能模擬的。交易驗(yàn)證、風(fēng)險控制、清算對賬、差錯處理……每個環(huán)節(jié)都有幾十個子系統(tǒng)。攻擊者只要稍微深入測試,就會發(fā)現(xiàn)這是假的?!保骸八悦酃薏荒芡耆M所有業(yè)務(wù)。我們只模擬攻擊者最可能探測的那一層——支付接口API。根據(jù)日志分析,攻擊者之前的探測集中在交易發(fā)起、身份驗(yàn)證和加密通信這三個環(huán)節(jié)。我們就重點(diǎn)模擬這三個環(huán)節(jié)?!??!斑^去一周,攻擊者嘗試了超過兩千次針對交易發(fā)起接口的探測,其中87%是針對某個特定參數(shù)格式的溢出測試。這說明他們已經(jīng)掌握了我們接口的部分規(guī)范,正在尋找緩沖區(qū)溢出漏洞。你怎么知道他們掌握了規(guī)范?”支付平臺的安全負(fù)責(zé)人問?!耙?yàn)樗麄兊臏y試數(shù)據(jù)包格式完全正確。”霍林展示了一個數(shù)據(jù)包樣本,“商戶號、訂單號、時間戳、簽名算法……所有字段的格式和長度都符合我們的技術(shù)文檔。只有兩個可能:要么他們從某個合作商戶那里竊取了文檔,要么他們通過逆向工程分析了正常交易流量?!?。如果是前者,意味著有內(nèi)部信息泄露;如果是后者,說明攻擊者的技術(shù)水平極高?!八晕覀兊拿酃抟龅帽日娴倪€真?!被袅掷^續(xù)說,“不僅接口規(guī)范要一致,連錯誤響應(yīng)都要模**實(shí)系統(tǒng)。比如,當(dāng)攻擊者發(fā)送惡意數(shù)據(jù)時,系統(tǒng)不能直接崩潰或拒絕,而要像真實(shí)系統(tǒng)那樣返回標(biāo)準(zhǔn)的錯誤碼和提示信息——但同時在底層記錄所有細(xì)節(jié)。”:“記錄層怎么做?攻擊者肯定會檢查是否有監(jiān)控進(jìn)程。用硬件記錄?!敝軡岢龇桨福霸诿酃薹?wù)器的主板上加裝一塊獨(dú)立的記錄芯片,不通過系統(tǒng)總線,直接從網(wǎng)卡鏡像數(shù)據(jù)。這樣即使攻擊者控制了操作系統(tǒng),也發(fā)現(xiàn)不了記錄行為。成本呢?”李處長問?!岸_蜜罐服務(wù)器,每臺加裝芯片,總預(yù)算大概五十萬?!敝軡浪?,“但需要三天時間采購和安裝?!?br>“太慢了?!被袅謸u頭,“攻擊節(jié)奏在加快。從日志看,探測頻率每天增加15%。按照這個趨勢,三天后他們可能已經(jīng)找到真實(shí)漏洞,或者轉(zhuǎn)向其他目標(biāo)了?!?br>他提出一個替代方案:用軟件模擬硬件記錄?!拔覀冊趦?nèi)核層植入一個監(jiān)控模塊,但把它偽裝成系統(tǒng)自帶的驅(qū)動程序。攻擊者檢查進(jìn)程列表時,看到的是正常的硬件驅(qū)動名;檢查系統(tǒng)調(diào)用時,監(jiān)控模塊會偽造正常的返回值。只要不進(jìn)行內(nèi)核內(nèi)存的深度分析,很難發(fā)現(xiàn)。”
趙峰皺眉:“風(fēng)險很大。如果攻擊者真的進(jìn)行內(nèi)核分析,發(fā)現(xiàn)了我們的監(jiān)控,他們就會知道這是陷阱,以后會更謹(jǐn)慎?!?br>“所以我們需要雙重保險。”霍林在白板上畫圖,“第一層,軟件監(jiān)控,負(fù)責(zé)常規(guī)記錄。第二層,在蜜罐所在的機(jī)柜里部署獨(dú)立的網(wǎng)絡(luò)探針,從物理線路上鏡像流量。這樣即使蜜罐服務(wù)器被完全控制,我們還有物理層的記錄?!?br>這個方案得到了多數(shù)人認(rèn)同。接下來是部署位置的討論。
“蜜罐放在哪里?”王工問,“如果放在我們的真實(shí)機(jī)房,一旦被攻破,可能危及真實(shí)系統(tǒng)?!?br>“放在隔離的測試環(huán)境?!被袅衷缇拖牒昧?,“但I(xiàn)P地址要和真實(shí)系統(tǒng)在同一網(wǎng)段,DNS解析也要一致。攻擊者通常先掃描IP段,再探測具體服務(wù)。我們要讓蜜罐看起來像是真實(shí)系統(tǒng)的一部分?!?br>林小雨調(diào)出網(wǎng)絡(luò)拓?fù)鋱D?!爸Ц断到y(tǒng)的主要服務(wù)器集中在兩個網(wǎng)段:10.20.30.0/24和10.20.31.0/24。我們可以在10.20.30.200到10.20.30.220這個區(qū)間部署蜜罐,這些IP目前是保留未用的?!?br>會議結(jié)束時,李處長拍板:“立即執(zhí)行?;袅重?fù)責(zé)技術(shù)總設(shè)計(jì),趙峰協(xié)調(diào)網(wǎng)絡(luò)部署,陳薇準(zhǔn)備惡意代碼分析環(huán)境,周濤保障硬件安全。二十四小時內(nèi),我要看到蜜罐上線?!?br>散會后,霍林沒有離開會議室。他一個人坐在那里,看著白板上密密麻麻的架構(gòu)圖。蜜罐就像釣魚,魚餌要香,魚線要隱蔽,收桿要快。但這次他們要釣的不是普通小魚,而是可能裝備了最先進(jìn)探測工具的大鯊魚。
壓力像無形的網(wǎng)籠罩下來?;袅秩嗔巳嗵栄?,想起***第一次參與網(wǎng)絡(luò)安全競賽的情景。那是MIT舉辦的CTF比賽,他所在的團(tuán)隊(duì)需要攻破一個模擬的銀行系統(tǒng)。當(dāng)時他用了類似蜜罐的思路——故意暴露一個假漏洞,引誘防守方來修補(bǔ),從而探測出防守方的監(jiān)控策略。那場比賽他們贏了,但賽后導(dǎo)師說:“霍林,你的策略很聰明,但記住,在真實(shí)世界里,對手不會按比賽規(guī)則出牌?!?br>現(xiàn)在就是真實(shí)世界。對手是“棱鏡”,一個可能由前情報人員組成的組織。他們的思維模式不是黑客,而是戰(zhàn)士;他們的目標(biāo)不是炫耀技術(shù),而是達(dá)成戰(zhàn)略目的。
手機(jī)震動了一下,是母親發(fā)來的微信:“兒子,安頓好了嗎?家里一切都好,不用惦記?!?br>霍林看著那條消息,心里涌起復(fù)雜的情緒。他沒有告訴父母自己具體在做什么,只說在***做技術(shù)工作。母親很高興,說“為國效力是光榮的”。父親則沉默了一會兒,最后說:“注意安全?!?br>霍林關(guān)掉ShadowTalk,打開了另一個瀏覽器窗口。這次輸入的是一個經(jīng)過特殊配置才能訪問的網(wǎng)絡(luò)入口——一個常人無法觸及的隱秘空間。
那里是互聯(lián)網(wǎng)的深層陰影。沒有常規(guī)的索引,沒有標(biāo)準(zhǔn)的訪問方式,需要借助特殊工具和層層加密才能進(jìn)入。那里充斥著各種非法交易:***買賣、武器販?zhǔn)?、人?*、黑**務(wù)……一切不見光的勾當(dāng),都在那里進(jìn)行。
霍林要做的,是偽裝成一個買家,潛入其中黑客聚集的交流場所,尋找關(guān)于“棱鏡”和“蝰蛇”的線索。
這很危險。那里魚龍混雜,有真正的罪犯,也有各國執(zhí)法部門的臥底。一句話說錯,一個細(xì)節(jié)暴露,就可能前功盡棄,甚至招來報復(fù)。
但他必須這么做。從正規(guī)渠道能獲得的信息太有限了,要了解敵人,就得去敵人出沒的地方。
特殊的瀏覽器緩慢地加載著頁面。那里的網(wǎng)絡(luò)速度很慢,因?yàn)榱髁恳?jīng)過多個節(jié)點(diǎn)的加密轉(zhuǎn)發(fā)。終于,一個簡陋的論壇界面出現(xiàn)在屏幕上:黑色的**,綠色的文字,典型的隱秘空間美學(xué)風(fēng)格。
論壇里充斥著技術(shù)討論:某個漏洞的利用方法,某個防御技術(shù)的繞過方法,某個銀行系統(tǒng)的滲透經(jīng)驗(yàn)。發(fā)言者都用代號,沒有人用真實(shí)身份。
霍林沒有急著發(fā)帖。他先花了兩個小時閱讀,了解這個論壇的文化、用語習(xí)慣、交易規(guī)則。這里的人警惕性極高,新人如果表現(xiàn)得太急切,立刻會被當(dāng)成執(zhí)法部門的探子。
凌晨三點(diǎn),他發(fā)出了第一個帖子:
標(biāo)題:尋求金融系統(tǒng)滲透專家
內(nèi)容:有一個項(xiàng)目需要突破某國銀行內(nèi)網(wǎng),預(yù)算充足,有經(jīng)驗(yàn)者私信。
帖子發(fā)出去后,霍林關(guān)掉電腦,躺到了床上。但他睡不著,腦子里全是各種可能性:會不會有人上鉤?上鉤的人會不會是“棱鏡”的成員?如果是,該怎么進(jìn)一步接觸?
窗外的天空漸漸泛白?;袅炙餍云鸫玻瑳_了個冷水澡。冰涼的水流沖刷著身體,讓混沌的大腦清醒了一些。
上午八點(diǎn),他回到技術(shù)中心。小李和小陳已經(jīng)在了,兩人眼睛都是紅的,顯然也是一夜沒睡。
凌晨四點(diǎn),趙峰來**?;袅趾唵谓淮饲闆r,準(zhǔn)備去休息室躺一會兒。但剛走到門口,監(jiān)控警報又響了——這次是另一個IP:45.76.128.91,菲律賓的跳板。
而且攻擊手法完全不同。
這個IP沒有進(jìn)行常規(guī)掃描,而是直接發(fā)送了一個畸形的****請求,請求方法居然是“PROPFIND”——這是We*D**協(xié)議的方法,正常支付接口根本不會支持。
“這是什么路數(shù)?”趙峰湊過來看。
霍林盯著日志,突然明白了?!八麄冊跍y試服務(wù)器是否誤開啟了We*D**服務(wù)。如果開啟了,就可能存在目錄遍歷或文件上傳漏洞。這是另一種攻擊思路,更偏向于系統(tǒng)配置錯誤而非應(yīng)用漏洞。”
蜜罐響應(yīng)“405 Method Not Allowed”,這是標(biāo)準(zhǔn)錯誤。但攻擊者沒有放棄,緊接著發(fā)送了第二個請求,這次是“OPTIONS”方法,用于探測服務(wù)器支持的****方法列表。
“專業(yè)的滲透測試流程?!被袅终f,“先探測服務(wù)器配置,再找應(yīng)用漏洞。這不像自動化腳本,更像人工操作?!?br>“也可能是更高級的自動化工具?!壁w峰調(diào)出歷史記錄,“看,這個IP上周也出現(xiàn)過,當(dāng)時測試的是SQL注入。但今天換成了We*D**探測,說明工具庫更新了?!?br>兩人討論時,攻擊還在繼續(xù)。菲律賓IP在十分鐘內(nèi)嘗試了七種不同的攻擊手法,從****方法混淆到請求頭注入,再到SSL重新協(xié)商攻擊。每種手法都很專業(yè),但蜜罐都完美防御了。
直到最后一次嘗試:攻擊者發(fā)送了一個特別長的Host頭,試圖觸發(fā)緩沖區(qū)溢出。蜜罐按照預(yù)設(shè)劇本,這次沒有返回錯誤,而是“意外”崩潰了——模擬了存在漏洞的系統(tǒng)被攻破時的狀態(tài)。
“上鉤了。”霍林屏住呼吸。
按照攻擊者的心理,如果發(fā)現(xiàn)一個系統(tǒng)崩潰,通常會做兩件事:一是確認(rèn)崩潰是否真實(shí),二是嘗試?yán)帽罎@取更多信息。蜜罐模擬的崩潰很逼真:****連接斷開,TCP端口暫時無響應(yīng)。
五分鐘后,同一個IP再次發(fā)起連接,這次是直接TCP SYN掃描,檢查服務(wù)器是否重啟。蜜罐“重啟”了,端口重新開放。
攻擊者發(fā)送了一個簡單的****請求,獲取服務(wù)器首頁。蜜罐返回正常的歡迎頁面。
然后,關(guān)鍵的來了:攻擊者上傳了一個文件。
通過一個精心構(gòu)造的POST請求,攻擊者上傳了一個名為“health_check.php”的文件,內(nèi)容看起來像是普通的服務(wù)器健康檢查腳本。但霍林一眼就看出問題——文件開頭有一行被注釋掉的代碼,那是PHP的反序列化漏洞利用代碼。
“樣本捕獲成功?!标愞痹诜治霏h(huán)境那邊報告,“文件已隔離,正在沙箱運(yùn)行?!?br>沙箱分析顯示,這個PHP文件一旦被執(zhí)行,會嘗試連接到一個遠(yuǎn)程服務(wù)器下載第二階段載荷。遠(yuǎn)程服務(wù)器的IP是91.199.18.73,位于拉脫維亞。
“又一個跳板。”趙峰追蹤這個IP,“但這次是專門用于載荷分發(fā)的,和之前的指揮控制服務(wù)器不同?!?br>霍林讓蜜罐“執(zhí)行”這個PHP文件,但實(shí)際是在沙箱里模擬執(zhí)行。模擬結(jié)果顯示,文件會嘗試讀取服務(wù)器配置文件,然后加密壓縮,發(fā)送到拉脫維亞的服務(wù)器。
“數(shù)據(jù)竊取腳本。”霍林總結(jié),“攻擊者的完整鏈條是:先找到漏洞,上傳后門,然后竊取數(shù)據(jù)。這個PHP文件是標(biāo)準(zhǔn)化的工具,可以批量部署?!?br>陳薇嘗試反編譯文件的加密部分?!坝玫氖茿ES-256加密,但密鑰硬編碼在文件里——‘Prism2025’??磥泶_實(shí)是‘棱鏡’組織?!?br>“Prism2025”這個密鑰名,幾乎等于簽名。霍林立刻報告李處長。
天快亮?xí)r,李處長來到監(jiān)控中心,聽完匯報后沉默了一會兒?!八源_認(rèn)是‘棱鏡’了?!?br>“基本確認(rèn)?!被袅终f,“攻擊手法、工具特征、組織習(xí)慣都吻合。而且他們這次行動規(guī)模很大,不像試探,更像總攻前的準(zhǔn)備?!?br>“蜜罐還要繼續(xù)運(yùn)行嗎?”
“要?!被袅终f,“我們只捕獲了第一波自動化腳本,還沒有抓到人工滲透的證據(jù)。而且攻擊者可能會回來檢查這個后門是否生效,我們可以守株待兔?!?br>李處長點(diǎn)頭:“注意安全,不要暴露?!忡R’很警惕,一旦發(fā)現(xiàn)異常,可能會切斷所有聯(lián)系?!?br>霍林明白這個道理。釣魚最怕驚魚。現(xiàn)在魚剛咬鉤,還沒拉出水面。
早八點(diǎn),交**時間?;袅忠呀?jīng)連續(xù)工作了二十多個小時,但精神依然亢奮。他走到基地的餐廳,要了杯濃咖啡和一份三明治。餐廳里人不多,幾個夜班的技術(shù)人員正在吃早餐,低聲討論著什么。
霍林找了個角落坐下,打開手機(jī)。新聞推送里有一條:“**一預(yù)售開啟,各大電商平臺交易額創(chuàng)新高?!迸鋱D是購物網(wǎng)站上不斷滾動的數(shù)字。
普通人看到的是消費(fèi)熱情,霍林看到的是背后的支付系統(tǒng)壓力。每秒數(shù)十萬筆交易,每筆交易都要經(jīng)過身份驗(yàn)證、風(fēng)險控制、清算處理……任何一個環(huán)節(jié)出問題,都可能引發(fā)連鎖反應(yīng)。
而“棱鏡”瞄準(zhǔn)的就是這個環(huán)節(jié)。
三明治吃到一半,陳薇發(fā)來消息:“樣本深度分析完成,有新發(fā)現(xiàn)。”
霍林立刻趕回分析室。陳薇指著屏幕上的代碼:“這個PHP文件里藏了一個彩蛋——如果服務(wù)器時間是11月11日零點(diǎn)到兩點(diǎn),文件會執(zhí)行特殊邏輯:不是竊取數(shù)據(jù),而是發(fā)起DDoS攻擊。”
“攻擊目標(biāo)?”
“代碼里寫的是支付系統(tǒng)的**IP列表,一共十七個核心**?!标愞闭{(diào)出列表,“都是真實(shí)的生產(chǎn)環(huán)境IP。”
霍林感到后背發(fā)涼。攻擊者的計(jì)劃很明確:在**一交易最高峰時,利用已控制的服務(wù)器發(fā)起DDoS,同時結(jié)合之前植入的后門,內(nèi)外夾擊癱瘓支付系統(tǒng)。
“今天幾號?”他問。
“十月二十八。”趙峰說,“還有十四天?!?br>時間緊迫。他們不僅要找到所有被控制的服務(wù)器,還要修復(fù)漏洞,清理后門,加固防御。而這一切都要在攻擊者不察覺的情況下進(jìn)行,否則對方可能提前發(fā)動攻擊。
“蜜罐還要加把勁?!被袅终f,“我們需要捕獲更多樣本,分析出他們的完整攻擊工具鏈。特別是DDoS模塊,如果能提前拿到,我們就能針對性防御?!?br>“但攻擊者還會來嗎?”陳薇擔(dān)心,“他們已經(jīng)上傳了后門,按說會等**一再激活?!?br>“他們會來檢查。”霍**定地說,“這么重要的行動,一定會定期確認(rèn)后門是否存活。我們只要讓蜜罐模擬后門正常運(yùn)行的狀態(tài),他們就會來?!?br>他修改了蜜罐的響應(yīng)策略:當(dāng)拉脫維亞服務(wù)器嘗試連接時,蜜罐會模擬后門成功回傳數(shù)據(jù)的場景,發(fā)送偽造的服務(wù)器信息。這樣攻擊者會認(rèn)為這個節(jié)點(diǎn)已經(jīng)被控制,**一時可以正常使用。
布置完這一切,霍林終于感到疲憊如潮水般涌來。他回到臨時宿舍,倒在床上,衣服都沒脫就睡著了。
夢里,他看見無數(shù)數(shù)據(jù)包像蝗蟲一樣撲向支付系統(tǒng),系統(tǒng)防火墻一道道崩潰,交易數(shù)據(jù)變成亂碼,屏幕上跳出巨大的“ERROR”。他想去修復(fù),但手怎么也夠不到鍵盤……
手機(jī)震動驚醒了他。是趙峰:“霍林,快來!大魚上鉤了!”
霍林看了一眼時間:下午三點(diǎn)。他只睡了四個小時,但立刻跳起來沖向分析室。
監(jiān)控屏幕上,蜜罐正在與一個陌生的IP進(jìn)行加密通信。不是之前的跳板服務(wù)器,而是一個全新的IP:185.162.128.33,位于立陶宛。
“這是指揮控制服務(wù)器?!壁w峰興奮地說,“攻擊者親自來檢查后門了。通信協(xié)議不是****,是自定義的二進(jìn)制協(xié)議,但我們鏡像到了完整流量。”
陳薇正在解密流量。“用的是RC4加密,密鑰還是‘Prism2025’。他們太自信了,以為沒人能**這些流量?!?br>解密后的數(shù)據(jù)令人震驚:這不是簡單的檢查,而是完整的控制指令。攻擊者通過這個后門,向蜜罐發(fā)送了十七個任務(wù)指令,包括**一當(dāng)天的攻擊時間、目標(biāo)IP、攻擊強(qiáng)度參數(shù),甚至還有備用方案——如果DDoS被防御,就啟動第二階段的勒索病毒攻擊。
“完整的作戰(zhàn)計(jì)劃。”霍林快速瀏覽,“他們計(jì)劃在零點(diǎn)整發(fā)起第一波攻擊,持續(xù)三十分鐘;零點(diǎn)三十一分啟動第二波,同時激活勒索病毒;一點(diǎn)整,如果支付系統(tǒng)還沒完全癱瘓,就啟動第三波——針對備份系統(tǒng)的攻擊?!?br>“瘋狂?!敝軡u價,“這是要徹底摧毀支付系統(tǒng)?!?br>“但也是機(jī)會。”霍林說,“現(xiàn)在我們知道了他們的全部計(jì)劃,可以提前部署防御。更重要的是,我們有了指揮控制服務(wù)器的直接IP,可以嘗試反向滲透。”
李處長被緊急叫來??赐陻?shù)據(jù)后,他臉色凝重。“反向滲透風(fēng)險太大,可能打草驚蛇?!?br>“我們可以用蜜罐做跳板?!被袅痔岢龇桨?,“攻擊者以為蜜罐是他們控制的服務(wù)器,我們可以通過蜜罐發(fā)起反向連接,偽裝成蜜罐的正常流量。只要不觸發(fā)他們的警報規(guī)則,就能悄悄潛入?!?br>“成功率?”
“不好說,但值得一試。如果能進(jìn)入他們的控制網(wǎng)絡(luò),我們就能拿到更多情報,甚至提前瓦解攻擊?!?br>李處長思考了很久?!拔倚枰蛏霞壵埵尽D銈兿葴?zhǔn)備技術(shù)方案,等我消息?!?br>等待批示的時間里,霍林團(tuán)隊(duì)繼續(xù)分析已捕獲的數(shù)據(jù)。他們發(fā)現(xiàn),“棱鏡”組織的工具鏈比想象中更完善:有專門的漏洞掃描模塊、后門部署模塊、數(shù)據(jù)竊取模塊、DDoS攻擊模塊,甚至還有一個應(yīng)急銷毀模塊——一旦控制服務(wù)器被發(fā)現(xiàn),可以遠(yuǎn)程擦除所有痕跡。
“專業(yè)軍隊(duì)級別的裝備?!壁w峰感嘆,“這已經(jīng)不是普通黑客組織了。”
霍林同意。但他也注意到一個弱點(diǎn):所有模塊都依賴同一個指揮控制服務(wù)器。如果這個服務(wù)器被摧毀或隔離,整個攻擊鏈條就會中斷。
“擒賊先擒王?!彼麑F(tuán)隊(duì)說,“我們的最終目標(biāo)不是防御每一次攻擊,而是找到并摧毀他們的指揮中心?!?br>傍晚六點(diǎn),批示下來了:允許嘗試反向滲透,但必須絕對隱蔽,一旦發(fā)現(xiàn)暴露風(fēng)險立即終止。
趙峰皺眉:“風(fēng)險很大。如果攻擊者真的進(jìn)行內(nèi)核分析,發(fā)現(xiàn)了我們的監(jiān)控,他們就會知道這是陷阱,以后會更謹(jǐn)慎?!?br>“所以我們需要雙重保險。”霍林在白板上畫圖,“第一層,軟件監(jiān)控,負(fù)責(zé)常規(guī)記錄。第二層,在蜜罐所在的機(jī)柜里部署獨(dú)立的網(wǎng)絡(luò)探針,從物理線路上鏡像流量。這樣即使蜜罐服務(wù)器被完全控制,我們還有物理層的記錄?!?br>這個方案得到了多數(shù)人認(rèn)同。接下來是部署位置的討論。
“蜜罐放在哪里?”王工問,“如果放在我們的真實(shí)機(jī)房,一旦被攻破,可能危及真實(shí)系統(tǒng)?!?br>“放在隔離的測試環(huán)境?!被袅衷缇拖牒昧?,“但I(xiàn)P地址要和真實(shí)系統(tǒng)在同一網(wǎng)段,DNS解析也要一致。攻擊者通常先掃描IP段,再探測具體服務(wù)。我們要讓蜜罐看起來像是真實(shí)系統(tǒng)的一部分?!?br>林小雨調(diào)出網(wǎng)絡(luò)拓?fù)鋱D?!爸Ц断到y(tǒng)的主要服務(wù)器集中在兩個網(wǎng)段:10.20.30.0/24和10.20.31.0/24。我們可以在10.20.30.200到10.20.30.220這個區(qū)間部署蜜罐,這些IP目前是保留未用的?!?br>會議結(jié)束時,李處長拍板:“立即執(zhí)行?;袅重?fù)責(zé)技術(shù)總設(shè)計(jì),趙峰協(xié)調(diào)網(wǎng)絡(luò)部署,陳薇準(zhǔn)備惡意代碼分析環(huán)境,周濤保障硬件安全。二十四小時內(nèi),我要看到蜜罐上線?!?br>散會后,霍林沒有離開會議室。他一個人坐在那里,看著白板上密密麻麻的架構(gòu)圖。蜜罐就像釣魚,魚餌要香,魚線要隱蔽,收桿要快。但這次他們要釣的不是普通小魚,而是可能裝備了最先進(jìn)探測工具的大鯊魚。
壓力像無形的網(wǎng)籠罩下來?;袅秩嗔巳嗵栄?,想起***第一次參與網(wǎng)絡(luò)安全競賽的情景。那是MIT舉辦的CTF比賽,他所在的團(tuán)隊(duì)需要攻破一個模擬的銀行系統(tǒng)。當(dāng)時他用了類似蜜罐的思路——故意暴露一個假漏洞,引誘防守方來修補(bǔ),從而探測出防守方的監(jiān)控策略。那場比賽他們贏了,但賽后導(dǎo)師說:“霍林,你的策略很聰明,但記住,在真實(shí)世界里,對手不會按比賽規(guī)則出牌?!?br>現(xiàn)在就是真實(shí)世界。對手是“棱鏡”,一個可能由前情報人員組成的組織。他們的思維模式不是黑客,而是戰(zhàn)士;他們的目標(biāo)不是炫耀技術(shù),而是達(dá)成戰(zhàn)略目的。
手機(jī)震動了一下,是母親發(fā)來的微信:“兒子,安頓好了嗎?家里一切都好,不用惦記?!?br>霍林看著那條消息,心里涌起復(fù)雜的情緒。他沒有告訴父母自己具體在做什么,只說在***做技術(shù)工作。母親很高興,說“為國效力是光榮的”。父親則沉默了一會兒,最后說:“注意安全?!?br>霍林關(guān)掉ShadowTalk,打開了另一個瀏覽器窗口。這次輸入的是一個經(jīng)過特殊配置才能訪問的網(wǎng)絡(luò)入口——一個常人無法觸及的隱秘空間。
那里是互聯(lián)網(wǎng)的深層陰影。沒有常規(guī)的索引,沒有標(biāo)準(zhǔn)的訪問方式,需要借助特殊工具和層層加密才能進(jìn)入。那里充斥著各種非法交易:***買賣、武器販?zhǔn)?、人?*、黑**務(wù)……一切不見光的勾當(dāng),都在那里進(jìn)行。
霍林要做的,是偽裝成一個買家,潛入其中黑客聚集的交流場所,尋找關(guān)于“棱鏡”和“蝰蛇”的線索。
這很危險。那里魚龍混雜,有真正的罪犯,也有各國執(zhí)法部門的臥底。一句話說錯,一個細(xì)節(jié)暴露,就可能前功盡棄,甚至招來報復(fù)。
但他必須這么做。從正規(guī)渠道能獲得的信息太有限了,要了解敵人,就得去敵人出沒的地方。
特殊的瀏覽器緩慢地加載著頁面。那里的網(wǎng)絡(luò)速度很慢,因?yàn)榱髁恳?jīng)過多個節(jié)點(diǎn)的加密轉(zhuǎn)發(fā)。終于,一個簡陋的論壇界面出現(xiàn)在屏幕上:黑色的**,綠色的文字,典型的隱秘空間美學(xué)風(fēng)格。
論壇里充斥著技術(shù)討論:某個漏洞的利用方法,某個防御技術(shù)的繞過方法,某個銀行系統(tǒng)的滲透經(jīng)驗(yàn)。發(fā)言者都用代號,沒有人用真實(shí)身份。
霍林沒有急著發(fā)帖。他先花了兩個小時閱讀,了解這個論壇的文化、用語習(xí)慣、交易規(guī)則。這里的人警惕性極高,新人如果表現(xiàn)得太急切,立刻會被當(dāng)成執(zhí)法部門的探子。
凌晨三點(diǎn),他發(fā)出了第一個帖子:
標(biāo)題:尋求金融系統(tǒng)滲透專家
內(nèi)容:有一個項(xiàng)目需要突破某國銀行內(nèi)網(wǎng),預(yù)算充足,有經(jīng)驗(yàn)者私信。
帖子發(fā)出去后,霍林關(guān)掉電腦,躺到了床上。但他睡不著,腦子里全是各種可能性:會不會有人上鉤?上鉤的人會不會是“棱鏡”的成員?如果是,該怎么進(jìn)一步接觸?
窗外的天空漸漸泛白?;袅炙餍云鸫玻瑳_了個冷水澡。冰涼的水流沖刷著身體,讓混沌的大腦清醒了一些。
上午八點(diǎn),他回到技術(shù)中心。小李和小陳已經(jīng)在了,兩人眼睛都是紅的,顯然也是一夜沒睡。
凌晨四點(diǎn),趙峰來**?;袅趾唵谓淮饲闆r,準(zhǔn)備去休息室躺一會兒。但剛走到門口,監(jiān)控警報又響了——這次是另一個IP:45.76.128.91,菲律賓的跳板。
而且攻擊手法完全不同。
這個IP沒有進(jìn)行常規(guī)掃描,而是直接發(fā)送了一個畸形的****請求,請求方法居然是“PROPFIND”——這是We*D**協(xié)議的方法,正常支付接口根本不會支持。
“這是什么路數(shù)?”趙峰湊過來看。
霍林盯著日志,突然明白了?!八麄冊跍y試服務(wù)器是否誤開啟了We*D**服務(wù)。如果開啟了,就可能存在目錄遍歷或文件上傳漏洞。這是另一種攻擊思路,更偏向于系統(tǒng)配置錯誤而非應(yīng)用漏洞。”
蜜罐響應(yīng)“405 Method Not Allowed”,這是標(biāo)準(zhǔn)錯誤。但攻擊者沒有放棄,緊接著發(fā)送了第二個請求,這次是“OPTIONS”方法,用于探測服務(wù)器支持的****方法列表。
“專業(yè)的滲透測試流程?!被袅终f,“先探測服務(wù)器配置,再找應(yīng)用漏洞。這不像自動化腳本,更像人工操作?!?br>“也可能是更高級的自動化工具?!壁w峰調(diào)出歷史記錄,“看,這個IP上周也出現(xiàn)過,當(dāng)時測試的是SQL注入。但今天換成了We*D**探測,說明工具庫更新了?!?br>兩人討論時,攻擊還在繼續(xù)。菲律賓IP在十分鐘內(nèi)嘗試了七種不同的攻擊手法,從****方法混淆到請求頭注入,再到SSL重新協(xié)商攻擊。每種手法都很專業(yè),但蜜罐都完美防御了。
直到最后一次嘗試:攻擊者發(fā)送了一個特別長的Host頭,試圖觸發(fā)緩沖區(qū)溢出。蜜罐按照預(yù)設(shè)劇本,這次沒有返回錯誤,而是“意外”崩潰了——模擬了存在漏洞的系統(tǒng)被攻破時的狀態(tài)。
“上鉤了。”霍林屏住呼吸。
按照攻擊者的心理,如果發(fā)現(xiàn)一個系統(tǒng)崩潰,通常會做兩件事:一是確認(rèn)崩潰是否真實(shí),二是嘗試?yán)帽罎@取更多信息。蜜罐模擬的崩潰很逼真:****連接斷開,TCP端口暫時無響應(yīng)。
五分鐘后,同一個IP再次發(fā)起連接,這次是直接TCP SYN掃描,檢查服務(wù)器是否重啟。蜜罐“重啟”了,端口重新開放。
攻擊者發(fā)送了一個簡單的****請求,獲取服務(wù)器首頁。蜜罐返回正常的歡迎頁面。
然后,關(guān)鍵的來了:攻擊者上傳了一個文件。
通過一個精心構(gòu)造的POST請求,攻擊者上傳了一個名為“health_check.php”的文件,內(nèi)容看起來像是普通的服務(wù)器健康檢查腳本。但霍林一眼就看出問題——文件開頭有一行被注釋掉的代碼,那是PHP的反序列化漏洞利用代碼。
“樣本捕獲成功?!标愞痹诜治霏h(huán)境那邊報告,“文件已隔離,正在沙箱運(yùn)行?!?br>沙箱分析顯示,這個PHP文件一旦被執(zhí)行,會嘗試連接到一個遠(yuǎn)程服務(wù)器下載第二階段載荷。遠(yuǎn)程服務(wù)器的IP是91.199.18.73,位于拉脫維亞。
“又一個跳板。”趙峰追蹤這個IP,“但這次是專門用于載荷分發(fā)的,和之前的指揮控制服務(wù)器不同?!?br>霍林讓蜜罐“執(zhí)行”這個PHP文件,但實(shí)際是在沙箱里模擬執(zhí)行。模擬結(jié)果顯示,文件會嘗試讀取服務(wù)器配置文件,然后加密壓縮,發(fā)送到拉脫維亞的服務(wù)器。
“數(shù)據(jù)竊取腳本。”霍林總結(jié),“攻擊者的完整鏈條是:先找到漏洞,上傳后門,然后竊取數(shù)據(jù)。這個PHP文件是標(biāo)準(zhǔn)化的工具,可以批量部署?!?br>陳薇嘗試反編譯文件的加密部分?!坝玫氖茿ES-256加密,但密鑰硬編碼在文件里——‘Prism2025’??磥泶_實(shí)是‘棱鏡’組織?!?br>“Prism2025”這個密鑰名,幾乎等于簽名。霍林立刻報告李處長。
天快亮?xí)r,李處長來到監(jiān)控中心,聽完匯報后沉默了一會兒?!八源_認(rèn)是‘棱鏡’了?!?br>“基本確認(rèn)?!被袅终f,“攻擊手法、工具特征、組織習(xí)慣都吻合。而且他們這次行動規(guī)模很大,不像試探,更像總攻前的準(zhǔn)備?!?br>“蜜罐還要繼續(xù)運(yùn)行嗎?”
“要?!被袅终f,“我們只捕獲了第一波自動化腳本,還沒有抓到人工滲透的證據(jù)。而且攻擊者可能會回來檢查這個后門是否生效,我們可以守株待兔?!?br>李處長點(diǎn)頭:“注意安全,不要暴露?!忡R’很警惕,一旦發(fā)現(xiàn)異常,可能會切斷所有聯(lián)系?!?br>霍林明白這個道理。釣魚最怕驚魚。現(xiàn)在魚剛咬鉤,還沒拉出水面。
早八點(diǎn),交**時間?;袅忠呀?jīng)連續(xù)工作了二十多個小時,但精神依然亢奮。他走到基地的餐廳,要了杯濃咖啡和一份三明治。餐廳里人不多,幾個夜班的技術(shù)人員正在吃早餐,低聲討論著什么。
霍林找了個角落坐下,打開手機(jī)。新聞推送里有一條:“**一預(yù)售開啟,各大電商平臺交易額創(chuàng)新高?!迸鋱D是購物網(wǎng)站上不斷滾動的數(shù)字。
普通人看到的是消費(fèi)熱情,霍林看到的是背后的支付系統(tǒng)壓力。每秒數(shù)十萬筆交易,每筆交易都要經(jīng)過身份驗(yàn)證、風(fēng)險控制、清算處理……任何一個環(huán)節(jié)出問題,都可能引發(fā)連鎖反應(yīng)。
而“棱鏡”瞄準(zhǔn)的就是這個環(huán)節(jié)。
三明治吃到一半,陳薇發(fā)來消息:“樣本深度分析完成,有新發(fā)現(xiàn)。”
霍林立刻趕回分析室。陳薇指著屏幕上的代碼:“這個PHP文件里藏了一個彩蛋——如果服務(wù)器時間是11月11日零點(diǎn)到兩點(diǎn),文件會執(zhí)行特殊邏輯:不是竊取數(shù)據(jù),而是發(fā)起DDoS攻擊。”
“攻擊目標(biāo)?”
“代碼里寫的是支付系統(tǒng)的**IP列表,一共十七個核心**?!标愞闭{(diào)出列表,“都是真實(shí)的生產(chǎn)環(huán)境IP。”
霍林感到后背發(fā)涼。攻擊者的計(jì)劃很明確:在**一交易最高峰時,利用已控制的服務(wù)器發(fā)起DDoS,同時結(jié)合之前植入的后門,內(nèi)外夾擊癱瘓支付系統(tǒng)。
“今天幾號?”他問。
“十月二十八。”趙峰說,“還有十四天?!?br>時間緊迫。他們不僅要找到所有被控制的服務(wù)器,還要修復(fù)漏洞,清理后門,加固防御。而這一切都要在攻擊者不察覺的情況下進(jìn)行,否則對方可能提前發(fā)動攻擊。
“蜜罐還要加把勁?!被袅终f,“我們需要捕獲更多樣本,分析出他們的完整攻擊工具鏈。特別是DDoS模塊,如果能提前拿到,我們就能針對性防御?!?br>“但攻擊者還會來嗎?”陳薇擔(dān)心,“他們已經(jīng)上傳了后門,按說會等**一再激活?!?br>“他們會來檢查。”霍**定地說,“這么重要的行動,一定會定期確認(rèn)后門是否存活。我們只要讓蜜罐模擬后門正常運(yùn)行的狀態(tài),他們就會來?!?br>他修改了蜜罐的響應(yīng)策略:當(dāng)拉脫維亞服務(wù)器嘗試連接時,蜜罐會模擬后門成功回傳數(shù)據(jù)的場景,發(fā)送偽造的服務(wù)器信息。這樣攻擊者會認(rèn)為這個節(jié)點(diǎn)已經(jīng)被控制,**一時可以正常使用。
布置完這一切,霍林終于感到疲憊如潮水般涌來。他回到臨時宿舍,倒在床上,衣服都沒脫就睡著了。
夢里,他看見無數(shù)數(shù)據(jù)包像蝗蟲一樣撲向支付系統(tǒng),系統(tǒng)防火墻一道道崩潰,交易數(shù)據(jù)變成亂碼,屏幕上跳出巨大的“ERROR”。他想去修復(fù),但手怎么也夠不到鍵盤……
手機(jī)震動驚醒了他。是趙峰:“霍林,快來!大魚上鉤了!”
霍林看了一眼時間:下午三點(diǎn)。他只睡了四個小時,但立刻跳起來沖向分析室。
監(jiān)控屏幕上,蜜罐正在與一個陌生的IP進(jìn)行加密通信。不是之前的跳板服務(wù)器,而是一個全新的IP:185.162.128.33,位于立陶宛。
“這是指揮控制服務(wù)器?!壁w峰興奮地說,“攻擊者親自來檢查后門了。通信協(xié)議不是****,是自定義的二進(jìn)制協(xié)議,但我們鏡像到了完整流量。”
陳薇正在解密流量。“用的是RC4加密,密鑰還是‘Prism2025’。他們太自信了,以為沒人能**這些流量?!?br>解密后的數(shù)據(jù)令人震驚:這不是簡單的檢查,而是完整的控制指令。攻擊者通過這個后門,向蜜罐發(fā)送了十七個任務(wù)指令,包括**一當(dāng)天的攻擊時間、目標(biāo)IP、攻擊強(qiáng)度參數(shù),甚至還有備用方案——如果DDoS被防御,就啟動第二階段的勒索病毒攻擊。
“完整的作戰(zhàn)計(jì)劃。”霍林快速瀏覽,“他們計(jì)劃在零點(diǎn)整發(fā)起第一波攻擊,持續(xù)三十分鐘;零點(diǎn)三十一分啟動第二波,同時激活勒索病毒;一點(diǎn)整,如果支付系統(tǒng)還沒完全癱瘓,就啟動第三波——針對備份系統(tǒng)的攻擊?!?br>“瘋狂?!敝軡u價,“這是要徹底摧毀支付系統(tǒng)?!?br>“但也是機(jī)會。”霍林說,“現(xiàn)在我們知道了他們的全部計(jì)劃,可以提前部署防御。更重要的是,我們有了指揮控制服務(wù)器的直接IP,可以嘗試反向滲透。”
李處長被緊急叫來??赐陻?shù)據(jù)后,他臉色凝重。“反向滲透風(fēng)險太大,可能打草驚蛇?!?br>“我們可以用蜜罐做跳板?!被袅痔岢龇桨?,“攻擊者以為蜜罐是他們控制的服務(wù)器,我們可以通過蜜罐發(fā)起反向連接,偽裝成蜜罐的正常流量。只要不觸發(fā)他們的警報規(guī)則,就能悄悄潛入?!?br>“成功率?”
“不好說,但值得一試。如果能進(jìn)入他們的控制網(wǎng)絡(luò),我們就能拿到更多情報,甚至提前瓦解攻擊?!?br>李處長思考了很久?!拔倚枰蛏霞壵埵尽D銈兿葴?zhǔn)備技術(shù)方案,等我消息?!?br>等待批示的時間里,霍林團(tuán)隊(duì)繼續(xù)分析已捕獲的數(shù)據(jù)。他們發(fā)現(xiàn),“棱鏡”組織的工具鏈比想象中更完善:有專門的漏洞掃描模塊、后門部署模塊、數(shù)據(jù)竊取模塊、DDoS攻擊模塊,甚至還有一個應(yīng)急銷毀模塊——一旦控制服務(wù)器被發(fā)現(xiàn),可以遠(yuǎn)程擦除所有痕跡。
“專業(yè)軍隊(duì)級別的裝備?!壁w峰感嘆,“這已經(jīng)不是普通黑客組織了。”
霍林同意。但他也注意到一個弱點(diǎn):所有模塊都依賴同一個指揮控制服務(wù)器。如果這個服務(wù)器被摧毀或隔離,整個攻擊鏈條就會中斷。
“擒賊先擒王?!彼麑F(tuán)隊(duì)說,“我們的最終目標(biāo)不是防御每一次攻擊,而是找到并摧毀他們的指揮中心?!?br>傍晚六點(diǎn),批示下來了:允許嘗試反向滲透,但必須絕對隱蔽,一旦發(fā)現(xiàn)暴露風(fēng)險立即終止。