시스코 코리아 블로그

OpenDocument 형식을 이용해 더욱 교묘해진 maldoc

1 min read



서론

Cisco Talos는 최근 공격자들이 일반적인 안티 바이러스 엔진을 우회하고자 사용하는 파일 형식을 바꾸고 있는 것을 관찰했습니다. 다른 파일 형식에서도 이런 일이 벌어질 수 있습니다. 오늘은 안티 바이러스 엔진이 “지나치게 효과적”으로 매크로 기반의 감염 벡터를 탐지한다고 판단한 공격자들이 접근 방식을 어떻게 바꾸고 있는지 살펴보고자 합니다. 일부 Office 애플리케이션에서 OpenDocument(ODT) 파일 형식이 이러한 탐지를 우회하는 데 악용될 수 있다는 사실을 확인했습니다. ODT는 Microsoft Office를 비롯해 이에 상응하는 Apache OpenOffice 및 LibreOffice 소프트웨어에서 사용되는 XML 기반 파일이 포함된 ZIP 아카이브입니다.

 

최근에는 ODT 파일 형식을 이용한 몇 가지 악성 프로그램 공격이 발생했습니다. 안티 바이러스 엔진은 ODT 파일을 표준 아카이브로 보고 Office 문서에 일반적으로 적용하는 규칙을 적용하지 않기 때문에 안티 바이러스 엔진의 탐지를 피할 수 있습니다. 또한 ODT 문서 분석에 실패한 몇 가지 샌드박스를 확인했습니다. 분석에 실패한 이유는 ODT 문서가 아카이브로 간주되어 샌드박스가 Microsoft Office 파일로 문서를 열지 않기 때문입니다.  이러한 이유에서 ODT 파일을 사용하면 공격자가 기존의 안티 바이러스 소프트웨어에서는 일반적으로 차단되던 악성 프로그램을 배포할 수 있습니다.

 

우리는 이러한 파일 형식이 악용된 몇 가지 샘플을 찾아냈습니다. 악성 문서를 이용한 이러한 공격의 대다수에서는 여전히 Microsoft Office 파일 형식이 사용되고 있지만, 이러한 사례들은 앞으로 공격 성공율을 높이기 위해 ODT 파일 형식이 악용될 수 있음을 시사합니다. 이 블로그 게시물에서는 OpenDocument가 악용되는 세 가지 사례에 대해 알아보고자 합니다. 처음 두 개는 Microsoft Office를 표적으로 삼은 사례이고, 세 번째는 OpenOffice 및 LibreOffice 사용자만을 표적으로 삼은 사례입니다. 현재로는 이러한 샘플들이 단순히 테스트용이었는지, 아니면 보다 악의적인 목적에 사용되었는지 확실하지 않습니다.

 

사례 연구 1: OLE 객체 및 HTA 스크립트가 포함된 ODT

첫 번째 공격 사례에서는 임베디드 OLE 객체에서 사용된 악의적 ODT 문서에 대해 살펴보겠습니다. 임베디드 객체를 실행하려면 사용자가 프롬프트를 클릭해야 합니다.  공격자들은 아랍어 사용자와 영어 사용자를 모두 겨냥해 이 방법을 사용한 것으로 보입니다.

두 공격 모두에서 OLE 객체는 HTA 파일을 배포하여 실행했습니다.

두 HTA 스크립트가 top4top[.]net에 위치한 파일을 다운로드했습니다. 이 웹사이트는 아랍어로 된 인기 파일 호스팅 플랫폼입니다.

두 공격 모두에서 RAT(Remote Administrative Tool)를 다운로드했습니다. 아랍어사용자를 대상으로 한 공격에서 확인된 페이로드는 오래된 NJART 악성 프로그램이었습니다. 이 사례에서 C2 서버는 amibas8722[.]ddns[.]net으로 알제리 ISP를 가리켰습니다.

영어사용자를 대상으로 한 공격의 페이로드는 RevengeRAT였고, C2 서버가 포트맵 플랫폼(wh-32248[.]portmap[.]io) 뒤에 숨어 있었습니다. PE는 레지스트리에 저장되어 예약된 작업과 PowerShell 스크립트에서 실행됩니다.

동작 모드는 우리가 앞서 발표했던 모드와 비슷했습니다. 두 사례 모두에서 RAT와 패치가 동일했고, 페이로드가 레지스트리에 저장되었으며, PowerShell 스크립트가 이를 디코딩하여 실행했고, 포트맵 플랫폼은 공격자 인프라의 최종 IP를 숨겼습니다. 이러한 요소들을 토대로 볼 때 두 사례가 동일한 행위자 또는 프레임워크에 의해 연결된다고 어느 정도 확신을 가지고 평가할 수 있습니다.

 

사례 연구 2: OLE 객체 및 임베디드 악성 프로그램이 포함된 ODT

두 번째 사례에서는 ODT 파일에도 OLE 객체가 포함되어 있습니다.

$ unzip -l 80c62c646cce264c08deb02753f619da82b27d9c727e854904b9b7d88e45bf9e

아카이브:  80c62c646cce264c08deb02753f619da82b27d9c727e854904b9b7d88e45bf9e

 

길이      날짜    시간   이름

———  ———- —–   —-

39  1980-01-01 00:00   mimetype

1540  1980-01-01 00:00   settings.xml

805  1980-01-01 00:00   META-INF/manifest.xml

1026  1980-01-01 00:00   meta.xml

491520  1980-01-01 00:00   Object 1

17784  1980-01-01 00:00   ObjectReplacements/Object 1

3354  1980-01-01 00:00   content.xml

6170  1980-01-01 00:00   styles.xml

———                     ——-

522238                     8개 파일

다시 말하지만 ODT 문서에는 사용자 상호 작용이 필요합니다. OLE를 실행하면 피해 시스템에 “Spotify.exe”가 기록되는데, 이는 분명히 합법적인 Spotify 플랫폼 실행 파일이 아닙니다. 이러한 .NET 바이너리는 리소스로 저장된 새 바이너리를 deflate로 압축합니다. 새 PE는 Goliath, babelfor.NET, 9rays 같이 서로 다른 여러 개의 패커로 패킹된 새로운 바이너리입니다.

모든 계층이 언패킹되고 나면 AZORult가 마지막 페이로드가 됩니다. 최종 바이너리에서 이 탈취 악성 코드의 악의적인 문자열을 확인할 수 있습니다.

사례 연구 3: StarOffice Basic이 포함된 ODT

세 번째 공격은 Microsoft Office가 아니라 OpenOffice 및 LibreOffice를 표적으로 삼았다는 것을 확인했습니다. 이 사례에서 공격자들은 StarOffice Basic 오픈 소스 소프트웨어의 Microsoft Office 문서에서 매크로에 해당하는 것을 사용했습니다. StarOffice Basic의 코드는 ODT 아카이브의 Basic/Standard/ 리포지토리에 저장되어 있습니다.

$ unzip -l 525ca043a22901923bac28bb0d74dd57

아카이브:  525ca043a22901923bac28bb0d74dd57

 

길이      날짜    시간   이름

———  ———- —–   —-

0  2019-08-19 12:53   Thumbnails/

728  2019-08-19 12:52   Thumbnails/thumbnail.png

10843  2019-08-19 12:52   styles.xml

0  2019-08-19 12:53   Basic/

0  2019-08-19 13:22   Basic/Standard/

1317  2019-08-19 13:00   Basic/Standard/Module1.xml

348  2019-08-19 12:52   Basic/Standard/script-lb.xml

338  2019-08-19 12:52   Basic/script-lc.xml

8539  2019-08-19 12:52   settings.xml

0  2019-08-19 12:53   Configurations2/

0  2019-08-19 12:53   Configurations2/accelerator/

0  2019-08-19 12:52   Configurations2/accelerator/current.xml

0  2019-08-19 12:53   META-INF/

1390  2019-08-19 12:52   META-INF/manifest.xml

899  2019-08-19 12:52   manifest.rdf

1050  2019-08-19 오후 12:52   meta.xml

39  2019-08-19 오후 12:52   mimetype

3297  2019-08-19 오후 12:52   content.xml

———                     ——-

28788                     18개 파일

아래에 예제가 나와 있습니다.

코드가 다운로드되고 “plink”라는 바이너리를 실행합니다. 소프트웨어에서 SSH 통신이 생성됩니다. IP는 로컬 네트워크 IP로 인터넷에서 사용할 수 있는 IP가 아닙니다. 우리가 확인한 다른 문서들은 로컬 네트워크에서 실행 파일을 다운로드한다는 점에서 흥미로운 부분입니다. 이것이 테스트용인지, 모의 침투 테스트를 위한 프레임워크인지, 아니면 특정 맥락에서 사용되었는지 아직은 확실하지 않습니다. 다만, 행위자가 이미 공격을 받은 환경 내에서 추가적으로 내부 확산(lateral movement)을 감행하는 데 이를 악용할 가능성이 있습니다.

 

Metasploit 페이로드를 다운로드하려는 시도가 확인되었습니다.

마지막으로 다운로드된 페이로드를 실행하기 위해 WMI를 사용하는 등 더욱 난독화된 버전이 있습니다.

이러한 샘플들은 OpenOffice 및 StarOffice 사용자를 표적으로 합니다. 하지만 여전히 이러한 문서가 배포된 최종 페이로드나 맥락은 알지 못하는 상태입니다.

 

결론

Microsoft Office는 자주 공격을 받는 플랫폼으로, 가장 인기 있는 생산성 제품군으로 간주되고 있습니다. 이러한 이유에서 Microsoft Windows 운영 체제와 마찬가지로 위협 행위자들의 주 표적이 되고 있습니다.

알려진 플랫폼을 공격하면 시스템에 대한 액세스 권한을 얻을 가능성이 높아집니다. 그리고 ODT 파일 형식을 사용하면 행위자에게 다른 감염 메커니즘을 시도해 볼 기회를 줄 수 있습니다. 즉, ODT 문서가 감염율이 높은지, 아니면 탐지를 회피하기에 적합한지를 시험해 볼 수 있습니다. 앞서 지적했듯이 일부 안티 바이러스 엔진과 샌드박스는 적절한 방법을 통해 이러한 파일 형식을 처리하지 않기 때문에 이들을 “놓치는” 경우가 발생할 수 있습니다. 소프트웨어에서 이러한 부분들은 탐지율이 낮기 때문에 적절하게 사용하지 않으면 공격 성공율을 높일 수 있습니다. 덜 사용되는 파일 형식을 사용하면 특정 대상을 표적으로 하는 공격이 증가할 수 있습니다. 여기에 OSINT를 결합하면 LibreOffice 공개 마이그레이션 페이지를 참조하여 LibreOffice 형식을 사용하기 시작한 사람이 누구인지 공격자가 알아낼 수 있습니다. OSINT는 소프트웨어에서 활용도를 보여주기 좋은 기능이지만, 한편으로 소프트웨어를 실행 중인 인프라와 관련해 귀중한 정보를 남깁니다.

 

대응

SNORT® 같은 침입 방지 시스템은 각 명령 끝에 특정한 서명을 붙여서 Tortoiseshell의 활동을 탐지할 수 있는 효과적인 도구를 제공합니다. 침입 방지 시스템 외에도 Cisco AMP for Endpoints 같이 사용자가 프로세스 호출을 추적하고 프로세스를 검사할 수 있게 해주는 EDR(Endpoint Detection and Response) 도구를 사용할 것을 권합니다. 여기에서 무료로 AMP를 체험해보세요.

고객이 위협을 탐지하고 차단하는 데 유용한 기타 솔루션은 다음과 같습니다.

Cisco Cloud Web Security(CWS) 또는 Web Security Appliance(WSA) 웹 검사 솔루션은 악성 웹사이트에 대한 접속을 방지하고 이 공격 수법에 사용되는 악성 프로그램을 탐지합니다.

Email Security는 해커가 공격의 일환으로 보낸 악성 이메일을 차단할 수 있습니다.

Next-Generation Firewall(NGFW), Next-Generation Intrusion Prevention System(NGIPS),  Meraki MX 같은 네트워크 보안 어플라이언스는 이런 위협과 연계된 악의적 활동을 탐지할 수 있습니다.

AMP Threat Grid는 악성 바이너리를 식별하고 모든 Cisco 보안 제품에 보호 기능을 구축하는 데 효과적입니다.

Talos의 인터넷 보안 게이트웨이(SIG)인 Umbrella는 사용자가 회사 네트워크 안팎에서 악성 도메인, IP 및 URL에 연결하는 것을 방지합니다.

Open Source SNORTⓇ Subscriber Rule Set 고객은 Snort.org에서 최신 룰 팩을 구매해 다운로드함으로써 최신 상태를 유지할 수 있습니다.

 

IOC

 

사례 1

ODT 문서:

de8e85328b1911084455e7dc78b18fd1c6f84366a23eaa273be7fbe4488613dd

f24c6a56273163595197c68abeab7f18e4e2bedd6213892d83cdb7a191ff9900

 

PE:

02000ddf92ceb363760acc1d06b7cd1f05be7a1ca6df68586e77cf65f4c6963e

19027327329e2314b506d9f44b6871f2613b8bb72aa831004e6be873bdb1175d

 

C2 서버:

wh-32248[.]portmap[.]io

amibas8722[.]ddns[.]net

 

Payload storage:

top4top[.]net

 

Case #2

ODT 문서: 80c62c646cce264c08deb02753f619da82b27d9c727e854904b9b7d88e45bf9e

PE: 20919e87d52b1609bc35d939695405212b8ca540e50ce8bece01a9fccfa70169

 

사례 3

2f4aa28974486152092669c85d75232098d32446adefeeef3a94ad4c58af0fc8

d099eac776eabf48f55a75eb863ad539a546202da02720aa83d88308be3ce4ca

84cb192cc6416b20293dfb8c621267e1584815a188b67757fa0d1af29a7cfdcd

b2b51864fa2f80f8edbdaf6721a6780e15a30291a748c2dfc52d574de0d8c3ed

f9138756639104e2c392b085cc5a98b1db77f0ed6e3b79eacac9899001ed7116

efb81fb8095319f5ee6fd4d6741b80386a824b9df05460d16d22cad1d6bbb35d

f5194cc197d98ed9078cceca223e294c5ec873b86cbeff92eb9eaca17fc90584

429d270195bed378495349cf066aee649fd1c8c450530d896844b1692ddddc77

 

댓글 쓰기