วิเคราะห์ช่องโหว่ Zip Slip: แตกไฟล์บีบอัดแล้วถูกแฮ็กได้โดยไม่รู้ตัว

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

รายละเอียดช่องโหว่
ช่องโหว่ Zip Slip มีที่มาจากปัญหาของการไม่ตรวจสอบค่านำเข้าของไลบรารีที่ทำหน้าที่ในการคลายการบีบอัดของไฟล์อย่างถี่ถ้วน อีกทั้งไม่มีการทำไลบรารีกลางซึ่งมีความปลอดภัยมากพอในการจัดการกับไฟล์บีบอัด ส่งผลให้เกิดการพัฒนาซอฟต์แวร์หรือการเผยแพร่โค้ดต่างๆ ที่ทำงานได้แต่ไม่มีความปลอดภัย ซึ่งทำให้ผู้โจมตีสามารถใช้ช่องโหว่ดังกล่าวในการทำให้เกิดการลักษณะการโจมตีที่เรียกว่า Directory Traversal ซึ่งอาจนำไปสู่การรันโค้ดที่เป็นอันตรายจากระยะไกลได้ (Remote Code Execution)

ช่องโหว่ Zip Slip นั้นถูกตรวจพบในไลบารีในภาษาโปรแกรมมิ่งหลายภาษา อาทิ JavaScript, Ruby, .NET และ Go รวมไปถึง Java ซึ่งมีการใช้โค้ดที่มีช่องโหว่เป็นจำนวนมาก ตัวอย่างหนึ่งของโค้ดที่มีช่องโหว่ในภาษา Java มีตามตัวอย่างด้านล่าง
Enumeration<ZipEntry> entries = zip.