1. 개요
- 북한 해킹 조직 킴수키(Kimsuky)에서 과거 활용했던 취약점
- 과거 북한은 해당 취약점을 이용해 2014.12.09 한수원 사태를 일으킴
- 해당 취약점은 발견 당시 Zero-Day 취약점이었으며, 2017.04 MS에서 패치를 진행
- 러시아에서 사이버무기로 활용하던 제로데이 취약점으로, 취약점이 공개되자 북한이 활용한 것으로 판단
※ 보안뉴스 "세계적인 관심 받고 있는 북한의 APT 단체 킴수키, 어떻게 막아야 하나" 취약점이 포함되어 있어 정리
2. 관련 지식
2.1 OLE
- 객체 연결 삽입(Object Linking and Embedding, OLE)의 준말
- MS에서 개발하였으며, 문서와 기타 객체에 연결과 삽입을 도와주는 연결규약
- 다른 응용프로그램에서 작성된 문자나 그림, mp3 등의 개체를 현재 작성 중인 문서에 자유롭게 연결하거나 삽입하여 편집할 수 있게 하는 기능
버전 | 설명 |
OLE 1.0 | - 1990년에 출시 - MS가 초기 버전의 윈도우 OS용으로 만든 동적 데이터 교환(Dynamic Data Exchange, DDE)를 확장한 것 |
OLE 2.0 | - 자동화, 드래그 앤 드롭 등의 기능이 추가 |
- 해당 취약점에서는 OLE2 link object를 악용
> OLE2 기술을 사용하여 생성된 객체를 다른 문서나 응용 프로그램과 연결하는 객체
> 원본 객체의 데이터와 OLE2 기술을 사용하여 생성된 링크 정보를 포함하며, 링크 정보를 사용하여 원본 객체를 참조
2.2 RTF 파일
- 서식있는 텍스트 파일 (Rich Text Format, RTF)
- MS가 1987년 개발 및 표준화한 파일 포맷으로 확장자로 ".RTF"를 가짐
- Microsoft Word, LibreOffice, OpenOffice 등 다양한 소프트웨어에서 지원
- 텍스트만 저장하는 일반 텍스트 파일과 달리 글꼴 스타일, 서식, 이미지 등에 대한 정보도 저장되어 서식 유지 가능
> ASCII 텍스트로 작성되어 있으며, 문서에 포함된 서식(글꼴, 색상, 크기, 스타일 등)을 나타내는 태그가 포함
> 서식 태그는 RTF 리더기나 편집기에서 해석되어 문서의 서식이 적용
2.3 URL Moniker
- URL Moniker는 COM 개체의 구성요소로, 인터넷에서 리소스를 찾아내 참조하기 위한 기술
- URL을 사용하여 웹 페이지, 이미지, 비디오, 오디오 등의 인터넷 리소스를 찾아내고, 해당 리소스를 다른 응용 프로그램과 공유할 수 있도록 해줌
COM(Component Object Model) 개체
- Microsoft에서 개발한 소프트웨어 컴포넌트 모델
- 프로그래밍 언어나 기술에 관계없이 서로 다른 소프트웨어 컴포넌트들이 상호작용할 수 있도록 해주는 일종의 인터페이스 규격
- COM 개체는 다른 소프트웨어 컴포넌트와 통신하기 위한 메서드와 속성을 제공하며, COM 라이브러리에 등록된 후 COM의 런타임 환경에서 실행
2.4 HTA 파일
- HTML Application의 약자이며, 확장자로 ".HTA"를 가짐
- 소스 코드가 HTML , 동적 HTML, VBScript, JScript 와 같이 Internet Explorer에서 지원하는 하나 이상의 스크립팅 언어로 구성된 Microsoft Windows 프로그램
- 인터넷 브라우저 보안 모델의 제약 없이 실행되며, "완전히 신뢰할 수 있는" 응용 프로그램으로 실행됨
> 실행 시 실행 경고창이 생성되지 않음
> 신뢰할 수 없는 프로그램을 실행할 수 있고, Powershell을 이용하여 로컬 파일 목록을 획득하거나 랜섬웨어 공격 등에 악용되기도 함
2.4.1 HTML과 HTA 비교
- 아래 계산기를 실행하는 코드를 HTML과 HTA 파일로 만들어 실행해 결과를 비교
> HTML 실행 시 Activex 함수 실행 관련 경고창이 발생할 것으로 예상
> HTA 실행 시 아무런 경고창 없이 실행될 것으로 예상
<html>
<head>
<script language="javascript">
shell = new ActiveXObject("WScript.shell");
shell.Exec('calc.exe');
</script>
</head>
<body>
</body>
</html>
- 예상과 달리 HTML과 HTA 파일 모두 첨부파일 실행 시 경고창이 발생하지 않음
> 엣지, 크롬으로 HTML을 실행해 보았으나, 경고창이 발생하지 않음
> 인터넷 익스플로러에서 HTML를 실행하면 ActivexObject 컨텐츠와 상호작용을 허용이 필요하다는 정보를 찾음
> 하지만, IE에서도 HTML 실행에 대한 경고가 발생하지 않았으며, 이유에 대해서는 아직 잘 모르겠음
- 두 파일의 아이콘과 실행 결과 모두 차이를 보임
> HTML 실행 결과 Activex 함수가 실행되지 않아 계산기 실행이 되지않음
> HTA 실행 결과 Activex 함수가 실행되어 계산기가 실행
3. 공격방식
① 공격자가 OLE2 link object를 포함한 MS Word 문서를 사용자에게 피싱 메일 등으로 전송
② 사용자가 해당 문서를 열람할 경우 URL Moniker에 의해 공격자가 지정한 서버(공격자가 제어 가능한 서버)에 접근
③ 공격자의 서버에서 HTA 파일 형태로 스크립트가 사용자에게 전송
④ HTA 파일 특성 상 경고창 없이 실행되며, HTA 내부에 포함된 Powershell 명령이 실행되어 악성파일 요청
⑤ 요청한 악성파일을 전송 및 실행하여 악성행위 수행
'악성코드 > 분석' 카테고리의 다른 글
악의적인 MS Word RTF File 악성코드 유포 (CVE-2017-0199) #3 (0) | 2023.05.05 |
---|---|
악의적인 MS Word RTF File 악성코드 유포 (CVE-2017-0199) #2 (0) | 2023.04.26 |
BYOVD (Bring Your Own Vulnerable Driver) 기법 (0) | 2023.03.22 |
제로클릭(Zero-Click) (0) | 2023.02.20 |
악성코드와 레지스트리 (1) | 2023.01.08 |