- 网络安全
- 网络
- IDS
【免费下载链接】zeek
Zeek is a powerful network analysis framework that is much different from the typical IDS you may know.
导读:本文基于 Zeek 官方文档“Why Zeek”一章,系统阐述 Zeek 在网络安全监控(NSM)数据范式中的准确位置——它擅长什么、不擅长什么,以及为什么它适合作为网络数据采集与分析平台。读完本文,你将理解 NSM 四类数据(全内容、事务数据、提取内容、告警数据)的划分逻辑,掌握 Zeek 在其中的能力边界,并能据此判断在自有环境中如何用 Zeek 支撑调查与检测工作。
安全团队依赖的四类数据源
安全团队在检测与响应可疑、恶意活动时,通常依赖四类数据来源:
| 数据来源 | 典型形态 |
|---|---|
| 第三方来源 | 执法部门、同行机构、商业或非营利威胁情报组织 |
| 网络数据(network data) | 直接来自网络流量的观测结果 |
| 基础设施与应用数据 | 云环境日志等 |
| 端点数据 | 主机与终端上的行为记录 |
Zeek 的核心定位是第二类——网络数据的采集与分析平台。这四类数据对任何安全团队的计划都同等重要,但网络数据有其独特价值:它独立于端点与应用的实现细节,能够从“线上”视角客观还原网络行为,为调查与检测提供旁证或独立证据链。
NSM 范式下的四类网络数据
参照网络安全管理(Network Security Monitoring)领域对网络派生数据的经典划分,分析师可获得的网络数据共有四种类型:
- 全内容数据(full content):完整记录流量本身,典型形态是 PCAP 抓包文件;
- 事务数据(transaction data):对流量进行摘要化、结构化的描述,回答“网络上发生了什么”;
- 提取内容(extracted content):从流量中还原出的文件等载荷内容;
- 告警数据(alert data):对流量是否可疑、恶意的判断结果。
四类数据分别对应四种操作:记录流量、摘要流量、提取流量(更准确地说,以文件形式提取内容)、评判流量。一个完整的 NSM 体系需要同时收集并分析这四类数据,问题只在于由谁来承担哪一部分。
Zeek 作为一个 NSM 平台,能够覆盖其中至少两类、某种意义上三类数据:事务数据、提取内容,以及告警数据。
Zeek 的核心产出:高保真事务日志
Zeek 最广为人知的能力是事务数据。默认情况下,让 Zeek 监听一个网络接口,它就会生成一组紧凑(compact)、高保真(high-fidelity)、富含注解(richly-annotated)的事务日志。这些日志以无判断、策略中立的方式描述线缆上观测到的协议与活动——它们记录“看到了什么”,而不是“这为什么重要”或“它是否恶意”。
这一定位在 Zeek 架构中有着清晰的代码级支撑:Zeek 的核心事件引擎把数据包流还原为一系列高层事件,事件本身只携带客观事实(例如一次 HTTP 请求涉及的 IP、端口、URI 与 HTTP 版本),而不附加任何解释(参见 architecture.rst);语义层(脚本解释器)才负责推导含义与执行站点策略。
从仓库源码看,默认日志体系由 scripts/base/init-default.zeek 统一装载,其中涵盖 conn、dns、http、ssl、smtp、ssh 等数十个协议分析模块,全部通过 Zeek 脚本实现。日志的写入框架位于 scripts/base/frameworks/logging,默认以 tab 分隔的 ASCII 格式(writers/ascii.zeek)落地,也支持 JSON、SQLite 等后端(writers/sqlite.zeek),便于外部软件、数据库或 SIEM 消费与查询。
这类日志的特点使其天然适合:
- 作为长期归档的“网络活动档案”,支撑事后回溯调查;
- 通过 zeek-cut 等工具进行轻量字段裁剪与流水线处理(对应工具位于 tools/zeek-cut);
- 对接外部 SIEM / 数据库做关联分析。
文件提取:把流量还原为可交付的样本
Zeek 的另一项原生能力是从网络流量中提取文件(extracted content)。分析师可以将提取出的文件交给执行沙箱或其他文件检查工具做进一步研判,这是 Zeek 支撑恶意软件分析工作流的主要方式之一。
实现上,文件提取由文件分析框架(file analysis)与提取模块协同完成:
- 核心文件分析框架位于 src/file_analysis,负责跟踪会话中传输的文件;
- 提取策略脚本位于 scripts/base/files/extract,默认将文件写入
./extract_files/目录(FileExtract::prefix),默认单文件上限为 100MB(FileExtract::default_limit,零表示不限),并可在提取文件名、大小限制等参数上做细粒度控制(Files::AnalyzerArgs中的extract_filename、extract_limit、extract_limit_includes_missing等)。
告警能力:通过 Notice 机制给出判断
Zeek 具备一定程度的经典“逐字节”入侵检测能力,但这部分工作更适合交给 Snort、Suricata 等开源引擎。Zeek 真正的“判断”输出来自其Notice 机制(告警框架)。
Notice 框架位于 scripts/base/frameworks/notice/main.zeek,其设计哲学与 Zeek 整体一致:Zeek 不内置“什么是坏活动”的假设,站点需要通过策略脚本自行决定告警的含义与处置动作。框架提供的动作枚举(Notice::Action)包括:
ACTION_LOG:写入 notice 日志流;ACTION_EMAIL:发送到Notice::mail_dest配置的邮箱;ACTION_ALARM:进入告警流并批量邮件;ACTION_DROP:触发丢弃动作,具体行为取决于加载的策略脚本(如 NetControl 的acld_rule_policy)。
Notice 框架还内置自动抑制机制(default_suppression_interval,默认 1 小时),借助Info记录中的 identifier 字段对重复告警去重,避免告警风暴。
Zeek 不做什么:明确的能力边界
理解 Zeek 的价值,同样需要理解它的边界。文档明确给出以下几条定位:
- Zeek 不为“写流量到磁盘”而优化:全内容数据采集(PCAP 归档)应交给专门为此设计的软件,Zeek 不适合承担大规模抓包存储任务。
- Zeek 不做帧级协议解析:它不是 Wireshark 意义上的协议分析器,不会逐帧呈现网络流量的每个元素。
- Zeek 不参与内核转发决策:它无法直接阻塞、丢弃或修改网络流量,但通过脚本层 API 可以联动交换机、防火墙等网络基础设施(这正是 NetControl / OpenFlow 框架的职责,见 scripts/base/frameworks/netcontrol 与 scripts/base/frameworks/openflow)。需要在线阻断的专用 IPS 场景,应选用 Snort、Suricata 的 IPS 模式。
换句话说,Zeek 处于“Wireshark 式逐帧解析”与“PCAP 全量存储”之间的快乐中道(happy medium):用紧凑而高保真的网络日志,换取对网络流量与使用模式的更深刻理解。
平台级优势:可扩展、可定制、低成本
除原生收集与生成的数据形态外,Zeek 还具备若干平台级优势(详见 what.rst):
- 内置丰富的分析与检测功能:文件提取、对接外部恶意软件库、报告网络上出现的软件漏洞版本、识别流行 Web 应用、检测 SSH 暴力破解、校验 SSL 证书链等,开箱即用。
- 完全可定制、可扩展:Zeek 提供图灵完备的领域专用脚本语言,可视为“领域专用的 Python(或 Perl)”。所有默认分析(包括日志输出本身)均由脚本实现,核心系统不硬编码任何特定分析逻辑——
scripts/base/init-default.zeek中逐行@load的协议与框架清单就是最直观的证据。 - 运行在通用硬件上:Zeek 面向高速、大流量网络监控设计,支持负载均衡与集群部署(单机可先纵向扩展,必要时再透明地横向增加节点),为各类用户提供了低成本尝试的门槛。
结语:在 NSM 数据矩阵中为 Zeek 定位
综合来看,Zeek 的选型结论可以浓缩为一句话:Zeek 是为“理解和归档网络发生了什么”而优化的平台,而不是为“逐字节匹配”或“全量存储”而设计的工具。在四类 NSM 数据中,Zeek 以事务数据为立身之本,以文件提取覆盖提取内容维度,并以 Notice 机制提供可自定义的告警判断;剩余的全内容采集与在线阻断需求,则由 PCAP 存储方案与 Snort/Suricata 等专用引擎补位。理解了这层分工,你就能在自己的网络监控架构中为 Zeek 找到最合适的位置。
- 网络安全
- 网络
- IDS
【免费下载链接】zeek
Zeek is a powerful network analysis framework that is much different from the typical IDS you may know.
相关推荐
为什么选择 Fleet:开源统一设备管理平台的定位、能力与边界
为什么选择 Fleet:开源统一设备管理平台的定位、能力与边界 Fleet 是一个开源的统一设备管理(Unified Device Management)平台,
后端前端企业应用运维网络安全为什么选择HoraeDB:10个高性能时序数据库的核心优势
为什么选择HoraeDB:10个高性能时序数据库的核心优势 Apache HoraeDB incubating 是一款专为现代数据场景设计的高性能时序数据库,它
为什么选择PolarDB PostgreSQL:企业级分布式数据库的10大核心优势
为什么选择PolarDB PostgreSQL:企业级分布式数据库的10大核心优势 PolarDB for PostgreSQL是阿里云自主研发的云原生数据库,
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考