
DNS Security: ป้องกัน DNS Spoofing, Tunneling และ DDoS
DNS (Domain Name System) เป็น protocol พื้นฐานที่แปลง domain names เป็น IP addresses ทุก internet activity เริ่มต้นด้วย DNS query แต่ DNS ถูกออกแบบมาในยุคที่ไม่ได้คำนึงถึง security ทำให้มีช่องโหว่มากมาย DNS Spoofing, DNS Tunneling และ DNS-based DDoS เป็นภัยคุกคามที่พบบ่อยที่สุด
องค์กรหลายแห่ง ละเลย DNS security เพราะมองว่า DNS เป็นแค่ name resolution แต่จริงๆ DNS เป็นจุดอ่อนที่ attacker ใช้ในหลาย attack vectors บทความนี้จะอธิบาย DNS threats หลักและวิธีป้องกัน
DNS Attack Types
| Attack | วิธีโจมตี | ผลกระทบ |
|---|---|---|
| DNS Spoofing/Cache Poisoning | ปลอม DNS response ให้ชี้ไป IP ของ attacker | User ถูก redirect ไป phishing site |
| DNS Tunneling | ซ่อน data ใน DNS queries เพื่อ exfiltrate data | Data leak, C2 communication |
| DNS Amplification DDoS | ส่ง DNS query ด้วย spoofed source IP → response ใหญ่กว่า query | DDoS เหยื่อด้วย amplified traffic |
| DNS Hijacking | เปลี่ยน DNS records ที่ registrar หรือ DNS server | Traffic ถูก redirect ไป attacker |
| NXDOMAIN Attack | ส่ง queries สำหรับ domains ที่ไม่มีจริง จำนวนมาก | DNS server overloaded |
DNS Spoofing / Cache Poisoning
วิธีทำงาน
Attacker ปลอม DNS response ก่อนที่ legitimate DNS server จะตอบ: User query “bank.com” → DNS resolver ส่ง query ไป authoritative DNS Attacker ส่ง fake response (bank.com = attacker’s IP) ก่อน real response มาถึง DNS resolver cache fake record → ทุก user ที่ query bank.com จะได้ fake IP ถูก redirect ไป phishing site ที่หน้าตาเหมือน bank.com
ป้องกัน
DNSSEC (DNS Security Extensions): เพิ่ม digital signature ให้ DNS records ถ้า response ถูกปลอม signature จะไม่ตรง → resolver reject Source Port Randomization: ทำให้ attacker เดา port ไม่ถูก Transaction ID Randomization: เพิ่ม entropy ให้ยากต่อการ spoof DNS over HTTPS (DoH) / DNS over TLS (DoT): encrypt DNS queries
DNS Tunneling
วิธีทำงาน
Attacker ใช้ DNS protocol เพื่อส่งข้อมูลออกจาก network: Malware encode data เป็น subdomain ของ domain ที่ attacker control เช่น: base64data.evil.com DNS query ผ่าน firewall ได้เสมอ (port 53 มักไม่ถูก block) Attacker’s DNS server decode data จาก subdomain ใช้สำหรับ data exfiltration หรือ C2 (Command and Control) communication
ป้องกัน
Monitor DNS query patterns: Unusual query volume จาก single host Long subdomain names (encoded data) Queries ไป domains ที่ไม่เคยเห็น High entropy ใน subdomain names เครื่องมือ: DNS firewall (Infoblox, Cisco Umbrella) ที่ detect DNS tunneling SIEM rules สำหรับ anomalous DNS patterns Block direct DNS (port 53) ไป internet → force ใช้ internal DNS servers
DNS Amplification DDoS
วิธีทำงาน
Attacker ส่ง DNS query (ANY record) ด้วย spoofed source IP (เป็น IP ของเหยื่อ) ไปยัง open DNS resolvers: Query เล็ก (~60 bytes) → Response ใหญ่ (~3,000 bytes) = amplification 50x DNS resolvers ส่ง responses ไปที่เหยื่อ (spoofed IP) เหยื่อถูก flood ด้วย DNS responses จำนวนมาก
ป้องกัน
ไม่เปิด open DNS resolver: DNS server ตอบเฉพาะ queries จาก authorized networks (ACL) Rate limiting: จำกัดจำนวน DNS queries ต่อ source IP Response Rate Limiting (RRL): จำกัด identical responses ต่อ destination BCP38/BCP84: ISP implement ingress filtering เพื่อป้องกัน source IP spoofing
DNS Security Solutions
| Solution | ประเภท | ป้องกัน |
|---|---|---|
| DNSSEC | Protocol extension | DNS spoofing/cache poisoning |
| DoH/DoT | Encrypted DNS | DNS eavesdropping, manipulation |
| Cisco Umbrella | Cloud DNS security | Malware domains, phishing, tunneling |
| Infoblox BloxOne | DNS firewall | Tunneling, DGA, malware C2 |
| Pi-hole | DNS sinkhole (open-source) | Ad blocking, malware domains (basic) |
| Response Policy Zones (RPZ) | DNS firewall (BIND) | Block malicious domains |
DNSSEC
วิธีทำงาน
DNSSEC เพิ่ม 4 record types: RRSIG: Digital signature สำหรับ DNS record DNSKEY: Public key สำหรับ verify signature DS: Delegation Signer (chain of trust) NSEC/NSEC3: Prove non-existence ของ record DNS resolver verify signature chain: Root → TLD → Domain → Record ถ้า signature ไม่ตรง = record ถูกปลอม → reject
Best Practices
สำหรับองค์กร
1: ใช้ internal DNS servers อย่าให้ clients query internet DNS โดยตรง 2: Block port 53 outbound ไป internet (ยกเว้น DNS servers) 3: Enable DNSSEC validation บน DNS resolvers 4: Monitor DNS logs สำหรับ anomalies (high volume, long queries, new domains) 5: ใช้ DNS firewall/RPZ เพื่อ block known malicious domains 6: Enable DoH/DoT ระหว่าง internal DNS → upstream DNS 7: Disable recursion บน authoritative DNS servers
ทิ้งท้าย: DNS Security มักถูกลืม แต่สำคัญมาก
DNS เป็น protocol ที่ใช้ทุกวัน แต่มักถูกมองข้ามเรื่อง security เริ่มจาก block direct DNS ออก internet + monitor DNS logs ใช้ DNS firewall (Cisco Umbrella หรือ RPZ) block malicious domains enable DNSSEC validation DNS security ดี = network security ดีขึ้นมาก
อ่านเพิ่มเติมเกี่ยวกับ DNS over HTTPS DoH และ Zero Trust Network Architecture ที่ siamlancard.com หรือจาก icafeforex.com และ siam2r.com