악성코드 접근을 숨겨주는 포트 루트킷 




1. 개요 


루트킷(Rootkit)의 의미는 본래 Unix 계열의 관리자 계정인 루트(Root) 권한을 획득하기 위한 코드와 프로그램의 집합으로 사용되었다. 하지만 최근에 루트킷이 단순히 특정 악성코드가 시스템에서 탐지되지 않도록 악용되면서 이제 개인 PC에서 루트킷의 역할은 악성코드 은닉이 주가 되었다. 본 보고서에서는 악성코드가 통신하는 포트 또는 통신 대상의 IP를 기준으로 연결 정보를 숨겨주는 루트킷을 분석하여 포트 루트킷이 동작 방식을 알아보고자 한다.





2. 분석 정보


2-1. 파일 정보

구분

내용

파일명

SynDrives.sys

파일크기

3,840 byte

진단명

Trojan/W32.KRDDoS.3840

악성동작

포트 루트킷

 




2-2. 유포 경로

SynDrives.sys는 이전에 분석된 악성코드 Trojan/W32.jorik.90624.Z 가 드롭하는 부속 모듈이었다. 주로 앞의 상황과 같이 다른 악성코드의 라이프 사이클 연장을 위한 보조적인 목적으로 악성코드와 함께 유포된다.




2-3. 실행 과정

SynDrives.sys가 숙주 파일에 의해 시스템에 설치되면, SSDT 후킹(Hooking)을 통하여 포트를 은닉할 준비를 해놓고 은닉할 대상의 IP 또는 포트 정보 와 명령을 기다린다. 이후 netstat.exe 등의 프로그램에서 네트워크 연결 정보 조회를 시도하면, 네트워크 연결 정보 테이블에서 악성코드가 지정한 IP 또는 포트에 해당되는 정보를 제외한 나머지 정보를 반환하여 악성코드가 지정한 특정 IP 또는 포트에 대한 정보 은닉을 수행한다.





3. 악성 동작


3-1. SSDT 후킹(Hooking)

SynDrives.sys는 [그림 1]과 같이 네트워크 정보 은닉을 위한 자신의 함수(SynDrives+0x70D)를 ZwDeviceIoControlFile 함수가 호출하는 SSDT의 인덱스(NtDeviceIoControlFile)의 주소에 입력하여 이후 ZwDeviceIoControlFile 호출 시 SynDrives+0x70D가 호출 되도록 한다.


[그림 1] ZwDeviceIoControlFile 후킹[그림 1] ZwDeviceIoControlFile 후킹




3-2. 네트워크 정보 은닉

SynDrives.sys 의 드라이버 객체에 등록된 함수는 숙주 파일로부터 IRP(I/O Request Packet)를 받는다. [그림 2]의 우측에 나타낸 것은 숙주 파일로부터 받은 IRP로 IoControlCode 가 0x222004 인 것을 확인할 수 있다. SynDrives.sys 는 이 값을 기준으로 은닉하고자 하는 데이터가 IP인지 Port인지 결정한다.

[그림 2] IRP 버퍼 데이터[그림 2] IRP 버퍼 데이터



위에서 은닉하고자 하는 데이터의 타입(IP or Port)을 확인한 뒤, IRP 구조체의 SystemBuffer에 있는 값을 확인한다. 이 값은 은닉하고자 하는 데이터(0xdec8c8c8)의 값을 나타낸다.


[그림 3] 은닉시킬 데이터 값 확인 (IRP->AssociatedIrp.SystemBuffer)[그림 3] 은닉시킬 데이터 값 확인 (IRP->AssociatedIrp.SystemBuffer)



SynDrives.sys는 IP 및 Port 정보가 있는 구조체 체인에서 은닉하고자 하는 데이터(0xdec8c8c8)를 찾는다. 그리고 해당 데이터가 속한 구조체(그림 4의 표시된 부분)를 덮어씌운다. 이를 통해 결과적으로 은닉시키고자 하는 정보가 조회되지 않도록 한다.


[그림 4] 조회 된 내용이 있는 버퍼 조작[그림 4] 조회 된 내용이 있는 버퍼 조작





4. 결론


앞서 말한 포트 루트킷은 윈도우 XP의 netstat.exe의 네트워크 상태 조회 방식에 맞춰 제작된 것으로 보이며 윈도우 XP 이후의 OS에서는 공격자의 의도대로 동작하지 않는다. 하지만 다른 OS에서도 정확히 동작을 수행하는 포트 루트킷이 존재하기 때문에 수상한 포트가 열려있지 않더라도 백도어(Backdoor) 및 봇(Bot)으로부터 안전한 상태는 아닐 수 있다. 그러므로 수시로 OS와 응용 프로그램들을 최신 버전으로 업데이트하고 출처가 불분명한 파일을 받지 않는 등 미리 악성코드 감염을 예방할 필요가 있다.


해당 악성코드는 잉카인터넷 안티바이러스 제품 nProtect Anti-Virus Spyware V3.0과 nProtect Anti-Virus/Spyware V4.0에서 진단 및 치료가 가능하다.


[그림 5] nProtect Anti-Virus/Spyware V4.0 진단 및 치료 화면[그림 5] nProtect Anti-Virus/Spyware V4.0 진단 및 치료 화면



[그림 6] nProtect Anti-Virus/Spyware V3.0 진단 및 치료 화면[그림 6] nProtect Anti-Virus/Spyware V3.0 진단 및 치료 화면




저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by nProtect

2016년 10월 악성코드 통계




악성코드 Top20

2016년 10월(10월 1일 ~ 10월 31일) 한 달간 잉카인터넷 대응팀은 사용자에게 가장 많이 피해를 준 악성코드 현황을 조사하였으며, 아래 [표]는 가장 많이 탐지된 악성코드를 탐지 건수 기준으로 정리한 악성코드 Top20이다. 가장 많이 탐지된 악성코드는 Adware(애드웨어) 유형이며 총 51,881건이 탐지되었다. 



순위

진단명

유형

탐지 건수

1

Adware/SmartAddress.A

Adware

51881

2

Trojan/XF.XF.Sic

Trojan

4739

3

Trojan.GenericKD.3478486

Trojan

3114

4

Trojan/W32.Agent.4608.TK

Trojan

3104

5

Virus/W32.Alman.B

Virus

3003

6

Adware/WinSmartSearch.B

Adware

2798

7

Trojan.Agent.BYCJ

Trojan

2253

8

Adware/IPAgent.A

Adware

1344

9

Trojan/W32.Forwarded.Gen

Trojan

1147

10

Abuse-Worry/W32.SpyAgent.1694560

Abuse-Worry

1142

11

Adware/TopsAdOn.B

Adware

1121

12

Trojan.Generic.18009158

Trojan

1100

13

Adware/WindowsTab.Q

Adware

1049

14

Trojan.Generic.18860361

Trojan

985

15

Adware/HomeCare.L

Adware

929

16

Trojan.Generic.16972732

Trojan

927

17

Adware/WindowsInforetrieval.C

Adware

917

18

Adware/WinSmartSearch.A

Adware

803

19

Adware/ISZone.H

Adware

679

20

Adware/InbToolN.B

Adware

627





[] 201610월 악성코드 탐지 Top 20





악성코드 유형 비율

10월 한달 간 탐지된 악성코드를 유형별로 비교하였을 때 Adware(애드웨어)와 Trojan(트로이목마) 가 각각 62%, 32%로 가장 높은 비중을 차지하였고, Virus(바이러스)가 4%, Worm(웜)과 Backdoor(백도어)가 각각 1%씩으로 그 뒤를 따랐다.







악성코드 진단 수 전월 비교

10월에는 악성코드 유형별로 9월과 비교하였을 때 Adware(애드웨어) 의 진단이 다소 증가하였다.








주 단위 악성코드 진단 현황

10월 한달 동안 악성코드 진단 현황을 주 단위로 살펴보았을 때 전체적으로 전월 대비 증가한 현상을 보이고 있다.







저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by nProtect