รู้จัก 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 อย่างลึกซึ้งเพื่อคาดเดาการตอบสนองของระบบได้อย่างแม่นยำ
แนวทางการป้องกัน
- หลีกเลี่ยงการยืนยันตัวตนด้วยที่อยู่ไอพีเพียงอย่างเดียว โดยปิดการใช้งานคำสั่งกลุ่ม r* (เช่น rlogin, rsh) และลบไฟล์ .rhosts รวมถึงเคลียร์ /etc/hosts.equiv เพื่อบังคับให้ใช้การเชื่อมต่อที่ปลอดภัยกว่า เช่น SSH
- เข้ารหัสข้อมูลที่รับส่งบนเครือข่าย เพื่อป้องกันไม่ให้ที่อยู่ต้นทางและปลายทางถูกปลอมแปลงได้ง่าย
- ใช้หมายเลขลำดับเริ่มต้น (ISN) แบบสุ่ม ตามข้อเสนอของ Bellovin ตั้งแต่ปี 1989 ซึ่งปัจจุบันระบบปฏิบัติการยุคใหม่นำมาใช้กันอย่างแพร่หลาย
บทสรุป
แม้ในปัจจุบัน IP Spoofing แบบดั้งเดิมจะมีความเสี่ยงลดลงมาก จากการที่ระบบปฏิบัติการได้รับการปรับปรุงและใช้การสุ่มหมายเลขลำดับกันอย่างแพร่หลาย แต่แนวโน้มภัยคุกคามกำลังเปลี่ยนไปสู่ การปลอมแปลงในระดับแอปพลิเคชัน เช่น การตั้งค่า Sendmail ที่ไม่รัดกุมจนเปิดช่องให้ปลอมแปลงผู้ส่งอีเมลได้ ดังนั้น ผู้ดูแลระบบและผู้เชี่ยวชาญด้านความปลอดภัยจึงจำเป็นต้องติดตามความเปลี่ยนแปลงของระบบปฏิบัติการและรูปแบบการโจมตีใหม่ ๆ อยู่เสมอ เพื่อรับมือกับภัยคุกคามที่พัฒนาไปพร้อมกับเทคโนโลยีอย่างต่อเนื่อง