zeek系列之:流量分析流量数据采集流量探针利器zeek
?什么是zeek
Zeek是一個被動的開源網絡流量分析器。許多運營商將Zeek用作網絡安全監視器(NSM),以支持對可疑或惡意活動的調查。Zeek還支持安全領域以外的各種流量分析任務,包括性能評估和故障排除。
新用戶從Zeek獲得的第一個好處是描述網絡活動的大量日志。這些日志不僅包括網絡上看到的每個連接的全面記錄,還包括應用程序層記錄。這些包括所有HTTP會話及其請求的URI,密鑰標頭,MIME類型和服務器響應,帶回復的DNS請求,SSL證書,SMTP會話的關鍵內容,以及更多。默認情況下,Zeek將所有這些信息寫入結構良好的制表符分隔或JSON日志文件中,這些文件適合使用外部軟件進行后處理。用戶還可以選擇讓外部數據庫或SIEM產品使用,存儲,處理和顯示數據以進行查詢。
除了日志外,Zeek還具有用于一系列分析和檢測任務的內置功能,包括:
從HTTP會話中提取文件
通過與外部注冊表進行接口來檢測惡意軟件
報告網絡上可見的易受攻擊的軟件版本
識別流行的網絡應用程序
檢測SSH暴力破解
驗證SSL證書鏈
…
除了“開箱即用”提供如此強大的功能外,Zeek還是一個完全可定制且可擴展的流量分析平臺。Zeek為用戶提供了一種特定于域的圖靈完備的腳本語言,用于表達任意分析任務。將Zeek語言視為“特定于域的Python”(或Perl):就像Python一樣,該系統具有大量的預建功能(“標準庫”),但用戶也可以使用Zeek通過編寫自定義代碼以新穎的方式。實際上,Zeek的所有默認分析(包括日志記錄)都是通過腳本完成的。沒有將具體的分析硬編碼到系統的核心中。
Zeek在商品硬件上運行,因此提供了昂貴的專有解決方案的低成本替代方案。Zeek在許多方面都超過了其他網絡監視工具的功能,這些功能通常仍然局限于一小組硬編碼的分析任務。Zeek不是經典的基于簽名的入侵檢測系統(IDS);盡管Zeek的腳本語言也支持這種標準功能,但它促進了范圍廣泛的非常不同的方法來查找惡意活動。這些包括語義濫用檢測,異常檢測和行為分析。
各種各樣的站點都部署了Zeek來保護其基礎設施,包括許多大學,研究實驗室,超級計算中心,開放科學社區,大型公司和政府機構。Zeek專門針對高速,大容量網絡監控,現在越來越多的站點正在使用該系統來監控其10GE網絡,其中一些站點已經轉移到100GE鏈路。
Zeek通過支持可擴展的負載平衡來適應高性能設置。大型站點通常運行“ Zeek群集”,其中高速前端負載平衡器在適當數量的后端PC上分配流量,所有這些PC在其各自的流量切片上運行專用的Zeek實例。中央管理器系統協調該過程,在后端同步狀態,并為操作員提供中央管理界面,用于配置和訪問匯總的日志。Zeek的集成管理框架ZeekControl開箱即用地支持此類群集設置。
Zeek的群集功能支持單系統和多系統設置。這是Zeek的可擴展性優勢的一部分。例如,管理員可以在一個系統內盡可能長時間地擴展Zeek,然后在必要時透明地添加更多系統。
簡而言之,Zeek經過優化,可以解釋網絡流量并根據該流量生成日志。它并未針對字節匹配進行優化,嘗試使用Suricata之類的入侵檢測系統將為尋求簽名檢測方法的用戶提供更好的服務。Zeek也不是Wireshark的協議分析器,它試圖在幀級別描述網絡流量的每個元素,也不是一種以數據包捕獲(PCAP)形式存儲流量的系統。相反,Zeek位于代表小型但高保真度網絡日志的“happy medium”(happy medium:避免任何極端情況的好選擇或條件)上,從而使人們對網絡流量和使用情況有了更好的了解。
0x01b 為什么選擇zeek
Zeek為希望更好地了解其基礎結構使用方式的安全和網絡團隊提供了許多優勢。
安全團隊在嘗試檢測和響應可疑和惡意活動時通常依賴于四種數據源。這些包括第三方來源,例如執法機構,同行,商業或非營利組織的威脅情報組織;網絡數據; 基礎架構和應用程序數據,包括來自云環境的日志;和端點數據。Zeek主要是一個用于收集和分析第二種數據形式(網絡數據)的平臺。但是,所有這四個要素都是任何安全團隊計劃的重要組成部分。
查看來自網絡的數據時,分析人員可以使用四種類型的數據。根據網絡安全監視范式的定義,這四種數據類型是完整內容,事務數據,提取的內容和警報數據。使用這些數據類型,可以分別記錄流量,匯總流量,提取流量(或更準確地說,提取文件形式的內容)并判斷流量。
收集和分析四種類型的網絡安全監視數據至關重要。問題成為確定實現此目標的最佳方法之一。值得慶幸的是,作為NSM平臺的Zeek可以收集至少兩種(以某種方式三種)這些數據形式,即交易數據,提取的內容和警報數據。
Zeek以其交易數據而聞名。默認情況下,當運行并被告知監視網絡接口時,Zeek將生成一組緊湊,高保真,帶有豐富注釋的事務日志集。這些日志以不受評判的政策中立方式描述了在線上看到的協議和活動。該文檔將花費大量時間描述最常見的Zeek日志文件,以便讀者熟悉該格式并將其應用于其環境。
由于Zeek具有文件提取功能,它還可以輕松地從網絡流量中分割文件。然后,分析師可以將這些文件發送到執行沙箱或其他文件檢查工具,以進行其他調查。Zeek具有執行傳統的以字節為中心的入侵檢測的功能,但該工作最適合于開源Snort或Suricata引擎之類的程序包。Zeek還具有其他功能,可以通過其通知機制以警報的形式提供判斷。
Zeek并未針對從完整內容數據收集的角度將流量寫入磁盤進行優化,并且最好由滿足該要求的軟件來完成該任務。
除了Zeek可以本地收集和生成的網絡數據形式之外,Zeek還具有 用于一系列分析和檢測任務的內置功能,以及其作為完全可定制和可擴展的流量分析平臺的地位。Zeek還具有吸引力,因為它能夠在商品硬件上運行,從而使所有類型的用戶至少能夠以低成本方式試用Zeek。
0x01c 架構
在很高的層次上,Zeek在體系結構上分為兩個主要組件。它的事件引擎(或核心)將傳入的數據包流減少為一系列更高級別的事件。這些事件以與策略無關的方式反映了網絡活動,即,它們描述了已看到的內容,而不是原因或意義是否重大。
例如,線路上的每個HTTP請求都變成一個相應的 http_request事件,該事件帶有所涉及的IP地址和端口,所請求的URI以及所使用的HTTP版本。但是,該事件未傳達任何進一步的解釋,例如該URI是否對應于已知的惡意軟件站點。
事件引擎組件包括多個子組件,特別是包括以下內容的包處理管道:輸入源,包分析,會話分析和文件分析。輸入源從網絡接口攝取傳入的網絡流量。數據包分析處理較低級別的協議,從鏈路層一直開始。會話分析處理應用程序層協議,例如HTTP,FTP等。文件分析剖析了通過會話傳輸的文件的內容。事件引擎提供了一個插件架構,可以從Zeek核心代碼庫的外部添加其中的任何一個,從而可以根據需要擴展Zeek的功能。
與事件相關的語義是由Zeek的第二個主要組件腳本解釋器派生的,該腳本解釋器執行一組用Zeek的自定義腳本語言編寫的事件處理程序。這些腳本可以表示站點的安全策略,例如,當監視器檢測到不同類型的活動時要采取的操作。
更一般而言,腳本可以從輸入流量中得出任何所需的屬性和統計信息。實際上,Zeek的所有默認輸出都來自發行版中包含的腳本。Zeek的語言帶有廣泛的特定于域的類型和支持功能。至關重要的是,Zeek的語言允許腳本隨時間保持狀態,從而使腳本能夠跟蹤并關聯跨連接和主機邊界觀察到的內容的演變。Zeek腳本可以生成實時警報,還可以根據需要執行任意外部程序。人們可能會使用此功能來觸發對攻擊的主動響應。
0x02 用Zeek監控
檢測和響應工作流程
如前幾節所述,Zeek進行了“開箱即用”的優化,以提供四種類型的網絡安全監視數據中的兩種。Zeek無需任何主要配置,就可以以日志的形式提供交易數據和提取的內容數據,這些日志匯總了遍歷網絡的協議和文件。Zeek還可以以通知的形式提供一定程度的警報數據,并且分析師可以根據需要修改Zeek以創建自定義警報。但是,專用的入侵檢測引擎(例如Suricata或Snort)可能更合適。最后,Zeek不會以pcap格式收集全部內容數據,盡管其他開源項目確實提供了該功能。
從廣義上講,事件檢測和響應始于收集安全數據,然后對其進行分析。在分析階段,如果沒有明確的惡意活動警報,調查人員可以進行兩個廣泛的調查類別:“匹配”和“狩獵”。匹配是指查詢和檢查安全數據以獲取已知危害指標的跡象。狩獵意味著在沒有妥協跡象的情況下進行工作,而是依靠建立一種假設來假設對手活動可能如何在安全數據中體現出來。匹配是一種可以輕松自動化的活動。狩獵是一項難以自動化的活動,因為它依賴于網絡安全“實驗”的創建來產生結果,并且往往需要一點人的直覺。
在一般情況下,一些安全團隊認為狩獵涉及查詢數據以尋找破壞跡象。這實際上只是一個搜索功能,即在收集的數據中查找“預期不良”的匹配項。真正的狩獵涉及更多的科學方法,該方法要求擬定假設,在樣本和生產數據中測試假設,然后完善流程,直到產生結果或被證實。產生結果的調查方法Zeek數據在匹配或搜尋操作中起作用。分析師可以查詢Zeek事務日志的存儲以獲取危害指標,并在看到IP地址,用戶名或HTTP用戶代理字符串或Zeek的數百個元素中的任何單個或組合匹配時開始進行安全調查。來自網絡流量。
除了匹配和搜尋范式之外,分析人員還可以在“事件檢測警報”工作流中使用Zeek。在這種情況下,IDS將創建警報,以引起安全團隊成員的注意。由于IDS警報通常只關注細節,因此分析人員需要佐證數據才能確定警報是否代表正常,可疑或惡意活動。分析師可以將IDS警報“透視”到Zeek生成的各種日志中。如果IDS警報提供了Z??eek支持的社區標識(社區ID),則分析人員可以輕松地將IDS警報綁定到特定的Zeek日志。根據Zeek提供的數據,分析師可能能夠解決此事件。至少,分析人員可以訪問初始IDS通知之外的數據,從而可以加快警報驗證和驗證過程。
最后,在任何其他外部刺激因素的提示下,分析人員可以使用Zeek數據來改進驗證過程。例如,分析人員可能注意到系統上正在運行一個奇怪的進程,這由其端點檢測和響應(EDR)或防病毒代理報告。或者,分析人員可能會收到來自用戶或同伴的報告,該報告涉及面向Internet的Web服務器上的可疑活動。在這兩種情況下,有權訪問Zeek數據的分析師都可以通過查詢存儲其Zeek日志的存儲庫來尋求學習有關系統的所有信息。這種安全設計模式具有巨大的好處,因為它不會影響可疑資產的最終狀態。不接觸可能受到威脅的系統有兩個好處。第一的,入侵者破壞了資產,仍然沒有意識到安全團隊正在對其進行調查。其次,由于分析人員正在使用設備外存儲的日志,因此資產的取證完整性保持不變。
0x02a 儀器與采集
Zeek旨在監視實時網絡流量。盡管Zeek可以處理以PCAP格式保存的數據包捕獲,但是大多數用戶都部署Zeek以獲得對網絡使用模式的近實時洞察。管理員通過告訴Zeek“嗅探”一個或多個網絡接口,并基于在這些網絡接口上看到的網絡流量,生成事務日志,見解和提取的文件內容,來運行Zeek。
一些用戶可能選擇在用于一般計算目的的單臺計算機上運行Zeek,以監視進出該單臺計算機的網絡流量。該系統可能是用于商務目的的辦公筆記本電腦,被選擇用于Zeek的實驗。這是熟悉Zeek創建的日志的簡單方法。這種方法類似于出于相同的教育目的在自己的計算機上運行Tcpdump或Wireshark。
但是,大多數用戶僅在出于網絡安全監視目的而選擇的計算機上運行Zeek。安全人員將該計算機稱為“傳感器”,他們專門選擇,配置和部署該計算機以監視網絡流量。他們在環境中選擇一個位置,該位置可以為多臺計算機提供可見性,并使用Zeek部署傳感器以對該網段進行檢測。
0x02b 儲存和審查
當Zeek通過監視一個或多個實時網絡接口或通過處理捕獲文件中存儲的流量來攝取網絡流量時,它會創建各種日志和其他工件。默認情況下,Zeek將該數據寫入通過其配置文件指定的存儲位置。Zeek具備以多種格式編寫日志并執行某些日志管理過程(如壓縮和存檔)的功能。
分析師通過查看Zeek生成的日志來使用Zeek數據。審閱方法可以像使用與底層操作系統打包在一起的文本處理工具一樣簡單。根據日志的格式,用戶可能會應用更專業的處理工具,其中一些可以在Zeek中使用。在許多情況下,Zeek管理員會將日志發送到專門的存儲并查看應用程序。這些通常統稱為安全和信息事件管理(SIEM)平臺。這些日志管理和SIEM平臺中的某些可作為開源產品獲得,而其他則可通過商業途徑獲得。
?
總結
以上是生活随笔為你收集整理的zeek系列之:流量分析流量数据采集流量探针利器zeek的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 流程图GoJS用于HTML图表的Java
- 下一篇: 轻酷宝学院:汽车4S店小程序在线开发教程