Zip-бомба
Zip-бомба, также известная как файловая бомба, архив смерти или англ. decompression bomb — архивный файл, который по своей природе обладает разрушающим действием. При распаковке может вызвать крах системы, путем заполнения всего свободного места на носителе. Современные[когда?] антивирусы вполне распознают подобные файлы и предупреждают пользователя о разрушающем действии.
История
Первая задокументированная «zip-бомба» появилась в 1996 году[1], когда один пользователь загрузил на доску объявлений в Фидо вредоносный архив, который открыл ничего не подозревающий администратор[2].
Алгоритм
Внешне подобный файл выглядит как маленький архив. При распаковке распаковывается тот же самый архив. Данный файл может предоставлять опасность для антивирусов: в попытке распаковать все архивы антивирус может забить всю память и ничего не найти. Получится бесконечная цепочка - антивирус видит архив, распаковывает тот же самый архив и его распаковывает и так снова и снова.
Использование
В некоторых случаях таким способом можно устроить 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].
Примечания
- материалы USENIX 2015 (англ.). — страница 804. Дата обращения: 4 марта 2020.
- http://textfiles.com/magazines/DFS/dfs055.txt
- 42.zip
- David Fifield. A better zip bomb (англ.) (28 ноября 2019). Дата обращения: 4 марта 2020.
- m1rko. Ещё лучшая ZIP-бомба (8 июля 2019). — перевод оригинальной статьи David Fifield. Дата обращения: 4 марта 2020.