關于Zeek架構
架構上,Zeek分為兩層
事件引擎
從libpcap拿數據,轉換為事件。
例如將http請求的流量元數據轉換成http_request事件,包含IP地址,端口,URI等的一個事件腳本解釋器
根據zeek自帶的或用戶添加的.zeek腳本處理事件,輸出notice和log。
Notice: Identifies specific activity that Zeek recognizes as potentially interesting, odd, or bad. In Zeek-speak, such activity is called a “notice”.
關于zeek語言
https://www.cnblogs.com/DF-Kyun/p/12354060.html
Zeek的腳本語言是事件驅動的,zeek中的腳本編寫取決于zeek在處理網絡流量時生成的事件,通過這些事件更改數據結構的狀態以及對所提供信息進行決策。
Zeek將事件放入有序的事件隊列中,以先到先得的方式處理,通過編寫腳本對事件執行離散操作,得到有用的輸出。
關于zeek package
JA3
利用tls中Client Hello包中TLSVersion,Ciphers,Extensions,EllipticCurves,EllipticCurvePointFormats字段組成字符串的MD5值,來生成JA3,TLS客戶端的指紋
利用tls中Server Hello包中TLSVersion,Cipher,Extensions字段組成字符串的MD5值,來生成JA3S,TLS服務端的指紋
HASSH
利用ssh中Key Exchange Init過程中協商的kex算法,加密算法,Mac算法和壓縮算法通過MD5生成的指紋