프로세스 분석을 통해 악성코드를 식별한 사례를 살펴 보자.
백도어 통신이 확인되었고, 통신 연결에 사용된 백도어 프로그램을 찾기 위해 프로세스 점검을 수행 하였다.
악성코드에 감염된 프로세스를 찾기 위해 프로세스 점검을 진행 하였다. 프로세스 중 시스템 부팅 시간과 차이가 발생하는 프로세스를 확인했다. 프로세스 이름은 ‘svchost’ 이고 프로세스 번호는 836번으로 확인됐다.
| C:\WINDOWS\System32\svchost.exe [836] C:\WINDOWS\System32\svchost.exe -k netsvcs |
윈도우에서 svchost 프로세스는 시스템 프로세스다. 윈도우의 여러 서비스를 관리하는 프로세스다. 대부분 윈도우 부팅 시 프로세스가가 올라오기 때문에 부팅 시간과 차이가 나지 않는다. 하지만 중간에 실행된 경우 시간 차이가 발생한다.
프로세스 점검을 통해 의심스러운 프로세스를 확인 하였다. 프로세스 번호가 836번인 프로세스가 악성코드에 감염된 것으로 의심 되었고, 이를 확인하게 상세한 분석작업을 진행 했다.
836 프로세스에서 사용중인 파일을 점검 했다. 다음은 836번 프로세스에서 사용하던 파일 목록 이다.
| svchost.exe pid: 836 NT AUTHORITY\SYSTEM 18: File (RW-) C:\WINDOWS\system32 1C4: Section \RPC Control\DSEC344 224: File (RW-) C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_5.82.3790.3959_x-ww_78FCF8D0 23C: File (RW-) C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.3790.3959_x-ww_D8713E55 244: File (RW-) C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.3790.3959_x-ww_D8713E55 250: File (RW-) C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.3790.3959_x-ww_D8713E55 280: File (RW-) C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.3790.3959_x-ww_D8713E55 2F0: File (R–) C:\WINDOWS\Registration\R00000000000a.clb 360: File (R–) C:\WINDOWS\Tasks\SchedLgU.Txt 3A0: File (R–) C:\WINDOWS\system32\kbd101a.dll 3A8: File (R–) C:\WINDOWS\system32\kbd103.dll 418: File (RWD) C:\WINDOWS\Tasks 464: Section \BaseNamedObjects\mmGlobalPnpInfo 56C: File (RWD) C:\WINDOWS\PCHealth\HelpCtr\BATCH 5D0: File (RW-) C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.3790.3959_x-ww_D8713E55 830: File (RW-) C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.3790.3959_x-ww_D8713E55 874: File (RWD) E:\$Extend\$ObjId 87C: Section \BaseNamedObjects\SENS Information Cache 8C8: File (—) E: 928: File (RWD) C:\WINDOWS\system32\wbem\mof 988: File (R–) C:\WINDOWS\system32\tcpipt.dll A6C: File (R–) E:\System Volume Information\tracking.log AF4: File (R–) C:\WINDOWS\system32\wbem\Repository\FS\MAPPING1.MAP AF8: File (R–) C:\WINDOWS\system32\wbem\Repository\FS\MAPPING2.MAP AFC: File (R–) C:\WINDOWS\system32\wbem\Repository\FS\MAPPING.VER B00: File (R–) C:\WINDOWS\system32\wbem\Repository\FS\OBJECTS.DATA B04: File (R–) C:\WINDOWS\system32\wbem\Repository\FS\INDEX.BTR B20: Section \BaseNamedObjects\Wmi Provider Sub System Counters C6C: Section \BaseNamedObjects\Debug.Memory.344 |
동적 링크 라이브러리(DLL) 파일 중 의심스러운 파일이 확인 되었다. 파일명은 ‘tcpipt.dll’ 이다.
| svchost.exe pid: 836 NT AUTHORITY\SYSTEM 18: File (RW-) C:\WINDOWS\system32 …..중략….. 988: File (R–) C:\WINDOWS\system32\tcpipt.dll C6C: Section \BaseNamedObjects\Debug.Memory.344 |
‘system32’ 폴더에는 ‘tcpipt.dll’ 파일이 존재 하지 않는다. DLL 파일에 대해 좀더 확인하기 위해 추가 분석을 수행 하였다.
어떤 목적으로 프로세스에 로드되었는지 확인해야 한다. 그러기 위해서는 해당 코드가 어떤 기능을 하는지 확인해야 하는데 이는 코드상의 API 사용내역을 통해 대략적으로 확인할 수 있다. PEiD 프로그램을 이용해 API를 확인 할 수 있다.

사용중인 API는 사용자 계정을 컨트롤 하거나 FTP통신에 필요한 API, 레지스트리 수정에 필요한 API 등이 확인 되었다.
| API 이름 | 용도 |
| NetUserDel | 사용자 삭제 |
| SHFileOperationA | 파일 시스템 오브젝트 복사 파일 시스템 오브젝트 이동 파일 시스템 오브젝트 이름변경 파일 시스템 오브젝트 삭제 |
| SHDeleteKeyA | 레지스트리 값 삭제 |
| FtpOpenFileA | FTP를 통해 파일 open |
사용된 API를 통해 기능을 유추해 보면 사용자 컨트롤이 가능하고, 레지스트리와 파일에 대한 제어 그리고 FTP 통신으로 데이터 전송이 가능하다.
여기까지만 봐도 전형적인 백도어 프로그램들이 제공하는 기능이다. 백도어 파일이 확실시 되고 좀더 정확한 시그니처를 찾기 위해 문자열을 확인 해보자.
많은 수의 악성코드가 파일명만 바꿔 사용하기 때문에 파일에서 악성코드를 확인할 수 있는 특징을 찾아낼 경우 해당 파일의 기능에 대해 좀더 정확히 파악할 수 있다. 주로 확인되는 정보는 프로그램 정보, 제작자 정보, 공격대상, C&C 서버 IP 등을 확인 할 수 있다.
문자열 추출은 ‘Bin Text’ 라는 프로그램을 이용해 확인할 수 있다. 문자열 추출 과정은 악성코드에 하드코딩 형태로 입력된 값을 확인한다.
tcpipt.dll 파일에 포함된 문자열 검색에서 ZXSHELL 구문이 확인 되었다. ZXSHELL은 중국에서 제작된 백도어 프로그램으로 C&C및 원격터미널 등 다양한 기능을 제공하는 툴이다.

분석 결과 공격자는 ZXSHELL 파일을 시스템에 실행 시켰다. 감염된 프로세스를 이용해 중국 IP를 사용하는 공격자와 통신을 연결 하고 감염 시스템 정보를 전송 하였다. 다음은 백도어 파일이 전송한 피해 시스템의 운영체제 정보다. 윈도우 버전 정보와 시스템 IP 정보, CPU 및 메모리 용량 정보를 전송했다.
| 0000 52 54 00 12 35 02 08 00 27 7c d0 b5 08 00 45 00 RT..5…’|….E. 0010 00 78 b5 ba 40 00 80 06 bb 98 0a 00 02 0f 3d bf .x..@………=. 0020 3f 5f 05 20 1e 61 51 b6 95 cf 2b 8d 6a 22 50 18 ?_. .aQ…+.j”P. 0030 fa d0 48 0e 00 00 77 69 6e 78 70 2d 76 62 6f 78 ..H…winxp-vbox 0040 40 4e 4f 4e 45 2d 57 69 6e 58 50 40 31 30 2e 30 @NONE-WinXP@10.0 0050 2e 32 2e 31 35 20 4f 53 3a 20 57 69 6e 58 50 20 .2.15 OS: WinXP 0060 50 72 6f 20 53 50 32 2e 30 28 32 36 30 30 29 20 Pro SP2.0(2600) 0070 43 50 55 3a 31 38 32 38 20 4d 48 7a 2c 52 41 4d CPU:1828 MHz,RAM 0080 3a 35 31 31 4d 42 :511MB |
공격자가 시스템 리소스 정보까지 수집하는 이유는 대규모 서비스 거부 공격(DDoS)을 수행할 때 시스템 사양이 높은 좀비 PC를 활용하기 위해서다.