尧图精选

Zeek 是什么:被动式开源网络流量分析框架的定位、能力与架构解析

🕒 发布时间:2026/9/27 7:15:18 📁 来源:尧图网络
网络安全网络IDS【免费下载链接】zeekZeek is a powerful network analysis framework that is much different from the typical IDS you may know.项目地址https://gitcode.com/gh_mirrors/ze/zeek点击查看免费下载导读本文以 Zeek 官方手册《What Is Zeek?》为核心系统阐述 Zeek 的定位——一个被动式的开源网络流量分析框架Network Security MonitorNSM而非传统签名型 IDS。你将了解到 Zeek 默认产出的交易日志、文件提取与检测能力、事件引擎与脚本解释器两层架构、集群扩展方式以及它相对于 Snort/Suricata、Wireshark 等工具的边界从而准确判断它在你的安全监控体系中的适用位置。一、Zeek 的定位被动式网络流量分析框架Zeek 是一个被动式passive的开源网络流量分析器。所谓被动是指它只监听并解读经过网络链路的数据包不参与数据包的转发也不直接阻断流量。许多运维团队将其作为网络安全监控器NSM使用用于支撑对可疑或恶意活动的调查同时Zeek 的能力并不局限于安全领域它也广泛用于性能测量与网络排障等流量分析任务。官方文档对 Zeek 的定位给出了非常明确的三句判断见 doc/about/what.rstZeek不是经典的基于签名的入侵检测系统IDS虽然它也支持签名匹配这类传统功能但 Zeek 的脚本语言让它能够承载远比签名检测更宽广的恶意活动发现思路包括语义误用检测、异常检测和行为分析。Zeek不是Wireshark 意义上的逐帧协议分析器不会在帧级别描绘网络流量的每一个元素也不是大规模以 PCAP 形式存储流量的系统。它处于快乐的中间地带产出紧凑而高保真的网络日志帮助理解网络流量与使用模式。Zeek不参与内核的包转发决策无法直接阻断、丢弃或修改网络流量但它通过脚本层 API 与交换机、防火墙等网络基础设施交互间接实现这类策略。若需要内联in-path的入侵防御IPS则应考虑以 IPS 模式运行的 Snort 或 Suricata。二、第一价值开箱即用的丰富日志新用户从 Zeek 获得的第一个收益就是它默认生成的大量网络活动日志。这些日志不仅包含链路上每条连接的综合记录connection log还包含应用层会话记录例如所有 HTTP 会话及其请求的 URI、关键头部、MIME 类型与服务器响应带应答的 DNS 请求SSL 证书SMTP 会话的关键内容以及更多协议细节。默认情况下Zeek 将所有这些信息写入结构良好的制表符分隔TSV或 JSON 日志方便外部软件进行后处理。用户也可以让外部数据库或 SIEM 产品消费、存储、处理并呈现这些数据用于查询。从源码看连接日志的生成连接日志conn.log并非硬编码在 C 核心中而是由 Zeek 脚本实现。在 scripts/base/protocols/conn/main.zeek 中可以看到脚本定义了一个log_conn事件将Conn::Info记录包含连接的历史状态history等字段交给日志框架## Event that can be handled to access the :zeek:type:Conn::Info ## record as it is sent on to the logging framework. global log_conn: event(rec: Info); redef record connection { conn: Info optional; };这正印证了 what.rst 中所有默认分析包括日志都由脚本完成没有任何特定分析被硬编码进系统核心这一论断。三、开箱即用的检测与分析功能除了日志Zeek 还内置了一系列分析与检测能力包括从网络会话中提取文件file extraction通过对接外部注册表检测恶意软件报告网络上出现的已知存在漏洞的软件版本识别流行的 Web 应用检测SSH 暴力破解brute-forcing校验SSL 证书链等等。这些能力使得 Zeek 在开箱即用层面就具备相当的检测深度同时它的脚本机制让用户能进一步自定义告警notice逻辑为安全团队提供判断judgement形式的告警输出。四、核心架构事件引擎 脚本解释器Zeek 的架构从宏观上分为两大组件官方架构图见 doc/images/architecture.png清晰地展示了这一分层事件引擎Event Engine又称核心把进入的报文流规约为一系列高层事件events。这些事件以**策略中立policy-neutral**的术语描述网络活动——即它们描述网络上看到了什么what而不解释为什么why或是否重要。脚本解释器Script Interpreter执行用 Zeek 脚本语言编写的一组事件处理器event handlers为事件赋予语义。这些脚本表达站点的安全策略例如当监控器检测到不同类型的活动时应该采取什么动作更一般地脚本可以从输入流量中推导任意所需的属性与统计信息。一个典型的例子链路上的每个 HTTP 请求都会转化为对应的http_request事件。该事件的 C 侧声明位于 src/analyzer/protocol/http/events.bifevent http_request%(c: connection, method: string, original_URI: string, unescaped_URI: string, version: string%);事件携带了涉及的 IP 地址与端口、被请求的 URI 以及使用的 HTTP 版本但不传达任何进一步解释——例如该 URI 是否对应一个已知的恶意站点。这种解释工作留给脚本解释器来完成。事件引擎内部的流水线事件引擎由若干子组件构成其中最重要的是报文处理流水线自上而下依次为输入源input sources从网络接口摄取进入的网络流量报文分析packet analysis处理底层协议从链路层开始会话分析session analysis处理应用层协议如 HTTP、FTP 等文件分析file analysis剖析会话中传输的文件内容。事件引擎还提供插件架构允许从 Zeek 核心代码库之外添加以上任一类组件按需扩展 Zeek 的能力。脚本语言的本质领域专属的PythonZeek 为用户提供一种图灵完备的领域专属脚本语言来表达任意分析任务。可以把 Zeek 语言理解为领域专属的 Python或 Perl与 Python 一样系统自带大量预置功能相当于标准库但用户也可以通过编写自定义代码以新颖的方式使用 Zeek。关键在于——Zeek 的全部默认分析包括日志均由脚本完成这正是它不同于固化为少量硬编码分析任务的其他网络监控工具的根本之处。此外Zeek 脚本语言允许脚本跨连接与主机边界维护状态、跟踪并关联其观察对象的演化过程脚本还能生成实时告警并按需执行任意外部程序例如用于触发对攻击的主动响应。五、面向高速网络的扩展Zeek 集群Zeek 专门面向高速、大流量的网络监控场景。大量站点大学、研究实验室、超算中心、开放科学社区、大型企业与政府机构用它保护自身基础设施越来越多的站点用它监控10GE 网络部分站点已迁移到100GE 链路。为适应高性能场景Zeek 支持可扩展的负载均衡大型站点通常运行Zeek 集群Zeek Cluster高速前端负载均衡器把流量分发到合适数量的后端 PC 上每台后端 PC 运行专用于自身流量分片的 Zeek 实例一个**中心管理器manager**负责协调进程、跨后端同步状态并为运维人员提供集中的配置管理与聚合日志访问界面Zeek 集成的管理框架ZeekControl开箱即用地支持这类集群部署。集群特性同时支持单系统与多系统两种形态——这构成 Zeek 可扩展性优势的一部分。管理员可以在单个系统内尽可能多地扩展 Zeek需要时再透明地增加更多系统。六、网络安全管理数据视角Zeek 覆盖了哪几类数据理解 Zeek 的价值还可以借助网络安全管理NSM的经典数据分类框架见 doc/about/why.rst。安全团队依赖四类数据源第三方情报、网络数据、基础设施与应用数据含云环境日志、端点数据而 Zeek 主要是收集与分析第二类——网络数据的平台。在网络数据内部又可分为四种类型全量内容full content、交易数据transaction data、提取内容extracted content与告警数据alert data分别对应记录流量、总结流量、提取内容文件与判断流量。Zeek 作为 NSM 平台能够覆盖其中至少两种、某种意义上三种数据类型数据类型Zeek 的产出说明交易数据连接与应用层日志conn.log、http.log、dns.log、ssl.log 等Zeek 最为知名的能力默认生成紧凑、高保真、注释丰富的交易日志提取内容从流量中提取的文件可送往执行沙箱或其他文件检查工具做进一步调查告警数据notice通知机制具备一定判断能力经典的字节级检测更适合 Snort/Suricata全量内容不支持大规模 PCAP 落盘该任务交给专为此设计的软件交易日志是无判断、策略中立的它们以中立方式描述链路上所见协议与活动把是否恶意的判断留给分析人员或上层脚本。七、部署形态从单机嗅探到传感器Zeek 既可以处理 PCAP 格式的报文捕获文件也支持实时监听。实际部署中有几种典型形态详见 doc/about/monitoring.rst单机自监控在用于一般计算的单台计算机如办公笔记本上运行 Zeek观察流向该机的流量。这是熟悉 Zeek 日志的简单入门方式类似在个人电脑上运行 Tcpdump 或 Wireshark 用于学习。专用传感器sensor大多数用户选择一台专门用于 NSM 的计算机将其部署在能看到多台机器流量的网络位置如通过网络分流器 tap 或交换机 SPAN 端口对特定网段进行监控。传感器选址的核心诉求是找到一个单一位置通过 tap 或 SPAN 端口获得最大可见性即能看到网段内所有设备的流量且优先以原始源 IP 地址识别设备。文档特别分析了典型的家庭/小型办公SOHO网络——由于路由器 NAT 的存在所有内网设备共享单一公网 IP导致安全分析难以追溯可疑流量的真正来源而面向可见性设计的网络架构路由器与无线 AP 功能分离、自带带 SPAN 端口的交换机、WAP 不做 NAT才能在合适的监控点如图中的位置 D获得高质量流量。八、运维生态与历史背景Zeek 拥有可追溯至 1990 年代的深厚历史见 doc/about/history.rst1995 年Vern Paxson 在劳伦斯伯克利国家实验室LBNL设计并实现了最初版本原名Bro——取监控与隐私侵犯如影随形的奥威尔式提醒之意1996 年 LBNL 首次部署1998 年相关论文获 USENIX Security 最佳论文奖此后 NSF 资助 ICSI 持续研究与开发2012 年 2.0 版本完成大规模用户侧改造同年加入原生 IPv6 支持2014 年推出 try.zeek.org 在线实验平台随后加入 Broker 通信框架支撑集群与外部通信与 2016 年的 Zeek 包管理器2018 年秋项目更名为Zeek2019 年秋发布首个以 Zeek 命名的 3.0 版本。当前仓库中Broker 通信框架位于 auxil/broker包管理器位于 auxil/package-manager而官方文档全集可从 doc/about/index.rst 进入。九、总结Zeek 适合什么、不适合什么一句话概括Zeek 是为解读网络流量并基于流量生成日志而优化的系统而非为字节匹配byte-matching而优化。适合的场景需要高保真交易日志支撑安全调查、威胁狩猎hunting与事件响应取证需要从流量中提取文件送入沙箱分析需要用图灵完备脚本语言实现自定义检测语义误用、异常、行为分析与状态关联需要在高速、大流量环境10GE/100GE下以集群方式横向扩展。不适合的场景需要签名检测的经典 IDS 场景——应优先考虑 Snort、Suricata需要逐帧查看流量细节——应使用 Wireshark需要大规模PCAP 全量留存——应交给专门的抓包存储软件需要内联阻断的 IPS——应使用 Snort/Suricata 的 IPS 模式Zeek 只能通过脚本 API 间接联动交换机与防火墙。理解这份定位清单是在安全监控体系里为 Zeek 找到正确身位的第一步。赞分享网络安全网络IDS【免费下载链接】zeekZeek is a powerful network analysis framework that is much different from the typical IDS you may know.项目地址https://gitcode.com/gh_mirrors/ze/zeek点击查看免费下载相关推荐Zeek 三十年演进史从 1995 年的 Bro 到开源网络流量分析框架Zeek 三十年演进史从 1995 年的 Bro 到开源网络流量分析框架 Zeek 是一个被广泛部署的开源网络流量分析框架其历史可追溯至 1990 年代。本网络安全网络IDSAngular 是什么框架定位、核心特性与开发者生态全景指南Angular 是什么框架定位、核心特性与开发者生态全景指南 本文以 Angular 官方文档站本仓库 adev/src/content/introduct前端Web框架Laravel架构解密为什么它是2025年PHP开发者的首选框架Laravel架构解密为什么它是2025年PHP开发者的首选框架 你是否还在为PHP项目的复杂配置而头疼是否在重复编写数据库操作代码时感到厌烦Larave后端Web框架创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联 返回资讯列表 →