Бомбы и эволюция
2 августа 2017
В документации по Dr.Web Security Space можно найти такую фразу: «Dr.Web для Outlook обнаруживает следующие вредоносные объекты: файлы-бомбы или архивы-бомбы…»
Больше никаких упоминаний о таинственных бомбах там нет – а ведь были времена, когда защита от них была жизненно необходима!
Напомним, что антивирус – это в первую очередь универсальный распаковщик. Полученные файлы он должен разобрать на составляющие, а архивы – распаковать, пытаясь обнаружить в них вирусы или троянцев.
При этом могут возникнуть проблемы. Например, упакованный файл может занимать больше места, чем доступно на диске. Сложно представить? А между тем все просто: берем файл, состоящий из одних нулей, и упаковываем его. В результате получаем коротенький файл, состоящий из заголовка архива и повторяющихся нулей. Как сделать файл размером больше любого разумного места? Его и не нужно делать – форматы архивов известны, так что нужный архив создается автоматически.
Одним из классов вредоносных компьютерных программ являются так называемые зип-бомбы. Это архивные файлы формата .zip, которые при распаковке многократно увеличиваются в размере. Например, одна из самых известных зип-бомб под названием 42.zip имеет размер всего 42 КБ, при этом внутри архива содержится 5 слоёв вложенных архивов по 16 файлов на уровень. Размер каждого файла на последнем уровне — 4,3 ГБ, а весь архив в распакованном виде занимает 4,5 Петабайта.
Придумано это было еще давно для почты, но особую известность бомбы получили как средство борьбы злоумышленников с антивирусами.
Узел-получатель, пытаясь распаковать такой архив, с большой вероятностью либо исчерпывал лимит файловой системы (FAT-16) на кол-во имен файлов на одном разделе, либо занимал все свободное место в процессе распаковки. А, кажется, еще были мейл-бомбы в виде zip-архива с творчески подправленным заголовком и телом, которые приводили к тому, что архиватор (pkunzip.exe) либо вешал компьютер, либо «падал». Поскольку многие узлы работали по ночам в «автопилоте», получение мейл-бомбы приводило к «отказу в обслуживании» и оставляло владельца узла без свежей порции почты на следующий день.
К чему может привести ошибка обработки данных в распаковщике-антивирусе? Рассмотрим это на следующем примере.
Одна из проблем распаковки – количество уровней архивации. Обычные архивы, как правило, ограничиваются одним, двумя, максимум тремя уровнями. Редко этих уровней – десять, а между тем количество вложенностей архива может быть неограниченным. Как правило, программа-распаковщик строится по рекурсивной схеме: при обнаружении очередного уровня текущее окружение сохраняется, и распаковщик вызывает сам себя. Сохранение информации требует, как правило, немного байт или килобайт. Но когда количество уровней приближается к бесконечности (архив, опять же, создается вручную и желательно с ошибкой, чтобы распаковка была бесконечной), исчерпывается стек (часть области программы, из которой выделяется место под размещение временных данных), и программа пытается разместить данные за пределами отведенного под это места... А это означает крах – или возможность выполнения вредоносного кода.
Уязвимые версии: Clam AntiVirus 0.88.3 и более ранние версии.
Описание:
Уязвимость позволяет удаленному пользователю вызвать отказ в обслуживании или выполнить произвольный код на целевой системе.
Уязвимость существует из-за ошибки проверки границ данных в функции "pefromupx()" в libclamav/upx.c при распаковке PE выполняемого файла, сжатого в UPX. Удаленный пользователь может вызвать переполнение динамической памяти и выполнить произвольный код на целевой системе.
К сожалению, области применения бомб-«шуток» не ограничиваются антивирусами. Вот, скажем, хотите вы посмотреть картинку:
В архиве на 420 байт — файл PNG размером 6 132 534 байт (5,8 МБ) и изображением 225 000 х 225 000 пикселей (50,625 гигапикселей). В пиксельном буфере с тремя байтами на пиксель картинка займёт примерно 141,4 ГБ.
Антивирусная правДА! рекомендует
Были времена, когда «винты» были не резиновые, а оперативная память составляла 640 КБ. Сегодня диски стали больше, программы обзавелись защитой от переполнения стека и области данных, но поиски идеальной бомбы в среде злоумышленников продолжаются.
Почти 35 000 вариантов! И это только один тип!
Не хотите получить бомбу в почту? Защищайтесь с помощью Dr.Web!
Нам важно ваше мнение
Чтобы оставить комментарий, нужно зайти через свой аккаунт на сайте «Доктор Веб». Если аккаунта еще нет, его можно создать.
Комментарии пользователей
tataku
11:44:32 2019-07-12
http://4pda.ru/2019/07/11/359065/
tataku
14:20:06 2019-07-10
tataku
14:11:24 2019-07-10
Денисенко Павел Андреевич
17:03:02 2018-08-03
Toma
17:40:15 2018-07-30
Sany
10:40:32 2018-07-18
Неуёмный Обыватель
23:11:50 2018-06-30
vasvet
08:54:56 2018-04-04
Сергей
11:18:05 2017-11-16
kapitansha73
00:27:35 2017-08-08
Любитель пляжного футбола
21:01:25 2017-08-03
MiguSan
12:37:13 2017-08-03
Пaвeл
10:45:00 2017-08-03
А на сегодняшний день самая плотная материя полученная в ходе эксперимента - это кварк-глюооная плазма, рождённая в ходе столкновений ионов свинца. Пример: подобный материал, занимающий один кубический сантиметр, весил бы 40 миллиардов тонн.
http://www.membrana.ru/particle/16180
razgen
22:10:09 2017-08-02
Любитель пляжного футбола
21:56:16 2017-08-02
Dvakota
21:51:50 2017-08-02
Любитель пляжного футбола
21:48:51 2017-08-02
В...а
21:46:09 2017-08-02
НинаК
21:34:46 2017-08-02
eaglebuk
21:34:27 2017-08-02
ek
21:10:18 2017-08-02
Марина
21:10:00 2017-08-02
EvgenyZ
20:47:43 2017-08-02
kva-kva
20:36:56 2017-08-02
sapfira
20:33:46 2017-08-02
Татьяна
20:33:42 2017-08-02
Татьяна
20:32:30 2017-08-02
orw_mikle
20:31:11 2017-08-02
AxooxA
20:28:38 2017-08-02
Littlefish
20:24:19 2017-08-02
mk.insta
20:07:07 2017-08-02
Littlefish
19:56:56 2017-08-02
Геральт
19:05:13 2017-08-02
B0RIS
18:49:21 2017-08-02
Ruslan
17:38:56 2017-08-02
Шалтай Александр Болтай
17:35:04 2017-08-02
Шалтай Александр Болтай
17:31:57 2017-08-02
Zserg
16:58:25 2017-08-02
Родриго
15:23:11 2017-08-02
Dzhetrou
13:58:54 2017-08-02
Alexander
13:38:28 2017-08-02
Natalya_2017
13:36:50 2017-08-02
SGES
12:23:56 2017-08-02
Вячeслaв
11:51:39 2017-08-02
Вячeслaв
11:50:14 2017-08-02
Akatoshi Kuran
11:30:30 2017-08-02
Littlefish
10:34:38 2017-08-02
Littlefish
10:31:27 2017-08-02
Maat
09:39:20 2017-08-02
Альфа
09:35:21 2017-08-02