รู้จัก IP Spoofing: ภัยคุกคามที่ปลอมตัวเป็น "ผู้ที่คุณไว้ใจ"

ในโลกของการสื่อสารบนอินเทอร์เน็ต การส่งข้อมูลระหว่างคอมพิวเตอร์แต่ละเครื่องต้องอาศัยเราเตอร์เป็นตัวกลางในการหาเส้นทางที่ดีที่สุดไปยังปลายทาง โดยเราเตอร์จะพิจารณาเพียง "ที่อยู่ปลายทาง" เป็นหลัก ส่วน "ที่อยู่ต้นทาง" มักไม่ถูกตรวจสอบอย่างเข้มงวด ช่องโหว่นี้เองที่เปิดทางให้เกิดเทคนิคการโจมตีที่เรียกว่า IP Spoofing หรือการปลอมแปลงที่อยู่ไอพี

อ่าน 19 ครั้ง
รู้จัก IP Spoofing: ภัยคุกคามที่ปลอมตัวเป็น "ผู้ที่คุณไว้ใจ"

รู้จัก IP Spoofing: ภัยคุกคามที่ปลอมตัวเป็น "ผู้ที่คุณไว้ใจ"

ในโลกของการสื่อสารบนอินเทอร์เน็ต การส่งข้อมูลระหว่างคอมพิวเตอร์แต่ละเครื่องต้องอาศัยเราเตอร์เป็นตัวกลางในการหาเส้นทางที่ดีที่สุดไปยังปลายทาง โดยเราเตอร์จะพิจารณาเพียง "ที่อยู่ปลายทาง" เป็นหลัก ส่วน "ที่อยู่ต้นทาง" มักไม่ถูกตรวจสอบอย่างเข้มงวด ช่องโหว่นี้เองที่เปิดทางให้เกิดเทคนิคการโจมตีที่เรียกว่า IP Spoofing หรือการปลอมแปลงที่อยู่ไอพี

IP Spoofing คืออะไร

IP Spoofing คือวิธีการที่ผู้บุกรุกปลอมแปลงข้อมูลใน packet header ให้ดูเหมือนว่าข้อมูลถูกส่งมาจาก "เครื่องที่ระบบเป้าหมายไว้ใจ" ทั้งที่จริงแล้วมาจากผู้โจมตี เป้าหมายสูงสุดคือการหลอกให้ระบบปลายทางเชื่อว่ากำลังสื่อสารกับสมาชิกที่ถูกต้องของเครือข่าย เพื่อสร้างช่องทางลับ (backdoor) และเข้าถึงสิทธิ์ระดับ root ได้ในที่สุด

ข้อควรเข้าใจที่สำคัญคือ IP Spoofing ไม่ใช่วิธีการปกปิดตัวตนขณะท่องเว็บหรือแชท อย่างที่หลายคนเข้าใจผิด เพราะเมื่อปลอมแปลงที่อยู่ต้นทางแล้ว การตอบกลับของระบบปลายทางจะถูกส่งไปผิดที่ ทำให้ไม่สามารถสร้างการเชื่อมต่อแบบปกติได้ เทคนิคนี้จึงเหมาะกับการโจมตีแบบ "มองไม่เห็นการตอบกลับ" หรือที่เรียกว่า blind spoofing เท่านั้น

รูปแบบการโจมตีที่พบบ่อย

  • Man-in-the-Middle — ดักฟังข้อมูลระหว่างสองฝ่ายและแอบอ้างเป็นอีกฝ่ายหนึ่ง
  • Routing Redirect — เปลี่ยนเส้นทางข้อมูลจากเครื่องต้นทางมายังเครื่องของผู้โจมตี
  • Source Routing — บังคับเส้นทางของแต่ละ packet ผ่านเครื่องผู้โจมตี
  • Blind Spoofing — คาดเดาการตอบสนองของเครื่องเป้าหมายเพื่อส่งคำสั่งโดยไม่เห็นผลตอบกลับจริง
  • Flooding (SYN Flood / Smurf-Fraggle) — ถล่มคิวการเชื่อมต่อด้วย request จำนวนมากจากที่อยู่ปลอม

ขั้นตอนของการโจมตี

การโจมตีเริ่มจากการเลือกเป้าหมายและตรวจสอบความสัมพันธ์แบบ "ไว้ใจ" (trust relationship) ระหว่างเครื่องต่าง ๆ จากนั้นผู้โจมตีจะทำให้เครื่องที่ถูกไว้ใจ (trusted host) ใช้งานไม่ได้ชั่วคราวด้วยเทคนิค SYN flooding เพื่อไม่ให้เครื่องดังกล่าวตอบสนองต่อระบบเป้าหมาย ต่อมาผู้โจมตีจะสุ่มตัวอย่างและคาดเดาหมายเลขลำดับ TCP (sequence number) ของเป้าหมาย เพื่อปลอมแปลงตัวเองเป็น trusted host และส่ง ACK พร้อมหมายเลขลำดับที่คาดเดาไว้กลับไปยังเซิร์ฟเวอร์เป้าหมาย หากคำนวณถูกต้อง การเชื่อมต่อจะสำเร็จและระบบเป้าหมายจะถูกเจาะเข้าถึงโดยไม่ต้องใช้รหัสผ่านใด ๆ เลย ซึ่งส่วนใหญ่ผู้โจมตีจะมุ่งเป้าไปที่บัญชี root เพราะให้สิทธิ์ควบคุมระบบได้เต็มรูปแบบ

จุดที่น่าสนใจคือ การโจมตีนี้เกิดขึ้นแบบ "มองไม่เห็น" (blind attack) เนื่องจากข้อมูลตอบกลับจริงจะถูกส่งไปยัง trusted host ไม่ใช่ผู้โจมตี ผู้โจมตีจึงต้องอาศัยความเข้าใจกระบวนการ three-way handshake ของ TCP อย่างลึกซึ้งเพื่อคาดเดาการตอบสนองของระบบได้อย่างแม่นยำ

แนวทางการป้องกัน

  1. หลีกเลี่ยงการยืนยันตัวตนด้วยที่อยู่ไอพีเพียงอย่างเดียว โดยปิดการใช้งานคำสั่งกลุ่ม r* (เช่น rlogin, rsh) และลบไฟล์ .rhosts รวมถึงเคลียร์ /etc/hosts.equiv เพื่อบังคับให้ใช้การเชื่อมต่อที่ปลอดภัยกว่า เช่น SSH
  2. เข้ารหัสข้อมูลที่รับส่งบนเครือข่าย เพื่อป้องกันไม่ให้ที่อยู่ต้นทางและปลายทางถูกปลอมแปลงได้ง่าย
  3. ใช้หมายเลขลำดับเริ่มต้น (ISN) แบบสุ่ม ตามข้อเสนอของ Bellovin ตั้งแต่ปี 1989 ซึ่งปัจจุบันระบบปฏิบัติการยุคใหม่นำมาใช้กันอย่างแพร่หลาย

บทสรุป

แม้ในปัจจุบัน IP Spoofing แบบดั้งเดิมจะมีความเสี่ยงลดลงมาก จากการที่ระบบปฏิบัติการได้รับการปรับปรุงและใช้การสุ่มหมายเลขลำดับกันอย่างแพร่หลาย แต่แนวโน้มภัยคุกคามกำลังเปลี่ยนไปสู่ การปลอมแปลงในระดับแอปพลิเคชัน เช่น การตั้งค่า Sendmail ที่ไม่รัดกุมจนเปิดช่องให้ปลอมแปลงผู้ส่งอีเมลได้ ดังนั้น ผู้ดูแลระบบและผู้เชี่ยวชาญด้านความปลอดภัยจึงจำเป็นต้องติดตามความเปลี่ยนแปลงของระบบปฏิบัติการและรูปแบบการโจมตีใหม่ ๆ อยู่เสมอ เพื่อรับมือกับภัยคุกคามที่พัฒนาไปพร้อมกับเทคโนโลยีอย่างต่อเนื่อง

อรรถกร

อรรถกร ทองคำชุม

บุคลากรผู้ร่วมสร้างสรรค์องค์กรแห่งการเรียนรู้ (KM) ผ่าน Blog Space NSTRU