L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Productivité · SKILL.md

detecting-exfiltration-over-dns-with-zeek

detecting-exfiltration-over-dns-with-zeek

通过分析 Zeek dns.log 中的高熵值子域名和异常查询模式,检测基于 DNS 的数据渗出

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: detecting-exfiltration-over-dns-with-zeek description: 通过分析 Zeek dns.log 中的高熵值子域名和异常查询模式,检测基于 DNS 的数据渗出 domain: cybersecurity subdomain: network-security tags: [dns-exfiltration, zeek, entropy-analysis, threat-hunting] version: "1.0" author: mahipal license: Apache-2.0

概述

DNS 隧道与渗出(DNS tunneling/exfiltration)是攻击者绕过防火墙和 DLP(数据泄露防护)控制的技术,通过将窃取的数据编码到 DNS 查询的子域名中来实现。合法 DNS 查询的熵值和长度具有可预测的规律,而渗出查询的编码数据具有高香农熵(Shannon entropy)、异常长的子域名标签,以及每个父域名下大量唯一子域名。

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

前置条件

  • 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. 生成检测报告:输出包含标记域名、证据指标、来源 IP 及建议响应操作的 JSON 报告。

预期输出

{
  "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"]
    }
  ]
}
Skills enregistrées