← ClaudeAtlas

analyzing-dns-logs-for-exfiltrationlisted

Analyzes DNS query logs to detect data exfiltration via DNS tunneling, DGA domain communication, and covert C2 channels using entropy analysis, query volume anomalies, and subdomain length detection in SIEM platforms. Use when SOC teams need to identify DNS-based threats that bypass traditional network security controls.
26zl/cybersec-toolkit · ★ 11 · AI & Automation · score 85
Install: claude install-skill 26zl/cybersec-toolkit
# Analyzing DNS Logs for Exfiltration ## When to Use Use this skill when: - SOC teams suspect data exfiltration through DNS tunneling to bypass firewall/proxy controls - Threat intelligence indicates adversaries using DNS-based C2 channels (e.g., Cobalt Strike DNS beacon) - UEBA detects anomalous DNS query volumes from specific hosts - Malware analysis reveals DNS-over-HTTPS (DoH) or DNS tunneling capabilities **Do not use** for standard DNS troubleshooting or availability monitoring — this skill focuses on security-relevant DNS abuse detection. ## Prerequisites - DNS query logging enabled (Windows DNS Server, Bind, Infoblox, or Cisco Umbrella) - DNS logs ingested into SIEM (Splunk with `Stream:DNS`, `dns` sourcetype, or Zeek DNS logs) - Passive DNS data for historical domain resolution analysis - Baseline of normal DNS behavior (query volume, domain distribution, TXT record frequency) - Python with `math` and `collections` libraries for entropy calculation ## Workflow ### Step 1: Detect DNS Tunneling via Subdomain Length Analysis DNS tunneling encodes data in subdomain labels, creating unusually long queries: ```spl index=dns sourcetype="stream:dns" query_type IN ("A", "AAAA", "TXT", "CNAME", "MX") | eval domain_parts = split(query, ".") | eval subdomain = mvindex(domain_parts, 0, mvcount(domain_parts)-3) | eval subdomain_str = mvjoin(subdomain, ".") | eval subdomain_len = len(subdomain_str) | eval tld = mvindex(domain_parts, -1) | eval registered_domain = mvindex(d