งานวิจัยใหม่เผยให้เห็นช่องโหว่ด้านความปลอดภัยที่แพร่หลายในตัวแยกวิเคราะห์ไฟล์ ZIP ที่อาจทำให้ผู้โจมตีสามารถหลบเลี่ยงระบบรักษาความปลอดภัยและปลอมแปลงไฟล์ที่มีลายเซ็นได้ การศึกษานี้ดำเนินการโดยใช้ differential fuzzer ที่เรียกว่า ZipDiff ทดสอบตัวแยกวิเคราะห์ ZIP 50 ตัวในภาษาโปรแกรมมิ่ง 19 ภาษา และพบว่าตัวแยกวิเคราะห์เกือบทุกคู่มีช่องโหว่ต่อความคลุมเครือในการแยกวิเคราะห์บางประเภท
รากเหง้าของปัญหาเหล่านี้อยู่ที่ข้อกำหนดรูปแบบไฟล์ ZIP เอง ซึ่งมีการกำหนดที่ไม่ชัดเจน สิ่งนี้สร้างช่องว่างทางความหมายระหว่างการใช้งานที่แตกต่างกันซึ่งผู้โจมตีสามารถใช้ประโยชน์ได้ แม้ว่าช่องโหว่แต่ละประเภทนี้จะเคยมีการรายงานมาก่อน แต่นี่เป็นการศึกษาอย่างเป็นระบบครั้งแรกเกี่ยวกับความไม่สอดคล้องกันในการแยกวิเคราะห์ ZIP
ขอบเขตการวิจัย:
- ทดสอบ ZIP parser จำนวน 50 ตัวจาก 19 ภาษาโปรแกรมมิ่ง
- ระบุประเภทความคลุมเครือในการแยกวิเคราะห์ที่แตกต่างกัน 14 ประเภท (ค้นพบใหม่ 10 ประเภท)
- สาธิตสถานการณ์การโจมตีในโลกแห่งความจริง 5 รูปแบบ
- ได้รับมอบหมาย CVE จำนวน 3 รายการ ( Go , LibreOffice , Spring Boot )
- ได้รับรางวัลเงินค่าตอบแทนจาก Gmail , Coremail และ Zoho
สถานการณ์การโจมตีในโลกจริงที่ได้รับการพิสูจน์
นักวิจัยได้สาธิตสถานการณ์การโจมตีเชิงปฏิบัติ 5 สถานการณ์ที่ใช้ประโยชน์จากความแตกต่างในการแยกวิเคราะห์เหล่านี้ ซึ่งรวมถึงการหลบเลี่ยง secure email gateway การปลอมแปลงเนื้อหาเอกสาร office การปลอมตัวเป็น VS Code extension และการปลอมแปลงไฟล์ JAR ที่มีลายเซ็นในขณะที่ยังคงผ่านการตรวจสอบลายเซ็นของ Spring Boot
อย่างไรก็ตาม ผู้เชี่ยวชาญด้านความปลอดภัยบางคนในชุมชนได้สังเกตว่า แม้งานวิจัยนี้จะมีคุณค่า แต่ผลการค้นพบเชิงปฏิบัติหลายอย่างอาจมีผลกระทบในโลกจริงที่จำกัด การโจมตีมักต้องการให้เป้าหมายโหลดไฟล์ที่ผู้โจมตีควบคุม และระบบรักษาความปลอดภัยหลายระบบที่สามารถหลบเลี่ยงได้นั้นมีจุดอ่อนอื่นๆ ที่ทราบกันอยู่แล้ว
ประเภทการโจมตีที่ได้รับการสาธิต:
- การหลีกเลี่ยง secure email gateways
- การปลอมแปลงเนื้อหาเอกสาร office
- การแอบอ้าง VS Code extensions
- การดัดแปลงไฟล์ signed nested JAR
- การเอาชนะ antivirus scanners และ plagiarism detectors
บริบททางประวัติศาสตร์และช่องโหว่ที่คล้ายคลึงกัน
ช่องโหว่ประเภทนี้ไม่ใช่เรื่องใหม่ทั้งหมด ช่องโหว่ Android Master Key ที่ค้นพบเมื่อหลายปีก่อนใช้ประโยชน์จากความแตกต่างในการแยกวิเคราะห์ ZIP ที่คล้ายคลึงกัน สมาชิกในชุมชนยังได้ชี้ให้เห็นว่าการโจมตีที่เปรียบเทียบได้นี้เคยมีอยู่สำหรับรูปแบบไฟล์อื่นๆ โดยมีคนหนึ่งสังเกตว่าการโจมตี differential ที่คล้ายคลึงกันเคยทำให้ภาพ PNG แสดงเนื้อหาที่แตกต่างกันโดยสิ้นเชิงในเว็บเบราว์เซอร์ที่ต่างกัน
งานวิจัยนี้สร้างขึ้นจากประวัติศาสตร์อันยาวนานของการโจมตี parser differential ซึ่งระบบรักษาความปลอดภัยในจุดต่างๆ ของเครือข่ายหรือ application stack ตีความไฟล์เดียวกันแตกต่างกัน ทำให้เกิดโอกาสในการใช้ประโยชน์
การตอบสนองของอุตสาหกรรมและความพยายามในการบรรเทา
นักวิจัยได้เปิดเผยผลการค้นพบของตนอย่างมีความรับผิดชอบต่อผู้จำหน่ายที่ได้รับผลกระทบและได้รับความคิดเห็นเชิงบวก รวมถึงรางวัล bounty จาก Gmail , Coremail และ Zoho มีการกำหนด CVE สามรายการสำหรับช่องโหว่ที่พบใน Go , LibreOffice และ Spring Boot งานวิจัยยังเสนอกลยุทธ์การบรรเทา 7 ประการเพื่อแก้ไขความคลุมเครือเหล่านี้
หากทุกคนใช้ parser เดียวกัน ข้อบกพร่องทั้งคลาสก็จะหยุดสามารถใช้ประโยชน์ได้ ตัวอย่างคลาสสิกคือ parser หนึ่งที่ขอบตรวจสอบบางสิ่งและที่อยู่ลึกลงไปในสายงานเห็นผลลัพธ์อื่นซึ่งคาดว่าจะถูกปฏิเสธระหว่างการตรวจสอบ
บางคนในชุมชนความปลอดภัยแนะนำว่าการใช้การใช้งาน parser ที่สอดคล้องกันอาจช่วยลดช่องโหว่เหล่านี้ แต่คนอื่นๆ โต้แย้งว่าสิ่งนี้อาจสร้างความเสี่ยงใหม่โดยการรวมจุดโจมตีไว้ที่เดียว ปัญหาพื้นฐานยังคงอยู่ที่ข้อกำหนดรูปแบบ ZIP เองต้องการคำจำกัดความที่ดีกว่าและการทดสอบความสอดคล้องเพื่อป้องกันไม่ให้ความคลุมเครือเหล่านี้เกิดขึ้นตั้งแต่แรก
งานวิจัยนี้เน้นย้ำถึงความท้าทายที่ยังคงมีอยู่ในความปลอดภัยของรูปแบบไฟล์และความสำคัญของการวิจัยช่องโหว่อย่างเป็นระบบในการระบุปัญหาที่แพร่หลายซึ่งอาจไม่ถูกสังเกตเห็น
อ้างอิง: My ZIP isn't your ZIP: Identifying and Exploiting Semantic Gaps Between ZIP Parsers