2012년 8월 27일 월요일

악성코드 분석 - Bundestrojaner [1]




트로이 목마 악성코드를 분석한 과정과 결과를 정리하려고 합니다.





먼저 트로이 목마란 정상적인 기능을 하는 프로그램으로 가장해 다른 프로그램 안에 숨어 있다가

그 프로그램이 실행될 때 자신을 활성화 하는 악성 프로그램을 말합니다.

자기 자신을 복사하지 않는다는 점에서 바이러스와는 다른 특성을 나타냅니다.



분석할 트로이 목마는 Bundestrojaner 로 독일 정부가 감시 목적으로

개발한 악성코드라고 알려져 있습니다.



악성코드의 파일명은 scuinist.exe 입니다.

참고로 scuinis는 Skype Capture Unit Installer의 약자이며, Skype Capture Unit은

DigiTask라는 회사에서 개발한 상업적 악성 프로그램의 이름이었습니다.

DigiTask는 독일에 본사를 두고 있으며, The German Customs Investigation Bureau

(독일 소비자 조사국)에서 감시 서비스를 2백만 유로에 매입했다고 합니다.

이와 관련된 정보는 http://www.f-secure.com/weblog/archives/00002250.html

를 참고하시기 바랍니다.



Bundestrojaner는 합법적인 소프트웨어 업데이트로 가장하고, 스카이프 전화 기록,

인터넷 사용 정보, 메신저 대화 내용, 키 입력 등을 기록할 수 있습니다.

또한 마이크와 웹캠과 같은 하드웨어를 활성화 시킬 수 있으며, 사진을 찍거나,

음성을 녹음해 서버로 전송합니다.




아래의 악성코드 분석을 이해하기 위해서는 어셈블리, 리버싱에 대한 기본 지식을 필요로 합니다.


분석 환경은 Windows XP service pack 2 이며 VMware 가상머신을 사용했습니다.

먼저 동적 분석에 사용된 툴은 Sysinternals Autoruns, Regshot, Process Explorer,

Process Monitor, CaptureBat, Wireshark 입니다.

각 프로그램의 간략한 소개를 먼저 드리겠습니다.


Autorun : 윈도우 운영체제의 모든 시작 프로그램을 관리할 수 있는 프로그램

RegShot : 레지스트리의 변경 사항을 확인할 수 있는 프로그램

* 레지스트리 : 모든 윈도우의 설정값과 윈도우에 설치된 응용 프로그램의 설정값을 저장하는 데이터 베이스

Process Explorer : 현재 실행중인 프로세스의 상세한 정보를 확인할 수 있는 프로그램입니다.

Process Monitor : 프로세스, 레지스트리, 파일 시스템, 네트워크의 활동을 모니터링 할 수 있는 프로그램입니다. (low level)

CaptureBat : 프로세스 모니터와의 기능이 유사하며, 악성코드가 하드 디스크에서 지운 파일을 저장해 둡니다. (high level)


악성코드를 실행하고 나면, 위의 도구들을 통해 동적 분석을 할 수 있습니다.


악성코드를 실행하기 전의 상태를 regshot, autorun, winalysis 등을 통해 모두 저장해 둡니다.

동적 분석을 시작할 준비가 되면 악성코드를 실행하고 CaptureBat과 Process Monitor로

악성코드가 어떤 활동을 하는지를 기록합니다.



위의 그림은 악성코드를 실행하고 악성코드의 활동을 켑쳐한 후의 사진입니다.

여기서 악성코드가 실행되고 나서 자기 자신을 삭제하는 것을 확인하실 수 있습니다.


먼저 Winalysis로 시스템의 변화를 살펴보면


위의 사진에서처럼 몇 개의 파일이 생성되었으며, winsys32라는 서비스가 등록된 것을 확인하실 수 있습니다.



Process Monitor에서 불필요한 과정들을 필터로 지우고 중요한 과정을 하이라이트 하면


winalysis를 통해서 확인했던 파일들이 생성된 것을 확인하실 수 있습니다.




CaptureBat의 분석 결과를 통해 low level이 아닌 high level 관점에서 분석하면

위의 파일들이 생성된 것을 확인하실 수 있습니다.

또한 악성코드가 어떤 레지스트리를 등록했는지도 확인하실 수 있습니다.




마지막으로 Autorun에서 winsys32라는 새로운 드라이버가 등록된 것을 확인하실 수 있습니다. 




위의 분석 결과를 종합해 보면 악성코드는 실행된 후 dll파일과 sys 파일을 윈도우 시스템 폴더에 생성합니다.

생성된 파일들의 절대 경로는 C:\WINDOWS\system32\mfc42ul.dll 와 C:\WINDOWS\system32\winsys32.sys 입니다.


정확한 이유는 모르지만 C:\WINDOWS\system32\~pgp~.tmp 라는 빈 파일을 생성합니다.


또한 Temp 디렉토리에 파일을 복사한 것을 확인하실 수 있습니다.

복사한 파일의 절대 경로는 C:\Documents and Settings\arvind\Local Settings\Temp\~acrd~tmp~.exe 입니다.

아직까지 이 파일들이 정확히 어떤 행동을 하는지는 정확하게 알 수 없습니다.

마지막으로 드라이버로 보이는 키를 레지스트리에 등록하고, 모든 활동이 끝나면 자기 자신을 삭제합니다.


간단히 요약하면, 악성코드 파일은 몇 개의 파일을 하드에 설치하고 레지스트리를 등록하며

설치가 완료되면 자기 자신을 삭제하며, 이외의 다른 행동은 하지 않는 것 같습니다.

이와 같은 행동을 하는 악성코드를 드로퍼(Dropper)라고 부릅니다.

드로퍼란 파일에는 바이러스 코드가 없으나 실행 시 바이러스를 생성하고 시스템을 감염 시키는 악성코드를 말합니다.

이제 정적 분석을 통해 동적 분석 결과를 확인하며, 다른 행동을 하는지 알아볼 것입니다.


악성코드 분석 - Bundestrojaner [2] :

http://carpedm20.blogspot.kr/2012/08/bundestrojaner-2.html


참고 : http://resources.infosecinstitute.com/german-trojan/

댓글 1개:

  1. 감사합니다! 리버싱 공부에 많은도움이 되었습니다!

    답글삭제