Статьи · Безопасность

Что такое ZIP-бомба и как защититься от архивных бомб

Файл весом в пару десятков килобайт, присланный по почте или найденный на сомнительном сайте, иногда способен положить компьютер или сервер — если это так называемая zip-бомба. Разбираем, как устроена архивная бомба, чем она отличается от соседней угрозы zip-slip (подробно разобранной в наших новостях про node-tar и Gopeed), как распознать подозрительный архив до распаковки и что делать, если компьютер уже начал тормозить. Если вы только выбираете архиватор для повседневных задач — сначала загляните в гид ZIP, RAR или 7Z — какой формат архива выбрать.

Коротко: zip-бомба (архивная бомба) — это крошечный архив, который при распаковке превращается в огромный объём данных и исчерпывает память, место на диске или процессор. Пример из практики — архив 42.zip весом 42 КБ распаковывается в 4,5 петабайта. Это не вирус, а способ вывести из строя систему или обойти антивирусный анализатор. Защита простая: не распаковывать архивы из непроверенных источников вслепую и смотреть на подозрительный коэффициент сжатия до полной распаковки.

Опубликовано: 19 октября 2026 Редакция Loadfile Чтение 11 мин
Что такое ZIP-бомба и как от неё защититься
Содержание
  1. Что такое zip-бомба (архивная бомба)
  2. Как работает zip-бомба — виды
  3. Zip-бомба и zip-slip — не путать
  4. Как распознать подозрительный архив до распаковки
  5. Что делать, если распаковка уже началась и компьютер тормозит
  6. Кто и зачем создаёт zip-бомбы
  7. Как защититься от zip-бомб (чек-лист)
  8. Частые вопросы

Что такое zip-бомба (архивная бомба)

Zip-бомба (архивная бомба, decompression bomb) — это специально собранный архивный файл, который при распаковке создаёт объём данных, несоразмерно больший, чем размер самого архива. По определению энциклопедии «Касперского», это один из способов вывести из строя компьютер или испортить работу программы на нём — без эксплуатации уязвимости в привычном смысле, просто за счёт истощения ресурсов.

Принцип прост: обычный архив сжимает данные в несколько раз — энциклопедия «Касперского» приводит для сравнения типичный коэффициент сжатия около 1032:1. Zip-бомба доводит этот принцип до абсурда, используя особенности формата сжатия так, что итоговый объём после распаковки превышает исходный в миллионы и миллиарды раз. Программа, которая пытается распаковать такой файл «как обычно», упирается в нехватку оперативной памяти, свободного места на диске или времени процессора — и либо зависает, либо аварийно завершается.

Как работает zip-бомба — виды

Архивные бомбы собирают по-разному, и Wikipedia описывает это как алгоритмическую атаку сложности: жертва не файл конкретной программы, а сам процесс распаковки. Два основных подхода отличаются тем, задействована ли в них рекурсия.

Рекурсивные бомбы

Рекурсивная zip-бомба — это архив, вложенный в архив, вложенный в архив, и так много слоёв подряд; на последнем уровне лежит файл, состоящий из повторяющихся байтов (например, сплошных нулей), который прекрасно сжимается. Самый известный пример — 42.zip: по данным энциклопедии «Касперского», исходный файл весит около 42 КБ, но при полной рекурсивной распаковке превращается примерно в 4,5 петабайта данных. Если программа распаковывает вложенные архивы автоматически и рекурсивно, без ограничения глубины, она застревает на этом процессе и исчерпывает ресурсы системы.

Нерекурсивные бомбы

Нерекурсивный вариант не требует вложенности архивов друг в друга — вместо этого используется приём, который называют методом перекрытия файлов (file overlapping). Его автором энциклопедия «Касперского» называет исследователя David Fifield: несколько сжатых файлов внутри одного архива ссылаются на один и тот же участок данных, за счёт чего при распаковке этот участок считывается и разворачивается многократно. Такая бомба может быть компактнее рекурсивной и сложнее для автоматического обнаружения именно потому, что не выглядит как «архив в архиве».

Схема: маленький файл архива разворачивается в огромный объём данных при распаковке

💡
Историческая оборонительная практика

Zip-бомбы применяли и в защитных целях: в 2017 году разработчик Christian Haschek описал PHP-скрипт, который отдавал zip-бомбу ботам-сканерам, пытавшимся автоматически перебирать уязвимости на сайте — чтобы замедлить или вывести из строя их сканер.

Zip-бомба и zip-slip — не путать

У обеих угроз архивное происхождение, но механизмы совершенно разные, и путать их не стоит. Zip-бомба — это атака на ресурсы (память, диск, процессор) за счёт аномального коэффициента сжатия: вреда от самих файлов внутри архива нет, проблема в их суммарном объёме. Zip-slip — это атака на файловую систему через пути внутри архива: вредоносная запись вида ../../etc/cron.d/evil заставляет программу распаковки записать файл за пределами целевой папки, а не истощает ресурсы.

На loadfile.ru уже разобраны свежие реальные случаи именно zip-slip: уязвимость в Gopeed, где автораспаковка позволяла записывать файлы вне папки загрузок, и патч в Rclone 1.75.1, закрывший zip-slip CVE в архивах. А decompression-угроза ближе к классической zip-бомбе разбиралась в материале о критической бреши в node-tar, где крошечный gzip-архив мог положить сервер — именно такой случай формально классифицируется как CWE-409.

Как распознать подозрительный архив до распаковки

Прежде чем нажимать «Извлечь всё», стоит посмотреть на архив внимательнее — большинство архиваторов позволяют заглянуть внутрь, не распаковывая файл целиком.

  1. Посмотрите заявленный объём содержимого. Откройте архив в режиме просмотра (не распаковки) — большинство архиваторов (7-Zip, WinRAR) показывают суммарный размер файлов внутри до извлечения. Если файл весит килобайты, а заявленное содержимое — гигабайты или больше, это тревожный сигнал.
  2. Оцените коэффициент сжатия. По ориентиру, который приводит Huntress, соотношение сжатого и распакованного размера выше 100:1 для отдельного файла или выше 1000:1 суммарно по архиву — повод насторожиться и проверить файл отдельно, прежде чем распаковывать его целиком.
  3. Проверьте источник. Архив пришёл по почте от незнакомого отправителя, скачан с сомнительного сайта или прислан с нетипичным для контекста именем — отнеситесь к нему так же, как к подозрительному вложению любого другого типа (подробнее — в гайде карта опасных расширений файлов).
  4. Обратите внимание на вложенность. Архив внутри архива внутри архива — нетипичная структура для обычного файла, которую стоит воспринимать как признак рекурсивной бомбы.
  5. Сверьте контрольную сумму, если она известна. Если файл должен быть конкретным дистрибутивом или официальным архивом, сверьте его хэш с заявленным — это поможет убедиться, что скачанный файл не подменён; как это сделать, разобрано в инструменте проверка контрольной суммы файла.

Что делать, если распаковка уже началась и компьютер тормозит

Если архив уже запущен на распаковку и система резко замедлилась, важно остановиться вовремя — ресурсы истощаются постепенно, а не мгновенно.

  1. Остановите процесс распаковки. Закройте архиватор или принудительно завершите его процесс через диспетчер задач — чем раньше остановлен процесс, тем меньше успеет записаться на диск.
  2. Не распаковывайте вложенные архивы автоматически. Если архиватор предлагает «распаковать и продолжить» для вложенных файлов — откажитесь, пока не убедитесь, что это не рекурсивная бомба.
  3. Проверьте свободное место на диске и загрузку памяти. Диспетчер задач или системный монитор покажет, сколько ресурсов уже занято распаковкой, и насколько критична ситуация.
  4. Удалите подозрительный файл и временные распакованные данные. После остановки процесса удалите сам архив и всё, что успело распаковаться в папку назначения — не открывайте файл повторно, пока не разберётесь, откуда он взялся.
  5. Проверьте систему антивирусом. Сама по себе zip-бомба — не вредоносный код, но если она пришла вместе с подозрительным письмом или сайтом, стоит убедиться, что рядом не оказалось и настоящей вредоносной программы.
!
Не распаковывайте «на всякий случай»

Если коэффициент сжатия архива выглядит аномальным, лучше не распаковывать его вовсе, а удалить — восстановить содержимое подозрительного файла из непроверенного источника обычно не нужно.

Кто и зачем создаёт zip-бомбы

У zip-бомб есть и атакующее, и оборонительное применение. Злоумышленники используют их для отказа в обслуживании (DoS) — чтобы положить сервер, почтовый шлюз или анализатор файлов, — а также для обхода автоматических антивирусных сканеров: если сканер сам пытается распаковать подозрительный файл для анализа содержимого, zip-бомба может вывести из строя именно его, а не целевую систему. С оборонительной стороны историю 42.zip энциклопедия «Касперского» описывает как давно известный, но по-прежнему актуальный пример: современные антивирусы и архиваторы умеют распознавать аномальные коэффициенты сжатия и ограничивают распаковку, поэтому реальный риск для рядового пользователя сегодня ниже, чем в ранние годы существования этой техники, — но не нулевой, особенно для автоматизированных серверных процессов.

Как защититься от zip-бомб (чек-лист)

МераДля когоЧто даёт
Актуальный антивирус и архиваторЛюбой пользовательСовременные версии распознают аномальный коэффициент сжатия и предупреждают до полной распаковки
Не распаковывать архивы из непроверенных источниковЛюбой пользовательБазовая гигиена — та же, что и для других вложений
Смотреть содержимое архива до извлеченияЛюбой пользовательПозволяет заметить аномальный заявленный объём заранее
Лимиты памяти, диска и CPU при автоматической обработке файловРазработчики, админыОстанавливает распаковку до исчерпания ресурсов сервера; относится к классу уязвимостей CWE-409
Ограничение глубины рекурсии при распаковке вложенных архивовРазработчики, админыБлокирует рекурсивные бомбы вроде 42.zip на уровне логики приложения

Для разработчиков и системных администраторов, которые обрабатывают загружаемые пользователями архивы автоматически (например, при распаковке на сервере), защита от decompression bomb входит в более широкую категорию OWASP A05:2021 — Security Misconfiguration: обработка «любого размера любого файла без ограничений» — это и есть неверная конфигурация, которую стоит исправить лимитами на этапе проектирования, а не надеяться на то, что конкретный вредоносный файл не попадётся.

Частые вопросы

Опасна ли zip-бомба для телефона?

Принцип тот же — мобильная операционная система при распаковке аномально сжатого архива так же упирается в лимиты памяти и места на диске. На практике мобильные архиваторы и ОС обычно жёстче ограничивают ресурсы приложений, поэтому полное зависание системы менее вероятно, чем на десктопе, но подвисание самого приложения-архиватора или нехватка места возможны.

Может ли антивирус пропустить zip-бомбу?

Старые или упрощённые сканеры, которые пытаются полностью распаковать файл для анализа содержимого, могут зависнуть на этом процессе так же, как и обычная программа. Современные антивирусы ограничивают глубину и объём распаковки при сканировании именно для того, чтобы не попасть в эту ловушку.

Zip-бомба — это вирус?

Нет. Zip-бомба не содержит вредоносного исполняемого кода и не заражает систему — это файл, который использует особенности формата сжатия для истощения ресурсов при распаковке. По механике это ближе к атаке типа «отказ в обслуживании», чем к классическому вирусу.

Можно ли открыть zip-бомбу безопасно, например в песочнице?

Запуск в изолированной среде (виртуальная машина, контейнер с жёсткими лимитами ресурсов) снижает риск для основной системы, но сама песочница всё равно может исчерпать выделенные ей ресурсы и аварийно завершиться. Если цели распаковывать файл нет — проще и безопаснее его просто не открывать.

Чем zip-бомба отличается от обычного большого архива?

Обычный большой архив честно отражает объём содержимого: условные 2 ГБ видео сжимаются в архив, который весит примерно столько же. У zip-бомбы соотношение между весом архива и объёмом содержимого после распаковки аномально велико — именно этот перекос и есть главный признак отличия.

Как узнать реальный размер содержимого архива без распаковки?

Откройте архив двойным кликом в архиваторе (это открывает его для просмотра, а не распаковывает) — программа покажет список файлов внутри с их заявленным размером и суммарный объём, прежде чем вы нажмёте «Извлечь».

Читайте также