Zeek日志分析入门:网络安全监控与威胁检测

本文深入探讨Zeek(原Bro)网络监控系统的日志分析技术,涵盖日志格式、唯一标识符解析、网络流量监控策略及实战技巧,帮助安全团队提升威胁检测与取证能力。

Zeek日志分析入门

概述

Zeek(原Bro)是一款被广泛使用的网络安全监控工具,诞生于1995年,最初由Vern Paxson开发。它通过被动嗅探网络流量,生成丰富的日志数据,用于入侵检测、取证分析和安全审计。Zeek不仅记录连接事件,还能解析多种应用层协议(如DNS、HTTP、TLS),并提取文件传输元数据。

关键日志类型与格式

日志格式

Zeek支持两种日志格式:

  • Tab-Separated Values (TSV):默认格式,便于命令行解析和存储效率。
  • JSON:适合集成到SIEM系统,但占用更多磁盘空间。

核心日志文件

  • conn.log:记录所有连接尝试和已建立连接,包含时间戳、唯一连接ID(UID)、源/目的IP和端口等。
  • DNS/HTTP/SSL日志:分别记录DNS查询、HTTP请求和TLS/SSL握手细节。
  • files.log:记录文件传输事件,包含文件唯一标识符(FUID)和MIME类型识别。

唯一标识符解析

Zeek使用多种唯一ID关联事件:

  • 连接ID (UID):跟踪同一连接的不同应用层事件(如HTTP请求)。
  • 文件ID (FUID):标识传输的文件,可关联到具体连接和协议日志。
  • 主机与端口ID:区分源(originator)和响应(responder)主机,替代传统的源/目的模型。

网络监控部署策略

监控位置影响数据可见性:

  • 外部部署:捕获入站攻击(如漏洞利用),但受NAT影响难以追踪内部主机。
  • 内部部署:检测出站信标和数据泄露,直接识别内部IP。

实战技巧与工具

日志分析工具

  • zeek-cut:按字段名提取TSV日志数据(如zeek-cut uid orig_host)。
  • Linux cut:按列号处理TSV日志(如cut -f10,11,18)。
  • jq:解析JSON日志(如jq '.orig_host, .resp_host')。

高级应用

  • 协议审计:检测弱加密协议(如TLS 1.0、FTP明文传输)。
  • 威胁狩猎:通过MIME类型识别可疑文件(如可执行文件)。
  • 自定义脚本:使用Zeek脚本语言扩展日志字段或触发告警(如JA3 TLS指纹)。

总结

Zeek通过深度解析网络流量提供关键取证数据,其日志系统是安全运营的核心。合理部署传感器、掌握日志分析工具,并能关联多协议事件,可显著提升网络威胁检测能力。

示例命令:
cat conn.log | zeek-cut uid orig_host resp_host
提取连接日志中的UID、源IP和目的IP。


延伸阅读

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计