絡(luò)對(duì)抗技術(shù)實(shí)戰(zhàn):從攻防演練到檢測(cè)能力建設(shè)的路線圖)
一提到“網(wǎng)絡(luò)對(duì)抗技術(shù)”你首先想到的是什么作為混跡安全圈十來(lái)年的從業(yè)者我經(jīng)常被問(wèn)到這個(gè)問(wèn)題。在很多人印象里網(wǎng)絡(luò)對(duì)抗技術(shù)可能等同于黑客攻防、漏洞挖掘或者電影里那些噼里啪啦的代碼雨。但在實(shí)際工作中我理解它是一個(gè)體系化的攻防演練與檢測(cè)能力建設(shè)過(guò)程是防守方為了搞清楚“攻擊者會(huì)怎么打進(jìn)來(lái)、打進(jìn)來(lái)之后會(huì)干什么、我怎么才能發(fā)現(xiàn)并攔住他”而進(jìn)行的一整套方法論研究和技術(shù)實(shí)踐。簡(jiǎn)單說(shuō)網(wǎng)絡(luò)對(duì)抗技術(shù)解決的核心問(wèn)題有三個(gè)知己搞清楚自己家網(wǎng)絡(luò)資產(chǎn)有什么弱點(diǎn)、知彼搞明白攻擊者慣用的思路和手段、知打法知道對(duì)抗過(guò)程中攻防雙方在關(guān)鍵節(jié)點(diǎn)上的博弈邏輯。當(dāng)然對(duì)基礎(chǔ)薄弱的朋友來(lái)說(shuō)不用一上來(lái)就被“對(duì)抗”兩個(gè)字嚇住——它本質(zhì)上就是一門“設(shè)計(jì)攻防場(chǎng)景、研究攻防手法、沉淀檢測(cè)策略”的實(shí)戰(zhàn)技術(shù)跟象棋里的拆棋譜一個(gè)道理你先把對(duì)手可能的走法拆透了自己落子才能不慌。我經(jīng)常和團(tuán)隊(duì)里的新人講這套技術(shù)離我們并不遙遠(yuǎn)。企業(yè)做紅藍(lán)對(duì)抗、安全廠商做產(chǎn)品自檢測(cè)、CTF戰(zhàn)隊(duì)做解題訓(xùn)練、甚至個(gè)人想提升安全分析能力都需要用到里面的思路。哪怕你暫時(shí)不專門做安全方向搞懂這套技術(shù)的內(nèi)核也能極大提升你對(duì)“網(wǎng)絡(luò)漏洞、入侵檢測(cè)、數(shù)據(jù)分析”這些概念的理解深度。這篇文章我想從一個(gè)實(shí)戰(zhàn)型從業(yè)者的角度把網(wǎng)絡(luò)對(duì)抗技術(shù)的底層邏輯、關(guān)鍵過(guò)程和實(shí)踐心得系統(tǒng)拆一遍給想入門安全運(yùn)營(yíng)、滲透測(cè)試、或者正在搭建檢測(cè)體系的朋友一份可參考的路線圖。1. 網(wǎng)絡(luò)對(duì)抗技術(shù)的本質(zhì)一場(chǎng)圍繞“暴露面”和“檢測(cè)盲區(qū)”的博弈1.1 對(duì)抗的本質(zhì)是信息不對(duì)稱的博弈說(shuō)到底網(wǎng)絡(luò)對(duì)抗的底層驅(qū)動(dòng)是信息不對(duì)稱。攻擊方在暗處防守方在明處。攻擊者可以花大量時(shí)間慢慢探測(cè)你的網(wǎng)絡(luò)邊界、梳理你的應(yīng)用架構(gòu)、尋找代碼中的邏輯漏洞然后選擇在最不被注意的時(shí)間窗口發(fā)起致命一擊。而防守方需要在海量正常流量中把異常行為從噪聲里挑出來(lái)留給判斷的時(shí)間往往只有幾分鐘甚至幾秒鐘。理解了這一點(diǎn)你就會(huì)明白為什么網(wǎng)絡(luò)對(duì)抗技術(shù)不是簡(jiǎn)單地“裝幾個(gè)安全設(shè)備”或者“寫幾條防火墻策略”就能搞定的。它需要一套完整的思考框架攻擊者視野里的目標(biāo)是什么他的攻擊鏈會(huì)怎么展開(kāi)他采用的戰(zhàn)術(shù)技巧在流量側(cè)和主機(jī)側(cè)分別會(huì)留下什么痕跡防守方在哪些位置可以布設(shè)感知節(jié)點(diǎn)檢測(cè)規(guī)則怎么設(shè)計(jì)才能最大化覆蓋攻擊路徑、同時(shí)把誤報(bào)壓到可接受范圍我自己在做對(duì)抗分析時(shí)習(xí)慣先把問(wèn)題簡(jiǎn)化成一個(gè)“三步走”模型第一步搞清楚攻擊者可能走哪幾條路進(jìn)來(lái)攻擊面分析第二步搞清楚每條路上他會(huì)做什么動(dòng)作攻擊行為建模第三步才是考慮在每條路上我們用什么設(shè)備、什么規(guī)則、什么數(shù)據(jù)源去感知他檢測(cè)點(diǎn)布局。順序一旦顛倒就特別容易陷入“買了一堆設(shè)備、日志全在大數(shù)據(jù)平臺(tái)上躺著、規(guī)則卻沒(méi)幾條能打”的窘境。1.2 攻防對(duì)抗中的分層視角網(wǎng)絡(luò)對(duì)抗的博弈并不是單點(diǎn)的而是貫穿在網(wǎng)絡(luò)層、主機(jī)層、應(yīng)用層和數(shù)據(jù)層的立體博弈。網(wǎng)絡(luò)層關(guān)注的是流量特征比如掃描行為、異常連接、協(xié)議隧道主機(jī)層關(guān)注的是進(jìn)程行為、文件系統(tǒng)變更、注冊(cè)表/啟動(dòng)項(xiàng)等痕跡應(yīng)用層關(guān)注的是Web漏洞利用、API邏輯繞過(guò)、注入類攻擊數(shù)據(jù)層關(guān)注的是敏感數(shù)據(jù)是否被加密外帶、數(shù)據(jù)庫(kù)活動(dòng)是否異常。很多人在做對(duì)抗演練或者分析真實(shí)攻擊事件時(shí)容易犯一個(gè)毛病只盯著單一層級(jí)的日志看。我在復(fù)現(xiàn)攻擊事件時(shí)吃過(guò)不少虧有一次只看網(wǎng)絡(luò)層的連接日志結(jié)果攻擊者已經(jīng)把Webshell落地了還沒(méi)發(fā)現(xiàn)——因?yàn)樗牧髁繏炝舜硗膺B通信藏得比較深。后來(lái)把主機(jī)層進(jìn)程監(jiān)控?cái)?shù)據(jù)加進(jìn)來(lái)做關(guān)聯(lián)才一口氣把整個(gè)攻擊鏈路串起來(lái)。所以我現(xiàn)在做對(duì)抗技術(shù)研究時(shí)特別強(qiáng)調(diào)“跨層關(guān)聯(lián)視角”。網(wǎng)絡(luò)層看到異常連接就要條件反射地去看連接源IP對(duì)應(yīng)主機(jī)上有沒(méi)有可疑進(jìn)程主機(jī)層發(fā)現(xiàn)文件被修改就要立刻追溯對(duì)應(yīng)時(shí)間段內(nèi)有沒(méi)有對(duì)應(yīng)的網(wǎng)絡(luò)訪問(wèn)行為。這種思維方式不是天生就會(huì)的是在一次次模擬攻防和真實(shí)應(yīng)急中磨出來(lái)的習(xí)慣。1.3 紅藍(lán)對(duì)抗和日常防御的銜接關(guān)系提到網(wǎng)絡(luò)對(duì)抗繞不開(kāi)“紅藍(lán)對(duì)抗”這個(gè)詞。紅隊(duì)負(fù)責(zé)模擬真實(shí)攻擊藍(lán)隊(duì)負(fù)責(zé)檢測(cè)響應(yīng)。很多人以為紅藍(lán)對(duì)抗就是一次性的測(cè)試活動(dòng)活動(dòng)結(jié)束就完事了。但實(shí)際上紅藍(lán)對(duì)抗的價(jià)值在于想辦法把演練中發(fā)現(xiàn)的檢測(cè)盲區(qū)、響應(yīng)短板轉(zhuǎn)化成持久化的檢測(cè)能力和響應(yīng)預(yù)案。我自己參與過(guò)幾十次大大小小的攻防演練活動(dòng)一個(gè)特別真實(shí)的感受是很多團(tuán)隊(duì)重“防”而輕“復(fù)盤”。就是對(duì)抗過(guò)程打得很熱鬧——紅了幾個(gè)標(biāo)、防住了幾輪攻擊、應(yīng)急響應(yīng)處理了幾個(gè)告警——但活動(dòng)一結(jié)束大家回到工位又開(kāi)始忙日常運(yùn)營(yíng)對(duì)抗中暴露出來(lái)的檢測(cè)規(guī)則缺陷、日志覆蓋盲區(qū)、人員響應(yīng)流程斷點(diǎn)全部被擱置。下一年演練同樣的問(wèn)題再暴露一遍。所以我在帶團(tuán)隊(duì)做對(duì)抗項(xiàng)目時(shí)強(qiáng)制性地把“攻防演練后置動(dòng)作”寫進(jìn)項(xiàng)目流程里演練結(jié)束后兩周內(nèi)必須完成檢測(cè)規(guī)則更新、日志源補(bǔ)齊、響應(yīng)劇本修訂三項(xiàng)動(dòng)作。網(wǎng)絡(luò)對(duì)抗技術(shù)如果只停留在“打成什么樣”的層面而沒(méi)有沉淀成“以后怎么更快發(fā)現(xiàn)、更好處置”的能力那這個(gè)對(duì)抗練習(xí)的價(jià)值就大打折扣了。2. 對(duì)抗基礎(chǔ)能力準(zhǔn)備數(shù)據(jù)、工具與場(chǎng)景設(shè)計(jì)一個(gè)都不能少2.1 高質(zhì)量數(shù)據(jù)是對(duì)抗研判的根基做網(wǎng)絡(luò)對(duì)抗技術(shù)研究也好做日常安全運(yùn)營(yíng)也好第一個(gè)繞不開(kāi)的坎是數(shù)據(jù)。沒(méi)有數(shù)據(jù)一切分析和規(guī)則都是空中樓閣。但“有數(shù)據(jù)”和“有高質(zhì)量數(shù)據(jù)”之間差距非常大。我見(jiàn)過(guò)很多安全團(tuán)隊(duì)的網(wǎng)絡(luò)層日志只保留源IP、目的IP、源端口、目的端口和動(dòng)作連域名、URL、用戶代理字符串都不記。這種粒度的日志在對(duì)抗分析場(chǎng)景里基本是“殘廢”的——攻擊者用了一款陌生工具掃描你的端口特征不在IP和端口上而在并發(fā)連接的模式和協(xié)議交互行為上日志里沒(méi)記全你怎么分析所以我現(xiàn)在會(huì)建議大家搭數(shù)據(jù)基礎(chǔ)時(shí)優(yōu)先保證這四類核心日志的記錄完整性網(wǎng)絡(luò)流量元數(shù)據(jù)需要包含五元組、完整的域名解析記錄、HTTP請(qǐng)求的HOST與URL字段、TLS證書的SNI信息DNS解析日志內(nèi)部終端發(fā)起的每一次域名解析請(qǐng)求記錄在對(duì)抗分析中定位DNS隧道和C2通信時(shí)特別關(guān)鍵主機(jī)進(jìn)程與文件日志進(jìn)程創(chuàng)建事件、網(wǎng)絡(luò)連接事件、文件創(chuàng)建/修改事件最好把命令行參數(shù)也一并收錄應(yīng)用訪問(wèn)日志W(wǎng)eb訪問(wèn)日志、API訪問(wèn)日志、數(shù)據(jù)庫(kù)操作日志重點(diǎn)覆蓋鑒權(quán)失敗、權(quán)限變更和高危操作字段。有一個(gè)小建議日志記錄千萬(wàn)不能圖省事精簡(jiǎn)字段。安全場(chǎng)景和業(yè)務(wù)場(chǎng)景不一樣業(yè)務(wù)日志精簡(jiǎn)掉某些字段頂多影響數(shù)據(jù)分析安全日志精簡(jiǎn)掉字段遇到攻擊事件時(shí)可能直接導(dǎo)致無(wú)法回溯那種無(wú)力感經(jīng)歷過(guò)一次就再也不想有第二次了。2.2 合理選用對(duì)抗研究與分析工具在網(wǎng)絡(luò)對(duì)抗技術(shù)研究和日常模擬攻防中工具選型直接決定了分析的效率上限。但我要先說(shuō)一句大實(shí)話不要盲目追求“高級(jí)”工具先把基礎(chǔ)分析工具吃透比什么都強(qiáng)。很多朋友一上來(lái)就問(wèn)用什么SIEM平臺(tái)、用什么態(tài)勢(shì)感知系統(tǒng)這些大而全的平臺(tái)當(dāng)然有價(jià)值但如果你連用Wireshark抓包看流量的基本邏輯都不熟連用命令行工具跑一下常用分析腳本都費(fèi)勁那大平臺(tái)的告警你會(huì)越看越迷茫——因?yàn)槟悴焕斫飧婢澈蟮降讓?duì)應(yīng)什么行為沒(méi)底氣。我先列一個(gè)我自己常用的基礎(chǔ)能力清單附上典型場(chǎng)景工具/技能核心用途適用分析場(chǎng)景抓包分析還原完整的協(xié)議交互過(guò)程識(shí)別異常協(xié)議行為排查可疑外聯(lián)、確認(rèn)數(shù)據(jù)外帶行為、分析未知協(xié)議日志檢索與關(guān)聯(lián)在海量日志中按時(shí)間線檢索攻擊行為序列攻擊鏈還原、多源日志交叉驗(yàn)證、異常行為定位威脅情報(bào)查詢確認(rèn)可疑IP、域名、文件哈希的威脅屬性初步研判、攻擊源性質(zhì)判斷、樣本處置優(yōu)先級(jí)排序行為模擬驗(yàn)證在隔離環(huán)境中復(fù)現(xiàn)攻擊行為觀察具體跡象規(guī)則調(diào)優(yōu)、驗(yàn)證檢測(cè)能力、確認(rèn)告警有效性腳本處理數(shù)據(jù)對(duì)日志做批量篩選、去重、時(shí)間線聚合海量日志分析、攻擊特征統(tǒng)計(jì)、數(shù)據(jù)外帶行為分析工具不在多關(guān)鍵用熟。這個(gè)領(lǐng)域尤其忌諱“收藏了就會(huì)了”“裝了就懂了”真正的技術(shù)手感要么來(lái)自真實(shí)處置事件的經(jīng)驗(yàn)要么來(lái)自自己一遍遍搭環(huán)境做模擬的折騰。網(wǎng)絡(luò)對(duì)抗技術(shù)是一門“手上功夫”光看理論十遍不如自己動(dòng)手模擬攻擊行為拆解一遍來(lái)得扎實(shí)。2.3 設(shè)計(jì)一個(gè)典型的攻防模擬場(chǎng)景做網(wǎng)絡(luò)對(duì)抗技術(shù)研究時(shí)我很提倡大家從小規(guī)模的攻防模擬場(chǎng)景開(kāi)始練手。不用一上來(lái)就搞幾百臺(tái)機(jī)器的大規(guī)模紅藍(lán)對(duì)抗太重了也不利于聚焦學(xué)習(xí)。一個(gè)我反復(fù)推薦給新人的標(biāo)準(zhǔn)場(chǎng)景是這樣的準(zhǔn)備兩臺(tái)虛擬機(jī)一臺(tái)作為攻擊機(jī)一臺(tái)作為靶標(biāo)機(jī)。攻擊機(jī)上模擬一個(gè)Web攻擊行為比如針對(duì)一個(gè)存在已知漏洞的Web網(wǎng)站進(jìn)行漏洞利用探測(cè)靶標(biāo)機(jī)上部署基礎(chǔ)的流量抓包工具把整個(gè)過(guò)程全程記錄下來(lái)。目標(biāo)只有一個(gè)搞清楚一次完整的攻擊行為在網(wǎng)絡(luò)流量上到底長(zhǎng)什么樣。在這個(gè)場(chǎng)景中你會(huì)很直觀地理解什么是“攻擊特征”。比如漏洞掃描器發(fā)起請(qǐng)求時(shí)HTTP請(qǐng)求頭里的User-Agent往往帶有工具的特征字符串請(qǐng)求的目標(biāo)路徑往往是有規(guī)律的高頻路徑遍歷連接行為上會(huì)出現(xiàn)短時(shí)間大量請(qǐng)求、且失敗響應(yīng)比例偏高的特點(diǎn)。這些特征你通過(guò)自己抓包去分析印象會(huì)比看十篇分析報(bào)告都深。進(jìn)階一點(diǎn)的設(shè)計(jì)可以加上主機(jī)側(cè)的對(duì)抗觀測(cè)。在靶標(biāo)機(jī)上提前安裝好進(jìn)程行為監(jiān)控工具攻擊者成功上傳工具并執(zhí)行時(shí)你會(huì)看到進(jìn)程樹(shù)異常生成、網(wǎng)絡(luò)連接從Web服務(wù)進(jìn)程派生出來(lái)等關(guān)鍵跡象。這時(shí)候你就會(huì)意識(shí)到原來(lái)網(wǎng)絡(luò)層和數(shù)據(jù)層的關(guān)聯(lián)分析才是真正還原攻擊鏈的關(guān)鍵路徑。3. 核心對(duì)抗過(guò)程拆解從信息收集到痕跡清除3.1 信息收集與攻擊面分析網(wǎng)絡(luò)對(duì)抗技術(shù)的研究中信息收集是起始點(diǎn)也是決定后續(xù)對(duì)抗質(zhì)量的關(guān)鍵階段。從防守方視角看理解攻擊者的信息收集手法本質(zhì)上是理解“他憑什么找到攻擊切入點(diǎn)”。從攻擊方視角看這一步做不充分后續(xù)所有動(dòng)作都是盲人摸象。常規(guī)的信息收集大致分兩類被動(dòng)收集和主動(dòng)探測(cè)。被動(dòng)收集可以靠網(wǎng)絡(luò)空間測(cè)繪數(shù)據(jù)、歷史泄露信息等渠道完成主動(dòng)探測(cè)則是直接向目標(biāo)發(fā)起連接來(lái)獲取響應(yīng)信息比如端口掃描、目錄枚舉、服務(wù)版本識(shí)別。在日常防御中我對(duì)信息收集階段的關(guān)注點(diǎn)主要在兩個(gè)地方一是掃描行為的及時(shí)發(fā)現(xiàn)端口掃描和目錄枚舉無(wú)論用什么工具流量側(cè)總會(huì)有統(tǒng)計(jì)規(guī)律上的異常比如單位時(shí)間內(nèi)新建連接的頻率遠(yuǎn)超正?;€、大量請(qǐng)求返回404錯(cuò)誤碼等二是暴露面的收斂定期梳理互聯(lián)網(wǎng)側(cè)對(duì)外開(kāi)放的端口和服務(wù)把不該暴露的都收回來(lái)比單純依賴檢測(cè)規(guī)則更務(wù)實(shí)。攻擊者技術(shù)再?gòu)?qiáng)也得先有口子才能進(jìn)來(lái)你把門窗都關(guān)嚴(yán)實(shí)了他敲門的技術(shù)再花哨也沒(méi)用。3.2 漏洞利用與權(quán)限獲取階段的行為建模如果說(shuō)信息收集決定攻擊路徑怎么選那么漏洞利用階段就決定了對(duì)抗的“勝負(fù)手”。從藍(lán)隊(duì)檢測(cè)角度看這個(gè)階段的行為建模是最核心的研究?jī)?nèi)容。以最常見(jiàn)的Web漏洞利用為例SQL注入會(huì)留下數(shù)據(jù)庫(kù)異常錯(cuò)誤信息和密集的請(qǐng)求模式命令注入會(huì)在Web訪問(wèn)日志中留下命令行參數(shù)的痕跡文件上傳漏洞利用后通常伴隨Web目錄下的新文件寫入。這些行為落到日志和流量上都有相對(duì)穩(wěn)定的模式。把穩(wěn)定模式變成檢測(cè)規(guī)則就是對(duì)抗技術(shù)研究的核心工作之一。實(shí)操中有一個(gè)很重要的經(jīng)驗(yàn)不要只看單一請(qǐng)求是否命中漏洞特征要結(jié)合請(qǐng)求序列來(lái)做判定。比如攻擊者先做目錄枚舉、再探測(cè)特定路徑、然后發(fā)送特殊的利用請(qǐng)求、最后上傳工具這串行為在時(shí)間軸上是有先后依賴關(guān)系的。單看其中某一個(gè)包可能跟正常請(qǐng)求差別不大但把時(shí)間序列拉出來(lái)行為意圖就非常清晰了。這也是為什么我始終強(qiáng)調(diào)日志來(lái)源要全、時(shí)間同步要準(zhǔn)不然做序列關(guān)聯(lián)時(shí)會(huì)非常痛苦。3.3 權(quán)限維持與技術(shù)對(duì)抗的焦點(diǎn)攻擊者拿到初步權(quán)限之后一定會(huì)想方設(shè)法做權(quán)限維持——術(shù)語(yǔ)叫持久化。持久化的目的是保證即使系統(tǒng)重啟、賬號(hào)被清理或漏洞被修補(bǔ)他仍然可以重新獲取訪問(wèn)權(quán)限。常見(jiàn)的持久化手法包括創(chuàng)建隱藏賬號(hào)、修改系統(tǒng)啟動(dòng)項(xiàng)、注入正常進(jìn)程、部署計(jì)劃任務(wù)、或在Web目錄中植入后門文件。從對(duì)抗角度看權(quán)限維持階段的攻防博弈是最有意思的。攻擊者挖空心思讓惡意行為“融入”正常系統(tǒng)行為里防守方要做的則是建立對(duì)異常的敏感度。比如一個(gè)從未在凌晨時(shí)段有過(guò)登錄記錄的主機(jī)突然在凌晨三點(diǎn)多出現(xiàn)計(jì)劃任務(wù)進(jìn)程啟動(dòng)并伴隨外聯(lián)連接的行為這在正常運(yùn)營(yíng)場(chǎng)景中就是一個(gè)非常值得警惕的序列信號(hào)。這些對(duì)抗細(xì)節(jié)單靠“看見(jiàn)惡意文件”是不夠的因?yàn)楣粽呖梢越o工具做免殺處理文件特征可以千變?nèi)f化。真正有效的對(duì)抗手段是建立行為基線和異常偏差感知理解這臺(tái)主機(jī)平常怎么運(yùn)作、用戶平常什么時(shí)候登錄、外聯(lián)目標(biāo)通常在哪些地域一旦出現(xiàn)偏離就觸發(fā)進(jìn)一步的排查流程。攻擊者的工具可以換一萬(wàn)個(gè)變種但他要達(dá)到目的行為上繞不開(kāi)某些必經(jīng)動(dòng)作盯住這些必經(jīng)動(dòng)作對(duì)抗就有了抓手。3.4 數(shù)據(jù)外帶痕跡與隱蔽通信識(shí)別網(wǎng)絡(luò)對(duì)抗技術(shù)里這個(gè)環(huán)節(jié)是比較考驗(yàn)分析基本功的。攻擊者把數(shù)據(jù)偷到手不算完他得把數(shù)據(jù)傳到外部這個(gè)過(guò)程叫數(shù)據(jù)外帶數(shù)據(jù)滲出。同時(shí)攻擊工具與外部控制端之間的通信也就是C2通道也需要在網(wǎng)絡(luò)流量中隱蔽存在。數(shù)據(jù)外帶的行為在不同場(chǎng)景下有不同表現(xiàn)。如果外帶的數(shù)據(jù)量小可能藏在正常的DNS請(qǐng)求里——把一個(gè)數(shù)據(jù)文件拆碎編碼后放在子域名字段里逐條發(fā)送如果外帶的數(shù)據(jù)量大可能直接用加密隧道傳輸此時(shí)流量形態(tài)上會(huì)表現(xiàn)為單條連接長(zhǎng)時(shí)間存在、流量模式比較均勻、與正常業(yè)務(wù)流量的訪問(wèn)模式差異明顯。識(shí)別這類隱蔽通信我的核心建議是“縱向看單點(diǎn)是否存在異常、橫向看整體是否有規(guī)律可循”。單臺(tái)服務(wù)器每天往同一個(gè)外部IP發(fā)送流量每次都很規(guī)律雖然單看域名、證書都沒(méi)有威脅特征但這個(gè)規(guī)律性本身就值得深挖。網(wǎng)絡(luò)對(duì)抗中大量隱蔽通信能得逞不是因?yàn)樘卣鞫喔呒?jí)而是防守方的數(shù)據(jù)基礎(chǔ)和分析習(xí)慣不到位。把基礎(chǔ)打牢隱蔽通信至少在流量側(cè)很難藏得住。4. 檢測(cè)能力建設(shè)規(guī)則、場(chǎng)景與平臺(tái)的三角協(xié)同4.1 檢測(cè)規(guī)則的痛點(diǎn)誤報(bào)與漏報(bào)的平衡談到網(wǎng)絡(luò)對(duì)抗技術(shù)的落地最繞不開(kāi)的就是檢測(cè)規(guī)則。再好的分析方法最后都得轉(zhuǎn)化成可執(zhí)行的檢測(cè)邏輯才可能在日常運(yùn)營(yíng)中持續(xù)發(fā)揮作用。但規(guī)則這個(gè)東西做淺了漏報(bào)做深了誤報(bào)平衡點(diǎn)非常難拿捏。我印象里特別深刻的一次是為了檢測(cè)某種遠(yuǎn)程控制工具的通信行為我早期寫了一條針對(duì)特定端口和連接頻率的規(guī)則測(cè)試時(shí)效果很好結(jié)果上線后大量正常業(yè)務(wù)流量也被誤報(bào)進(jìn)來(lái)——因?yàn)槟菞l規(guī)則的判定邏輯沒(méi)有排除正常業(yè)務(wù)連接中相似的連接模式。后來(lái)我花了很大精力把白名單機(jī)制加進(jìn)去又把規(guī)則的觸發(fā)邏輯從“單點(diǎn)命中”改成“時(shí)序序列命中”才把誤報(bào)壓下來(lái)了。這段踩坑史讓我總結(jié)出兩條原則。第一條規(guī)則上線前必須做歷史日志的回放驗(yàn)證——從已經(jīng)確認(rèn)為正常的流量樣本里跑一遍看會(huì)產(chǎn)生多少誤報(bào)沒(méi)做過(guò)這一步的規(guī)則別急著上生產(chǎn)第二條規(guī)則要設(shè)計(jì)成可解釋的——團(tuán)隊(duì)里的分析人員看到告警要能順著規(guī)則邏輯復(fù)盤出攻擊行為過(guò)程如果規(guī)則本身邏輯像黑盒告警就失去了研判的基礎(chǔ)。4.2 從單個(gè)檢測(cè)點(diǎn)到檢測(cè)場(chǎng)景的升級(jí)很多團(tuán)隊(duì)的檢測(cè)能力停留在“單條規(guī)則對(duì)應(yīng)單一行為”的層面。比如有SQL注入規(guī)則有敏感文件訪問(wèn)規(guī)則有異常外聯(lián)規(guī)則但這些規(guī)則彼此獨(dú)立、互不關(guān)聯(lián)。攻擊者五步走完的攻擊鏈在檢測(cè)平臺(tái)上變成了一條條零散的告警信息分析人員根本串不起來(lái)對(duì)抗效果自然大打折扣。我在實(shí)踐中更推崇“檢測(cè)場(chǎng)景”的思路把一次完整攻擊過(guò)程中各個(gè)階段對(duì)應(yīng)的檢測(cè)點(diǎn)按攻擊鏈的順序組合成一個(gè)完整的檢測(cè)場(chǎng)景。比如外部掃描行為命中后緊接著觸發(fā)Web漏洞利用規(guī)則隨后出現(xiàn)Web目錄新建文件告警再往后主機(jī)側(cè)出現(xiàn)異常外聯(lián)——多個(gè)檢測(cè)點(diǎn)在時(shí)間軸上串聯(lián)起來(lái)就構(gòu)成一個(gè)高置信度的攻擊事件線索。這種檢測(cè)場(chǎng)景化的做法優(yōu)勢(shì)在于大幅提升了告警的決策價(jià)值。單點(diǎn)告警分析人員需要逐一研判場(chǎng)景化告警可以直接把研判結(jié)論前置到“這大概率是一起定向攻擊事件”的級(jí)別響應(yīng)效率完全不同。4.3 用平臺(tái)把能力沉淀成體系網(wǎng)絡(luò)對(duì)抗技術(shù)做久了你會(huì)發(fā)現(xiàn)單靠零散的規(guī)則和腳本能力是沉淀不下來(lái)的。真正成熟的檢測(cè)體系最后一定會(huì)走向平臺(tái)化。平臺(tái)化的價(jià)值不在于“有個(gè)大屏展示”或者“各種圖表很漂亮”而在于三個(gè)核心能力第一是統(tǒng)一的告警管理和分析工作臺(tái)讓分析人員不需要在七八個(gè)系統(tǒng)之間來(lái)回切換第二是自動(dòng)化的檢測(cè)規(guī)則生命周期管理從規(guī)則開(kāi)發(fā)、測(cè)試、上線到停用都有一套標(biāo)準(zhǔn)化流程第三是響應(yīng)處置的閉環(huán)追蹤每次告警從產(chǎn)生、研判、處置到復(fù)盤都有記錄可回溯。我自己參與過(guò)不少檢測(cè)平臺(tái)的規(guī)劃建設(shè)有一個(gè)深切的感受平臺(tái)只是個(gè)載體真正讓平臺(tái)發(fā)揮價(jià)值的是背后設(shè)計(jì)者對(duì)戰(zhàn)場(chǎng)的理解深度。同樣的平臺(tái)有人用起來(lái)能每天都發(fā)現(xiàn)真正的問(wèn)題線索有人用起來(lái)只會(huì)每天機(jī)械地點(diǎn)“關(guān)閉告警”差別不在產(chǎn)品功能在思路。5. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄實(shí)戰(zhàn)中踩過(guò)的坑和解決思路5.1 告警爆炸與疲勞運(yùn)營(yíng)做安全運(yùn)營(yíng)最崩潰的場(chǎng)景之一就是告警爆炸。平臺(tái)上每天上萬(wàn)條告警分析團(tuán)隊(duì)只有兩三個(gè)人根本看不過(guò)來(lái)結(jié)果就是高優(yōu)先級(jí)告警被淹沒(méi)在海量中低優(yōu)先級(jí)的告警里真正的問(wèn)題反而沒(méi)人看到。我的排查思路是這樣的先不要急著加新規(guī)則而是先做規(guī)則治理。第一步把規(guī)則按照攻擊鏈階段打標(biāo)簽第二步統(tǒng)計(jì)每個(gè)規(guī)則的觸發(fā)量和準(zhǔn)確率第三步把準(zhǔn)確率低、觸發(fā)量大的規(guī)則重點(diǎn)優(yōu)化或直接下線。說(shuō)到底告警質(zhì)量比告警數(shù)量重要得多。寧可每天只有五十條高置信度告警也不要五千條其中百分之九十九是誤報(bào)的告警。5.2 時(shí)間不同步導(dǎo)致的關(guān)聯(lián)分析錯(cuò)亂做多源日志關(guān)聯(lián)分析時(shí)最容易忽視的一個(gè)基礎(chǔ)問(wèn)題就是日志時(shí)間同步。不同設(shè)備的時(shí)間如果偏差過(guò)大攻擊時(shí)間線還原起來(lái)就會(huì)錯(cuò)位。我曾經(jīng)處理過(guò)一次事件分析流量日志和目標(biāo)系統(tǒng)日志之間的時(shí)間差超過(guò)十分鐘導(dǎo)致我把兩個(gè)完全不相關(guān)的事件強(qiáng)行關(guān)聯(lián)在了一起浪費(fèi)了幾個(gè)小時(shí)的排查時(shí)間?,F(xiàn)在我把時(shí)間同步檢查列入了日常分析的前置動(dòng)作。做任何跨設(shè)備日志關(guān)聯(lián)之前先抽幾個(gè)基準(zhǔn)事件校準(zhǔn)時(shí)間偏差。這是一個(gè)非常小但特別關(guān)鍵的習(xí)慣能省掉后面大量的彎路。5.3 加密流量下的對(duì)抗困境加密流量占比越來(lái)越高之后網(wǎng)絡(luò)側(cè)的分析空間被大幅壓縮。早期的特征匹配在加密流量面前基本失效對(duì)抗的焦點(diǎn)被迫向主機(jī)側(cè)轉(zhuǎn)移。我在面對(duì)加密流量時(shí)策略是這樣的網(wǎng)絡(luò)層側(cè)重分析“連接的行為模式”比如連接時(shí)長(zhǎng)、連接頻次、傳輸流量大小、握手特征的異常主機(jī)側(cè)重點(diǎn)分析發(fā)起這些連接的進(jìn)程行為——是什么進(jìn)程在跟外部通信、這個(gè)進(jìn)程是不是正常的應(yīng)用進(jìn)程、它的父進(jìn)程是誰(shuí)。把這兩層數(shù)據(jù)關(guān)聯(lián)起來(lái)看即使流量加密了行為鏈上的異常依然有跡可循。5.4 誤報(bào)處置的心理學(xué)陷阱這里我想特別聊一個(gè)不太常被人談起但特別實(shí)際的問(wèn)題誤報(bào)對(duì)分析人員判斷力的侵蝕。當(dāng)一個(gè)告警規(guī)則連續(xù)很久沒(méi)有產(chǎn)生過(guò)真實(shí)攻擊告警全是誤報(bào)分析人員會(huì)下意識(shí)產(chǎn)生麻痹心理。而攻擊者恰恰很擅長(zhǎng)利用防守方的這種適應(yīng)心理挑在最不可能被注意的時(shí)間、用最容易被忽略的方式發(fā)起攻擊。所以我在做檢測(cè)規(guī)劃時(shí)特別強(qiáng)調(diào)隨機(jī)性驗(yàn)證定期變換攻擊模擬的行為特征確保規(guī)則庫(kù)對(duì)“不常見(jiàn)的攻擊變體”仍然保持敏感性。網(wǎng)絡(luò)對(duì)抗本身就是一個(gè)持續(xù)博弈的過(guò)程防守方一旦陷入固定的思維模式和操作慣性離被突破就不遠(yuǎn)了。6. 一點(diǎn)個(gè)人經(jīng)驗(yàn)把對(duì)抗技術(shù)變成日常習(xí)慣寫了這么多技術(shù)內(nèi)容最后想分享一點(diǎn)我自己做網(wǎng)絡(luò)對(duì)抗技術(shù)研究多年的體會(huì)。我越來(lái)越深刻地覺(jué)得做這行最重要的能力不是掌握多少工具、寫過(guò)多少條規(guī)則而是養(yǎng)成一種“對(duì)抗視角”的思維習(xí)慣。這種思維習(xí)慣表現(xiàn)在哪里呢比如你看一臺(tái)服務(wù)器的訪問(wèn)日志不只是看有沒(méi)有異常報(bào)錯(cuò)而是會(huì)想如果我是攻擊者我會(huì)怎么嘗試突破這個(gè)系統(tǒng)這個(gè)系統(tǒng)的哪些薄弱點(diǎn)是我最喜歡下手的比如你看到一條可疑的連接記錄第一反應(yīng)不是急著封IP而是會(huì)追問(wèn)這條連接是誰(shuí)發(fā)起的、這個(gè)進(jìn)程為什么要發(fā)這個(gè)請(qǐng)求、它還要跟外部通信多久比如你設(shè)計(jì)一個(gè)檢測(cè)規(guī)則時(shí)會(huì)同時(shí)思考如果攻擊者知道了這條規(guī)則他會(huì)怎么繞過(guò)我能提前在哪個(gè)環(huán)節(jié)再做一道防線。這種思維習(xí)慣不是天生的是在一次次看流量、查日志、寫規(guī)則、審告警、做復(fù)盤的過(guò)程中慢慢磨出來(lái)的。網(wǎng)絡(luò)對(duì)抗技術(shù)表面的形式不斷變化攻擊手法有千萬(wàn)種變體但核心博弈的邏輯是不變的攻擊者總要經(jīng)過(guò)一定步驟防守方總要在關(guān)鍵節(jié)點(diǎn)上布設(shè)感知能力二者的博弈永遠(yuǎn)存在、也永遠(yuǎn)在演進(jìn)。對(duì)想進(jìn)入這個(gè)領(lǐng)域的朋友我的建議很樸素從小場(chǎng)景開(kāi)始動(dòng)手把每一次分析與處置都當(dāng)成一次對(duì)抗研究來(lái)做做完了認(rèn)真復(fù)盤把經(jīng)驗(yàn)沉淀成自己的規(guī)則或筆記。堅(jiān)持半年以上你再回頭看一開(kāi)始的自己會(huì)發(fā)現(xiàn)對(duì)“網(wǎng)絡(luò)對(duì)抗”這四個(gè)字的理解完全不同了。這套技術(shù)不神秘但絕對(duì)值得你投入時(shí)間和精力畢竟在數(shù)字化程度越來(lái)越高的今天懂對(duì)抗、會(huì)分析、能守住的人永遠(yuǎn)都有用武之地。