Архивная бомба — это файл, который выглядит как обычный архив, но при распаковке разворачивается в гигантский объём данных или в огромное количество вложенных архивов. Цель такой конструкции — исчерпать дисковое пространство, память или процессорное время антивируса и системы. Главный принцип защиты прост: никогда не оценивайте архив по его размеру на диске. Файл весом несколько килобайт может содержать петабайты данных после распаковки, поэтому проверять нужно не размер, а структуру архива.
В этой статье разобрано, как устроены архивы-бомбы, по каким признакам их можно выявить до распаковки, какие инструменты использовать и что делать, если подозрительный файл уже попал к вам.
- Что такое архивная бомба и почему она работает
- Признаки архивной бомбы
- Как проверить архив перед распаковкой: пошаговый порядок
- Пример ручной проверки через командную строку
- Инструменты для автоматической проверки
- Какие пороги выбрать
- Типичные ошибки при проверке
- Что делать, если архив уже начал распаковываться
- Защита на уровне системы
- Частые вопросы
- Может ли архивная бомба навредить сама по себе, без распаковки?
- Антивирус сказал, что файл чистый. Можно ли распаковывать?
- Легально ли создавать архивную бомбу?
- Как отличить легитимный сильно сжатый архив от бомбы?
- Нужно ли бояться архивов из официальных источников?
- Главное
Что такое архивная бомба и почему она работает
Сжатие данных построено на поиске повторяющихся фрагментов. Если данные состоят из одного и того же символа, повторённого миллиарды раз, архиватор запишет это компактно — например, «символ X, повторить N раз». Архивная бомба злоупотребляет именно этим свойством: она специально состоит из максимально предсказуемых данных, чтобы достичь экстремального коэффициента сжатия.
Классический пример — файл 42.zip размером около 42 килобайта. Внутри него вложено несколько уровней архивов, и полная рекурсивная распаковка даёт порядка нескольких петабайт данных. Сам по себе файл безвреден, пока его никто не пытается полностью распаковать или просканировать «вглубь».
Опасность возникает в трёх ситуациях:
- антивирус автоматически распаковывает архив для проверки содержимого и тратит ресурсы до отказа;
- пользователь вручную распаковывает архив, и диск заполняется за секунды;
- серверное приложение (почтовый шлюз, файловый анализатор, обработчик загрузок) принимает архив и начинает его обрабатывать без ограничений.
Отдельная разновидность — zip-бомбы поверх сжатых форматов: например, архив, внутри которого лежит образ файловой системы или высокосжимаемый формат вроде PNG с однотонным изображением огромного разрешения. Такие конструкции обходят проверки, которые считают только «заявленный» размер содержимого.
Признаки архивной бомбы
Ни один признак сам по себе не доказывает вредоносность, но сочетание двух-трёх из них — серьёзный повод не открывать архив и проверить его изолированно.
- Экстремальный коэффициент сжатия. Обычные документы, фото и программы сжимаются в разы, редко в десятки раз. Отношение заявленного размера содержимого к размеру файла в сотни и тысячи раз — аномалия.
- Глубокая вложенность. Архив внутри архива внутри архива — норма для доставки ПО, но пять и более уровней вложенности почти всегда подозрительны.
- Множество одинаковых записей. Сотни или тысячи файлов с идентичным содержимым или одинаковыми именами внутри одного архива.
- Несоответствие типа файла расширению. Файл с расширением .jpg, который на самом деле является ZIP-архивом, — типичный способ маскировки.
- Неожиданный источник. Архив от незнакомого отправителя, особенно с призывом «срочно распакуйте» или под видом документа, счёта, резюме.
- Отсутствие осмысленного содержимого. Имена файлов вида «file001.dat», «data.bin» без понятной структуры.
Как проверить архив перед распаковкой: пошаговый порядок
Проверку выполняйте без полной распаковки. Все описанные действия читают только оглавление и метаданные архива.
- Изолируйте файл. Не открывайте его на рабочей машине с важными данными. В идеале — отдельная виртуальная машина без доступа к сети или хотя бы учётная запись без прав администратора.
- Проверьте реальный тип файла. Расширение легко подделать. Посмотрите первые байты файла (так называемую «магическую подпись»): у ZIP это символы «PK», у RAR — «Rar!», у 7z — «7z¼¯’». Команды file в Linux и macOS или утилита вроде TrID в Windows покажут действительный формат.
- Посмотрите список содержимого без извлечения. Почти все архиваторы умеют показывать оглавление: unzip -l, 7z l, rar l или окно проводника архиватора. Смотрите на количество файлов, глубину путей и заявленные размеры.
- Оцените суммарный размер и коэффициент сжатия. Сложите «распакованные размеры» из списка и разделите на размер самого файла. Коэффициент выше примерно 100–200 для обычных данных — повод насторожиться; тысячи и миллионы — практически наверняка бомба.
- Проверьте глубину вложенности. Если внутри архива лежат другие архивы, загляните на уровень-два тем же способом (без распаковки). Рекурсивный просмотр удобнее делать скриптом или специализированным инструментом.
- Просканируйте антивирусом с ограничением глубины. У большинства корпоративных и многих домашних антивирусов есть настройки максимального уровня вложенности и максимального размера распаковки. Убедитесь, что эти лимиты заданы, прежде чем запускать сканирование.
- Примите решение. Если признаки бомбы подтверждены — удалите файл или отправьте его в песочницу для анализа. Если архив нужен по работе, запросите у отправителя переупакованную версию или пояснение.
Пример ручной проверки через командную строку
Условный пример для Linux/macOS с установленным 7-Zip:
7z l suspicious.zip — выведет таблицу: имя, дату, атрибуты, сжатый и несжатый размер каждого элемента. Если в колонке несжатого размера видны значения вроде 4 294 967 295 байт (это ровно 4 ГБ минус 1 байт — часто используется как фиктивное значение) при размере самого архива в килобайты, перед вами классическая бомба.
Для быстрой оценки суммы можно использовать вывод утилиты и посчитать итог по колонке размера. В Windows аналогичную информацию показывает окно архиватора 7-Zip: столбцы «Размер» и «Сжат» рядом дают коэффициент сразу.
Инструменты для автоматической проверки
| Инструмент / подход | Что делает | Кому подходит |
|---|---|---|
| Антивирус с лимитами распаковки | Сканирует содержимое, но останавливается по лимитам глубины, размера и времени | Базовая защита для любого пользователя; лимиты нужно проверить в настройках |
| 7-Zip, unzip, rar в режиме просмотра | Показывают оглавление и размеры без извлечения | Ручная быстрая проверка одним файлом |
| Скрипты на Python (модули zipfile, py7zr) | Читают метаданные, считают суммарный размер, глубину вложенности, число записей | Автоматизация проверки входящих файлов на сервере или в почтовом потоке |
| Песочницы анализа файлов | Запускают файл в изолированной среде и фиксируют поведение | Подозрительные файлы, которые нужно изучить безопасно |
| Почтовые шлюзы и фильтры | Блокируют или помечают письма с архивами, превышающими политики | Организации, получающие много вложений |
Если вы администрируете сервер, принимающий файлы от пользователей, разумно выстроить конвейер проверки: сначала определить реальный тип файла, затем прочитать метаданные архива, отклонить всё, что превышает заранее заданные пороги (коэффициент сжатия, суммарный размер, глубину вложенности, число файлов), и только потом передавать файл дальше. Такой фильтр отсекает бомбы до того, как они достигнут антивируса или бизнес-логики.
Какие пороги выбрать
Универсальных значений нет — они зависят от того, какие файлы вы ожидаете получать. Ориентиры, которые обычно безопасны для типовых сценариев:
- коэффициент сжатия (несжатый объём / размер файла) — не более 100–200;
- глубина вложенности архивов — не более 2–3 уровней;
- количество файлов в одном архиве — в пределах тысяч, если вы не ждёте массовых выгрузок;
- суммарный распакованный размер — не больше, чем вы реально готовы принять (например, не более 1–2 ГБ для документов).
Для легитимных больших выгрузок (дампы баз, логи, датасеты) пороги придётся поднять — тогда компенсируйте это жёсткими квотами диска и временем обработки, чтобы даже легитимный большой архив не смог положить систему.
Типичные ошибки при проверке
- Доверие расширению файла. Переименованный .exe в .zip или наоборот — тривиальная маскировка. Всегда сверяйте фактическую подпись файла.
- Распаковка «на посмотреть». Частичная распаковка первого уровня тоже опасна: некоторые бомбы рассчитаны на то, что жертва извлечёт внутренний архив и запустит его.
- Полагаться только на антивирус. Классическая zip-бомба может не содержать вредоносного кода вообще — её «полезная нагрузка» это сам объём. Антивирус без настроенных лимитов станет жертвой, а не защитой.
- Игнорирование вложенности. Проверка только верхнего уровня пропускает бомбы, спрятанные на третьем-четвёртом уровне.
- Проверка на рабочей машине. Даже если вы уверены в своих действиях, ошибка в команде или двойной клик мышью — и распаковка началась. Используйте изоляцию.
Что делать, если архив уже начал распаковываться
- Немедленно прервите процесс распаковки (остановите архиватор или убейте процесс).
- Проверьте свободное место на диске. Если оно исчерпано, система может вести себя нестабильно — освободите место, удалив частично распакованные данные.
- Не запускайте ничего из распакованного содержимого.
- Просканируйте систему антивирусом с актуальными базами — иногда бомба служит обёрткой для настоящего вредоноса.
- Если инцидент произошёл на рабочем компьютере, сообщите в IT-отдел или службу безопасности: возможно, такие файлы приходят и другим сотрудникам.
Защита на уровне системы
Помимо проверки конкретных файлов, снизить риск помогают общесистемные меры:
- квоты на дисковое пространство для пользователей и сервисов — даже успешная распаковка бомбы упрётся в лимит;
- ограничение прав учётной записи: работа без прав администратора сужает последствия;
- настроенные лимиты антивируса и почтового шлюза на глубину и объём распаковки;
- резервные копии — они не предотвращают инцидент, но позволяют восстановиться, если диск был заполнен или файлы повреждены;
- обучение сотрудников: большинство архивных бомб доставляется через фишинговые письма, и внимательность получателя остаётся первым рубежом.
Частые вопросы
Может ли архивная бомба навредить сама по себе, без распаковки?
Сам файл, лежащий на диске, безвреден: он просто занимает своё небольшое место. Опасность наступает при попытке распаковать его или просканировать без лимитов. Однако архив может быть одновременно и носителем вредоносного кода, поэтому «не распаковывать» не означает «безопасно хранить и пересылать».
Антивирус сказал, что файл чистый. Можно ли распаковывать?
Осторожно. «Чистый» результат означает, что сигнатур вредоносного кода не найдено, но не защищает от переполнения диска. Проверьте коэффициент сжатия и вложенность самостоятельно, а затем убедитесь, что в антивирусе заданы лимиты распаковки.
Легально ли создавать архивную бомбу?
Сам факт создания файла в исследовательских целях законен во многих юрисдикциях, но его использование против чужих систем, серверов или пользователей может квалифицироваться как вредоносное действие и преследоваться по закону. Конкретика зависит от страны и обстоятельств.
Как отличить легитимный сильно сжатый архив от бомбы?
По контексту и структуре. Легитимный архив имеет осмысленные имена файлов, логичную структуру папок, соответствует ожиданиям (например, архив фотографий действительно содержит изображения). Бомба чаще всего состоит из однотипных записей, бессмысленных имён и экстремальных размеров. Если сомневаетесь — запросите у отправителя пояснение, что должно быть внутри.
Нужно ли бояться архивов из официальных источников?
Риск минимален, но базовая проверка не помешает: посмотрите суммарный размер содержимого перед распаковкой, особенно если скачивали файл не напрямую с официального сайта, а через зеркало или ссылку из письма.
Главное
Обнаружение архивной бомбы сводится к трём действиям: определить реальный тип файла, прочитать его оглавление без распаковки и оценить соотношение заявленного объёма к размеру файла вместе с глубиной вложенности. Коэффициент сжатия в сотни раз, многоуровневая вложенность и бессмысленная структура — достаточные основания отказаться от распаковки или перенести файл в изолированную среду. Настройте лимиты распаковки в антивирусе и почтовых фильтрах заранее: они защищают автоматически, когда внимания человека недостаточно.
Материал носит информационный характер и не заменяет консультацию специалиста по информационной безопасности. При работе с потенциально опасными файлами в организации или при подозрении на инцидент обратитесь к профильным специалистам.
