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

本文深入探讨Zeek网络监控工具的日志分析,涵盖日志格式、唯一标识符解析、网络流量分析技巧,以及如何利用Zeek进行威胁检测和取证。适合初学者和进阶用户。

Zeek日志分析入门

概述

Zeek(前身为Bro)是一个被动的网络安全监控工具,用于网络流量分析和日志记录。它生成丰富的日志数据,支持入侵检测、取证分析和审计。本文基于Troy Wojewoda的分享,介绍Zeek日志的基本概念、分析方法和实际应用。

Zeek日志基础

  • 日志格式:Zeek默认生成制表符分隔值(TSV)格式日志,也支持JSON格式。TSV更适合命令行处理,而JSON便于集成到SIEM系统,但占用更多存储空间。
  • 工具推荐:使用zeek-cut或Linux cut命令提取字段;jq工具处理JSON日志。
  • 常见日志类型:包括conn.log(连接日志)、dns.loghttp.logfiles.logssl.log等。conn.log记录所有连接尝试,是其他日志的基础。

关键概念

  • 唯一标识符:Zeek使用多种ID关联日志:
    • uid:连接唯一ID,用于跨日志关联事件。
    • fuid:文件唯一ID,用于跟踪文件传输。
    • 主机和端口标识符:区分源(originator)和响应(responder)主机。
  • 时间戳:记录为Unix epoch时间,精度到纳秒。注意:连接开始时间戳与应用层事件时间戳可能不同(例如TCP握手延迟)。
  • 网络监控位置:部署位置影响日志数据。外部部署可捕获入站攻击,但NAT可能模糊内部主机;内部部署便于检测信标等出站活动。

日志分析技巧

  • 字段提取:使用zeek-cut -f <字段名>cut -f <列号>快速提取特定字段(如IP、端口、协议)。
  • 协议关联:通过uid关联conn.log与协议日志(如DNS查询与响应在dns.log中合并记录)。
  • 文件分析files.log记录文件传输,包括MIME类型、哈希值(SHA1、MD5)和PE文件分析。
  • 加密流量:即使协议加密(如TLS/SSL),Zeek仍能记录握手信息(如版本、密码套件、SNI)。

实际应用

  • 威胁检测:编写自定义脚本或使用SIEM规则,基于日志模式检测异常(如弱密码套件、可疑文件传输)。
  • 审计与合规:检查环境中使用的协议版本(如TLS 1.0、SSH v1),识别安全风险。
  • 取证分析:通过日志回溯网络活动,例如关联文件下载与HTTP请求。

高级功能

  • 社区包:通过packages.zeek.org扩展功能,如JA3指纹用于TLS客户端识别。
  • 自定义脚本:Zeek基于脚本语言,支持用户自定义日志字段和检测逻辑。

总结

Zeek提供深度网络可见性,其日志是安全运营的核心资源。通过掌握日志结构、标识符和工具使用,可有效提升威胁检测和响应能力。

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