■ 山東 李文竹 趙長(zhǎng)林
編者按:將網(wǎng)絡(luò)威脅可視化是防御網(wǎng)絡(luò)攻擊的重要手段,但防御不能在攻擊發(fā)生之后,而應(yīng)主動(dòng)出擊。本文在追蹤網(wǎng)絡(luò)威脅時(shí)給出了幾點(diǎn)建議,以確保使攻擊從數(shù)據(jù)通信的噪音中顯露出來。
在談到追捕現(xiàn)代的威脅時(shí),安全工程師所考慮的是積極地查找網(wǎng)絡(luò)中的異常情況。安全工程師不能等待事件的發(fā)生,而應(yīng)假設(shè)攻擊者已經(jīng)進(jìn)入了企業(yè)網(wǎng)絡(luò),從而試圖跟蹤并主動(dòng)出擊。
安全工程師往往會(huì)做出有根據(jù)的假設(shè),例如,他們會(huì)想到PowerShell遠(yuǎn)程操作可被用于破壞系統(tǒng),從而通過編寫腳本來檢測(cè)它,分析其結(jié)果,并設(shè)置探測(cè)程序,用以警告這種技術(shù)在未來的使用。
現(xiàn)代數(shù)據(jù)中心往往是由好幾代的軟件架構(gòu)以及由于并購(gòu)而導(dǎo)致的遺留下的軟件組成,往往缺乏分類,再加上可用數(shù)據(jù)的巨大數(shù)量,使得高效的威脅捕獲成為很大的困難。
再加上那種“必須確保系統(tǒng)運(yùn)行”的想法要求安全不能影響運(yùn)維,從而強(qiáng)迫我們尋找在真實(shí)世界的網(wǎng)絡(luò)中奏效的可升級(jí)方法。
我們不妨以一種“已知的良好狀態(tài)”為基準(zhǔn)而開始檢查,然后再檢測(cè)異常并將其歸類為環(huán)境或安全事件的一部分。
這個(gè)過程允許防御者完成任務(wù)。由于從基準(zhǔn)開始,我們可以檢測(cè)到可能表明攻擊者活動(dòng)正在發(fā)生的異常和偏差,同時(shí)我們還可以強(qiáng)化已有的系統(tǒng),并將基準(zhǔn)轉(zhuǎn)變?yōu)橐环N可信基礎(chǔ)。
我們很難說出在大型網(wǎng)絡(luò)中到底在發(fā)生著什么,分析存在哪些資產(chǎn)以及誰(shuí)正在與其他人通信是一個(gè)公開的挑戰(zhàn)。但是,安全工程師應(yīng)當(dāng)構(gòu)建可以提供部分答案的簡(jiǎn)單工具。Ss、Sysmon、Sysdig等免費(fèi)工具與Graphviz相結(jié)合可以幫助防御者構(gòu)建能夠跟蹤網(wǎng)絡(luò)活動(dòng)的地圖。
通過使用地圖,防御者們就可以開始分析典型的網(wǎng)絡(luò)通信看起來什么樣,并且利用不同的工具建立警告,從而檢測(cè)異常通信。如果一臺(tái)獨(dú)立的Linux服務(wù)器要與本地的AD服務(wù)器通信,就應(yīng)該發(fā)出警告。負(fù)載均衡器背后的Web服務(wù)器開始直接與互聯(lián)網(wǎng)用戶通信,也應(yīng)發(fā)出警告。
這些警告未必一定表明攻擊的存在。事實(shí)上,很多警告可能是無(wú)事實(shí)證明的行為或IT的錯(cuò)誤配置引起的。這些警告都值得調(diào)查,以便于修復(fù)潛在的可被攻擊者頻繁濫用來在網(wǎng)絡(luò)中隱身的問題。隨著時(shí)間的推移,在特定網(wǎng)絡(luò)中工作的安全工程師會(huì)構(gòu)建起一個(gè)雖很少觸發(fā)卻能真正表明可疑活動(dòng)的警告集合。
為保持有效性,安全工程師需要精確地知道機(jī)器和網(wǎng)絡(luò)中發(fā)生的問題。精確的地圖是可見性的一部分。正在運(yùn)行的映像及其哈希值、域的查找等都是構(gòu)建傳感器的關(guān)鍵組件。這種數(shù)據(jù)源的頻繁構(gòu)建,需要使用前面所提到的同樣的工具,例如Sysmon等,從而能夠高效地記錄發(fā)生在集中化服務(wù)器上的事件。
但是,在建立起這種數(shù)據(jù)源后,又會(huì)出現(xiàn)新的問題。處理這些伴隨著數(shù)據(jù)源而來的數(shù)據(jù)洪水,要比收集數(shù)據(jù)更具挑戰(zhàn)性。安全工程師們不能試圖找到海量數(shù)據(jù)中的蛛絲馬跡,而必須利用其多年以來在安全和IT方面的經(jīng)驗(yàn)。
應(yīng)用程序并不是每天都更新,新服務(wù)器也不是突然出現(xiàn)的,而且企業(yè)也不會(huì)突然地與新的第三方服務(wù)開始通信。
安全工程師將事件的當(dāng)前狀態(tài)定義為合法,并查找相關(guān)的偏離行為。偏離的例子可能是從一個(gè)臨時(shí)文件夾執(zhí)行二進(jìn)制文件,也可能是一臺(tái)與一種通常并不通信的“云服務(wù)”通信,或者是與DNS查詢并不匹配的IP地址的數(shù)據(jù)傳輸。
監(jiān)視幾乎不發(fā)生變化的設(shè)備和文件是追捕威脅的另一種方法。網(wǎng)絡(luò)頻繁地依賴大量的配置文件,這些文件可以控制DNS解析、數(shù)據(jù)庫(kù)的訪問、用戶管理和其他的關(guān)鍵系統(tǒng)。
此外,這些文件幾乎不進(jìn)行更改。這些文件是監(jiān)視攻擊者活動(dòng)的典型位置,不管是鎖定對(duì)文件的訪問,又或者是監(jiān)視文件的變化,都可以起到監(jiān)視作用。文件的完整性監(jiān)視可以使安全工程師定義基準(zhǔn)并認(rèn)識(shí)到與基準(zhǔn)的偏離。
隨著時(shí)間的推移,企業(yè)構(gòu)建起大量的傳感器和警告器。但是,除了偶爾的滲透測(cè)試外,許多傳感器并沒有被測(cè)試。
安全工程師還應(yīng)當(dāng)確?,F(xiàn)有的安全軟件能夠正常運(yùn)行,并且傳感器和系統(tǒng)應(yīng)當(dāng)定期進(jìn)行測(cè)試,并使用不同的滲透和攻擊模擬工具來驗(yàn)證系統(tǒng)。
追捕威脅的總體過程就是要使攻擊者從數(shù)據(jù)通信的噪音中顯露出來。要確保成功,我們不要指望有什么萬(wàn)能的方法。
但是,使用這些方法,安全工程師就可以在復(fù)雜的網(wǎng)絡(luò)中高效地工作。通過使網(wǎng)絡(luò)通信可視化,處理異常的機(jī)器活動(dòng)數(shù)據(jù),測(cè)試現(xiàn)有的系統(tǒng),并監(jiān)視對(duì)敏感文件的改變,安全工程師就可以在復(fù)雜的網(wǎng)絡(luò)內(nèi)部找到可疑的活動(dòng)。