Большинство людей воспринимают ZIP-архив как обычный способ сжать файлы. Однако существует архив, который уже более двух десятилетий используется в качестве демонстрации ограничений архиваторов и антивирусов. Его название - 42.zip.
Несмотря на размер всего около 42 КБ, после распаковки этот архив способен превратиться в 4.5 петабайта данных - объем, который невозможно разместить даже на большинстве корпоративных систем хранения.
42.zip - это специально сконструированный ZIP-архив, содержащий огромное количество повторяющихся данных и несколько уровней вложенных архивов.
Главная цель файла - не заражение компьютеров вредоносным кодом, а демонстрация так называемой ZIP Bomb (архивной бомбы).
Архивная бомба - это файл, который:
При этом внутри архива может вообще не быть никакого вредоносного ПО.
Как устроен 42.zip?
Главная особенность файла заключается не в алгоритме сжатия, а в структуре. Архив состоит из нескольких уровней.
На верхнем уровне располагается 16 ZIP-файлов.
Каждый из них содержит еще 16 ZIP-файлов.
Этот процесс повторяется несколько раз.
На самом нижнем уровне находятся обычные файлы, заполненные повторяющимися символами (например, нулями). Повторяющиеся данные отлично сжимаются алгоритмом Deflate, используемым в ZIP, поэтому итоговый архив получается крошечным. Однако после полной распаковки объем возрастает экспоненциально.
Почему данные так хорошо сжимаются?
Алгоритм ZIP использует поиск повторяющихся последовательностей.
Представим файл, состоящий из миллиарда символов "A": AAAAAAAAAA...
Вместо хранения каждого символа архиватор фактически сохраняет описание: повторить символ "A" миллиард раз.
Именно поэтому огромные файлы из одинаковых данных могут занимать считанные килобайты после сжатия.
42.zip практически полностью построен на этом принципе.
Откуда берутся 4,5 петабайта?
Это результат многократного умножения объема после каждого уровня вложенности. Каждый архив содержит множество архивов. Каждый следующий уровень снова раскрывается во множество файлов. Получается эффект геометрической прогрессии.
В результате:
Для сравнения:
То есть 4.5 ПБ - это примерно:
Опасен ли 42.zip сегодня?
В большинстве случаев - нет.
Современные архиваторы и средства защиты давно научились обнаруживать подобные конструкции. Обычно используются следующие механизмы:
Поэтому большинство современных антивирусов блокирует подобные файлы еще до начала распаковки.
Source: Orkhan Alishov's notes