▶ 보안 제품 테스트 정보/:: 기타 테스트

루트킷 진단 성능 테스트 - NT Internals

물여우 2010. 5. 30. 19:39
반응형
루트킷 기술을 이용한 툴을 기반으로 안티 루트킷 제품의 루트킷 진단 성능 비교 테스트를 소개합니다.






이번에 소개할 루트킷 진단/치료 성능 테스트는 폴란드에 위치한 보안 연구 단체인 "NT Internals"에서 시행한 테스트입니다. NT Internals에서는 OS 시스템을 비롯해서 각종 보안 제품 및 일반 유틸리티들의 취약점 정보를 공개하고 있습니다.

소개할 테스트는 총 3개로 아래와 같습니다.

  • Hidden Dynamic-Link Library Detection Test (2009-10-30)
  • Hidden Process Detection Test (2009-12-02)
  • Hidden Driver Detection Test (2010-02-14)

추가적인 테스트가 예정되어 있어, 테스트 결과가 공개되면 함께 소개하려 하였지만 추가적인 테스트가 늦게 이루어지는 것 같아 이전에 시행된 테스트 정보만 먼저 살펴보겠습니다.

테스트 결과 중 색 구분에 대한 정보는 아래와 같습니다.
  •  녹색 : 테스트 상에 사용된 알려진 루트킷 기술 패턴을 대부분 진단한 경우
  •  청색 : 일부 기술 패턴에는 실패하였으나 절반 이상 진단한 경우
  •  적색 : 테스트에 사용된 루트킷 기술 패턴을 두 개 이상 진단 못한 경우

테스트의 세부적인 정보는 전문적인 내용이라 저도 잘 모릅니다. 그러나 전문적인 안티루트킷 제품 뿐만 아니라 일반적으로 사용되는 안티 바이러스에 포함되는 안티 루트킷에 대한 성능 비교도 이루어지기 때문에 '어떤 제품이 루트킷 진단율이 높은가?'에 대한 정보를 얻을 수 있다는 점에서 흥미로운 테스트라고 생각합니다. 세부적인 정보는 출처를 참고 바랍니다.

테스트 결과 상에서는 녹색과 청색 제품이 성능이 뛰어나며, 루트킷 진단에 사용할만한 제품이라고 보시면 됩니다. 단, 해당 테스트는 테스트에 사용된 안티 루트킷 제품의 진단 여부만 확인하였을 뿐, 실제 환경에서 나타날 수 있는 오진이나 해당 제품을 사용하는 사용자들의 수준 등은 고려되지 않았다는 것은 참고하시기 바랍니다.


1. Hidden Dynamic-Link Library Detection Test

DLL은 동적 연결 라이브러리로 번역되며 특정 프로세스가 자신에게 없는 함수값을 사용하기 위해 사용하는 함수 코드를 포함한 외부 파일입니다. 악성코드들은 이런 악성 DLL 파일을 생성 후 각종 프로세스 강제로 인젝션시켜 특정 정보를 빼돌리거나, 프로세스의 활동을 방해하는 용도로 사용합니다.

(1) 테스트 항목


▶ Invisible DLL 1.0/1.1 사용
- InLoadOrderModuleList - UNLINKING
- InMemoryOrderModuleList - UNLINKING
- InInitializationOrderModuleList - UNLINKING
- HashLinks - UNLINKING (fixed in Invisible DLL 1.1)
- ProcessObject - MANIPULATION (removed in Invisible DLL 1.1)
- LdrpHeap - ERASING (added in Invisible DLL 1.1)
- Vad - ERASING


(2) 테스트 결과


클릭하면 원본 크기로 볼 수 있습니다.



특이하게도 러시아의 보안 업체인 Dr.Web 제품이 비교적 좋은 진단값을 보여준 것을 확인할 수 있습니다. 해당 제품은 다른 테스트에서도 좋은 성능을 나타냅니다. 안티바이러스로서 최근에 인지도가 많이 떨어졌지만 루트킷 진단 능력만큼은 안티바이러스 제품군 중에서 좋은 편임을 확인할 수 있습니다.

GMER와 IceSword의 결과가 아주 상반되게 나타났는데, GMER은 전부 숨겨진 DLL 객체를 진단하지 못하였지만 IceSword의 경우 6번째 기술을 제외하고는 모두 진단하여 우수한 결과을 나타내었습니다.


2. Hidden Process Detection Test

이번에는 직접 메모리에 상주하며 다양한 명령을 수행하는 프로세스 은폐에 대한 진단 비교입니다.

(1) 테스트 항목


- [-01-] - PspNotifyRoutine - RECALLING
- [-02-] - PsActiveProcessLinks - DKOM
- [-03-] - ObjectTable (HANDLE_TABLE) - DKOM
- [-04-] - CSRSS ObjectTable (HANDLE_TABLE) - ERASING
- [-05-] - PspCidTable (HANDLE_TABLE) - ERASING
- [-06-] - SessionProcessLinks - DKOM
- [-07-] - WorkingSetExpansionLinks - DKOM
- [-08-] - ObjectTypeList - DKOM
- [-09-] - CSR_PROCESS/CSR_THREAD - DKOM
- [-10-] - PID & IMAGE NAME - CHANGING
- [-11-] - OBJECT & OBJECT_TYPES - MANIPULATION
- [-12-] - THREAD OBJECT - MANIPULATION


(2) 테스트 결과


클릭하면 원본 크기로 볼 수 있습니다.


이번 테스트부터 GMER이 좋은 성능을 보여주고 있습니다. 안티 바이러스에 포함되는 안티 루트킷 모듈으 성능이 상당히 낮다는 것은 관련글의 AntiMalware Test Lab의 테스트 결과와 유사합니다..


3. Hidden Driver Detection Test

OS 구동시 사전에 로딩되어 여러 명령값을 처리하는 시스템 드라이버 파일 은폐에 대한 진단 능력을 테스트 합니다. 개인적으로 해당 테스트가 가장 중요한 항목이 아닌가 합니다.


(1) 테스트 항목


- [-01-] - PsLoadedModuleList - DKOM
- [-02-] - OBJECT_DIRECTORY - DKOM
- [-03-] - ObjectTypeList - DKOM
- [-04-] - DEVICE/DRIVER_OBJECT - ERASING
- [-05-] - DEVICE/DRIVER OBJECT_HEADER - ERASING
- [-06-] - OBJECT_TYPE - POINTER MANIPULATION


(2) 테스트 결과


클릭하면 원본 크기로 볼 수 있습니다.


CMC Code Walker라는 프로그램이 가장 뛰어난 성능을 보여주었고 GMER을 비롯해서 앞서 좋은 성적을 보여주었던 제품들이 대부분 비슷한 결과값을 보여주었습니다. IceSword의 경우 DLL 진단 결과와 달리 모든 패턴을 진단하는데에 실패하였습니다.





NT Internals의 루트킷 진단 테스트를 살펴봤습니다. 

모든 루트킷 기술의 패턴을 진단할 수 있는 제품이 없긴 하지만 몇몇 제품의 경우 상당히 우수한 성능을 갖고 있음을 확인할 수 있었습니다. 개인적으로 많이사용하던 IceSword의 경우 조금 아쉬운 결과를 보여주기도 하였지만 GMER과 더불어 뛰어난 제품임에는 틀림이 없어 보입니다. (이런 제품을 혼자서 개발하였다는 사실이 놀랍기만 합니다.) 

덭붙여서 악성코드가 범람하고 각종 보안 제품이 소개되는 등 보안에 관해 관심이 높아졌을 때 그 위험성이 가장 과장되어 표현된 것이에 루트킷을 이용한 악성코드가 아닐까 합니다. 기술명인 루트킷 자체가 악성코드로 인식되기도 하고, 일단 감염되면 치료가 불가능하거나 매우 어렵다는 다소 잘못된 의견들이 많았었던 것으로 기억됩니다.

테스트 결과에서 보이듯이 루트킷 기술을 이용한 악성코드를 진단/치료하는 것이 쉬운 일은 아니고, 일부는 치료가 매우 어려운 것이 사실이지만, 루트킷을 이용하는 악성코드도 범람하는 다양한 악성코드의 한 종류일 뿐이며, 안티바이러스나 다른 보안 제품에 의해 사전 진단/사전 차단이 가능합니다. 게다가 안티바이러스에는 특정 악성코드에 대한 치료 패턴이 추가적으로 존재하기 때문에, 감염되면 끝장인 것으로 오해하는 경우는 없어졌으면 합니다.


- 이상입니다.
반응형