Domain Name System (DNS) Attacks (Part 2: การโจมตี DNS)

DNSจากบทความ Domain Name System (DNS) คืออะไร และ ทำงานอย่างไร (Part 1: Concept) ได้อธิบายการทำงานและความสำคัญของ DNS จะเห็นได้ว่า DNS เปรียบเสมือนประตูสู่อินเทอร์เน็ตของเครื่องคอมพิวเตอร์และอุปกรณ์สื่อสาร เนื่องจากการเข้าถึงเว็บไซต์หรือบริการบนอินเทอร์เน็ตต่างพึ่งพาการแปลง domain name ให้เป็น IP address ทั้งนั้น ในบทความนี้จะอธิบายถึงนรูปแบบการโจมตี DNS และผลกระทบที่อาจจะก่อให้เกิดกับเว็บแอปพลิเคชัน

 

การโจมตี DNS

โดยปกติแล้ว จุดมุ่งหมายของการโจมตี DNS คือการควบคุมกระบวนการการแปลง domain name ให้เป็น IP address หากผู้ไม่หวังดีสามารถควบคุมกระบวนการนี้ได้ ก็จะสามารถนำผู้ใช้งานไปยังเว็บไซต์ IP address ไหนก็ได้ตามต้องการ ตัวอย่างเช่น หากคอมพิวเตอร์ของผู้ใช้งานส่งข้อมูลมาถามว่าที่อยู่ของ www.banka.com คือ IP อะไร ผู้ไม่หวังดีสามารถส่ง IP address ชี้ไปที่เครื่องของตน ซึ่งอาจจะมีหน้าตาเว็บไซต์เหมือน banka.com เพื่อหลอกให้ผู้ใช้งานทำการกรอก username และ password การโจมตี DNS นั้นสามารถทำได้หลายทาง ในบทความนี้จะขอนำเสอน 3 วิธีในการแก้ไข DNS record ที่สามารถหลอกผู้ใช้งานให้ตกเป็นเหยื่อของการโจมตีประเภท phishing ได้

1. Malicious Local DNS

ลองจิตนาการว่าหาก Local DNS ของเครือข่ายตกอยู่ในการควบคุมของผู้ไม่หวังดี (attacker,hacker) จะเกิดอะไรขึ้น? เครื่องคอมพิวเตอร์ที่อยู่ในเครือข่ายทั้งหมดจะตกอยู่ในสภาวะเสียต่อการโจมตีด้วยวิธีการ Phishing โดยทันที เนื่องจากเมื่อเครื่องอุปกรสื่อสารหรือคอมพิวเตอร์ต้องการแปลง domain name ให้เป็น IP address ก็จะเริ่มต้นถามที่ Local DNS ดังนั้น Local DNS จึงเปรียบเสมือนเครื่องคอมพิวเตอร์เชื่อถือว่าจะให้ IP address ที่ถูกต้อง หาก Local DNS ตกอยู่ในการควบคุมของผู้ไม่หวังดีแล้วหละก็ ผู้ไม่หวังดีสามารถคืน IP address ของทุกเว็บไซต์ไปเป็น IP address ของเครื่องเซิร์ฟเวอร์ของตนได้ทันที ตัวอย่างดังรูปด้นล่าง

Screen Shot 2559-01-28 at 5.17.24 PM

ดังนั้น หากผู้ใช้งานเรียกใช้งาน Local DNS ที่ถูกผู้ไม่หวังดีควบคุม ก็อาจจะตกเป็นเหยื่อของ phishing website ได้โดยไม่มีทางรู้ตัว กรณีนี้สามารถเกิดขึ้นได้จริง เช่น เมื่อผู้ใช้งานเชื่อมต่อเข้ากับเครื่อข่ายอินเทอร์เน็ตของร้านกาแฟ Local DNS จะตกอยู่ในการควบคุมของเจ้าของร้านกาแฟซึ่งเป็นใครที่เราไม่อาจะไว้ใจได้ หรือในกรณีที่ซับซ้อนกว่านั้น ผู้ไม่หวังดีอาจจะทำการ สร้าง free wifi ขึ้นมาเพื่อหลอกเหยื่อที่ไม่มีความรู้

2. DNS Cache Poisoning

โดยปกติการเข้ายึด Local DNS server นั้นเป็นเรื่องที่ทำได้ยากเนื่องจาก Local DNS ส่วนใหญ่จะไม่มีช่องโหว่ให้ทำการควบคุม อย่างไรก็ตามเทคนิค DNS Poisoning เป็นอีกหนึ่งวิธีที่ผู้ไม่หวังดีสามารถใช้ในการแก้ไข record ของ Local DNS ได้ ขั้นตอนการทำ DNS Cache Poisoning นั้นสามารถทำได้หาก Local DNS ยังใช้ DNS version เก่าที่มีใช้ฟัก์ชัน Zone Transfer หลักการของ Zone Transfer คือ Local DNS จะอนุญาตให้ Authoritative DNS ทำการ update ข้อมูลใน cache โดยไม่ตรวจสอบ ตัวอย่างในรูปด้านล่างScreen Shot 2559-01-28 at 5.46.31 PM

Screen Shot 2559-01-28 at 5.47.03 PM

จะเห็นได้ว่าผู้ไม่หวังดีทำการหลอก Local DNS ให้ถาม IP address ของ attacker.com เพื่อให้ authoritative DNS server ของ attacker.com สามารถแก้ไข cache ของ Local DNS ผ่านทาง Zone transfer (การโจมตีชนิดนี้ได้ผลกับ DNS server ที่เปิดใช้งาน zone transfer เท่านั้น)

3. DNS Spoofing

DNS Spoofing เป็นอีกหนึ่งวิธีที่สามารถส่ง IP address ปลอมไปให้เหยื่อได้ การทำงานของ DNS นั้นค่อนข้างเรียบง่ายประกอบด้วย 2 messages คือ request (ถาม) และ reply (ตอบ) โดย เครื่องคอมพิวเตอร์ของผู้ใช้งานจะทำการส่ง request พร้อมด้วย ID ที่เป็นเลขสุ่มจาก 1-65536 ไปให้กับ DNS server เมื่อ DNS server ทำการตอบกลับก็จะส่ง reply พร้อม ID ที่ได้รับมาจากผู้ใช้งานคืนไปให้ จะเห็นได้ว่า ผู้ไม่หวังดีที่อยู่ในเครือข่าย มีโอกาสในการดักจับข้อมูล request และตอบกลับ reply ให้กับผู้ใช้งานได้ก่อน DNS server จะตอบผู้ใช้งาน

Screen Shot 2559-01-28 at 6.10.30 PM

แนวทางการป้องกันตัวเองเมื่ออยู่ในเครือข่ายที่ไม่ปลอดภัย

จะเห็นได้ว่า DNS นั้นมีความสำคัญอย่างมากต่อผู้ใช้งานอินเทอร์เน็ต วิธีการป้องกันตัวเองจากการตกเป็นเหยื่อของ malicous DNS ที่ดีที่สุดคือการเลือกใช้ DNS ที่มีความน่าเชื่อถือ โดยปกติแล้ว เจ้าของเครื่องคอมพิวเตอร์สามารถกำหนด IP address ของ DNS ที่ต้องการใช้เองได้ Google ได้เล็งเห็นถึงความสำคัญของ DNS จึงได้จัดตั้ง public DNS ไว้ให้บริการแก่ผู้ใช้งานอินเทอร์เน็ตแบบไม่มีค่าใช้จ่าย (free) โดยหมายเลข IP address ของ Google DNS คือ 8.8.8.8 และ 8.8.4.4 ผู้ใช้งาน Windows และ OSX สามารถเข้าไปกำหนด DNS server ได้ดังรูปด้านล่าง

Mac OS (OSX)

Screen Shot 2559-01-28 at 6.40.53 PM

Windows 10

Screen Shot 2559-01-28 at 6.42.15 PM

สรุป

จะเห็นได้ว่าการ DNS นั้นมีความสำคันอย่างมากต่อความปลอดภัย ผู้ดูแลระบบควรหมั่น update security patch ของ local DNS และปิด Zone Transfer เพื่อให้มั่นใจว่า DNS จะไม่ถูกโจมตีด้วยวิธีการดังกล่าว ผู้ใช้งานทั่วไปเมื่อเชื่อมต่อเขากับเครื่อข่ายที่ไม่ปลอดภัยควรปกปกตนเองด้วยการใช้บริการจาก DNS ที่ปลอดภัยเช่น Google public DNS หรือ เชื่อมต่อเข้าเครือข่าย VPN


Leave a Reply