关于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生成的指纹