content-image
ARTICLES | 01 March 2021

Malware Fighting Technique — DNS Sinkhole

author-image

Nuttakorn Dhiraprayudti

1 ในเทคนิคการป้องกัน malware ที่ implement ได้ง่ายและมีประสิทธิผลสูงสำหรับงาน Incident Handling ก็คือเทคนิคที่เรียกว่า DNS Sinkhole

Infection Pattern ของ Malware

โดยส่วนใหญ่แล้วการโจมตีหรือการแพร่ของ malware ไปสู่ endpoint หรือผู้ใช้งานนั้นมักจะเกิดขึ้น 2 steps

  1. ขั้นแรกเป็นวิธีการที่เรียกว่า Drive by Downloads: วิธีการนี้นิยมโจมตีผ่าน Browser บนเครื่องของผู้ใช้งาน เช่น Users ไป visit เว็บไซด์หนึ่งซึ่งหน้า page ของเว็บไซด์นั้นมีการเชื่อมต่อไปสู่ Landing page* ของ malware ทำให้ Browser ของผู้ใช้ติดต่อกับ Infected Page ของ malware นั้น ๆ โดยทางเทคนิคแล้วถ้าเกิดรูปแบบนี้ขึ้นมาเครื่องผู้ใช้งานมักจะถูกโจมตีผ่าน Exploitation Kits ซึ่งถ้าหากมี Environment ที่ไม่ดีพอเช่น antivirus ไม่สมบูรณ์, OS ไม่มีการ Update Patch และ Application ของเครื่องขาดการ Update มีช่องโหว่อยู่ เครื่องก็จะถูก Compromised
Diagram

Diagram

จาก Graph ด้านบนสังเกตว่า Page ของหน้าที่เป็น Domain .go.th นั้นมี Link ไปหลาย ๆ Page ที่มี Domain .cc ซึ่งเป็นของหมู่เกาะ Cocos และ Page เหล่านี้พบว่าเป็น Landing Page ของ Exploitation Kit ที่ชื่อว่า Redkit

  • Landing Page คือ Page ที่ทำการเปิดการเชื่อมต่อหรือมีการ Redirect ไปยัง Page ที่มี Payload อยู่เพื่อทำการ Exploit เครื่องของเหยื่อที่หลงเข้ามา จะมี Logic เช็คว่าเครื่องนั้น ๆ เหมาะสมกับการถูกโจมตีหรือไม่ด้วย ซึ่งเงื่อนไขนั้นขึ้นอยู่กับจุดประสงค์ของการโจมตี
  • .cc เป็น Top Level Country Code ที่ CyberCrime ชอบใช้ อาจจะเป็นเพราะว่าประเทศนี้กฎระเบียบด้าน Security อ่อนและ .cc มันเท่ห์แทนคำว่า Command and Control
  • Redkit เป็นหนึ่งใน Exploitation Kits ตัวแสบที่โจมตี Users ทั่วโลกอยู่ ณ เวลานี้ และมีอีกตัวชื่อว่า Blackhole หน้าเว็บภายในประเทศไทยหลายแหล่งมีไอ้เจ้านี่ฝังอยู่เยอะเลยครับ
  1. ขั้นตอนถัดมาเครื่องที่ Infected ทำการติดต่อกับ C2 (Command&Control Server) เพื่อ Maintain Connection: เครื่องที่ทำการติดต่อกับ C2 อาจจะเกิดขึ้นได้หลายกรณีเช่น เป็น zombie ใน BotNet, ติดต่อกับ C2 เพื่อ update configuration, ถูก control จาก Master ผ่าน RAT (Remote Access Trojan), มี Loader (Malware ที่ทำหน้าที่ไป download Malware หรือ Executable file อื่น ๆ มา install ที่เครื่องเพิ่มเติม) อยู่ในเครื่อง และอื่น ๆ อีกมากขึ้นอยู่กับเทคนิคของ Malware และ Environment นั้น ๆ

จากรูปแบบดังกล่าว Malware มักจะทำการติดต่อโดยอาศัยการอ้างอิงชื่อผ่าน Authoritative DNS (DNS ที่ทำการ set อยู่ที่เครื่องนั่นแหละ) ของเครื่องที่ถูกโจมตี พวกแก๊งค์ CyberCrime มักจะจด Domain อยู่เป็นจำนวนมากและหากเครื่อง Controller ถูกปิดหรือถูก Banned จาก Network พวกเค้าก็แค่ไปเปลี่ยน IP ใหม่เท่านั้น Domain Name ยังคงใช้ชื่อแบบเดิมได้ หรือตั้ง Subdomain Name ใหม่ ผลก็คือเครื่องที่ Infected ก็ยังคงมีการเชื่อมต่อกับ C2 ได้เหมือนเดิม

เทคนิค DNS Sinkhole

Concept ของ DNS Sinkhole ก็คือป้องกันการเชื่อมต่อระหว่างเครื่องที่ Infected และ C2 หรือ Malicious Domain ด้วยการ Blind พวกมันผ่าน Name Resolving ของ DNS

Infrastructure แบบที่ไม่มี DNS Sinkhole

DNS Sinkhole

DNS Sinkhole

Infrastructure แบบนี้การป้องกัน Malware ขึ้นอยู่ว่า Policy ของ Firewall เป็นอย่างไร หรือ IPS เห็นหรือไม่ ซึ่งส่วนใหญ่แล้วไม่เพียงพอและ Maintain ยาก บางองค์กรอาจจะมีการติดตั้ง Antivirus Gateway เพิ่มขึ้นมาด้วยก็ดีขึ้นครับ แต่ก็ต้อง Tradeoff กับเรื่อง Performance
Infrastructure แบบมี DNS Sinkhole

DNS Sinkhole

DNS Sinkhole

Malicious Domain จะถูก DNS Resolve ไปที่เครื่อง Sinkhole ซึ่งมีการ Run อะไรบางอย่างอยู่แล้วแต่เทคนิค เช่น Run socat, packet analyser, proxy, หรือ honeypot ดักเอาไว้ หากมีการเชื่อมต่อก็ให้ทำการ alert ว่ามาจากเครื่องไหน และติดต่อไปที่ Port อะไร แค่นี้เราก็จะ Containment เครื่องที่ Infected ได้ และทำให้กระบวนการ Incident Handling ของ Admin เร็วขึ้น

ข้อจำกัดของ DNS Sinkhole

  1. ต้องมีการ update Malicious Domain สม่ำเสมอ ซึ่งไม่ได้ยากมากครับ เนื่องจากมีคนทำให้อยู่แล้วเช่น
  1. ป้องกัน Malware ที่สามารถแก้ไข Host file บนเครื่องที่ Infected ไม่ได้ (ส่วนใหญ่แล้วการโจมตีด้วย Exploitation Kit ใน Stage เบื้องต้น Malware มักจะ Connect ไปภายนอกเพื่อ Update หรือ Download EXE เพิ่มเติมมา Run ก่อนที่มันจะทำอย่างอื่นครับ DNS Sinkhole จึงค่อนข้างใช้ได้ผล โดยส่วนตัวผมไม่ค่อยเจอ Malware ที่แอบเปลี่ยน Host File เท่าไรแล้วครับเนื่องจากมันเปิดเผยมากเกินไป IOC-Indicator of Compromise โจ๋งครึ่มมาก)
  2. Firewall ที่ใช้ในองค์กรต้องบังคับไม่ให้ DNS Traffic ของเครื่อง Clients ไป Resolve Name ที่อื่น

Homeuse ทำ DNS Sinkhole ได้มั้ย?

คำตอบคือไม่ต้องทำครับ มีบริการดี ๆ และฟรีอยู่ลองใช้ได้เลยเช่น

สำหรับงาน Forensics อยากทำ DNS Sinkhole แบบเร็ว ๆ บนเครื่องที่ Infected เพื่อดูว่า เครื่องนั้น connect ไปที่ไหนบ้าง สามารถทำได้หรือไม่?

ทำได้แน่นอน tool ที่อยากจะแนะนำให้ใช้คือ apatedns ของ Mandiant ที่จะ control DNS Response ตามใจเราได้

สุดท้ายนี้ อยากฝากหน่วยงานของรัฐหรือเจ้าหน้าที่ที่เกี่ยวข้อง ช่วย Control ISP ให้ ISP ทำ DNS Sinkhole บ้างครับ(เราเชื่อมั่นว่ายังไม่ได้ทำ สถิติมันฟ้องครับ) เนื่องจากเราไม่อยากเห็นประเทศไทยของเราเป็นเครือข่าย Botnet ลำดับต้น ๆ ของโลก

DNS

DNS

logologo

INCOGNITO LAB CO., LTD.

38 Soi Petchakasem 30, Petchakasem Road, Pak Khlong Phasi Charoen, Phasi Charoen, Bangkok 10160

©2025 Incognito Lab Co., Ltd. All rights reserved

Terms & Conditions Privacy Policy