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

監視幾乎不發生變化的設備和文件是追捕威脅的另一種方法。網絡頻繁地依賴大量的配置文件,這些文件可以控制DNS解析、數據庫的訪問、用戶管理和其他的關鍵系統。
此外,這些文件幾乎不進行更改。這些文件是監視攻擊者活動的典型位置,不管是鎖定對文件的訪問,又或者是監視文件的變化,都可以起到監視作用。文件的完整性監視可以使安全工程師定義基準并認識到與基準的偏離。
隨著時間的推移,企業構建起大量的傳感器和警告器。但是,除了偶爾的滲透測試外,許多傳感器并沒有被測試。
安全工程師還應當確保現有的安全軟件能夠正常運行,并且傳感器和系統應當定期進行測試,并使用不同的滲透和攻擊模擬工具來驗證系統。
追捕威脅的總體過程就是要使攻擊者從數據通信的噪音中顯露出來。要確保成功,我們不要指望有什么萬能的方法。
但是,使用這些方法,安全工程師就可以在復雜的網絡中高效地工作。通過使網絡通信可視化,處理異常的機器活動數據,測試現有的系統,并監視對敏感文件的改變,安全工程師就可以在復雜的網絡內部找到可疑的活動。