
ML-обнаружение атак с обходом заголовка архивов Zombie ZIP (CVE-2026-0866)
Оборонительный сканер для обнаружения обхода структурных метаданных в ZIP-архивах.
ZombieGuard обнаруживает противоречия между локальными заголовками файлов ZIP, записями центрального каталога и характеристиками полезной нагрузки. Эти противоречия могут использоваться, чтобы содержимое архива выглядело пустым или безвредным для одного парсера, в то время как другой парсер всё ещё получает доступ к полезной нагрузке.
Он объединяет ограниченный ZIP-парсер с небольшой моделью LightGBM. Он не извлекает и не исполняет содержимое архивов.
[!IMPORTANT] ZombieGuard обнаруживает сигналы обхода архивов, а не вредоносное ПО. Чистый результат не является доказательством того, что файлы внутри архива безопасны.
ZombieGuard поддерживает Python 3.11 и 3.12.
git clone https://github.com/mdshoaibuddinchanda/zombieguard.git
cd zombieguard
python -m pip install .
zombieguard scan suspicious.zip --include-features
Релизная модель устанавливается вместе с пакетом. Используйте zombieguard scan --help, чтобы узнать об ограничении размера входных данных, выводе в форматах JSON/SARIF и параметрах сканирования каталогов.
Для разработки установите репозиторий в редактируемом режиме:
python -m pip install -e ".[dev]"
python -m pytest
ZombieGuard рассматривает каждый ZIP как задачу проверки согласованности, а не как поиск сигнатур вредоносного ПО:
Сканер выдаёт вердикт с подтверждающими кодами причин. Сбои анализа сообщаются как неопределённые или подозрительные состояния; они никогда молча не преобразуются в чистый результат.
Untrusted ZIP bytes
│
▼
Bounded structural parser ──► explicit parse/limit failures
│
▼
Per-entry consistency features
│
▼
Versioned LightGBM model
│
▼
verdict + score + reasons
Ошибки структурной валидации дают явный результат «невозможно просканировать». Успешно разобранные архивы оцениваются моделью, а обнаруженные несоответствия возвращаются в виде кодов причин. Метаданные модели фиксируют схему признаков, конфигурацию обучения, хэши источников и контрольную сумму модели.
Релизная оценка намеренно узкая и воспроизводимая. Она не претендует на обнаружение вредоносного ПО в реальном мире или на обобщение для других форматов.
| Характеристика | Протокол релиза |
|---|---|
| Область применения | Бенчмарк признаков структурного обхода ZIP на синтетических положительных примерах |
| Допустимый корпус | 1,150 сгенерированных положительных примеров и 1,568 дедуплицированных строк признаков с безвредными метками |
| Отложенные положительные примеры | Исключение одного полного варианта атаки из каждого фолда (8 вариантов) |
| Отложенные безвредные примеры | Детерминированное разбиение по SHA-256; каждый образец оценивается один раз |
| Порог решения | Вложенная групповая калибровка только на внешних обучающих строках; бюджет 0,5% ложноположительных срабатываний на безвредных примерах |
| Сообщаемые предсказания | Только предсказания на внешних фолдах; отложенные строки никогда не участвуют в установке порога |
| Исключено из заявлений | Метки, полученные из MalwareBazaar, и иные непроверенные положительные метки |
| Достоверность | Интервалы Уилсона 95% вместе с агрегированными метриками |
Текущий артефакт сообщает:
| Метрика | Результат | 95% интервал Уилсона |
|---|---|---|
| Точность | 99.89% (2,715 / 2,718) | 99.68–99.96% |
| Прецизионность | 99.74% | 99.24–99.91% |
| Полнота | 100% (1,150 / 1,150) | 99.67–100% |
| F1 | 99.87% | — |
| ROC-AUC | 99.90% | — |
| Частота ложноположительных срабатываний | 0.191% (3 / 1,568) | 0.065–0.561% |
Матрица ошибок: TN=1,565, FP=3, FN=0, TP=1,150. Авторитетные результаты находятся в artifacts/metrics.json; этот файл также содержит сводки по фолдам для каждого варианта, хэши источников данных, проверки на утечки, контрольную сумму модели и точную конфигурацию. Если метрика используется в резюме, статье или презентации, указывайте её область как синтетическая вложенная оценка признаков с исключением одного варианта.
Отрицательные строки включают 686 строк признаков, полученных из PyPI, 478 сгенерированных сложных отрицательных, 400 сгенерированных небольших безвредных и 4 строки признаков, полученные из Office. Семейства источников отрицательных примеров распределены по фолдам, а не отложены как семейства. Интервалы описывают неопределённость на уровне строк внутри этого бенчмарка; они не оценивают неопределённость развёртывания или смещение домена. Выходные данные LightGBM сообщаются как некалиброванный показатель, а не вероятность. Политика порога — это рабочая точка разработки, оценённая с помощью вложенных фолдов; прежде чем рассматривать измеренную частоту ложноположительных срабатываний как производственное доказательство, всё ещё требуются свежие безвредные архивы, разобранные текущим релизом.
Зачем использовать синтетические положительные примеры? Публичных независимо проверенных примеров этой узкой техники обхода мало. Генерация делает каждую структурную мутацию явной и воспроизводимой. Синтетическая производительность — это доказательство того, что детектор распознаёт эти мутации; она не заменяет независимо размеченный бенчмарк на реальных данных.
См. карточку данных и карточку модели для получения сведений о происхождении, семантике меток и режимах отказа.
Установите основные зависимости и проверьте зафиксированные артефакты. Дополнительные шаги генерации и обновления воспроизводят все безопасные синтетические положительные примеры и подтверждают, что их зафиксированные признаки по-прежнему соответствуют текущему парсеру перед переобучением:
python -m pip install -e .
python -m zombieguard.evaluate --check
python data/scripts/generate_zombie_samples.py
python scripts/refresh_synthetic_features.py
python -m zombieguard.evaluate --train --check
Обучение читает зафиксированные таблицы признаков и меток и записывает:
src/zombieguard/assets/zombieguard_lgbm.txt — переносимая модель LightGBM;src/zombieguard/assets/zombieguard_lgbm.metadata.json — метаданные схемы и целостности;artifacts/metrics.json — машиночитаемый отчёт об оценке.Непрерывная интеграция запускает линтинг, аудит зависимостей и статический аудит безопасности, компиляцию в байт-код, тесты с покрытием, сборку пакетов на Python 3.11 и 3.12, проверку согласованности генератора и парсера, верификацию зафиксированных артефактов и изолированный смоук-тест «обучи и проверь».
src/zombieguard/ installable scanner package and release assets
tests/ self-contained unit, adversarial, and CLI tests
data/processed/ committed feature table and labels
data/scripts/ safe synthetic-data builders
scripts/ dataset curation and audit helpers
artifacts/metrics.json reproducible release metrics
docs/ data and model cards
Сырые вредоносные программы, загруженные корпуса, учётные данные и локально обученные черновые модели не являются частью репозитория.
--max-size-mb и добавляйте ограничения памяти и времени на уровне процесса в производственных развёртываниях.Прочитайте CONTRIBUTING.md перед изменением парсера, набора данных или протокола оценки. Не фиксируйте в репозитории образцы вредоносного ПО, учётные данные API или заявления о бенчмарках без воспроизводимого артефакта.
Для сообщения об уязвимости или обходе парсера следуйте SECURITY.md. Пожалуйста, не прикрепляйте живые вредоносные программы к публичным issue.
Распространяется по лицензии Apache License 2.0.