This post is also available in: English (영어) 繁體中文 (중국어 번체) Nederlands (화란어) Deutsch (독어) Italiano (이태리어) Español (스페인어) Türkçe (터어키어)
우리는 대부분 일하면서 Microsoft Office 문서를 사용해야 합니다. 업무용 문서, 전자 영수증, 임대차 계약서 등 다양한 Office 문서가 일상생활과 직장에서 사용되기 때문에 이메일에 첨부되는 Office 문서를 아무 생각 없이 열어볼 확률도 그만큼 높습니다. 공격자들은 이렇게 많은 사람이 거의 모든 Office 문서를 열어볼 것임을 알고 있으므로 이를 악용하여 공격하는 경우가 많습니다.
본 온라인 위협 정보에서는 공격자들이 Office 문서를 악용하여 Windows 엔드포인트를 공격하고 손상시키는 다섯 가지 방식에 대해 설명합니다. 일부는 이전에 이미 소개한 내용일 수 있으며, 새로운 것도 있습니다.
매크로
매크로는 공격자들이 Office 문서를 무기로 활용하는 가장 직관적인 방법입니다. Office 애플리케이션에는 VBA(Visual Basic for Applications) 스크립트를 실행할 수 있는 빌트인 스크립트 엔진이 있습니다. 이러한 스크립트는 사용자가 예전에 매크로를 활성화한 경우 아무런 작업을 하지 않아도 문서가 열리는 즉시 작동하여 시스템에서 악성 코드를 실행합니다. 매크로가 활성화되어 있지 않은 경우 팝업 창이 열려 매크로를 활성화할 것인지 묻습니다. 이 팝업은 Microsoft에서 매크로에 의한 보안 위협을 완화하기 위해 추가한 보안 메커니즘 중 하나입니다. 또한, Microsoft는 매크로가 들어 있는 문서를 새로 만들 시 .docx가 아닌 .docm과 같은 파일 확장자를 강제로 사용하도록 만들기도 합니다. 이러한 조치에도 불구하고, 사용자들은 아무 생각 없이 이런 파일을 열고 콘텐츠를 활성화하여 매크로가 일반적인 공격 벡터로 작용하게 합니다. 이로 인해 Emotet과 같은 단순 광역 공격뿐 아니라 Sofacy campaign과 같은 복잡한 공격이 가능해집니다.
그림 1. 콘텐츠가 활성화되기 전과 후의 Sofacy 문서
여기서 볼 수 있듯이, 공격자들은 전체 문서를 보려면 콘텐츠를 활성화해야 한다는 속임수와 같은 사회공학적 수법을 써서 Microsoft가 추가한 보안 메커니즘을 사용자가 직접 비활성화하게 만듦으로써 공격을 시도합니다. Sofacy의 경우, 공격자가 글꼴을 흰색으로 설정하기만 하면 사용자가 매크로를 활성화할 필요도 없습니다.
임베드된 Flash 파일
Office 문서에는 매크로와 같은 빌트인 기능 외에도 Adobe Flash 파일과 같은 외부 오브젝트를 포함시킬 수 있습니다. 이러한 오브젝트는 해당하는 소프트웨어를 통해 전달되기 때문에 Office 문서 안의 Adobe Flash 콘텐츠로 이 소프트웨어의 취약점을 이용하여 공격을 실행할 수 있습니다. 이러한 공격 벡터의 예로는 Excel 문서에 SWF 파일을 포함시켜서 실행하는 Adobe Flash 제로 데이(Zero-Day) 공격인CVE-2018-4878이 있습니다. 이러한 유형의 공격에서는 Flash의 취약점을 작동시키고 임베드된 셸코드를 실행하는 Adobe Flash 콘텐츠가 임베드된 악성 Excel 파일을 사용합니다.
Microsoft 수식 편집기
Adobe Flash 파일을 Office 문서에 임베드하는 것과 유사하게, 수학 공식을 쉽게 작성할 수 있도록 도와주는 Microsoft 수식 편집기가 구문 분석하는 공식을 문서에 임베드할 수도 있습니다.
그림 2. Microsoft 수식 편집기
이 경우 악성 Office 문서를 통해 수식 편집기의 취약점을 악용하게 됩니다. 이러한 공격은 CVE-2017-11882 및 CVE-2018-0802 익스플로잇과 같이 가장 최근에 발생한 것으로, 공격자가 수식 편집기의 버그를 이용하여 Office 문서를 여는 사용자를 통해 원격 코드를 실행할 수 있게 됩니다. 아직 공식적으로 확인되지는 않았지만, Unit 42의 연구원들은 CVE-2018-0807 및 CVE-2018-0798과 같이 Microsoft 수식 편집기를 유사하게 악용하는 익스플로잇을 발견하기도 했습니다.
참고로 Microsoft 수식 편집기는 eqnedt32.exe라는 독립적인 프로세스로 실행되기 때문에 winword.exe 등의 Microsoft Office 프로세스에 대한 EMET 및 Windows Defender Exploit Guard와 같은 전용 보호 소프트웨어가 기본적으로 적용되지 않습니다.
OLE 오브젝트 및 HTA 핸들러
OLE 오브젝트와 HTA 핸들러는 Office 문서에서 다른 문서를 참조할 시에 사용하는 메커니즘입니다. 이를 이용하여 다음과 같이 엔드포인트를 손상시킬 수 있습니다.
- Microsoft Word 문서에 OLE2 임베디드 링크 오브젝트에 임베드됩니다.
- 이 문서가 열리면 Word 프로세스(winword.exe)가 HTTP 요청을 원격 서버로 보내서 악성 스크립트가 담긴 HTA 파일을 가져옵니다.
- 그리고exe는 COM 오브젝트를 통해 애플리케이션/HTA에 대한 파일 핸들러를 찾고, 이로 인해 Microsoft HTA 애플리케이션(mshta.exe)이 악성 코드를 로드하고 실행합니다.
이러한 기능은 2017년 9월에 Microsoft가 패치한 Office/WordPad 원격 코드 실행(RCE) 취약점을 공격하는 CVE-2017-0199 익스플로잇을 비롯하여 OilRig campaign과 같은 공격에서도 사용되었습니다.
그림 3. RTF 파일은 언뜻 보기에 일반 Word 문서와 전혀 차이가 없습니다.
OLE & HTA 익스플로잇 외에도 공격자들은 RTF 파일 역시 MSHTML을 이용하여 ‘text/html’ mime 형식 OLE 오브젝트를 실행할 수 있다는 점을 알아냈습니다. 즉, RTF 문서도 Internet Explorer와 동일한 공격 표면을 노출할 수 있는 것입니다!
공격자는 CVE-2018-8174라고 알려진 이러한 논리적 취약점을 통해 임의의 HTML/JavaScript/VBScript를 실행할 수 있습니다. 이렇게 실행한 코드는 Internet Explorer에서 실행되는 다른 코드와 같이 새로운 프로세스를 구동하거나 파일 시스템에 내용을 추가할 수 없도록 “샌드박스”화 되며, 이를 이용하여 VBAScript 엔진의 메모리 손상 UAF 취약점 등의 약점을 통해 Word 애플리케이션(Word.exe)에서 임의의 코드를 실행함으로써 시스템을 장악하게 됩니다.
결론
문서 기반 공격은 오랫동안 일반적인 방식이었지만 최근에는 그 복잡성과 빈도가 증가하고 있습니다. 이러한 증가는 브라우저 개발사들의 보안 조치로 인해 브라우저를 통한 공격이 어려워진 결과이기도 합니다. 이유를 불문하고, 이러한 일반적인 기법을 막아내는 방법을 파악하는 것이 중요합니다.
선제 방어
Palo Alto Networks Traps는 다양한 멀웨어 및 익스플로잇을 막아내어 이러한 공격을 예방할 수 있습니다.
- 매크로 검사 - Traps는 모든 Office 문서에서 WildFire 위협 정보 클라우드 및 로컬 머신 러닝 기반 기능을 통해 악성 매크로를 검사하며 사용자가 악성 파일을 아예 열지 못하도록 방지합니다.
- 익스플로잇 예방 - Traps는 광범위한 익스플로잇 예방 기능을 통해 악성 셸코드를 공격 대상 엔드포인트에서 실행하지 못하도록 방지할 수 있습니다.
- 또한, Traps는 기본적으로 Office 애플리케이션을 모니터링함으로써 정상적인 빌트인 프로세스를 악성 공격에 이용하지 못하도록 막아줍니다.