2007년 6월 악성코드 최신 동향과 대응

35
1 악성코드 최신 동향과 대응 2007. 06. 27 ASEC 분석 1팀 장 영 준 주임 연구원

Upload: youngjun-chang

Post on 12-Jun-2015

504 views

Category:

Technology


0 download

DESCRIPTION

2007년 6월 기술지원 엔지니어 대상 강연 자료

TRANSCRIPT

Page 1: 2007년 6월 악성코드 최신 동향과 대응

1

악성코드 최신 동향과 대응

2007. 06. 27

ASEC 분석 1팀

장 영 준 주임 연구원

Page 2: 2007년 6월 악성코드 최신 동향과 대응

2

목 차

I. 2007년 상반기 악성코드 동향

II. 2007년 상반기 악성코드 유형별 동향

III.2007년 상반기 주요 악성코드 기법과 대응

IV. 레트로(Retro) 바이러스

Page 3: 2007년 6월 악성코드 최신 동향과 대응

3

I. 2007년 상반기 악성코드 동향

Page 4: 2007년 6월 악성코드 최신 동향과 대응

4

2007년 상반기 악성코드 동향

1. 매스 메일러(Mass-Mailer) 웜의 지속

- 안티 에뮬레이션(Emulation) 기법을 사용하는 스트레이션(Win32/Stration.worm) 변형

- 스톰(Storm) 웜으로도 불렸던 글로와(Win32/Glowa.worm) 웜

- 안티 바이러스 탐지 기법을 우회하는 젤라틴(Win32/Zhelatin.worm) 웜 변형

2. 파일 감염 바이러스의 지속

- 제작자 검거 이후에도 지속적으로 발견되는 델보이(Win32/Dellboy )변형

- 세번째 바이럿(Win32/Virut) 변형

- 바이러스, 웜 그리고 트로이목마의 복합적 기능과 EPO와 폴리모픽(Polymorphic) 사용

3. 발전된 형태의 루트킷

- 완벽한 커널 스팸메일러 러스톡(Win-Trojan/Rustock)

- 새로운 형태의 SSDT 후킹 기법을 사용하는 알만(Win32/Alman.C) 루트킷

Page 5: 2007년 6월 악성코드 최신 동향과 대응

5

2007년 상반기 악성코드 동향

4. 현실의 리얼 머니를 노리는 트로이목마

- 피싱(Phishing)과 공인 인증서 탈취로 리얼 머니를 노리는 뱅키(Win-Trojan/Banki)

- LSP 조작을 통한 개인 정보 유출을 시도하는 온라인 게임 트로이목마

- 온라인 게임 아이템에서 리얼 머니까지 위협의 대상이 확대

5. 다시 돌아온 인스턴트 메신저(Instant Messenger) 웜

- MSN 메신저로 전파를 시도한 쉐도우봇(Win32/ShdoBot) 웜

- 한 동안 발견되지 않던 I.M 웜이 2007년 상반기 다시 발견

- I.M 웜과 악성 봇의 결합으로 좀비 컴퓨터의 확대를 시도

6. 새로운 취약점으로 무장한 악성 봇

- MS07-017 취약점을 노리는 악성 봇(Win32/IRCBot.worm)

- 현재까지 총 8개의 윈도우 서비스 관련 취약점을 공격

- 취약점 공격형태의 악성코드는 악성 봇이 유일

Page 6: 2007년 6월 악성코드 최신 동향과 대응

6

2007년 상반기 악성코드 동향

7. Autorun.inf를 이용한 자동 실행

- USB 저장 장치가 많이 사용되면서 새로운 감염 매체로 활용

- 중국산 악성코드에서 Autorun.inf를 이용한 감염 기법이 많이 발견

- VBS/Solow와 함께 온라인 게임 트로이목마에서 사용

8. 악성코드의 자기 보호 기능 강화

- 안티 에물레이션((Anti-Emulation)과 EPO(Entry Point Obfuscation) 기법 등

안티 바이러스 탐지 기법 우회

- 직접적인 안티 바이러스 제품에 대한 공격과 탐지 방해

Page 7: 2007년 6월 악성코드 최신 동향과 대응

7

II. 2007년 상반기 악성코드 유형별 동향

Page 8: 2007년 6월 악성코드 최신 동향과 대응

8

2007년 상반기 악성코드 유형별 동향

1. 2007년 1분기 악성코드 동향

- 전체적인 흐름은 2006년과 비슷하게 진행되고 있음

- 악성코드 수적으로 작년 대비 166%의 증가세

- 중국발 웹 해킹으로 트로이목마와 중국산 파일 감염 바이러스의 증가

Page 9: 2007년 6월 악성코드 최신 동향과 대응

9

2007년 상반기 악성코드 유형별 동향

2. 2007년 1분기 바이러스 동향

- 2006년 대비 증가 추세

- 2006년은 바이킹(Win32/Viking)과 델보이(Win32/Dellboy)가 주류

- 2007년 상반기는 델보이(Win32/Dellboy) 변형이 약 25종 발견

Page 10: 2007년 6월 악성코드 최신 동향과 대응

10

2007년 상반기 악성코드 유형별 동향

3. 2007년 1분기 트로이목마 동향

- 전체 악성코드의 70%를 차지하고 있음.

- 대부분의 트로이목마가 중국에서 제작된 것으로 추정

- 트로이목마 대부분이 온라인 게임의 사용자 정보 유출을 위한 형태

Page 11: 2007년 6월 악성코드 최신 동향과 대응

11

2007년 상반기 악성코드 유형별 동향

4. 2007년 상반기 온라인 게임 트로이목마 동향

- 온라인 게임의 사용자 정보를 유출하는 형태의 변화 시도

- 한국산 온라인 게임 뿐만 아니라 중국산 온라인 게임 까지 공격 대상

- 온라인 게임의 사용자 정보를 이용한 다른 인터넷 범죄로까지 연결

Page 12: 2007년 6월 악성코드 최신 동향과 대응

12

2007년 상반기 악성코드 유형별 동향

5. 2007년 1분기 악성 봇 동향

- MS07-029 DNS RPC 취약점 발생 이후 일시 증가

- 윈도우 서버에서 DNS 운영이 적어 피해 사례는 극히 작음

Page 13: 2007년 6월 악성코드 최신 동향과 대응

13

III. 2007년 상반기 주요 악성코드 기법

Page 14: 2007년 6월 악성코드 최신 동향과 대응

14

1. 새로운 은폐 기법을 사용한 알만(Alman) 루트킷 (1)

2007년 상반기 주요 악성코드 기법

[일반적인 SSDT 후킹 방식]

- SSDT(System Service Dispatch Table)

운영 체제에서 사용하는 모든 시스템 서비스들의 주소를 기록

- SSDT에 기록된 윈도우 네이티브(Native API) 함수의 포인터가 가리키는 주소를 가로채어

루트킷 자신이 아닌 ntoskrnl.exe를 가리키게 만듬

- 일반적인 루트킷 탐지 프로그램(RkUnhooker, GMER)을 통해서 후킹된 함수와

후킹한 오브젝트 그리고 주소 파악이 가능

Page 15: 2007년 6월 악성코드 최신 동향과 대응

15

1. 새로운 은폐 기법을 사용한 알만(Alman) 루트킷 (2)

2007년 상반기 주요 악성코드 기법

[새로운 SSDT 후킹 방식]

- 알마(Win32/Alman.C) 바이러스에 의해 생성되는 루트킷(Win-Trojan/Rootkit.17152)

에서 사용되는 새로운 SSDT 후킹 기법

- SSDT에 기록된 특정 함수의 포인터가 ntoskrnl.exe를 가리키는 주소를 Push/Ret 방식

으로 자신이 아닌 ntoskrnl.exe을 가리키도록 조작

- 함수를 후킹한 오브젝트가 자신이 아닌 ntoskrnl.exe가 나타나도록 함

Page 16: 2007년 6월 악성코드 최신 동향과 대응

16

2007년 상반기 주요 악성코드 기법

1. 새로운 은폐 기법을 사용한 알만(Alman) 루트킷 (3)

- GMER 또는 Rkunhooker를 이용할 경우

SSDT에서 후킹된 함수 확인이 가능

- 후킹된 함수들을 강제로 풀어주게 될 경우

후킹한 오브젝트 발견

[알만 루트킷에 의해 후킹된 함수들]

[Rkunhooker]

Page 17: 2007년 6월 악성코드 최신 동향과 대응

17

2007년 상반기 주요 악성코드 기법

2. 완벽한 은폐형 스팸 메일러 러스톡(Rustock) (1)

[러스톡 감염 경로와 기법]

해킹된 특정 사이트로부터 취약점을 이용하여 파일(Dropper) 다운로드MS06-001, MS06-057. MS03-011 취약점

Resource 영역으로부터 파일 생성(NTFS Alternate Data Streams) Explorer.exe에 RemoteThread 생성EventObject 통한 중복 감염 체크

SCM(Service Control Manager)를 통한 서비스 등록 및 시작ntoskrnl.exe의 Export 함수포인터를 획득하여 복구

SYSENTER HookDKOM(Direct Kernel Object Manipulation)을 이용한 Process HideTcpip.sys, Wanarp.sys, NDIS.sys Detour Patch

Google, Yahoo, MSN등으로부터 스팸메일 본문을 쿼리시스템의 특정 파일들에서 메일 전송대상 주소를 획득Backdoor - Encrypted HTTP Session (RC4 algorithm)

Page 18: 2007년 6월 악성코드 최신 동향과 대응

18

2. 완벽한 은폐형 스팸 메일러 러스톡(Rustock) (3)

2007년 상반기 주요 악성코드 기법

[FAT과 NTFS 파일 시스템 구조]

- NTFS는 파일 시스템에 보안과 스트림을

적용 FAT 보다 안정적인 구조로 설계

- 러스톡(Rustock)은 시스템 폴더에

lzx32.sys를 스트림 영역에 생성

SCM을 이용 윈도우 서비스로 등록

- 오브젝트의 접근 상태를 변경하여 ADS

접근 방해 및 I/O 후킹으로 자신을

시스템에서 은폐

Page 19: 2007년 6월 악성코드 최신 동향과 대응

19

2. 완벽한 은폐형 스팸 메일러 러스톡(Rustock) (4)

2007년 상반기 주요 악성코드 기법

[드라이버 오브젝트에 대한 은폐]

Page 20: 2007년 6월 악성코드 최신 동향과 대응

20

2. 완벽한 은폐형 스팸 메일러 러스톡(Rustock) (5)

2007년 상반기 주요 악성코드 기법

[패킷 리다이렉트를 통한 네트워크 은폐]

Page 21: 2007년 6월 악성코드 최신 동향과 대응

21

2007년 상반기 주요 악성코드 기법

2. 완벽한 은폐형 스팸 메일러 러스톡(Rustock) (6)

[백도어 포트에 대한 암호화된 연결]

- 메모리에 로드 되는 루트킷 탐지 프로그램 탐지

- 커널 방화벽 모듈 무력화

- 안티 디버깅 기능을 통한 가상 운영 체제 및 커널 디버거 탐지 및 무력화

Page 22: 2007년 6월 악성코드 최신 동향과 대응

22

2007년 상반기 주요 악성코드 기법

3. 완벽한 은폐형 스팸 메일러 러스톡(Rustock) (7)

[러스톡 전용 백신]

- 안랩의 러스톡 전용 백신을 이용한 탐지 및 치료

- GMER를 이용한 NTFS ADS 스트림에 은폐된 오브젝트 탐지

[GMER]

Page 23: 2007년 6월 악성코드 최신 동향과 대응

23

3. LSP 후킹을 이용한 온라인 게임 트로이목마 (1)

2007년 상반기 주요 악성코드 기법

[Winsock2 구조]

- 일반적인 네트워크 프로그램은 Winsock2 DLL에서 제공하는 API를 이용하여 통신

- LSP(Layered Service Provider)는 Winsock2 Transport SPI에 Base Protocol과 같이 구성

- 악성코드는 레지스트리 Winsock Catalog 부분에 자신을 등록

- 네트워크 윈속 레벨에서 호출되는 함수들과 정보를 후킹

[Winsock2 Transport SPI]

Page 24: 2007년 6월 악성코드 최신 동향과 대응

24

3. LSP 후킹을 이용한 온라인 게임 트로이목마 (2)

2007년 상반기 주요 악성코드 기법

[Winsock2 LSP 복구 유틸]

- V3 엔진에서는 LSP에 등록되는 트로이목마

치료시 자동으로 이를 복구

- 안레포트 로그에서 LSP 등록 여부 확인 가능

- 트로이목마 수동 조치시 LSP 복구 툴을 이용

LSP 수동 복구

- 복구 실패시 네트워크 연결 실패 발생

Page 25: 2007년 6월 악성코드 최신 동향과 대응

25

IV. 레트로(Retro) 바이러스

Page 26: 2007년 6월 악성코드 최신 동향과 대응

26

레트로(Retro) 바이러스

- 레트로(Retro) 바이러스는 일반적으로 다음 3가지 유형의 악성코드를 이야기함

1) 안티 바이러스 소프트웨어 또는 보안 제품에 대해 직접적인 공격을 가하는 형태

2) 악성코드 자체를 분석하기가 어렵도록 자신을 보호하는 형태

3) 안티 바이러스 소프트웨어의 탐지를 회피하는 형태

- 직접적인 공격 형태

안티 바이러스 소프트웨어의 프로세스 강제종료

안티 바이러스 소프트웨어의 레지스트리 수정으로 정상적인 실행 방해

안티 바이러스 소프트웨어의 파일 삭제 및 변형

- 분석 지연 형태

악성코드 파일에 EPO(Entry Point Obfuscation), Anti-Debugging, Armoring

Anti-Disassembly 기법 적용

1. 레트로(Retro) 바이러스 (1)

Page 27: 2007년 6월 악성코드 최신 동향과 대응

27

레트로(Retro) 바이러스

1. 레트로(Retro) 바이러스 (2)

- 탐지 회피 형태

악성코드 파일에 안티 에물레이션(Anti-Emulation)과 폴리모픽(Polymorphic) 기법 적용

[유효 명령과 쓰레기 명령이 혼합된 어퍼스케이티드(Win-Trojan/Obfuscated]

Page 28: 2007년 6월 악성코드 최신 동향과 대응

28

레트로(Retro) 바이러스

2. 레트로(Retro) 바이러스 사례 (1)

- Dropper/PWStealer.46162

2007년 6월 21일 최초 접수

ASPack 변형으로 실행 압축되어 있으며 원본은 볼란드 델파이로 제작

46162 바이트

- Win-Trojan/LineageHack.46162

Dropper/PWStealer.46162에 의해 생성되는 DLL 파일

볼란드 델파이로 제작

46162 바이트

Page 29: 2007년 6월 악성코드 최신 동향과 대응

29

레트로(Retro) 바이러스

2. 레트로(Retro) 바이러스 사례 (2)

- Dropper/PWStealer.46162는 다음 폴더에 865DFA95.dat와 865DFA95.dll 파일 생성

c:\Program Files\Common Files\Microsoft Shared\MSInfo

생성된 파일들은 시스템, 숨김 및 읽기 전용 속성을 가짐

논리 파티션마다 Autorun.inf와 복사본을 생성하여 자동 실행

[생성 파일들] [Autorun.inf 생성]

Page 30: 2007년 6월 악성코드 최신 동향과 대응

30

2. 레트로(Retro) 바이러스 사례 (3)

[프로세스 인젝션]

- 생성된 DLL 파일은 실행 중인 모든 프로세스

에 스레드 인젝션

- 실행 중인 프로세스 중 안티 바이러스

소프트웨어 및 방화벽 그리고

시스템 유틸리티가 존재할 경우

강제 종료 시도

- 메모리에 로드 되는 파일의 절대 경로를

확인하여 안티 바이러스 프로그램 및

방화벽 프로그램의 설치 경로일 경우

강제 종료 시도

레트로(Retro) 바이러스

Page 31: 2007년 6월 악성코드 최신 동향과 대응

31

2. 레트로(Retro) 바이러스 사례 (4)

[서비스 강제 종료]

[필터 드라이버 강제 종료]

- 레지스트리 수정으로 안티 바이러스 소프트웨어 및 방화벽의 서비스 강제 종료

- 레지스트리 수정으로 V3의 실시간 감시와 V3의 모든 필터 드라이버 서비스 강제종료

레트로(Retro) 바이러스

Page 32: 2007년 6월 악성코드 최신 동향과 대응

32

2. 레트로(Retro) 바이러스 사례 (5)

[DLL 파일의 자동 실행]

- 생성된 DLL은 Explorer의 ShellExecuteHooks를 이용해 자동 실행

- 생성된 dat 파일은 레지스트리의 “Image File Execution Options”을 이용 운영체제

에서 디버깅을 위해 DEBUG_PROCESS 호출과 함께 자동 실행

[디버그 권한으로 자동 실행]

레트로(Retro) 바이러스

Page 33: 2007년 6월 악성코드 최신 동향과 대응

33

2. 레트로(Retro) 바이러스 사례 (6)

[안전 모드 부팅 방해]

- 레지스트리의 안전모드 관련 부분 중 DiskDrive 관련 부분을 삭제하여

시스템이 안전모드로 부팅 시 실패

레트로(Retro) 바이러스

Page 34: 2007년 6월 악성코드 최신 동향과 대응

34

2. 레트로(Retro) 바이러스 사례 (7)

- 수동 복구 절차

1) 콘솔 명령창을 이용해 dll과 dat 파일이 생성된 폴더로 이동

2) 해당 경로에서 dir /a 를 이용 파일들이 존재하는지 확인

3) dll 파일과 dat 파일의 파일명을 임의로 변경

4) 논리 파티션으로 이동 후 Autorun.inf 파일 삭제

5) 레지스트리 편집기로 V3 필터 드라이버의 “Start” 항목의 값을 “3”으로 변경

6) 시스템 재부팅

7) 실시간 감시를 활성화

8) 스마트업데이트 실행하여 최신 엔진 업데이트

9) 시스템 전체를 수동 검사

10) 정상 시스템의 안전모드 관련 레지스트리 부분만 추출해서 병합

레트로(Retro) 바이러스

Page 35: 2007년 6월 악성코드 최신 동향과 대응

35

Q&A

감사합니다