เจาะลึก Directory Traversal: เมื่อเว็บเปิดช่องให้แฮกเกอร์อ่านไฟล์ลับ

เจาะลึก Directory Traversal: เมื่อเว็บเปิดช่องให้แฮกเกอร์อ่านไฟล์ลับ

เคยสงสัยหรือไม่ว่าข้อมูลสำคัญบนเซิร์ฟเวอร์เว็บไซต์ ไม่ว่าจะเป็นรหัสผ่าน ไฟล์การตั้งค่า หรือแม้แต่ข้อมูลผู้ใช้งาน สามารถถูกขโมยไปได้อย่างไร หนึ่งในเทคนิคที่ผู้ไม่หวังดีนิยมใช้ คือการโจมตีที่เรียกว่า Directory Traversal หรือที่บางครั้งเรียกว่า Path Traversal ซึ่งเป็นช่องโหว่ที่อันตรายและแฝงตัวอยู่ในเว็บไซต์จำนวนมาก

Directory Traversal คืออะไร?

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

แต่ด้วยช่องโหว่ Directory Traversal ผู้โจมตีจะ “หลอก” เซิร์ฟเวอร์ให้เปิดเผยไฟล์ที่อยู่นอกโฟลเดอร์ที่ได้รับอนุญาตได้ คล้ายกับการเจอทางลัดทะลุไปห้องเก็บของลับ

กลไกการโจมตีทำงานอย่างไร?

หัวใจของการโจมตีนี้คือการใช้สัญลักษณ์พิเศษ ../ หรือรูปแบบที่ถูกเข้ารหัสอย่าง ..%2f ซึ่งในระบบปฏิบัติการทั่วไปมีความหมายว่า “ย้อนกลับไปยังไดเรกทอรีแม่” หรือ “ขึ้นไปหนึ่งระดับ” ผู้โจมตีจะป้อนสตริงเหล่านี้เข้าไปในช่องรับข้อมูลของเว็บไซต์ เช่น ใน URL หรือช่องอัปโหลดไฟล์ เพื่อหลอกให้เซิร์ฟเวอร์คิดว่ากำลังเข้าถึงไฟล์ที่ถูกต้อง แต่แท้จริงแล้วกำลังปีนออกไปจากขอบเขตที่ควรจะเป็น

ยกตัวอย่างเช่น ถ้าเว็บไซต์มีฟังก์ชันที่ใช้ URL แบบ www.example.com/download?file=photo.jpg ผู้โจมตีอาจเปลี่ยนเป็น www.example.com/download?file=../../../../etc/passwd เพื่อพยายามเข้าถึงไฟล์ /etc/passwd ซึ่งเป็นไฟล์ที่เก็บข้อมูลผู้ใช้งานของระบบปฏิบัติการ Linux ที่อยู่ห่างออกไปหลายระดับชั้นจากโฟลเดอร์ที่อนุญาต

ไฟล์ที่มักตกเป็นเป้าหมาย

ไฟล์ที่มักตกเป็นเป้าหมาย คือ ไฟล์ระบบ เช่น /etc/passwd ใน Linux, ไฟล์คอนฟิกูเรชัน ที่มีรหัสผ่านฐานข้อมูล, Source code ของแอปพลิเคชัน หรือแม้แต่ ข้อมูลส่วนตัว ของผู้ใช้งาน

การป้องกัน Directory Traversal ที่ได้ผล

การป้องกันช่องโหว่นี้ไม่ใช่เรื่องยาก หากเข้าใจหลักการพื้นฐาน

การตรวจสอบและกรองข้อมูล (Input Validation)

แนวทางสำคัญที่สุดคือ ห้ามเชื่อถือข้อมูลจากผู้ใช้งาน ควรตรวจสอบและกรองอย่างเข้มงวด เช่น:

  • กรองอักขระพิเศษ โดยเฉพาะ . และ /
  • ใช้ Whitelist อนุญาตเฉพาะชื่อไฟล์หรือพาธที่ระบุไว้เท่านั้น
  • แปลงชื่อไฟล์ ให้ปลอดภัย หรือใช้ ID อ้างอิงแทน

จำกัดสิทธิ์การเข้าถึง (Least Privilege Principle)

ยึดหลัก Least Privilege Principle คือการให้สิทธิ์เข้าถึงไฟล์และไดเรกทอรีแก่แอปพลิเคชันและผู้ใช้เท่าที่จำเป็น ไม่ควรมอบสิทธิ์อ่าน/เขียนไฟล์ระบบแก่ Web Server Process หากไม่จำเป็น และควรแยกไฟล์ที่ผู้ใช้เข้าถึงได้ออกจากโครงสร้างระบบ

อัปเดตและแพตช์ (Regular Updates)

ซอฟต์แวร์ เฟรมเวิร์ก หรือ Library ที่ใช้งาน อาจมีช่องโหว่ที่ไม่ถูกค้นพบ ควรติดตามข่าวสารและอัปเดตระบบอยู่เสมอ เพื่อให้มั่นใจว่าใช้เวอร์ชันที่ปลอดภัยที่สุด

แนวคิดสุดท้าย

ช่องโหว่ Directory Traversal ย้ำถึงความสำคัญของการตรวจสอบข้อมูลผู้ใช้งานและความเข้าใจด้านความปลอดภัย การตระหนักรู้และใช้มาตรการป้องกันที่เหมาะสม จะช่วยให้เว็บไซต์แข็งแกร่งและปลอดภัยจากผู้ไม่หวังดี