четверг, 18 июля 2013 г.

Антивирус vs пермутатция


Интереса ради провёл небольшой эксперемент. Хотелось выяснить насколько глубоко антивирусы цепляют свои сигнатуры на исполняемые модули вирусов и используют ли какие-то особые техники анализа закриптованных файлов.

Для этих целей я скачал с инета семпл троянца SpyEye, с нормальным детектом на вирустотале (35 / 47). И написал небольшой пермутатор, который представляет из себя простейший алгоритм перестановочного шифра, который на входе получает какой-то блок данных и переставляет их по указанному вектору перестановок. Далее я просто применял данный алгоритм к секциям исполняемого модуля и пропускал его через вирустотал.





Описание секций вируса:
1) .text - секция кода
2) .rdata - секция readonly данных
3) .data -  секция rw данных
4) .rsrc - ресурсы

Внимание:
Сей тест не претендует на полноту, я просто сделал замерки и расказал что и как выводы стройте сами. Так же данный тест ничего не говорит про качество антивирусов, это чисто тест сигнатур.

Тест #0
Для того чтобы случайным образом не запустить мальварь на своём компе(всякое ж бывает), я на точку входа забил бесконечный цикл, тем самым кастрировав троянца но позволив ему существовать в памяти. Вероятно это убило и антивирусную эмуляцию, но ведь цель данного теста совершенно другая.

Но самое смешное то, что при проверке отвалилось 2 антивируса (33 / 47):
- ClamAV
- Norman

И не надо тут смеятся и тыкать пальцем, а что если на самом деле они поняли фишку про бесконечный цикл?)

Тест #1
Пермутация только секции кода .text, дала интерестный результат (16/47). Отвалились следующие антивирусы:
- CAT-QuickHeal
- Comodo
- Fortinet
- Jiangmin
- K7AntiVirus
- K7GW
- Kaspersky
- McAfee
- McAfee-GW-Edition
- NANO-Antivirus
- Norman
- nProtect
- PCTools
- Symantec
- TheHacker
- TotalDefense
- TrendMicro
- TrendMicro-HouseCall
- VIPRE
- ViRobot

Причём после пермутации код уже был нерабочий, поэтому в проверяемом файле я прописал бесконечный цикл.
Как видно пермутация кодовой секции отсеяло большую часть АВ, но важно понимать что это только анализ сигнатурного скана без эмуляции и пр. плющек в виде проактивок и т.п.

Тем не менее некоторые другие АВ изменили свои показания, а некоторые нет. Конечно те которые не изменили детект или находили SpyEye-like детект, те прошли этот этап теста:
- AhnLab-V3
- AntiVir
- Avast
- BitDefender
- DrWeb
- Emsisoft
- F-Prot
- F-Secure
- GData
- Ikarus
- Malwarebytes
- Microsoft
- Panda

Тест #2
Пермутация .text, .rdata. В результате (11 / 47). Отваливщиеся:
- AhnLab-V3
- AntiVir
- F-Prot
- Malwarebytes
- Panda

Задетектили SpyEye и прошли тест:

- Avast
- BitDefender
- DrWeb
- Emsisoft
- F-Secure
- GData
- Ikarus
- Microsoft

Ещё важно отметить, что NOD32 и VBA32 детектили криптор или повреждённый формат файла, поэтому их в расчёт не берём

Тест #3
Пермутация .text, .rdata, .data. В результате (7 / 47). Отваливщиеся:


- Avast
- DrWeb
- Ikarus
- Microsoft

Оставшиеся герои c детектом вирусни:
- BitDefender
- Emsisoft
- GData

Причём трое выдают Gen:Variant.Kazy.157921, мб у них одна сигнатура на всех?) Тем не менее детект 1 в 1 с первой проверкой без пермутации.

Тест #4
А теперь полная пермутация вместе с ресурсами .text, .rdata, .data, .rsrc. Не пермутированным остался только заголовок модуля. В результате (7 / 47). Остались теже АВ как и в прошлом тесте.

Тест #5
В этом тесте я в ручную пермутировал некоторые данные заголовка, конечно это надо было сделать в самую первую очередь, потому что крипторы и т.п. софт сразу же перебивают хидер, но тем не менее справидливости ради (8 / 46)

Изменены были время компиля в ImageHeader и адреса секции ресурсов в DataDirectory

Больше не один АВ не показывал SpyEye что конечно очевидно.

Подведём итоги

Я считаю те антивирусы которые отвалились на 3'ем тесте имели самые хорошие сигнатуры, потому как те что дошли до 4\5 были зацеплины за хидер. Другие АВ типо Node32 и т.п. детектили криптор и повреждения, но не детектили троянца, следовательно о них выводы строить нельзя. А вот каспер и компания сфейлились еще в самом начале, имхо аверы там протирают штаны, ибо сигнатуры можно было делать и пообширнее.

Вообщем как-то так )



Комментариев нет:

Отправить комментарий