Zeek日志分析入门指南
网络监控工具概述
Zeek(原Bro IDS)是由Vern Paxson于1995年开发的网络监控系统,2016年更名为Zeek。该系统通过被动方式捕获网络流量,生成结构化日志用于安全分析,核心功能包括:
- 元数据提取与网络取证
- 协议解析(DNS/HTTP/TLS等)
- 文件传输记录
- 加密流量分析(TLS握手/证书信息)
日志生成机制
数据采集模式
- 实时流量监控:通过端口镜像或网络分路器捕获流量
- 离线PCAP分析:支持对保存的数据包文件进行回溯分析
日志格式
- TSV格式:默认输出,字段以制表符分隔,包含类型定义行
- JSON格式:字段自描述,便于SIEM集成但存储开销较大
- 关键工具:
zeek-cut
(字段提取)、jq
(JSON处理)
核心日志类型解析
连接日志(conn.log)
- 记录所有连接尝试(包括未成功连接)
- 字段结构:
1
TS(时间戳)| UID(唯一ID)| 源IP/端口 | 目标IP/端口 | 协议 | 服务类型 | 持续时间
- 连接状态标识(如S0表示无响应尝试)
应用层协议日志
- DNS日志:关联查询与响应,记录TTL和记录类型
- HTTP日志:记录请求方法/URI/事务深度(trans_depth)
- SSL日志:记录TLS版本/密码套件/SNI(服务器名称指示)
- 文件传输日志:记录文件哈希(SHA1/MD5)、MIME类型、关联连接ID
关键分析技术
唯一标识符体系
- 连接ID(UID):关联同一连接的多协议事件
- 文件ID(FUID):跟踪文件传输,支持嵌套归档分析(parent_fuid)
- 社区ID(Community ID):基于五元组生成连接指纹
流量方向定义
- 发起端(Originator):建立连接的初始主机
- 响应端(Responder):接受连接的主机
- 本地网络标识(local_orig/local_resp)基于IP段配置
实战应用场景
安全检测
- 自定义检测规则(通过Notice日志告警)
- 弱加密协议审计(TLS 1.0/SSHv1)
- 异常文件传输监控(可执行文件传输)
网络取证
- 双向流量关联分析
- 加密流量元数据提取(证书/协议协商)
- 时间线重建(基于时间戳和持续时间字段)
部署建议
- 监控位置选择:
- 外部部署:捕获入站攻击但难以定位内网主机
- 内部部署:检测外联信标但可能错过边界攻击
- 硬件要求:千兆以下流量可使用商用硬件,高速环境需专用网卡
扩展能力
- 包管理器(packages.zeek.org):如JA3 TLS指纹插件
- 自定义脚本:支持协议解析扩展和日志字段增强
通过系统化分析Zeek日志,可构建高效的网络监控体系,实现从基础流量审计到高级威胁狩猎的全场景覆盖。