취약점 정보

MS Office CVE-2017-11826 취약점 보안패치 권고

TACHYON & ISARC 2017. 11. 24. 11:07

MS Office CVE-2017-11826 취약점 보안패치 권고




1. 개요 


최근, 한 보안 회사에 의해 메모리 손상 취약점을 악용하는 제로 데이 취약점이 발견되었다. 제로 데이 취약점이란 소프트웨어의 취약한 곳을 발견하여 패치가 이루어지지 않는 시점에 공격하는 것을 뜻한다.


해당 취약점은 2017년 10월 10일에 공개되었으며 DOCX 문서가 포함된 RTF 문서의 Office Open XML 파서에서 메모리 손상 취약점이 발생하여 임의의 코드를 실행할 수 있어 사용자들의 최신 보안 패치가 필요하다.


이번 보고서에서는 ‘CVE-2017-11826’ 취약점에 대해서 알아보고자 한다. 


[그림 1] 취약점 공개 내용[그림 1] 취약점 공개 내용





2. 취약점 번호 : CVE-2017-11826


2-1. 버전 정보


영향 받는 버전

l  Microsoft Word Automation Services 0

l  Microsoft Word 2016 (64-bit edition) 0

l  Microsoft Word 2016 (32-bit edition) 0

l  Microsoft Word 2013 Service Pack 1 (64-bit editions)

l  Microsoft Word 2013 Service Pack 1 (32-bit editions)

l  Microsoft Word 2013 RT Service Pack 1 0

l  Microsoft Word 2010 Service Pack 2 (64-bit editions) 0

l  Microsoft Word 2010 Service Pack 2 (32-bit editions) 0

l  Microsoft Word 2007 SP3

l  Microsoft SharePoint Enterprise Server 2016 0

l  Microsoft Office Word Viewer 0

l  Microsoft Office Web Apps Server 2013 SP1

l  Microsoft Office Web Apps Server 2010 Service Pack 2

l  Microsoft Office Online Server 2016 0

l  Microsoft Office Compatibility Pack SP3

 





3. DDE 기능


3-1. DEP 우회

첫번째 Object는 CLASSID = “D5DE8D20-5BB8-11D1-A1E3-00A0C90F2731” 를 이용하여 “C:\Windows\system32\msvbvm60.dll” 을 로드 한다. 이는 해당 DLL을 통하여 ASLR과 DEP를 우회하기 위한 목적으로 사용된다.


[그림 2] ‘msvbvm60.dll’ 로드[그림 2] ‘msvbvm60.dll’ 로드


[그림 2] ‘msvbvm60.dll’ 로드[그림 2] ‘msvbvm60.dll’ 로드



3-2. 힙 스프레이

두번째 Object는 ActiveX.bin 기법을 이용하여 힙 스프레이를 하는 docx 파일이다. 해당 docx 파일 내부의 문서파일 형태의 activeX1.bin 파일을 메모리에 적제하도록 한다. 이 과정은 힙 스프레이를 통하여 특정 주소로 이동하기 위해 활용된다. 


[그림 3] 힙 스프레이[그림 3] 힙 스프레이



3-3. 메모리 손상

세 번째 Object는 실제 메모리 손상 취약점을 일으키는 역할을 하는 docx 파일이다.


본문 내용 중 아래 [그림 4] 와 같이 시작 태그 <w:font> 와 종료 태그 <o:idmap/> 를 다르게 사용함으로써 OOXML 파서에서 “유형 혼동”을 유발하도록 만든다.


[그림 4] 태그 오류[그림 4] 태그 오류


유형 혼동이 발생되는 태그 내의 폰트 명에 비정상적인 값이 들어가 있으며, 해당 값은 UTF-8에서 Unicode로 변환되면서, E8 A3 AC E0 A2 88 -> EC 88 88 08로 변환 된다


[그림 5] 주소 변환[그림 5] 주소 변환


변환 된 값은 힙 스프레이를 통하여 적재 된 activeX1.bin파일 내의 메모리 주소에 접근하여 특정 값을 읽어온다.


전달받은 값은 ASLR이 우회되어 Base Image Address에 로드 된 msvbvm60.dll의 특정 주소로 점프 한 후 ROP(Return Oriented Programming)를 이용하여 DEP를 우회 한다.


[그림 6] DEP 우회[그림 6] DEP 우회


그리고 msvbvm60.dll IMPORT 테이블의 특정 API 주소를 호출하여 실행 권한을 획득하도록 만든 뒤 악성 ShellCode를 실행한다. ShellCode가 실행되면 하기의 경로에 추가적으로 DLL 파일을 드롭 한다.

 

‘C:\Users\사용자계정\AppData\Roaming\Microsoft\Word\Startup\..wll’


[그림 7] DLL 파일 드롭[그림 7] DLL 파일 드롭


해당 폴더에 파일이 존재 한다면 Add-in 기능으로 word 파일을 실행 시 [그림 7]에서 드롭 된 DLL 파일을 함께 로드 하여 실행된다. 실행 된 DLL파일은 사용자 PC정보를 수집하여 공격자 서버로 전송하며 또한 추가적으로 악성코드 다운로드를 시도하는 것으로 확인된다.


[그림 8] 로드 된 드롭 파일[그림 8] 로드 된 드롭 파일


악성코드 동작 이외에도, 다음과 같이 미얀마어로 작성 되어진 문서 파일을 확인할 수 있다.


[그림 9] 미얀마어로 작성되어 있는 문서 내용[그림 9] 미얀마어로 작성되어 있는 문서 내용


 




4. 결 론


이번 보고서에서 알아 본 'CVE-2017-11826' 취약점은 일반적으로 많은 사용자들이 사용하고 있는 MS Office의 취약점을 악용 하였기 때문에 사용자 입장에서 악성코드를 인지하기 쉽지 않을 것으로 보여진다. 물론 이에 대한 해결책으로 MS에서 제공하는 최신 보안 패치가 제공되고 있지만 업데이트를 하지 않은 사용자 같은 경우 사용자 정보 탈취 뿐만 아니라 추가 피해로 이어질 수 있기 때문에 출처가 불분명한 링크나 첨부된 파일을 함부로 열어 보아서는 안되며 조속히 보안패치를 할 것을 권고한다. 

아래 링크에 접속하면 해당 취약점에 대한 윈도우 보안 업데이트를 진행할 수 있다.

https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2017-11826