반응형
안티 바이러스 제품의 자기 보호 기능의 성능 테스트 결과를 살펴봅니다.
▶ 출처 : Antivirus self-protection test under x64 platform (by Anti-malware test lab)
안티 바이러스 제품의 중요 성능 지표 중 하나인 자기 보호 테스트 결과입니다. 이 테스트는 러시아의 보안 연구 단체인 "Anti-Malware Test Lab"(이하 AMTL)에서 수행한 것으로 다양한 항목을 통해 보안 제품의 자기 보호 기능의 성능을 측정하였습니다.
1. 테스트 최종 결과
테스트 최종 결과
전체적으로 이전 자료에 비해 공격 차단율이 떨어지는 모습이 보이는데, 카스퍼스키 제품이 100%의 공격 차단율을 보이며 1위를 차지하였습니다.
이전 자료와 비교해볼 때 존알람·트렌드마이크로·AVG는 상승, 안티버·ESET은 감소한 것이 눈에 띕니다. 비트디펜더와 코모도, PCtools는 소폭 증가하였습니다.
MSE는 1버전으로 테스트에 참여해서 여전히 저조한 모습을 보이고 있습니다. 자기 보호 기능이 어느 정도 개선되었다고 하는 2버전의 경우 어느 정도 성능을 보여줄지 궁금합니다.
100%가 나오는 제품도 안전하다고 할 수가 없는데 은·동 항목의 제품들은 개선이 필요합니다.
2. 테스트 세부 정보
(1) 테스트 참여 제품 정보
테스트 환경은 XP SP3와 윈도우 7 64비트입니다. 이전 자료는 32비트 환경에서 수행되었는데, 이번 테스트는 이전 테스트와 연계되는 테스트라고 보셔도 됩니다.
테스트에 참여한 제품 정보는 아래와 같습니다. 테스트는 2010년 11월 24일 기준으로 수행되었습니다.
- Avast Internet Security 5.0.477
- AVG Internet Security 2011 (build 1170)
- Avira AntiVir Premium Security Suite 10.0.0.565
- BitDefender Internet Security 2011 (Build: 14.0.23.312)
- Comodo Internet Security 5.0.32580.1142
- Dr.Web Security Space 6.0 (12.0.0.58851)
- Emsisoft Anti-Malware 5.0.0.0
- Eset Smart Security 4.2.67.10
- F-Secure Internet Security 2011 (1.30.4220.0)
- G DATA Internet Security 2011 (21.1.0.5)
- Kaspersky Internet Security 2011 (11.0.2.556)
- McAfee Internet Security 2011
- Microsoft Security Essentials 1.0.2498.0
- Norton Internet Security 2011 (18.1.0.37)
- Outpost Security Suite Pro 2010 (7.0)(3409.520.1244.401)
- Panda Internet Security 2011(16.00.00)
- PC Tools Internet Security 2011 (8.1.0.0.50)
- Trend Micro Titanium Internet Security 2011 (3.0.0.1303)
- VBA32 Personal 3.12.14.1
- ZoneAlarm Security Suite 2010 (9.3.37.0)
테스트는 설치시 제공되는 기본 설정에서 모든 보안 기능을 활성화시켜 진행되었습니다.
(2) 테스트 항목 정보
테스트는 크게 7가지 항목으로 구성되어 있습니다.
테스트 항목 |
설명 |
Modification of file and registry key access permissions |
파일 및 레지스트리 키 변경 시도 차단 |
Modification / removal of modules |
보안 모듈의 변조, 삭제 차단 |
Deletion of antivirus databases. |
보안 제품의 진단 DB 삭제 차단 |
Modification / deletion of important |
보안 제품의 중요 레지스트리 키 변경 및 삭제 차단 |
Complete theProcess |
활성화된 보안 제품 모듈의 강제 비활성화 차단 |
Modification of processes / code |
활성화된 보안 제품 모듈의 변조 차단 |
Driver unloading |
보안 모듈의 시스템 드라이버 비활성화 차단 |
이전 테스트는 모두 28개의 세부 항목이 있었으나, 이번에는 33개로 테스트 항목이 증가하였습니다. 세부 정보는 아래와 같습니다.
접기
1. Self-protection at the system level:
1. Modification of file access permissions;
2. Modification of registry key access permissions.
2. Protection of the antivirus product's own files:
1. Modules modification/removal;
2. Antivirus databases removal;
3. Removal upon reboot.
3. Protection of the antivirus product’s registry keys:
1. Modification / deletion of important registry keys (manually):
- Startup keys;
- Service keys;
- Configuration keys.
4. Protection of the antivirus product’s processes:
1. Prevention of process termination:
- From the TaskManager;
- User-level API:
· Getting the handle of the process and using ZwTerminateProcess;
· Getting a list of all process threads, getting the handle of the process and
use of zwterminateJobObject;
· Getting the handle of the process and use of ZwterminateJobObject;
· Getting the handle of the process and use of ZwDEbugActiveProcess;
· Using WinStationTerminateProcess.
- System messages (SendMessage API):
· Getting process main window and sending WM_CLOSE using SendMessage,
PostMessage, SendMessageCallback, SendNotifyMessage,
PostThreadMessage, SendMessageTimeout;
· Getting process main window and sending WM_QUIT using SendMessage,
PostMessage, SendMessageCallback, SendNotifyMessage,
PostThreadMessage, SendMessageTimeout;
· Getting process main window and sending WM_SYSCOMMAND
(SC_CLOSE) using SendMessage, PostMessage, SendMessageCallback,
SendNotifyMessage, PostThreadMessage, SendMessageTimeout;
· Getting all process windows and sending all possible window events in the
loop using SendMessage and PostMessage.
2. Process/code modification:
- Code injection (CreateRemoteThread):
· Getting the handle of the process and using ZwCreateThread
with ExitProcess address.
- Code injection (Set New Thread Context):
· Getting a list of all process threads, getting the handle of the process and
use of ZwSetContextThread with ExitProcess address;
· Getting a list of all process threads, getting the handle of the process and
use of ZwQueueApcThread/ZwQueueApcThreadEx with the ExitProcess
address.
- DLL injection;
· Getting a list of all process threads and injection of DLL closing the process
using SetWindowsHookEx;
· Getting a list of all process threads and injection of DLL closing the process
using SetWinEventHook.
- Memory Attributes Modification:
· Getting the handle of the process and setting PAGE_NOACCESS attribute to
every available memory unit using ZeProtectVirtualMemory;
· Getting the handle of the process deallocation all available memory using
ZwFreeVirtualMemory;
· Getting the handle of the process and unmap all mapped objects using
ZwUnmapViewOfSection;
· Getting the handle of the process and allocation of all available memory
using ZwAllocateVirtualMemory;
· Getting the handle of the process and allocation of all available memory
using ZwMapViewOfSection.
- Writing in process memory (WriteProcessMemory):
· Getting the handle of the process and override available memory using
ZwWriteVirtualMemory.
- Modification of process objects:
· Getting the handle of the process and deallocation of all handles of the
process using ZwDuplicateObject;
· Getting the handle of the process and allocation of all free handles of the
process using ZwDuplicateObject.
3. Driver unloading.
1. Modification of file access permissions;
2. Modification of registry key access permissions.
2. Protection of the antivirus product's own files:
1. Modules modification/removal;
2. Antivirus databases removal;
3. Removal upon reboot.
3. Protection of the antivirus product’s registry keys:
1. Modification / deletion of important registry keys (manually):
- Startup keys;
- Service keys;
- Configuration keys.
4. Protection of the antivirus product’s processes:
1. Prevention of process termination:
- From the TaskManager;
- User-level API:
· Getting the handle of the process and using ZwTerminateProcess;
· Getting a list of all process threads, getting the handle of the process and
use of zwterminateJobObject;
· Getting the handle of the process and use of ZwterminateJobObject;
· Getting the handle of the process and use of ZwDEbugActiveProcess;
· Using WinStationTerminateProcess.
- System messages (SendMessage API):
· Getting process main window and sending WM_CLOSE using SendMessage,
PostMessage, SendMessageCallback, SendNotifyMessage,
PostThreadMessage, SendMessageTimeout;
· Getting process main window and sending WM_QUIT using SendMessage,
PostMessage, SendMessageCallback, SendNotifyMessage,
PostThreadMessage, SendMessageTimeout;
· Getting process main window and sending WM_SYSCOMMAND
(SC_CLOSE) using SendMessage, PostMessage, SendMessageCallback,
SendNotifyMessage, PostThreadMessage, SendMessageTimeout;
· Getting all process windows and sending all possible window events in the
loop using SendMessage and PostMessage.
2. Process/code modification:
- Code injection (CreateRemoteThread):
· Getting the handle of the process and using ZwCreateThread
with ExitProcess address.
- Code injection (Set New Thread Context):
· Getting a list of all process threads, getting the handle of the process and
use of ZwSetContextThread with ExitProcess address;
· Getting a list of all process threads, getting the handle of the process and
use of ZwQueueApcThread/ZwQueueApcThreadEx with the ExitProcess
address.
- DLL injection;
· Getting a list of all process threads and injection of DLL closing the process
using SetWindowsHookEx;
· Getting a list of all process threads and injection of DLL closing the process
using SetWinEventHook.
- Memory Attributes Modification:
· Getting the handle of the process and setting PAGE_NOACCESS attribute to
every available memory unit using ZeProtectVirtualMemory;
· Getting the handle of the process deallocation all available memory using
ZwFreeVirtualMemory;
· Getting the handle of the process and unmap all mapped objects using
ZwUnmapViewOfSection;
· Getting the handle of the process and allocation of all available memory
using ZwAllocateVirtualMemory;
· Getting the handle of the process and allocation of all available memory
using ZwMapViewOfSection.
- Writing in process memory (WriteProcessMemory):
· Getting the handle of the process and override available memory using
ZwWriteVirtualMemory.
- Modification of process objects:
· Getting the handle of the process and deallocation of all handles of the
process using ZwDuplicateObject;
· Getting the handle of the process and allocation of all free handles of the
process using ZwDuplicateObject.
3. Driver unloading.
접기
각 항목들은 윈도우 명령어를 사용하거나 특정 프로그램을 이용하여 수행되었습니다.
아래는 세부 결과입니다.
테스트 세부 결과
아래는 32비트(x86)와 64비트의 결과 비교입니다.
32비트와 64비트 비교 결과
각 공격들을 완벽하게 차단할 때 +1점, 공격을 완벽하게 차단하는 것은 실패하였으나 자기 보호 기능으로 인해 다시 복구되거나 프로세스 등이 재생성되는 경우 +0.5점, 차단 및 복구에 완전 실패할 경우 0점이 주어집니다.
총 점(33점)과 테스트 결과의 비율에 따라 등급이 나누어지며, 기준은 아래와 같습니다.
등급 |
설명 | |
|
98% 이상의 공격 차단 시 부여 | |
|
80% 이상의 공격 차단 시 부여 | |
|
60에서 80%의 공격 차단 시 부여 | |
|
40에서 60%의 공격 차단 시 부여 | |
|
40% 이하의 공격 차단 시 부여 |
이런 테스트 자료를 보면 국내 제품들의 결과가 항상 궁금해집니다. 열악한 국내 상황...
러시아 정도면 지리적으로 가까운 편인데, 국내 제품들도 테스트를 좀 해주었으면 합니다.
- 이상입니다.
반응형
'▶ 보안 제품 테스트 정보 > :: 기타 테스트' 카테고리의 다른 글
Matousec 사전 방역 성능 테스트 (2011.08.27) (10) | 2011.09.10 |
---|---|
[기타] It-Administrator 기업용 제품 성능 비교 테스트 (AV-TEST) (2) | 2011.03.29 |
[PCWorld] Antivirus 2011: Digital Defenders - 2011년 보안 제품 비교 결과 (with AV-Test) (8) | 2011.01.26 |
[PCSL] Total Protection Test - 보호 성능 종합 테스트 7월 결과 (2010) (8) | 2011.01.24 |
[MRG] 유포 초기 진단 테스트 종합 - MRG Flash Tests 2010 (6) | 2011.01.16 |