ป้องกัน Rogue DHCP Server ด้วย DHCP Snooping บน Cisco Switch ตอนที่ 1

สวัสดีครับ วันนี้ผมจะมากล่าวถึงวิธีการป้องกันการปลอมแปลง DHCP Server หรือเราเคยได้ยินกันว่า DHCP Spoofing ด้วย Feature ของ Cisco Switch ที่ชื่อว่า “DHCP Snooping” กันครับ
ก่อนจะเริ่ม DHCP Snooping ขอกล่าวถึงการทำงานของ DHCP กันก่อน เพื่อเป็นการทบทวนนะครับ
DHCP (Dynamic Host Configuration Protocol) เป็นโปรโตคอลที่ใช้สำหรับกำหนดค่าหมายเลขที่อยู่ (IP address) ให้กับ Host โดยมีการทำงานดังนี้
  1. Client จะเป็นฝ่ายเริ่มต้นในการส่ง request ไปหา DHCP Server เพื่อร้องขอ IP address ให้โดยจะทำการส่ง DHCP Discover มาแบบ Broadcast
  2. DHCP Server จะทำการกำหนดหมายเลข IP address , Subnet Mask , Gateway , DNS ส่งกลับไปให้ โดยส่งผ่าน DHCP Offer แบบ Unicast
  3. Client ตอบกลับว่าได้รับ IP address มาเรียบร้อยแล้ว โดยส่ง DHCP Request ตอบกลับไป
  4. DHCP Server ยืนยันการใช้งาน IP address โดยการตอบ DHCP ACK
  5. Client สามารถใช้งาน IP address ได้ตามปกติ
ถ้าในระบบเราไม่มีการปลอมแปลง DHCP Server  ระบบก็จะสามารถทำงานได้ตามปกติไม่เกิดปัญหาใดๆ โดย Client ก็ Request DHCP ไปหา DHCP Server ตามปกติ
  • DHCP server แจก IP address ถูกต้อง
  • DHCP server แจก Subnet Mask ถูกต้อง
  • DHCP server แจก Gateway ถูกต้อง
  • DHCP server แจก DNS ถูกต้อง
Traffic ก็ใช้งานได้ตามปกติ ดังรูป นั่นก็คือมีการ Request IP address ผ่าน DHCP ไป แล้ว DHCP server ก็ส่ง IP address , Subnet Mask , Gateway และ DNS กลับมาให้ Client  ก็สามารถใช้งานได้ตามปกติ
แต่ถ้าเกิดว่าในระบบเรา มีการปลอมแปลง DHCP Server เกิดขึ้น ซึ่งอาจจะเกิดจากความตั้งใจ เช่น การจงใจทำ DHCP Spoofing Attack เพื่อลักลอบเก็บข้อมูลต่างๆ ตัวอย่างดังรูป
Attacker ทำตัวเป็น DHCP Server (Rogue) แล้วทำการแจก IP address ให้กับ Client โดยแจก Gateway เป็นตัว Attacker เอง เพื่อลอบดักจับข้อมูล หรืออาจจะ แจก IP address , Subnet Mask , Gateway และ DNS แบบผิดๆ เพื่อก่อก่วนระบบให้ใช้งานไม่ได้

เมื่อ Client ได้ Gateway เป็นเครื่อง Attacker แล้ว Traffic ก็จะวิ่งผ่านเครื่องของ Attacker สามารถดักจับข้อมูลต่างๆ ที่เราใช้งานได้
อีกกรณีนึง ที่เกิดขึ้นได้บ่อย ก็คือ
  • เกิดจากการที่มีคนเอา ADSL Router มาต่อพ่วงในระบบ
  • อาจจะมีคน Test พวกโปรแกรม DHCP Server บน Windows
  • มีการ Setup ผิด ไปให้ Switch หรือ Router ปล่อย DHCP มาชนในระบบ
ใน Case นี้ ไม่อันตรายต่อข้อมูล เพราะ ไม่ใช่การลักลอบดักจับข้อมูล แต่จะให้ระบบไม่สามารถใช้งานได้อย่างถูกต้อง ตัวอย่างเช่น เครื่อง PC ได้รับ IP address มาจาก ADSL Router โดยปกติ เครื่อง PC ก็สามารถใช้งาน Internet ได้ ผ่าน ADSL Router นั่นแหละ แต่ถ้าจะใช้งานระบบภายใน เช่น Web Server , CRM , SAP และอื่นๆ ก็จะไม่สามารถใช้งานได้ เพราะ Client ได้ IP address ผิดวงนั่นเอง

สิ่งที่ผมเล่ามานั้น คือ ปัญหาที่เกิดขึ้นจากการโดน DHCP Spoofing ในระบบครับ…
ทีนี้เรามาดูวิธีการจัดการกับปัญหานี้กันดีกว่าครับ…
บน Cisco Switch มี Feature ที่ชื่อว่า DHCP Snooping โดย
  • เราจะเป็นคนกำหนดบน Switch ว่า พอร์ตไหนที่เชื่อมต่อกับ DHCP Server และ เส้นทางที่เชื่อมต่อไปหา DHCP Server จริงๆ ให้เราเรียกและทำการตั้งค่าพอร์ตนั้นว่า “Trusted Port” (คือพอร์ตที่เชื่อว่าเชื่อมต่อกับ DHCP Server และเส้นทางที่เชื่อมต่อกับ DHCP Server จริง)
  • และ พอร์ตไหนที่ไม่ได้เชื่อมต่อกับ DHCP Server ให้เราเรียกและทำการตั้งค่าพอร์ตนั้นว่า “Untrusted Port” (คือพอร์ตที่ไม่เชื่อว่าเชื่อมต่อกับ DHCP Server)
Port ไหนควรจะเป็น Trusted หรือ Untrusted สรุปง่ายๆ ดังนี้
  • Trusted Port : ตั้งค่าบนพอร์ตที่เชื่อมต่อหา Switch ด้วยกัน (Uplink) และ พอร์ตที่เชื่อมต่อไป DHCP Server
  • Untrusted Port : ตั้งค่าบนพอร์ตที่เชื่อมต่อหา End User
โดยการทำงานของ DHCP Snooping มีหลักการง่ายๆ ดังนี้
  • เมื่อฝั่ง Client ส่ง DHCP Discover ออกไป เพื่อไปขอ IP address จาก DHCP Server
  • ฝั่ง DHCP Server จะตอบ DHCP Offer กลับมา
  • ถ้าบน Switch พอร์ตที่ DHCP Server เชื่อมต่ออยู่เป็น “Trusted Port” แล้ว Switch จะยอมให้ส่ง DHCP Offer ผ่านได้
  • แต่ถ้า Switch พอร์ตที่ DHCP Server เชื่อมต่ออยู่เป็น “Untrusted Port” แล้ว Switch จะไม่ยอมให้ส่ง DHCP Offer ผ่านได้ ดังรูปด้านล่าง
ในบทความนี้หวังว่าให้ทุกท่านเข้าใจการทำงานของ DHCP Snooping ก่อนนะครับ ในตอนถัดไป ผมจะเขียนวิธีการตั้งค่า DHCP Snooping บน Cisco Switch ให้นะครับ
โปรดรอติดตาม แล้วพบกันในตอนถัดไป  ขอบคุณครับ

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.

Facebook Comments

comments