การโจมตี Directory Traversal หรือที่เรียกว่าการโจมตี Path Traversal แสดงถึงความเสี่ยงที่สำคัญในขอบเขตความปลอดภัยของเว็บ โดยหลักๆ แล้วพวกเขาจะใช้ประโยชน์จากช่องโหว่ด้านความปลอดภัยในฟังก์ชันของเว็บแอปพลิเคชันในการเข้าถึงไฟล์ที่มีอยู่บนเซิร์ฟเวอร์ การโจมตีเหล่านี้ทำให้ผู้ใช้ที่ชั่วร้ายสามารถเข้าถึงไฟล์และไดเร็กทอรีที่เก็บไว้นอกโฟลเดอร์ webroot โดยจัดการตัวแปรที่อ้างอิงไฟล์ด้วยลำดับ "จุด-จุด-สแลช (../)"
วิวัฒนาการของการโจมตี Directory Traversal
ต้นกำเนิดของการโจมตี Director Traversal สามารถสืบย้อนไปถึงยุคแรกๆ ของอินเทอร์เน็ต เมื่อเว็บแอปพลิเคชันเริ่มใช้สคริปต์เพื่อเข้าถึงไฟล์ฝั่งเซิร์ฟเวอร์เป็นครั้งแรก เมื่อเทคโนโลยีก้าวหน้าไปและแอปพลิเคชันเว็บมีความซับซ้อนมากขึ้น โอกาสที่จะเกิดช่องโหว่ประเภทนี้ก็เพิ่มขึ้นเช่นกัน
การกล่าวถึงการโจมตี Director Traversal ในที่สาธารณะเป็นครั้งแรกนั้นค่อนข้างยากที่จะระบุเนื่องจากลักษณะพื้นฐานของช่องโหว่นี้ อย่างไรก็ตาม ข้อกังวลด้านความปลอดภัยเริ่มเด่นชัดมากขึ้นในช่วงปลายทศวรรษ 1990 และต้นทศวรรษ 2000 เนื่องจากเว็บแอปพลิเคชันกลายเป็นเรื่องปกติ และโอกาสในการใช้ประโยชน์จากการอ้างอิงไฟล์ที่ไม่ปลอดภัยก็เพิ่มขึ้น
การขยายการโจมตี Directory Traversal
การโจมตีผ่านไดเรกทอรีเป็นรูปแบบหนึ่งของการโจมตี HTTP ซึ่งแฮ็กเกอร์เข้าถึงไดเรกทอรีของเซิร์ฟเวอร์ซึ่งโดยทั่วไปไม่เปิดเผยต่อสาธารณะ ผู้โจมตีใช้ประโยชน์จากการตรวจสอบความปลอดภัยที่ไม่เพียงพอหรือการทำให้ชื่อไฟล์อินพุตที่ผู้ใช้ระบุ ทำให้พวกเขาแยกตัวออกจากสภาพแวดล้อมที่จำกัดได้
การใช้งานลำดับการข้ามไดเรกทอรีที่พบบ่อยที่สุดคือในการโจมตีตาม URL แต่ยังสามารถปรากฏในการแทรกส่วนหัว การจัดการคุกกี้ หรือแม้แต่ภายในพารามิเตอร์ POST ด้วยวิธีนี้ ผู้โจมตีสามารถดูไดเร็กทอรีที่ถูกจำกัดและดำเนินการคำสั่งนอกไดเร็กทอรีรากของเว็บเซิร์ฟเวอร์ ซึ่งทำให้สามารถเข้าถึงข้อมูลที่ละเอียดอ่อนโดยไม่ได้รับอนุญาต
การโจมตี Directory Traversal ทำงานอย่างไร
การโจมตีแบบ Director Traversal ทำงานโดยใช้การตรวจสอบความปลอดภัย/การฆ่าเชื้อชื่อไฟล์อินพุตที่ผู้ใช้ระบุไม่เพียงพอ ดังนั้นผู้โจมตีจึงสามารถจัดการสิ่งเหล่านี้เพื่อข้ามออกนอกตำแหน่งที่ถูกจำกัดได้
ในรูปแบบที่เรียบง่ายเกินไป ลองพิจารณาสถานการณ์ที่แอปพลิเคชันพยายามเข้าถึงไฟล์รูปภาพจากเซิร์ฟเวอร์:
อาร์ดิโนhttp://example.com/app?file=logo.jpg
ในกรณีนี้ แอปพลิเคชันจะเปิดไฟล์ logo.jpg
จากไดเร็กทอรีรูปภาพ อย่างไรก็ตาม ผู้โจมตีสามารถใช้ลำดับ “จุด-จุด-สแลช (../)” เพื่อเลื่อนขึ้นไปยังไดเร็กทอรีหลัก จากนั้นจึงเข้าถึงไฟล์ที่ไม่ได้รับอนุญาต ตัวอย่างเช่น:
ทุบตีhttp://example.com/app?file=../../etc/passwd
ซึ่งอาจส่งผลให้แอปพลิเคชันแสดงไฟล์ระบบที่ละเอียดอ่อน
คุณสมบัติหลักของการโจมตี Directory Traversal
-
การจัดการตัวแปร: คุณลักษณะพื้นฐานของการโจมตีผ่านไดเรกทอรีเกี่ยวข้องกับการจัดการกับตัวแปรที่อ้างอิงไฟล์ด้วยลำดับ "จุด-จุด-สแลช (../)"
-
ทำลายข้อจำกัด: ช่วยให้ผู้โจมตีสามารถแยกออกจากไดเร็กทอรีรากของแอปพลิเคชันและเข้าถึงส่วนอื่นๆ ของระบบไฟล์ได้
-
การใช้ประโยชน์จากการตรวจสอบความถูกต้องที่อ่อนแอ: การโจมตีแบบ Directory Traversal ใช้ประโยชน์จากการตรวจสอบที่อ่อนแอหรือการทำให้อินพุตของผู้ใช้สะอาด
ประเภทของการโจมตี Directory Traversal
แม้ว่าหลักการสำคัญเบื้องหลังการโจมตี Director Traversal ยังคงเหมือนเดิม แต่ก็สามารถแสดงออกมาในรูปแบบที่แตกต่างกัน ขึ้นอยู่กับบริบทและแอปพลิเคชันที่เป็นปัญหา:
-
การโจมตีตาม URL: สิ่งเหล่านี้เกี่ยวข้องกับการฉีดอินพุตที่เป็นอันตรายใน URL เพื่อสำรวจไดเรกทอรี
-
การโจมตีตามแบบฟอร์ม: อินพุตที่เป็นอันตรายจะถูกแทรกลงในช่องแบบฟอร์มเพื่อใช้ประโยชน์จากสคริปต์ฝั่งเซิร์ฟเวอร์ที่มีช่องโหว่
-
การโจมตีโดยใช้คุกกี้: ผู้โจมตีจัดการคุกกี้เพื่อสำรวจไดเรกทอรีและเข้าถึงข้อมูลที่ไม่ได้รับอนุญาต
พิมพ์ | คำอธิบาย |
---|---|
การโจมตีตาม URL | แทรกอินพุตที่เป็นอันตรายใน URL เพื่อสำรวจไดเรกทอรี |
การโจมตีตามแบบฟอร์ม | แทรกอินพุตที่เป็นอันตรายลงในช่องแบบฟอร์มเพื่อใช้ประโยชน์จากสคริปต์ฝั่งเซิร์ฟเวอร์ |
การโจมตีโดยใช้คุกกี้ | จัดการคุกกี้เพื่อสำรวจไดเรกทอรีและเข้าถึงข้อมูลที่ไม่ได้รับอนุญาต |
ปัญหาและแนวทางแก้ไขที่เกี่ยวข้องกับการโจมตี Directory Traversal
ปัญหาหลักของการโจมตีด้วยการข้ามไดเรกทอรีคือการเข้าถึงไฟล์และข้อมูลที่ละเอียดอ่อนโดยไม่ได้รับอนุญาต สิ่งนี้สามารถนำไปสู่การรั่วไหลของข้อมูล การสูญเสียการรักษาความลับ และอาจช่วยให้ผู้โจมตีได้รับเวกเตอร์การโจมตีเพิ่มเติม (เช่น การได้รับข้อมูลรับรองฐานข้อมูลจากไฟล์การกำหนดค่า)
ต่อไปนี้คือวิธีแก้ปัญหาบางประการ:
-
การตรวจสอบอินพุต: ตรวจสอบให้แน่ใจว่าอินพุตที่ผู้ใช้จัดหามีการตรวจสอบที่แข็งแกร่ง อย่าอนุญาตให้ “..” หรือ “/” เป็นส่วนหนึ่งของอินพุต
-
การควบคุมการเข้าถึง: ใช้การควบคุมการเข้าถึงที่เหมาะสม อย่าพึ่งพาพาธของไฟล์ที่ให้มาเพียงอย่างเดียวในการให้สิทธิ์ผู้ใช้
-
หลักการสิทธิพิเศษน้อยที่สุด: รันแอปพลิเคชันโดยใช้สิทธิ์ขั้นต่ำที่จำเป็น ช่วยลดความเสียหายที่อาจเกิดขึ้นจากการโจมตีแบบ Director Traversal
การโจมตี Directory Traversal และข้อกำหนดที่คล้ายกัน
ภาคเรียน | คำอธิบาย |
---|---|
การโจมตีข้ามผ่านไดเรกทอรี | ใช้ประโยชน์จากช่องโหว่ในขั้นตอนการป้อนข้อมูลของผู้ใช้เพื่อเข้าถึงไฟล์และไดเร็กทอรีที่ไม่ได้รับอนุญาต |
การรวมไฟล์ระยะไกล (RFI) | ผู้โจมตีใช้เส้นทางอินพุตของผู้ใช้เพื่ออัปโหลดสคริปต์ที่เป็นอันตรายไปยังเซิร์ฟเวอร์ของเว็บไซต์ |
การรวมไฟล์ในเครื่อง (LFI) | ผู้โจมตีจัดการเว็บไซต์เพื่อดำเนินการหรือเปิดเผยเนื้อหาของไฟล์บนเว็บเซิร์ฟเวอร์ |
มุมมองในอนาคตและเทคโนโลยีที่เกี่ยวข้องกับการโจมตี Directory Traversal
เมื่อภูมิทัศน์การพัฒนาเว็บพัฒนาไป วิธีการและเครื่องมือในการโจมตีไดเรกทอรี่ข้ามผ่านอาจมีความซับซ้อนมากขึ้น อย่างไรก็ตาม รากฐานของการป้องกันจะยังคงอยู่ที่การตรวจสอบอินพุตที่แข็งแกร่งและการกำหนดค่าระบบที่สมเหตุสมผล
ไฟร์วอลล์แอปพลิเคชันบนเว็บ ระบบตรวจจับความผิดปกติ และอัลกอริธึมการเรียนรู้ของเครื่องสำหรับระบบตรวจจับการบุกรุกอาจมีบทบาทสำคัญในกลยุทธ์การลดผลกระทบในอนาคตต่อการโจมตีดังกล่าว
การเชื่อมต่อระหว่างพร็อกซีเซิร์ฟเวอร์และการโจมตีผ่านไดเรกทอรี
พร็อกซีเซิร์ฟเวอร์สามารถทำหน้าที่เป็นชั้นความปลอดภัยเพิ่มเติมต่อการโจมตีการข้ามผ่านไดเรกทอรี ด้วยการกรองคำขอและการตอบกลับระหว่างไคลเอนต์และเซิร์ฟเวอร์ สิ่งเหล่านี้สามารถช่วยระบุรูปแบบที่ผิดปกติหรือสัญญาณของการโจมตีการข้ามผ่านไดเรกทอรี ดังนั้นจึงป้องกันไม่ให้เข้าถึงเซิร์ฟเวอร์
ตัวอย่างเช่น OneProxy มอบโซลูชันพร็อกซีเซิร์ฟเวอร์ที่มีประสิทธิภาพซึ่งสามารถมีบทบาทสำคัญในกลยุทธ์การป้องกันการโจมตีประเภทนี้