Dev.to Security πŸ” Cybersecurity πŸ‘ 0 πŸ“– 1 min read

DNS always gets through, so attackers hid data in it

The scenario is fictional (RFC 5737 and 10.0.0.0/8 addresses). Detection only. You can close almost all outbound traffic, but not DNS: if names don't resolve, the business stops. Attackers know it and hide stolen data

The scenario is fictional (RFC 5737 and 10.0.0.0/8 addresses). Detection only.

You can close almost all outbound traffic, but not DNS: if names don't resolve, the business stops. Attackers know it and hide stolen data inside query names. Few organizations watch for it.

What you'll learn

  • Why DNS tunneling slips through
  • Four detection signals
  • Aggregation commands tested on synthetic data
  • Telling it apart from CDNs and security products

The story at a glance

After wiping local logs (part 6), web03 (10.0.0.50) kept talking, but only through DNS: a flood of queries to *.exfil.203-0-113-9.example, mostly TXT.

Normal vs. tunneling

normal   cdn.example.com                                A
attack   a3f9c2e1b7d4....exfil.203-0-113-9.example      TXT

Four signals

# Signal Normal Tunneling
1 Unique subdomains per parent domain few very many
2 Label length / entropy short, words long, random
3 Record type A / AAAA TXT / NULL skew
4 Querying host expected clients a server that rarely queries
awk '{print $2}' dns.log | sort -u \
 | awk '{n=split($1,a,"."); print a[n-2]"."a[n-1]"."a[n]}' \
 | sort | uniq -c | sort -rn | head
awk '$3=="TXT"{t++} END{printf "TXT ratio %d%%\n", t*100/NR}' dns.log

On a synthetic log (200 random queries under exfil, 300 normal) the top line was 200 exfil.203-0-113-9.example; every normal domain had 1. Length >= 30 with Shannon entropy >= 3.0 flagged all 200 random labels and none of the normal ones. Tune the thresholds on your own baseline.

Where to watch: the DNS server (Windows DNS Analytical, event 260; client event 3008) or Zeek dns.log (book details, not run here).

False positives

CDNs, security products and cloud services query many dynamic subdomains. Allow-list known parents and keep unknown parent x high entropy x TXT skew.

Defense

Force clients to the internal resolver, block external DNS and DoH/DoT, and ship DNS logs somewhere the host can't erase.

Next: ten thousand failed logins don't matter. One success does.

Adapted from chapters 3, 17 and 18 of my Japanese book on server defense.

πŸ“° Read the original article on Dev.to Security

Originally published by Dev.to Security. Aggregated on AIWithGhost for educational purposes β€” full credit and traffic to the original publisher.