流量威脅分析系統與Tenable生產實踐
- 2019 年 11 月 20 日
- 筆記
0×01 概要
資訊安全體系構建中流量監聽是一種常見的防護手段,從流量抓取到日誌落地,從日誌分析到威脅報警,相應產品基於流量分析模式,從最上層的處理邏輯來看是相近的,使用Suricata還是Snort處理流程類似接近,最粗放的方式去理解他們,這些系統都屬於「大型字元串處理過濾系統」。
實際生產中可能會使多家廠商的產品配型開源產品使用,或自主開發,無論採用那種方案,我們都可抽象出一種共通的頂層流量數據處理模式,典型的流量過濾與日誌分析處理流程。我們有基於Tenable產品的實踐經驗, 這種經驗展開也可以橫向擴展到其它的同類產品上、開源產品上、自主研發產品上。如果說閉源商業軟體系統和開源社區軟體系統的區別,除了產品本身,產品的生態和後期支援也是不同,我們在開源軟體使用中得到了同行和社區的很多幫助。我們在Tenable使用實踐過程中,得到專家級的指導, 這些對我們理解產品並應用於實踐中起到了莫大的幫助,為什麼要選擇Tenable舉例呢?因為此系統設計理念獨到,功能經典,因些我們選擇用這個系統進行舉例說明,介紹流量分析系統中存在的共性內容。
0×02 基本處理模式

從我們的角度出發,流量分析型安全威脅系統有5個基本任務要完成:
1.流量獲取:如何抓取網路流量內容是首要基礎功能,只有抓取流量數據,得到traffic交通流量,才能去通過應用過濾規則取得威脅事件數據。(上圖值得注意的是我們使用了流量分發設備。)
2. 流量過濾:在流量獲取階段,對數據進行過濾成本開銷比較大,通過對濾過濾條的件設定,規則解析,規則下發執行,可在在流量讀取階段對數據進行過濾,異常檢測。問題是過濾規則越多系統效率越低,甚至產生時間瓶頸或是系統延遲。
3. 數據落地:流量獲取階段,分析數據耗時耗性能,如果我們將數據快取下來,將日誌數據落地,准實時的分析數據,一方面可以減輕系統負擔, 另外數據落地後可以應用數據分析模型和關聯聚合數據,做基於演算法的更精準的異常捕獲分析,所以要把數據保存一定周期時間,在數據的生命周期內保持數據不揮發。
4.數據分析:單純保存數據不是目的,還要在日誌數據中挖掘出威脅事件的特徵數據,如果流量監聽算先知性預警處理,將風險提前預告防患於未然之中。如果過濾是針對網路流量實時規則配對的,數據分析就是對流量日誌落地後再次深入的資訊挖掘。
5. 威脅報警:流量數據作為系統的輸入並不直接產生收益,當系統產生有效的威脅報警,就能體現出系統威脅感知價值,將威脅情況第一時間通知責任相關人,防患於未然。如果主機威脅定位於威脅動作執行階段算「後知後覺」,那在流量監聽規則過濾階段報警,或是在准數據分析階段報警,能不能算是「先知先覺」是個問題。
0×03 「流」經典設計處理模式
我們用「流」的工作模式來解釋介紹流量威脅情報系統的工作過程,用Stream A和Stream B兩個「流」概括系統處理的五個組成部分:

關於流量威脅系統的核心指標:漏報率和誤報率。
漏報率:在Stream A階段進行對流量的過濾 ,可以是與歷史累計聚合數據無關碰撞的,如果不考慮黑白名單機制,不進行瞬時關聯統計,過濾是基於異常規則碰撞的,而規則是否完備,決定了威脅的漏報率高低,如果不是自學習, 系統的異常規則都是人為來定義的。

誤報率:在Stream B階段,基於Traffic流量規則過濾的威脅預判結論,在一定有限的數據集合範圍的,與規則定義的多少成正比。假定規則完備理想狀態下沒有漏報,但會存在誤報,降低誤報有以下幾種常見手段:
1:多個威脅系統報警橫向比較確認。
2:基於聚合數學統計模型進行輔助判斷。
3:特徵標籤打分,積分累計判斷,高於多少分才報。
4:對威脅payload進行第三方庫再確認。
一定還會有其它大類別的方法來解決,對已有報警進行誤報確認的更好方法,規則策略是一個動態變化的過程。
有些朋友的系統突然被入侵後,我們可以在一個環境下部署多個安全系統,A系統和B系統都有基本的威脅異常分析規則,但有些規則是對外不可見的,有的支援自定義插件,有的不支援自定義規則。系統間的規則有重合或不重合,我們橫向比較系統的報警結果,系統間重合的報警應該是被重示的。數據情況往往是多樣性,關聯性的。蜜罐、防火牆、流量分析,同時作用於一個網路環境,對他們來說, 輸入的數據是一樣。他們會從不同的角度發現威脅,如果報警高度重合,就越可能是高威脅。
0×04 流量監聽與蜜罐監聽的異同

蜜罐可以對網路異常行為流量進行一種守株待兔式的監聽,蜜罐部署利用交換機的埠聚合trunk模式,把不同的VLAN網段中的一個IP聚合到一台機器的入口埠中。

設定多IP和標記,接收不同VLAN中的流量訪問,ARP級與負載均衡DR模式類似的技術。而監聽流量是要把一定總合的流量推送到不同的監控機,關係形式多對一,多對多。 每台監控機上,使用相同的過濾規則,規則與異常行為一對一對應,一個規則對應一個威脅事件ID。在Tenable系統中分為SC、NC,名字是代號,任務內容都是監聽與存儲分析。
0×05 實踐與課題解決
如上所說,威脅分析系統本質是一個「大型字元串處理系統「。從流量變字元串文件,威脅匹配就是字元串按」規則條件「的查找特徵子串的過程。Tenable是一款優秀的產品,特色於具備獨特設計理念和專家支援。Tenable規則系統是面象用戶友好的,用戶可以自定義插件,增加檢測規則,擴展系統的功能。同時其它系統一樣,也要面臨多機部署配置分發的場景,針對這點提出解決方案是,基於Ansible進行自動化分配下發。如果你使用Suricata面臨面樣境遇的話,也可以考慮這種方案嘗試。
對於流量監聽,輔助分析工具必不可少,在調試設備,監聽實際流量,可以是使用像Wireshark、TcpDump、WinDump這些工具。Wireshark是經典工具。可以方便的在網上找到類似於《Wireshark網路分析從入門到實踐》這種命名規則的書, 找一本好的出版社出的書,對流量日常分析工作有事半功倍的效用。

關於日誌數據落地之前已經介紹很多,緊的值得關注的是Graylog正式發行了第三版:Graylog3。很多威脅分析系統都使用了ES作數據持久化,Graylog應用ES存儲安全數據相對比較方便,作為一個基於ES的管理資訊系統有自身的特色。
對於最近可能被入侵生產系統影響的朋友,提供一個開源安全系統列表,可以用些對自己的系統進行先期加固:Graylog、Snort、Suricata、Wazuh、Moloch、Ansible、OpenVAS等,希望可解燃眉之急。
0×06總結
同網路環境下,如何部署多種威脅檢測系統,抽象出核心處理模型, 歸納系統關鍵處理任務,是因近期非安全領域朋友遭遇網路入侵事件。突如其來的狀況如何快速選型安全系統部署加固生產環境,快速保護安全資產勢在必行,本文靈感也源於Tenable生產實踐,個人觀點,僅供參考!