상세 컨텐츠

본문 제목

디지털 서명 검증을 우회하는 MS Word 변조 악성코드 주의 (CVE-2013-3900)

악성코드 분석 리포트

by 알약4 2026. 6. 1. 17:39

본문

[이미지] 생성형 AI 제작

 

 

이스트시큐리티 대응센터(ESRC)에서 운영 중인 TDS(Threat Detection System) 이메일 모니터링 시스템을 통해, 정상 서명된 Microsoft Word 실행 파일로 위장하여 보안 솔루션의 신뢰 검증을 우회하는 정교한 다단계 로더 악성코드가 확인되었습니다.

 

이번 악성코드는 저작권 침해를 경고하는 피싱 메일을 통해 유포되었으며, 정상적으로 서명된 Microsoft Word 파일을 변조했음에도 Windows가 이를 여전히 "정상 Microsoft 파일"로 인식하게 만드는 오래된 취약점(CVE-2013-3900) 을 악용한 것이 특징입니다.

 

[그림 1] TDS 이메일 모니터링 시스템에서 탐지된 피싱 메일 화면

 

개요 및 유입 경로

 

공격자는 국내 여행사를 사칭해 ‘저작권 침해 콘텐츠 제거 요청’ 이라는 제목의 피싱메일을 유포하였으며 메일 본문에는 "무단 전시 파일.pdf"로 위장한 미끼 문구와 함께 침해 증빙 자료를 확인하라는 링크가 포함되어 있습니다. 

 

[그림 2] 저작권 침해 사칭 피싱 메일

 

사용자가 PDF 파일을 확인하기 위해 링크를 클릭하면, 정상 클라우드 서비스인 구글 사이트에 공격자가 미리 제작해 둔 피싱 페이지로 접속되며, "Let's do a quick security check"라는 문구와 함께 가짜 CAPTCHA("I'm not a robot") 화면이 표시됩니다.

 

이는 사용자로 하여금 '정상적인 보안 확인 과정'이라고 믿게 만들어 의심을 피하는 동시에, 신뢰도 높은 정상 서비스를 경유지로 악용해 URL 차단과 평판 기반 탐지를 회피하기 위한 수법입니다.

 

사용자가 정상 CAPTCHA 화면으로 오인해 체크박스를 클릭하게 되면 ‘저작권 침해 증빙자료.zip’압축파일이 다운로드 됩니다.

 

[그림 3] 가짜 CAPTCHA 통과 후 다운로드되는 ZIP 파일

 

해당 압축파일에는 파일명에 긴 공백을 넣어 위장한 EXE 실행파일만 존재하는 것으로 보이나 윈도우 탐색기 메뉴의 ‘숨김 항목’ 옵션이 설정된 상태에서는 DLL파일과 TMP파일이 추가로 확인됩니다.

숨김 항목 옵션이 설정되어 있지 않다면 문서파일로 위장한 실행 파일만 표시되므로 사용자가 무심코 실행하기 쉽게 만들었습니다.

 

또한 더미데이터로 이루어진 TMP파일을 통해 압축파일 사이즈(200MB)를 일정하게 유지하여 대용량 파일 검사를 회피한 것으로 추정됩니다.

[그림 4] 저작권 침해 증빙자료.zip 내부 파일 (숨김항목 미체크- 좌 / 숨김항목 체크 - 우)

 

해당 실행 파일은 정상 Microsoft Word(WinWord.exe)파일을 변조한 것으로  공격자는 실행 코드 부분은 그대로 두고 디지털 서명 영역에만 악성 페이로드를 은닉했으며, 그 결과 변조된 파일임에도 정품 디지털 서명이 유효하게 유지하게 됩니다. 

[그림 5] 변조된 WinWord.exe 파일

 

공격 흐름

 

공격은 [저작권 침해 증빙 자료.docx.exe(WinWord.exe) 사용자 실행 → 악성 DLL 자동 로드 → 지속성 등록 → 페이로드 복호화 및 주입 → 최종 악성 모듈 실행 및 C2 통신]의 다단계로 진행됩니다. 

 

1단계 - 변조된 Word 파일에 악성 페이로드 은닉

공격자는 정상 Microsoft Word 파일의 디지털 서명 영역에 암호화된 악성 페이로드를 은닉했습니다.
일반적으로 파일을 변조하면 디지털 서명이 깨져 경고가 표시되지만, 이 파일은 변조 후에도  CVE-2013-3900 취약점을 때문에 "Microsoft Corporation 서명됨, 유효"로 표시됩니다. 

💡 참고하세요

CVE-2013-3900 취약점 이란?
Windows는 PE 파일(실행 파일·DLL)의 무결성과 발행자를 Authenticode 서명으로 검증합니다. 이때 서명 정보는 파일 끝의 인증서 테이블(WIN_CERTIFICATE 구조, PKCS#7 형식)에 저장되는데, WinVerifyTrust 함수가 서명 해시를 계산할 때 이 인증서 테이블 영역은 해시 산정 범위에서 제외됩니다. CVE-2013-3900은 이 구조적 특성을 악용하는 결함으로, 공격자가 정상 PKCS#7 서명 데이터 뒤의 잉여 공간에 임의 데이터를 삽입해도 서명 해시가 변하지 않아 서명이 유효한 상태로 유지됩니다. Microsoft는 MS13-098 보안 게시판을 통해 인증서 패딩을 엄격히 검사하는 보완책(레지스트리 키 EnableCertPaddingCheck)을 제공했으나, 정상 설치 프로그램과의 호환성 문제로 옵트인(기본 비활성화) 상태로 남겨두어 현재까지도 악용이 가능합니다.

이 취약점 자체는 코드를 실행시키는 결함이 아니나, 변조된 파일이 정상 Microsoft 서명을 유지하도록 만들어, 서명 검증(Get-AuthenticodeSignature), SmartScreen 평판, AppLocker·WDAC의 게시자(Publisher) 기반 허용 정책, EDR의 변조 바이너리 탐지 등 코드 사이닝 신뢰 모델에 기반한 보안 통제를 우회하도록 만드는 역할을 합니다.  실제 코드 실행은 이후 단계의 DLL 사이드로딩과 프로세스 할로잉으로 이루어지며, 두 메커니즘은 서로 독립적입니다.

2단계 - DLL 사이드로딩으로 악성 DLL 실행

사용자가 변조된 Word 파일을 실행하면, 동일 폴더에 위치한 msvcr100.dll 파일이 사이드로딩 기법을 통해 로드되어 실행됩니다. 

💡 참고하세요

DLL 사이드로딩(Sideloading)이란?
Windows의 DLL 검색 순서(DLL Search Order)를 악용하는 공격 기법으로 프로그램 실행 시 필요한 DLL을 찾기 위해 여러 경로를 검색하는데, 정상 프로그램과 동일한 경로내 악성 DLL 파일을 위치시켜 악성 DLL 파일이 먼저 로드되도록 조작하는 방식입니다.

이 악성 DLL 파일은 실행 시 시스템 물리 메모리가 3GB 이하이면 분석용 가상 환경으로 판단하여 즉시 종료하고, 약 315초(5분15초)간 대기(sleep)하여 단기간만 동작하는 자동 분석 샌드박스를 회피합니다. 

 

3단계 - 지속성 등록
악성 DLL파일은 재부팅 이후에도 동작을 지속하기 위해 시스템에 자신을 등록합니다.
먼저 %APPDATA%\Microsoft\UpdateServices\ 폴더를 생성하고 변조된 Word 파일과 악성 DLL파일 복사본을 드롭한 뒤, 다음과 같은 두 가지 자동 실행 수단을 등록합니다. 

  • 레지스트리 Run 키
    HKCU\Software\Microsoft\Windows\CurrentVersion\Run 경로에 WindowsUpdateCore 값을 추가하여, 사용자가 로그인할 때마다 자동 실행되도록 합니다. 
  • 작업 스케줄러
    schtasks 명령으로 WindowsUpdateCore라는 이름의 작업을 생성하되 트리거를 ONLOGON으로 지정하여, 사용자가 로그온할 때마다 위장된 실행 파일이 실행되도록 합니다. 

[그림 6] 레지스트리 및 작업스케줄러 등록 화면

 

두 수단을 병행하여 한쪽이 제거되더라도 다른 한쪽으로 실행을 유지하며, 폴더와 등록 항목 모두 Windows 업데이트 구성요소로 위장한 명칭을 사용하여 사용자와 관리자의 식별을 어렵게 합니다.

 

4단계 - 페이로드 복호화 및 정상 프로세스 주입

악성 DLL파일이 실행되면 실행 중인 호스트 프로세스(WinWord.exe)의 경로를 확인한 뒤, 해당 파일의 인증서 영역에서 SIGI 표식을 검색하여 은닉된 페이로드를 추출합니다. 페이로드는 AES-128-CBC로 복호화한 결과를 다시 16바이트 롤링 XOR로 푸는 2단계 복호화 과정을 거쳐 정상 윈도우 프로세스인 cvtres.exe를 통해 프로세스 할로잉기법으로 실행됩니다.

💡 참고하세요

프로세스 할로잉(Process Hollowing)이란?
정상 프로그램을 일시 정지(suspended) 상태로 생성한 뒤, 그 프로세스의 메모리 이미지를 악성 코드로 교체하고 실행을 재개시키는 코드 인젝션 기법입니다. 외부에서는 정상 서명 프로세스(cvtres.exe)가 동작하는 것으로 보이지만 실제로는 그 내부에서 악성 코드가 실행되므로, 디스크에 악성 파일이 남지 않고(파일리스) 프로세스 단위 신뢰 기반 탐지도 우회됩니다. 

[그림 7] 인증서 영역에서 확인된 SIGI 표식

 

5단계 - 최종 악성 모듈 실행 및 C2 통신

악성 DLL파일에 의해 실행된 페이로드는 내부의 압축 및 암호화된 코드를 복호화하여 최종 악성 모듈을 메모리에서 실행합니다. 

해당 모듈은 분석결과 다음과 같은 기능이 확인되어 원격 제어 및 정보 탈취 기능을 가진 RAT(Remote Access Trojan, 원격 액세스 트로이 목마) 악성코드로 추정됩니다. 

  • TLS 기반 암호화 소켓을 통한 C2 통신
  • 다중 모니터 화면 캡처
  • WMI를 이용한 시스템 및 하드웨어 정보 수집
  • 파일 시스템 탐색 및 수집(스틸러)
  • 활성 창 제목 추적 및 사용자 입력 유휴 시간 측정을 통한 키로깅
  • 관리자 권한 확인
  • Reflection.Emit을 이용한 추가 코드의 런타임 동적 실행

또한 분석 과정에서 해당 모듈이 C2 서버로부터 추가 모듈을 다운로드해 레지스트리에 저장(1차 Byte_Reverse, 2차 Gzip 난독화)하는 동작도 포착되었습니다. 이는 다운로드된 모듈을 재사용하기 위한 조치로 보이며, 공격자는 이를 통해 감염 시스템의 기능을 확장하거나 공격 명령을 지속적으로 갱신할 수 있습니다. 

레지스트리에 저장된 항목은 각각 PluginBotKiller.dll, PluginPcOption.dll 파일명을 가지고 있습니다.

 

[그림 8] C2로부터 다운로드 되어 레지스트리에 저장된 바이너리 모듈

 

공격 특징 

 

이번 공격에서 확인된 취약점(CVE-2013-3900)은 시스템을 직접 침투하는 용도가 아니라, 정상 기능과 정상 파일을 결합하여 보안 솔루션의 신뢰 기반 검증을 무력화하는 방식으로 사용되었으며, 공격 특징은 다음과 같습니다.

  • 사회공학: 저작권 침해 사칭 메일, 가짜 CAPTCHA, 이중 확장자 트릭으로 사용자의 직접 실행을 유도
  • 신뢰 검증 우회: 정상 서명된 Microsoft 파일을 CVE-2013-3900 취약점을 악용해 변조하면서도 정품 서명을 유효하게 유지하여 신뢰 기반 검증을 우회
  • 정상 기능 악용: DLL 사이드로딩과 프로세스 할로잉으로 정상 프로그램 뒤에서 실행
  • 위장된 지속성: Windows 업데이트로 위장한 폴더 및 이름으로 재부팅 후에도 생존

페이로드를 식별하는 SIGI 표식은 현재까지 공개된 위협 정보에 등재되지 않은 신규 시그니처로 확인되며, 전체적인 공격 방식은 기존에 알려진 다단계 로더 공격 사례와 유사합니다.

 

결론 및 대응 방안

 

이번 공격은 정상 서명된 파일은 안전하다는 통념을 노린 사례로, 디지털 서명이 정상으로 표시되더라도 파일의 출처와 실행 경로를 함께 확인해야 합니다.


피해를 예방하기 위해서는 출처가 불분명한 메일의 링크 클릭과 첨부파일 실행을 삼가해야 하며, 특히 저작권·법무 등 압박감을 주는 내용의 메일에 주의하시기 바랍니다.

또한 평소 Windows 탐색기에서 "알려진 파일 형식의 파일 확장명 숨기기" 옵션과 "숨김 파일, 폴더 및 드라이브 표시 안 함" 옵션을 모두 해제하여 이중확장자를 가지거나 출처가 확인되지 않은 숨김 속성의 파일을 실행하지 않도록 유의하시기 바랍니다.

 

 

IoC

Indicator Type Description Detection Name
6CC1EAD08ADD4F967370FF1D6D07F9E1 MD5 변조된 WinWord.exe Exploit.CVE-2013-3900
C4C6B65C8D32B27B737E7E95ECC00D69 MD5 악성 DLL 파일 Trojan.Loader.Agent
104.37.173.244:56001 ~ 003 IP C2  
WUCorePayload_4A8F   Mutex create  
Ethatqehl   Mutex create  

 

 

관련글 더보기

댓글 영역