Самая умная «Zip–бомба» распаковывает файл размером 46 МБ до 4,5 петабайт

+3
22:04
16

Самая умная «Zip–бомба» распаковывает файл размером 46 МБ до 4,5 петабайтВ течение примерно трёх десятилетий с момента дебюта файлов Zip–формата сжатые файлы подвергались широкому использованию – и злоупотреблению.

Конечно, то, что программист и инженер Дэвид Файфилд недавно сделал с файлом формата Zip, относится к последней категории. Фактически, Файфилд изобрёл новый тип «Zip–бомбы» или «архива смерти» — вредоносный вариант, в котором Zip–файл размером всего в несколько килобайт настолько сжат, что он полностью заполнит ваш жёсткий диск при распаковке.

Такие файлы не являются чем–то неслыханными, но методы Файфилда, раскрытые в статье на его веб–сайте, особенно новы, потому что они не «рекурсивны» или созданы по принципу матрёшки, то несть файлы становятся больше, когда вы распаковываете несколько слоев Zip–архива. Вместо этого Файфилд выяснил, как «накладывать» файлы внутри Zip–архива, что позволяет использовать скорость сжатия намного выше, чем у традиционного архива – в самом впечатляющем случае ему удалось сжать 4,5 петабайт данных до 46 мегабайт.

Это что–то новое в сфере вредоносного ПО, которое, по сути, не является вирусом, но всё ещё может нанести урон вашему компьютеру.

Как были изобретены Zip–бомбы 

История Zip–формата восходит к 1988 году, когда Фил Кац, программист и пользователь BBS, ответил на судебный процесс, связанный с созданием программного обеспечения для сжатия, совместимого с форматом ARC, придумав новый алгоритм сжатия, который был несовместим с существующим форматом, но открыто распространялся. Это привело к тому, что формат стал стандартом де–факто.

Формат Zip и подобные ему варианты хорошо работали на досках объявлений и FTP–серверах и стали повсеместными благодаря условно–бесплатному ПО и добавлению формата в операционные системы Windows и Macintosh. Однако подход к сжатию сделал их пригодными для использования уникальными способами. Одна из причин, по которой Zip–бомбы стали возможными, во многом связана с тем, как работают алгоритмы сжатия. На высоком уровне системы сжатия берут повторяющуюся информацию в сжатом архиве и разбивают её самым минимальным возможным способом. Именно поэтому MP3–файл, который уже сжат, не уменьшается в размере так сильно, как стандартный текстовый файл.

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

В результате сам файл, по сути, бесполезен, не считая использования его в качестве способа обойти некоторые антивирусные программы (которые часто сканируют сжатые файлы, чтобы увидеть, могут ли они содержать вирусы) и чего–то вроде инженерного упражнения.

Согласно презентации, представленной на Симпозиуме по безопасности USENIX в 2015 году, первый пример «Zip–бомбы» датируется 1996 годом, когда файл был загружен на доску объявлений сети Fidonet с конкретной целью – заставить администратора открыть его. К 2001 году эксперты по безопасности всерьёз обеспокоились, когда поток в информационном списке рассылки BugTraq привлёк внимание как исследователей в области безопасности, так и популярного технического сайта The Register.

Вскоре после этого появился самый известный пример Zip–бомбы, 42.zip — его автор по сей день неизвестен, однако коэффициент сжатия составляет 106 миллиардов к одному, что является невероятынм. В интервью по электронной почте Файфилд отметил, что, в то время как 42.zip (который находился на одном и том же одностраничном веб–сайте не менее 15 лет) получает большую часть внимания, он находит поздние попытки более интересными с технической точки зрения.

Экстремальное сжатие 

На протяжении многих лет Zip–бомба остаётся чем–то вроде вредоносной новинки, которая время от времени всплывает в разных контекстах. Мой любимый пример – из 2017 года, когда IT–блогер создал вариант Zip–бомбы на основе gzip, чтобы уничтожить ботов, которые пытались зарегистрироваться на его сайте.

Что делает эти файлы настолько эффективными, так это то, что они используют процессор, ОЗУ и дисковое пространство в процессе распаковки.

Но у этих файлов было естественное ограничение: большинство процедур распаковки Zip максимальны при степени сжатия 1032 к одному, что означает, что «Zip–бомбы» могли только рекурсивно достигать своего истинного потенциала сжатия. Например, архив 42.zip, размером чуть больше 42 килобайт при полном сжатии, содержит сложные Zip–файлы, наложенные друг на друга многочисленными слоями. При полной распаковке документы занимают 4,5 петабайта!

Более поздние эксперименты по сжатию, называемые Zip–quines, обеспечивали бесконечную рекурсию, поэтому вы могли продолжать распаковывать вечно.

Работу Файфилда делает примечательной то, что она минует коэффициент сжатия 1032 к одному путём наложения файлов друг на друга во время процесса сжатия, создавая более плотно упакованный файл с одним слоем, без рекурсии. И хотя его результаты менее сжаты, чем 42.zip (файл эквивалентного размера содержит скромные 5,5 гигабайтов), скорость сжатия является гораздо более значительной при бóльших размерах – 281 терабайт при традиционном 10–мегабайтном Zip–файле.

Выход за пределы исходной спецификации Zip даёт ещё более впечатляющие результаты: 45–мегабайтный файл, сжатый с использованием несколько менее распространённого, но более эффективного расширения формата Zip64, может достигать эквивалента, распакованного до размера 42.zip, без какой–либо рекурсии и в соотношении 98 миллионов к одному.

Действительно ли они опасны? 

Маловероятно, что вы столкнётесь с Zip–бомбой в своей жизни, но даже если это произойдёт, многие современные компрессионные и антивирусные программы способны правильно обнаружить, что тот или иной файл проблематичен. Победить Zip–бомбу не совсем сложно. «Обнаружить конкретный класса Zip–бомбы, которую мы обсуждали в этой статье, легко: просто ищите наложенные друг на друга файлы», – написал Файфилд в своей статье.

Но поскольку такое обнаружение не существует в инструментах сжатия на данный момент, оно создало возможность для тестирования, и даже тогда худшее, что произошло со многими программами, протестированными Файфилдом и другими (включая LibreOffice и McAfee Antivirus) – отправка их в тайм–аут. Как отметил пользователь Twitter Тавис Орманди, несколько антивирусных программ даже правильно обнаружили, что это была Zip–бомба, несмотря на то, что это новый вид.

Мнение редакции может не совпадать с мнением автора

Нет комментариев. Ваш будет первым!