
أرشيف ZIP مشوّه يتفادى اكتشاف برامج مكافحة الفيروسات عبر الإعلان عن Method=0 (مخزَّن) بينما يحتوي على حمولة مضغوطة بتقنية DEFLATE.
تقنية تخليط تنسيق ZIP تتفادى 98% من محركات مكافحة الفيروسات.
CVE-2026-0866 | VU#976247 | نُشر في 10 مارس 2026
أنشئ ملف ZIP حيث:
Compression Method = 0 (STORED)
Actual data = DEFLATE compressed
CRC-32 = Checksum of uncompressed payload
AV Engine: Reads Method 0 → Scans compressed noise → No detection
Attacker: Ignores Method field → Decompresses as DEFLATE → Recovers payload
| الملف | التقنية | VirusTotal |
|---|---|---|
| baseline.zip | ZIP صالح | 55/67 |
| method_mismatch.zip | ZIP زومبي | 1/66 |
نسبة تَفادٍ 98%. نفس الحمولة. نفس البايتات. حاوية مختلفة.
# Generate a Zombie ZIP
python3 zombie_zip.py
# Upload method_mismatch.zip to VirusTotal
# Observe 1/51 detection vs 55/67 for baseline
# Recover payload programmatically
python3 loader_poc.py method_mismatch.zip
# Outputs byte-identical EICAR (SHA-256: 275a021b...)
Container.py يعمّم تقنية Zombie ZIP في أداة حزم/فك حزم مستقلة للملفات العشوائية باستخدام تنسيق .cpack.
تأخذ Container.py أي ملف، وتضغط محتوياته بضغط DEFLATE، وتكتبها في أرشيف ZIP مُعلَن كـ STORED (Method=0). النتيجة هي ملف .cpack — تنسيق حاوية غير رسمي يحمي محتويات الملف من الفحص.
على عكس إثبات المفهوم الأصلي Zombie ZIP، فإن CRC في ملف .cpack يُحسب على البايتات المضغوطة (DEFLATE)، وليس على الحمولة الأصلية. هذا يعني أن الأرشيف صالح بنيويًا — لا أخطاء CRC، ولا علامات تلف. المحتويات ببساطة غير مفهومة لأي شيء ليس أداة فك الحزم.
| الملف | التقنية | VirusTotal |
|---|---|---|
| eicar.com | حمولة EICAR الخام | 55/67 |
| eicar.com.cpack | معبأ بالحاوية | 0/62 |
0/62. الملف الوحيد الذي صُمم كل محرك مكافحة فيروسات على وجه الأرض لاكتشافه تحديدًا، أُصبح غير مرئي.
# Requires PyQt6
pip install PyQt6
# Launch the GUI
python3 Container.py
filename.cpack (معبأ).cpack → يستعيد الملف الأصلي (مفكوك)التقنية الأساسية أُعلن من جهات متعددة أنها ليست مشكلة أمنية. حددت CERT/CC في 18 مارس 2026 أن تقنية Zombie ZIP "لا تشكل ثغرة صالحة" و"لا تتجاوز أو تؤثر على أي ضوابط أمنية ضمنية أو صريحة." صنّفتها Cisco كـ "اقتراح تحصين." وقد صرّح باحثون متعددون علنًا بأن هذه ليست ثغرة.
وبما أنه أُعلن أن هذا ليس مشكلة، فإن هذه الأداة تسمح لك ببساطة بحماية ملفاتك وبياناتك من التدقيق باستخدام تقنية لا آثار أمنية لها.
نتيجة 0/62 على EICAR توحي بأن الآثار ربما كانت مُقلَّلة.
zombie_zip.py - نص برمجي للمولّدmethod_mismatch.zip - إثبات مفهوم مولّد مسبقًا مع EICARbaseline.zip - ZIP صالح للمقارنةloader_poc.py - يوضح استرداد الحمولة برمجيًاContainer.py - أداة حزم/فك حزم بواجهة رسومية للملفات العشوائية (تنسيق .cpack)تثق محركات مكافحة الفيروسات بحقل Method في ZIP. عندما يكون Method=0 (STORED)، تفحص البيانات كبايتات خام غير مضغوطة. لكن البيانات في الواقع مضغوطة DEFLATE — لذلك يرى الماسح ضوضاء مضغوطة ولا يعثر على أي توقيعات.
في إثبات المفهوم الأصلي Zombie ZIP، يُضبط CRC على مجموع اختباري للحمولة غير المضغوطة، مما يُحدث عدم تطابق يسبب لأدوات الاستخراج القياسية (7-Zip, unzip, WinRAR) الإبلاغ عن أخطاء أو استخراج مخرجات تالفة.
تتجنب Container.py هذا تمامًا. لأن zipfile.ZipFile يحسب CRC على البايتات التي تُكتب (البيانات المضغوطة DEFLATE)، فإن CRC يطابق ما هو مخزّن. تفتح الأدوات القياسية الأرشيف دون أخطاء. وتستخرج الضوضاء المضغوطة بنجاح. لا أخطاء CRC. لا علامات تلف. يفحص مكافح الفيروسات الضوضاء ويعيد نتيجة نظيفة.
ومع ذلك، فإن محمّلًا مخصصًا يفك ضغط البيانات المخزنة كـ DEFLATE يستعيد الحمولة بشكل مثالي. دالة فك الحزم في Container.py توضح ذلك — zlib.decompressobj القياسي مع DEFLATE خام (wbits=-15).
الثغرة هي تَفادٍ للماسح: الضوابط الأمنية تؤكد «لا يوجد برمجيات خبيثة» بينما البرمجية الخبيثة موجودة ويسهل استردادها.
هذه ليست ثغرة استخراج من جهة المستخدم النهائي. إنها تقنية توصيل / تهريب مرحلية:
.cpackهذا يتوافق مع أنماط توصيل البرمجيات الخبيثة الراسخة (تهريب ISO، تهريب HTML، إساءة استخدام CAB) حيث يستخدم المهاجمون محمّلات مخصصة بدلًا من أدوات الاستخراج الاستهلاكية.
.cpack.Chris Aziz - Bombadil Systems
MIT - للاستخدام في البحث الأمني المصرح به فقط.