Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #66, ИЮНЬ 2004 г.

Секреты маскировки

Крис Касперски

Xakep, номер #066, стр. 066-032-1


(http://kpnc.opennet.ru)

Методы обмана антивирусных прог

За минувшие годы на свалку истории были отправлены десятки тысяч вирусов, троянских коней, систем удаленного администрирования и прочей уголовной братии. Жизненный цикл этих созданий (далее по тексту просто "вирусов") очень недолог. Стоит только попасть в лапы к Евгению Касперскому (не путать с Крисом Касперски – мы не только разные люди, но даже не однофамильцы!), как в реестр "их разыскивает полиция" добавляется новая запись, после чего прога бьется влет…

Постановка задачи

Может ли вирусная экспансия противостоять антивирусной агрессии? Вопрос совсем не так прост, каким кажется. С одной стороны, создать принципиально недетектируемый вирус никому не удалось (и в обозримом будущем вряд ли удастся). С другой стороны, памятуя о том, что стадо мышей валит кота, можно сказать, что сотня тупейших, но еще не известных науке вирусов, намного опаснее одного полиморфного аристократа. При условии, что вирус не ловится эвристиком (а перехитрить эвристик очень легко), до тех пор пока он не попадет в базу данных антивируса, вирус будет жить и плодотворно размножаться. Ну а потом… "мавр сделал свое дело" и эстафету перехватит другой. Причем создавать новый вирус "с нуля" совершенно не обязательно, при желании достаточно слегка подмазать исходные тексты уже известной антивирусу программы (например, откомпилировать другим компилятором). Если же исходных текстов нет, можно поиздеваться непосредственно над самим исполняемым файлом. Вот об этом мы сейчас и поговорим!

В экспериментах участвуют: система удаленного администрирования Back Orifice 1.0 (вместо нее можно использовать любой другой исполняемый файл или DLL), антивирусы Dr.WEB, AVP, хакерский редактор HIEW, редактор pe-файлов PE-TOOLS или LordPE, упаковщик ASPack, а также некоторые другие тулзы, упоминаемые по ходу повествования.

Немного теории

И ведь находятся же такие идиоты, которые безоговорочно полагаются на антивирусы, и самодовольно похрюкивая, заявляют, что все файлы на данном диске/сайте проверены самыми последними версиями AVP/Dr.Web и типа здесь все ништяк. Наивные! Если антивирус говорит, что он ничего не нашел, то и понимать его следует буквально. Антивирус. Ничего. Не. Нашел. Стало быть, плохо искал!

Анализ показывает, что подавляющее большинство антивирусов используют сигнатурный поиск с жесткой привязкой к точке входа или физическому смещению в файле. Что все это значит? Не вдаваясь в неразбериху терминологических тонкостей, отметим, что сигнатурой называется уникальная последовательность байт, однозначно идентифицирующая вирус. Сигнатура может быть сплошной (например, "DE AD BE EF") или разряженной (например, " DE ?? ?? AD ?? BE ** EF", где знак "??" обозначает любой байт, а "**" - любое количество байт в данной позиции). Поиск по разряженной сигнатуре иначе называется поиском по маске, и это – наиболее популярный алгоритм распознавания на сегодняшний день.

Для достижения приемлемой скорости сканирования антивирусы практически никогда не анализируют весь файл целиком, ограничиваясь беглой проверкой одной-двух ключевых точек (допустим, окрестностей точки входа в файл, т.е. тех ячеек, с которых и начинается его выполнение). Реже используется привязка к смещению сигнатуры относительно начала файла.

Содержание  Вперед на стр. 066-032-2
<<< НАЗАД ||| ГЛАВНАЯ