ZIP-бомба: как крошечный архив перегружает систему на миллионы гигабайт

ZIP-бомба: как крошечный архив перегружает систему на миллионы гигабайт

Вы открываете крошечный ZIP-файл. На первый взгляд — ничего особенного. Его размер — меньше 50 килобайт, скачался за секунду, антивирус не ругался. Но как только вы начинаете его распаковывать, компьютер начинает тормозить, а файловая система буквально захлёбывается. При этом внутри архива нет ни трояна, ни скриптов — только математика. Добро пожаловать в мир ZIP-бомб.

Как работает сжатие данных

Чтобы понять, что делает ZIP-бомбу такой разрушительной, сначала стоит разобраться, как вообще устроено сжатие. Алгоритмы архивации (в формате ZIP, например) не «сжимают» данные в буквальном смысле, а ищут в них повторяющиеся шаблоны — одинаковые куски битов. Вместо того чтобы хранить их много раз, программа оставляет только одну копию, а в остальном просто указывает: «здесь такой же фрагмент, как вон там».

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

Когда алгоритм работает против вас

ZIP-бомба — это изощрённый способ использовать возможности архивации не для пользы, а во вред. Она создаётся с одной целью: перегрузить систему при попытке распаковки. Вместо разумного количества повторяющихся блоков внутри неё один и тот же фрагмент данных может быть «логически продублирован» миллионы раз.

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

Знаменитый пример: архив 42.zip

Самой известной ZIP-бомбой считается файл под названием 42.zip . Он стал классическим примером этой техники. Размер архива — всего 42 килобайта. Внутри него скрывается 16 архивов. В каждом из них — ещё по 16. Каждый из этих вложенных архивов снова содержит ссылки на один и тот же блок данных. В итоге получается структура, построенная по принципу рекурсии — то есть многократного вызова самой себя.

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

Разумеется, большинство систем не смогут распаковать 42.zip полностью — просто не хватит оперативной памяти, процессорных ресурсов и даже адресного пространства. Но в попытках это сделать они могут зависнуть, крашнуться или вызвать сбой в других приложениях.

Зачем они вообще нужны?

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

Некоторые специалисты по информационной безопасности применяют их для тестирования антивирусов, сканеров или почтовых шлюзов — чтобы проверить, как те справляются с экстремальными случаями. В научной среде ZIP-бомбы изучают как интересный пример компрессионных парадоксов. А иногда их применяют и в кибератаках — но не как основное оружие, а как отвлекающий манёвр: например, чтобы загрузить систему-цель, пока в другой части атаки происходит что-то более важное.

Современные ZIP-бомбы стали ещё хитрее. Некоторые используют комбинацию форматов: например, ZIP + RAR + 7z. Другие добавляют зашифрованные уровни, чтобы антивирус не мог просканировать внутренности архива. Есть даже такие экземпляры, которые рассылаются в нескольких письмах, а вредный эффект возникает только при их объединении в одном месте.

Пример из реальности: бомба 2023 года

Один из современных ZIP-бомб-архивов был замечен в 2023 году. Его размер составлял 10 мегабайт — казалось бы, ничего особенного. Однако после полной распаковки он развернулся в объём, превышающий пять миллионов гигабайт. Подобные конструкции иногда находят в Discord, Telegram и даже на форумах в виде «весёлых вложений».

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

Как обнаружить ZIP-бомбу

Главная проблема в том, что ZIP-бомба выглядит как обычный архив. Внутри — не вирус, не троян, а просто «безобидные» байты. Поэтому сама по себе она не нарушает ни одно правило безопасности. Вся угроза начинается только тогда, когда кто-то попытается её распаковать.

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

Современные антивирусы тоже не сидят сложа руки: они внедряют лимиты по глубине сканирования и по объёму извлекаемых данных. Но далеко не все системы обладают такой защитой. И если вы запустите автоматический процесс обработки вложений — будь то в скрипте, Docker-контейнере или через WSL — и он попытается открыть ZIP-бомбу, вы станете жертвой.

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

А это вообще законно?

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

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

Итог

Это не взлом и не вирус в привычном понимании. Это интеллектуальная ловушка, использующая особенности алгоритмов сжатия, чтобы перегрузить ПК. Она не атакует, а лишь предлагает системе сделать то, что та и так умеет — только слишком много раз и слишком глубоко.

И в этом её коварство. Ведь большинство машин, получив такой архив, безропотно попытаются его открыть. А дальше — дело техники. Или, точнее, её отказа.

ZIP-бомба архив кибератаки
Alt text
Обращаем внимание, что все материалы в этом блоге представляют личное мнение их авторов. Редакция SecurityLab.ru не несет ответственности за точность, полноту и достоверность опубликованных данных. Вся информация предоставлена «как есть» и может не соответствовать официальной позиции компании.
Красная или синяя таблетка?

В Матрице безопасности выбор очевиден

Выберите реальность — подпишитесь

Техно Леди

Технологии и наука для гуманитариев