Forensic/메모리 포렌식

OlympicDestroyer Malware 분석

Ron Weasley 2022. 4. 14. 01:00

안녕하세요. 저번 시간에는 Cridex Malware분석을 진행하였습니다.
이번에는 조금 난이도가 있는 OlympicDestroyer Malware를 분석을 해보겠습니다.

OlympicDestroyer Malware란?

2018년 2월 9일 평창 올림픽 개회식 당시 현장의 유무선 네트워크 시스템에 장애가 발생하며, 잇따라 무선랜(Wi-Fi)서비스, 메인프레스센터(MPC)의 IPTV 영상 전송과 입장권 판매 및 출력을 위한 공식 홈페이지 운영이 중단 되었습니다.

이는 올림픽을 방해하기 위한 해커의 사이버 공격으로, 최초 감염 경로는 스피어피싱 이메일을 통한 감염으로 밝혀졌으며, 공격 수단은 파괴형 악성코드로 시스템을 망가뜨려 IT 기반 서비스 가동이나 운영을 방해하려는 의도로 예상됩니다.
그래서 이 악성코드는 ‘올림픽 파괴자(Olympic Destroyer)’로 명명 되었습니다.


분석대상(파일) 및 사용한 프로그램 및 정보를 보겠습니다.
[분석 대상 정보]

[분석 프로그램 정보]

[시나리오]

드릴 말씀 : 저는 주어진 vmem파일에 대한 파일명을 olympic Destroyer.vmem으로 변경하였습니다.

분석하기 전 파일에서 제공되는 profile(운영체제)이 무엇인지 알아야 하며 분석할 파일에 대한 정보를 얻기 위해서 imageinfo 명령어를 실행하겠습니다.

Volatility2.6.exe -f olympic Destroyer.vmem imageinfo

이 덤프 파일에서 제공되는 운영체제는 Win7SP1x86_23418입니다.

이제 덤프 파일이 떠진 현재 시점에서 실행되고 있는 프로세스들을 확인하기 위해 pslist를 사용하여 실행되고 있는 프로세스 중, 의심이 가는 프로세스가 있는지 확인 해보겠습니다.

Volatility2.6.exe -f olympic Destroyer.vmem --profile=Win7SP1x86_23418 pslist

pslist 플러그인을 통해 OlympicDestroy라는 프로세스명으로 존재하는 PID 3528과 PID 3528을 PPID로 가지고 있는 ocxip.exe, teikv.exe, _xut.exe를 발견할 수 있었습니다. 하지만 teikv.exe와 ocxip.exe는 프로세스가 실행되자 마자 종료되었음을 알 수 있습니다.

눈에 보이는 건 저 부분이지만, 혹시나 다른 프로세스들도 연관되어 있는것이 있나 싶어 pstree 플러그인을 사용해 트리 구조로 한번 보겠습니다.

Volatility2.6.exe -f olympic Destroyer.vmem --profile=Win7SP1x86_23418 pstree

pstree 플러그인을 통해 OlympicDestroy 프로세스는 powershell을 통해서 실행된 프로세스로 보입니다.
즉, powershell을 통해서 실행을 했다는 것은 현재 OlympicDestroy.exe라는 명칭을 가지고 있지는 않지만 실행 파일임을 알 수 있습니다.

이제 숨겨진 프로세스가 있는지 확인 하기 위해서 psxview 플러그인을 사용 해보겠습니다.

Volatility2.6.exe -f olympic Destroyer.vmem --profile=Win7SP1x86_23418 psxview

여기 보이는 6개의 프로세스들이 실행된 프로세스였지만, 종료된 프로세스인 것을 알 수 있습니다.
구글링 결과, 해당 6개의 프로세스는 아무런 문제가 없어 보이며, GWXConfigManag 프로세스 같은 경우는 윈도우 업데이트를 하게 될 경우 나오는 프로세스입니다.

지금까지 프로세스 분석을 진행하였는데, 의심되는 부분은 powershell, OlympicDestroy, _xut, ocxip, teikv 프로세스입니다.

이제는 네트워크 분석을 진행 하기 위해서 netscan 플러그인을 사용하겠습니다.

Volatility2.6.exe -f olympic Destroyer.vmem --profile=Win7SP1x86_23418 netscan

notepad++로 열어보니, 메모리를 덤프 뜬 호스트 컴퓨터는 IP가 192.168.111.130으로 추정이 되며, 192.168.111.128은활성화된 네트워크다 정도만 알 수 있었고, 딱히 의심스러운 부분은 보이지 않았습니다.

다음은 cmd관련 플러그인을 사용하나, cmdline만 보겠습니다.

Volatility2.6.exe -f olympic Destroyer.vmem --profile=Win7SP1x86_23418 cmdline

cmdline으로 출력된 부분을 보면, 아까 위 OlympicDestroy 프로세스의 정확한 명칭을 볼 수 있었습니다.

여기까지 분석을 하고, 이제 진짜 악성 파일인지 확인하기 위해 의심되는 프로세스들을 덤프 뜨겠습니다.

Volatility2.6.exe -f olympic Destroyer.vmem --profile=WinXPSP2x86 procdump -p 3528 -D ./
Volatility2.6.exe -f olympic Destroyer.vmem --profile=WinXPSP2x86 memdump -p 3528 -D ./

Volatility2.6.exe -f olympic Destroyer.vmem --profile=WinXPSP2x86 procdump -p 2432 -D ./
Volatility2.6.exe -f olympic Destroyer.vmem --profile=WinXPSP2x86 memdump -p 2432 -D ./

다음은 프로세스가 종료되었지만, OlympicDestroyer3.exe를 부모 프로세스로 가진 것도 덤프를 뜨겠습니다.

Volatility2.6.exe -f olympic Destroyer.vmem --profile=WinXPSP2x86 memdump -p 1648 -D ./
Volatility2.6.exe -f olympic Destroyer.vmem --profile=WinXPSP2x86 memdump -p 3340 -D ./

역시 아니나 다를까 덤프를 뜨자마자 Windows Defender가 바로 바이러스라고 인식을 하네요..

추출된 exe파일을 virustotal에 던져보니 악성 파일임을 알 수 있었습니다.

여기까지 분석을 진행함으로써, malfind 플러그인을 사용했거나, mftparser 플러그인 printkey 등등 다양한 플러그인을 사용했으나, MZ실행파일 및 다른 플러그인에는 아무런 증거를 찾을 수 없어서 배제시켰습니다.
------------------------------------------------------------------------------------------------------------------
분석은 모두 strings를 통해서 문자열로 바꾼 후 진행 하였습니다.

[파일 감염 경로]
먼저, 파일이 감염된 경로를 알아야 합니다.
아까 시나리오에서 우리는 "Olympic_Session_V10" 를 확인하고 홈페이지에 일정을 바꿨다고 했습니다.
그래서 키워드를 Olympic_Session_V10으로 주고 검색을 해봤습니다.

아니나 다를까, 동일한 파일명에 xls, lnk 파일이 있는것이 보여서 추출을 시도 했으나 파일이 깨져있어 추출이 되지 않았습니다. 하지만 해당 파일을 우리가 가지고 있었고, lnk로 보아 실행을 시켰음을 알 수 있었습니다.

[덤프 파일 분석]

덤프 파일을 본 결과, 다음과 같이 특정한 규칙을 가진 영역을 볼 수 있었습니다. (일부분)

이 부분으로 보았을 때, 도메인에 ID와 패스워드로 추정이 되며, 구글링을 해본 결과 평창올림픽 인터넷 서비스 도메인에 접속할때 쓸 수 있는 수십개 계정의 아이디랑 패스워드가 악성코드의 파일안에 존재했다는 것을 알았습니다.

시나리오에서 평창 올림픽 공식 홈페이지 서버가 중단되었고, 현장에 있던 PC들이 잇따라 중단되는 사고가 발생했다. 라는 부분이 있었습니다.

위에서 호스트 IP가 192.168.111.130이라고 했습니다. 하지만 연결되어 있는 guest의 정보들이 하나씩 8로 상태 변화를 하고 있음을 알 수 있었습니다.

마지막으로 해당 악성 파일이 적용될 수 있는 운영체제 입니다. (추측일뿐 분석을 더 진행 해야 될 거 같습니다.)

현재 분석하고 있는 시스템은 Windows 7이였습니다. 그래서 행여 Windows10도 있을까 찾아봤는데 존재하지 않을걸로 봐서 Windows10에서는 작동을 하지 않을까? 라는 추측을 해봅니다. 그래도 디펜더에 악성파일이라고 떴으니 실행을 시켜보는 행동은 하지 못했습니다.

[결론]
분석을 진행한 OlympicDestroy.vmem 은 찾은 정보로 보아 사용자의 컴퓨터에서 추출된 메모리 덤프 파일인 경우, 컴퓨터가 메일로 부터 받은 파일로 인해서 트로젠에 감염이 되었으며, 도메인에 사용가능 한 아이디와 패스워드를 통해서 지속적으로 사이트에 접근하여 공격을 시도한 것 같습니다.

피드백은 언제나 환영입니다. 댓글로 남겨 주세요!!

'Forensic > 메모리 포렌식' 카테고리의 다른 글

Cridex malware 분석  (0) 2022.04.05