Zip-бомба, также известная как файловая бомба, архив смерти или англ. decompression bomb — архивный файл при распаковке которого можно вызвать зависание системы, путем заполнения всего свободного места на носителе. Современные[когда?] антивирусы вполне распознают подобные файлы и предупреждают пользователя о разрушающем действии.
История
Первая задокументированная «zip-бомба» появилась в 1996 году[1], когда один пользователь загрузил на доску объявлений в Фидо вредоносный архив, который открыл ничего не подозревающий администратор[2].
Алгоритм
Внешне подобный файл выглядит как маленький архив. При распаковке распаковывается тот же самый архив c шестнадцатью архивами. Так продолжается шесть раз. Данный файл может предоставлять опасность для антивирусов: в попытке распаковать все архивы антивирус может заполнить всю память и ничего не найти. Получится бесконечная цепочка - антивирус видит архив, распаковывает тот же самый архив и его распаковывает и так снова и снова.
Использование
В некоторых случаях таким способом можно устроить DoS-атаку на систему, обрабатывающую архивы без участия человека. Так, сообщения между узлами Фидонета пересылаются в архивах, которые создаёт и распаковывает эхопроцессор; а на некоторых сервисах для обмена файлами файлы проверяет антивирус (например, в сентябре 2008 года такая атака была осуществима с Файлы@mail.ru, Яндекс.Народ).
Примеры
Один из самых известных примеров «архива смерти», файл 42.zip[3], коэффициент сжатия которого 106 миллиардов к одному. В сжатом виде архив занимает 42 килобайта (42.374 байта), при постоянной распаковке, пока набор данных не достигнет верхнего предела распаковки в 4.3 гигабайта (4 294 967 295 байт), будет занимать в памяти более 4,5 петабайт (4 503 599 626 321 920 байт).
Другой вариант вредоносного архива разработал программист Дэвид Фифилд. В запакованном виде его архив имеет 46 МБ, а при распаковке занимает 4,5 петабайта. При его создании Фифилд использовал не рекурсивную технику, как его предшественники (то есть методом «обратной матрешки»), а сумел перекрыть файлы внутри архива, что позволило достичь более высокого коэффициента сжатия[4]
[5].
Примечания
Ссылки