mcpField
D
detecting-exfiltration-over-dns-with-zeek

detecting-exfiltration-over-dns-with-zeek

github.com/mukul975安全35.2k47 次安装8 周前更新
代码仓库

关于 detecting-exfiltration-over-dns-with-zeek

面向 SOC 分析师和威胁猎手的安全分析技能,用于从 Zeek dns.log 数据中检测 DNS 外传。它评估熵、标签长度、子域名唯一性和查询量,对可疑域名排序并生成 JSON 报告。

主要功能

  1. 01解析 Zeek dns.log TSV 标头
  2. 02计算子域名熵值
  3. 03标记异常长的标签
  4. 04按域名统计唯一子域名
  5. 05依据查询指标为域名评分
  6. 06生成 JSON 检测报告

适用场景

  1. 01调查疑似 DNS 数据外传
  2. 02制定 DNS 隧道威胁狩猎流程
  3. 03评估网络监控覆盖情况
  4. 04为事件响应排列可疑域名

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mukul975/anthropic-cybersecurity-skills --skill detecting-exfiltration-over-dns-with-zeek

安装后在 Claude Code 中输入/detecting-exfiltration-over-dns-with-zeek确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE
references/
api-reference.md
scripts/
agent.py

详细介绍

使用 Zeek 检测基于 DNS 的数据外传

概述

DNS 隧道和外传是攻击者通过将窃取的数据编码到 DNS 查询子域中来绕过防火墙和 DLP 控制的一种技术。合法的 DNS 查询具有可预测的熵和长度模式,而外传查询包含编码数据,具有高香农熵、异常长的子域标签,以及每个父域下大量唯一子域的特点。

本技能分析 Zeek dns.log 文件(TSV 格式)以检测外传指标。Agent 会计算每个子域组件的香农熵,识别超过 63 个字符 DNS 标签限制的查询,统计每个父域下的唯一子域数量,并标记超过可配置阈值的域。这些技术可检测 dnscat2、iodine、dns2tcp 以及自定义 DNS 隧道实现等工具。

何时使用

  • 在调查需要检测基于 Zeek 的 DNS 外传的安全事件时
  • 在为该领域构建检测规则或威胁狩猎查询时
  • 当 SOC 分析师需要针对此类分析的结构化流程时
  • 在验证相关攻击技术的安全监控覆盖范围时

前置条件

  • Python 3.9 或更高版本,包含 math 和 collections 模块(标准库)
  • 采用 TSV 格式且带有标准字段头的 Zeek dns.log 文件
  • 由 Zeek 5.0+ 或更高版本处理的网络捕获数据
  • 了解 DNS 协议结构和查询类型

步骤

  1. 解析 Zeek dns.log 头部:读取 TSV 文件,提取 #fields 头部行以确定 ts、id.orig_h、query、qtype_name、rcode_name 和 answers 的列位置。

  2. 提取并分解查询:对于每个 DNS 查询,将 FQDN 拆分为子域标签和父域。跳过对已知安全域和内部区域的查询。

  3. 计算香农熵:计算每个子域标签的信息熵。合法子域的熵通常低于 3.5,而编码/加密数据产生的熵高于 4.0。

  4. 检测长标签:标记超过 52 个字符的 DNS 标签(接近 63 个字符的最大值)。长标签是数据隧道的有力指标。

  5. 统计每个域的唯一子域数量:跟踪每个父域接收到的不同子域数量。在日志窗口内拥有超过 50 个唯一子域的域是可疑的。

  6. 识别查询量异常:计算每个源 IP 每个域每分钟的查询数。外传工具会生成持续的高流量查询流,与正常浏览不同。

  7. 对域进行评分和排名:将熵、标签长度、唯一性计数和查询量组合成综合风险评分。按评分对域进行排名,并输出排名靠前的可疑域。

  8. 生成检测报告:生成 JSON 报告,包含被标记的域、其证据指标、来源 IP 以及建议的响应措施。

预期输出

{
  "analysis_summary": {
    "total_queries_analyzed": 145832,
    "unique_domains": 3421,
    "flagged_domains": 3,
    "entropy_threshold": 3.5
  },
  "flagged_domains": [
    {
      "domain": "data.evil-c2.com",
      "unique_subdomains": 892,
      "avg_entropy": 4.72,
      "max_label_length": 61,
      "source_ips": ["10.0.1.45"],
      "risk_score": 9.4,
      "indicators": ["high_entropy", "long_labels", "high_subdomain_count"]
    }
  ]
}

评论

支持 Markdown