][-краш-тест для халявных антивирей.

Выбраны 17 халявных антивирей. Будет проверяться их способность к самообороне. Как авер сможет защитить твою машину, если он и себя не сможет обезопасить? Производилась проверка на предмет устойчивости процессов и сервисов, которые создаются ими для нормальной работы. Итак, поехали!

Истытуемые:

1. 360 Internet Security 2013

2. Ad-Aware Free Antivirus+

3. Amiti Free Antivirus

4. Anti Smart Defender Free

5. Avast Free Antivirus

6. AVG Anti-Virus Free 2013

7. Avira Free Antivirus 2013

8. Baidu Antivirus 2013

9. Bitdefender Antivirus Free Edition

10. Comodo Antivirus 2013

11. Kingsoft Antivirus 2012

12. Microsoft Security Essentials

13. Panda Cloud Antivirus Free

14. Preventon Antivirus Free

15. Rising Internet Security Personal

16. Robotscan Internet Security Free

17. ZoneAlarm Free Antivirus

Среди них, как широко распространённые, так и не очень.

Методика тестирования.

Не секрет, что каждая антивирусная программа, при своём функциониовании, создаёт несколько процессов и сервисов, в которых и заложен функционал по противодействию вредоносам.

Для проверки на устойчивость была написана утилита, которая может уничтожать процессы несколькими способами и останавливать и удалять сервисы.

Способ 1. Уничтожение процесса с помощью API TerminateProcess

Используется стандартная API-функция TerminateProcess по её прямому назначению и убиваются нужные процессы.

Способ 2. Уничтожение всех потоков процесса с помощью API TerminateThread

Ищем все потоки нужного процесса и поочерёдно их уничтожаем, с применением специально для этог обученной API-функции TerminateThread.

Способ 3. Модификация контекста потока на адрес API ExitProcess

C помощью API-функций CreateToolhelp32napshot, Tread32First и Thread32Next перечисляются потоки нужного процесса, они поочерёдно замораживаются, затем пишется в EIP в контексте потока адрес  API-функции ExitProcess и далее, возобновляется выполнение потока.

Способ 4. Создание удалённого потока с вызовом API ExitProcess

С помощью API-функции RtlCreateUserThread создаётся в нужном процессе поток, в котором вызывается ExitProcess.

Способ 5. Закрытие всех хендлов открытого процесса с вызовом API-функции DuplicateHandle

В цикле от 0 до 4096 вызывается API DuplicateHandle с параметрами TargetProcessHandle и TargetHandle равными нулю, а Options равными DUPLI_CATE_CLOSE_SOURSE. Эти действия закроют все или почти все хендлы открытого процесса.

Способ 6. Последовательный вызов API-функций CreateJobObject, AssignProcessToJobObject и TerminateJobObject

Сздаётся навый объект задания, связываем его с нужным процессом, потом завершаем работу объекта и связанного с ним процесса функцией TerminateJobObject.

Способ 7. Посылка WM_QUIT окну процесса

Сначала пишется функция обратного вызова, которая и будет посылать окну нужного процесса

WM_QUIT. Далее, используя EnumWindows, в раннее установленную callback-функцию передаётся QuitWindowsProc ID нужного процесса,после чего окно процесса получит WM_QUIT.

Способ 8. Остановка сервиса

Для нужного сервиса делается OpenService c Desired SERVICE_STOP, далее, используется функция ControlService с параметром Cоntrol равным SERVICE_CONTROL_STOP.

Способ 9. Удаление сервиса

Открывается нужный сервис с DesiredAccess равным DELETE, далее используется API DeleteService.

Для проверки работоспособности антивиря, после манипуляций с его процесами и сервисами, была использована маленькая программка, написанная на FASM'e, иммитирующая вредоносное воздействие. Всё просто: внедряется посторонний код в explorer.exe созданием удалённого потока. Испытание заключается в сравнении реакции на программку-приманку до воздействия на процессыи сервисы антивируса и после него. Если после воздействия, антивирь позволит выполниться приманке, то этому антивирусу ставится жирный минус.

1. 360 Internet Security 2013

Определил приманку как Detected a suspicious activity. Для выполнения своих задач, создаёт четыре процесса:

360rp.exe

360sd.exe

ZhuDongFangYu.exe

360Tray.exe  

и два сервиса:

360gr

ZhuDongFangYu

При всех стараниях, ни один процесс и сервис, победить не удалось. Антивирь стойко реагировал нв подставленную угрозу. ЗАЧЁТ!!!

2. Ad-Aware Free Antivirus

Три процесса:

AdAware.exe

AdAwareService.exe

SBAMvc.exe

И два сервиса:

Ad-Aware Service

SBAMvc

Все три процесса элементарно убиваются первым способом и действия антивиря на этом заканчиваются. НЕЗАЧЕТ!!!

3. Amiti Free Antivirus

Два процесса:

AmitiAV.exe

AmitiAvSrv.exe

И один cервис:

amitiavsrv

Оба процесса сдались сразу же при воздействии TerminateProcess. НЕЗАЧЕТ!!! 

4. Anvi Smart Free Antivirus

Запускает пять процессов:

ASDSrv.exe

ASDTray.exe

ASD.exe

ASBlockerSrv.exe

ADBlockerTray.exe

Два сервиса:

asdsrv

AdblockerSrv

Первый процесс убивается созданием в нём потока с вызовом ExitProcess, работа остальных, завершается первым способом. НЕЗАЧЕТ!!!

5. Avast Free Antivirus

Определил мнимый зловред как Win32:Evo-gen[sups] Три процесса:

AvastSvc.exe

AvastUl.exe

avast.setup

Один сервис:

avast! Antivirus

Все попытки убить процессы, не увенчались успехом. При попытке остановить сервис, антивирь попросил подтверждение на данное действие. ЗАЧЕТ!!!

6. AVG Anti-Virus Free 2013

В программе-приманке, увидел нечто под названием Downloader Generic. Запустил шесть процессов:

avgsrv.exe

avgemcx.exe

avgidsagent.exe

avgnsx.exe

avgui.exe

avgwdsvc.exe

И два сервиса:

AVGIDSAgent

avgwd

Все попытки уничтожить процессы и остановить/удалить сервисы были безуспешны. Продолжал работать, как ни в чём не бывало и исправно реагировал на "угрозу". ЗАЧЕТ!!!

7. Avira Free Antivirus 2013

Во внедрённом коде увидел TR/Hijacker.Gen. Четыре процесса:

avshadow.exe

avguard.exe

avwebgrd.exe

avgnt.exe

Все процессы были успешно ликвидированы четвёртым способом - создением удалённого потока в процессах антивиря с вызовом в этом потоке ExitProcess. НЕЗАЧЕТ!!!

8. Baidu Antivirus 2013

The program is attempting to modify other programs - вот что выдал этот антивирь в ответ на запуск программы приманки. Процессы:

BAVSvc.exe

BavTray.exe

BHipsSvc.exe

Сервисы:

BAVSvc

BHipsSvc

Против этого антивируса сработало только удаление обоих сервисов, с последующей перезагрузкой машины. НЕЗАЧЕТ!!!

9. Bitdefender Antivirus Free Edition

Имеет в составе три процесса:

gziface.exe

gzserv.exe

update.exe

И один сервис:

gzserv

Успешно противостоял всем попыткам нарушить его работоспособность. Ни рабочие процессы, ни сервис, сбить с толку так и не удалось. ЗАЧЕТ!!!

10. Comodo Antivirus 2013

При запуске программы-приманки, вынес предупреждение о внедрении постороннего кода в процесс explorer.exe. Рабочие процессы:

cavwp.exe

cis.exe

CisTray.exe

cmdagent.exe

cmdupd.exe

Сервисы:

cmdAgent

cmdvirth

Победить этот антивирус, удалось только удалением процессов с последующей перезагрузкой.При этом, как и всякий раз, когда он замечает какие нить сомнительные действия, было выдано предупреждение о подозрительной активности. Так шо, незаметно остановить деятельность антивиря не удалось. ЗАЧЕТ!!!

11. Kingsoft Antivirus 2012

"Угрозу" распознал как Win32.Troj.Generic.a.(kcloud). В составе два процесса:

kxescore.exe

kxetray.exe

И один сервис:

khescore

Выдержал все испытания и продолжал работать. ЗАЧЕТ!!!

12. Microsoft Security Essentials

На запуск программы-приманки, бодро прореагировал и опознал в ней Trojan:Win32/Agent Bypass.gen!k. Для его обезвреживания, хватило убить два его рабочих процесса:

msseces.exe

MsMpEng.exe

Первый процесс уничтожается простым TerminateProcess, второй - модификацией контекста потока на адрес API-функции ExitProcess. Хвалённый известный авер накрылся! НЕЗАЧЕТ!!!

13. Panda Cloud Antivirus Free

Интересен тем, что подозрительное файло проверяет в облаке. В "угрозе" увидел какой то безликий Suspicious file. Три процесса:

PSUAMain.exe

PSANHost.exe

PSUAService.exe

И сервисы:

NanoServiceMain

PSUAService

Сначала, с помощью восьмого способа останавливаются оба сервиса, затем, поочерёдно убиваются процессы: первый, путём создания потока с вызовом в этом потоке ExitProcess, остальные с помощью первого способа - TerminateProcess. НЕЗАЧЁТ!!!

14. Preventon Antivirus Free

В программе-приманке заподозрил не что иное, как программу-взломщик. В его составе три процесаа:

AVAssistant.exe

AVScanningServise.exe

AVTray.exe

Два сервиса:

AV Assistant Service

AV Scanning Service

Останавливаются оба сервиса восьмым способом, убивается AVTray.exe с помощью  TerminateProcess и "взломщик" беспрепятственно может делать свои дела. НЕЗАЧЕТ!!!

15. Rising Internet Security Personal

Запускает следующие процессы:

RavMonD.exe

RsTray.exe

И сервисы:

RsRavMon

RSMgrSvc

Применением восьмого способа к RsMgrSvc, и девятого к RsRavMon, данный антивирус обезоруживается и больне не препятствует вредоносному воздействию. НЕЗАЧЕТ!!!

16. Roboscan Internet Security Free

Gen:Win32.ExplorerHijack.aqW@ausk!80(1) - во как отреагировал антивирус на вредрённый код. В состав входят процессы:

RSAgent.rse

RSRTSrv.exe

RSUpdSrv.exe

И сервисы:

Robotscan_RTSrv

Robotscan_UpdSrv

Оба сервиса останавливаются восьмым способом, убивается RSAgent.rse, посылается  WM_QUT окну процесаа, и можно бепрепятственно внедрять вредоносный код в explorer.exe. НЕЗАЧЕТ!!!

17. ZoneAlarm Free Antivirus

Программа-приманка определилась, как HEUR:Trojan.Win32.Invaider. Процессы антивируса:

vsmon.exe

ZAPrivacyServise.exe

zatray.exe

И сервис:

ZAPrivacyService

Сервис останавливается восьмым способом, убивается zatray.exe, все его потоки уничтожаются вторым способом. С остальными, можно расправиться последовательным вызовом API-функций:

CresteJobObject

AssingProcessToJobObject

TerminateJobObject (способ 6)

НЕЗАЧЕТ!!!

Итог:

Четыре антивируса из 17ти проверенных, стойко сопротивлялись попыткам обезвредить их. Два: Comodo и Avast спросили разрешение на проведение этих операций. Остальные одиннадцать, позволили их отключить.