cd ../blog
MITRE

VBA 매크로 악성코드: Office 문서가 무기가 되는 원리 | T1059.005

읽는 시간 약 8분
조회수 14
MITRE ATT&CK악성코드 분석사이버 위협Office 보안APT 공격

VBA 매크로 악성코드가 2021년 Kimsuky 공격에 사용된 이유와 실제 사례를 분석합니다. Windows 기본 도구로 실행되는 T1059.005 기법의 탐지 방법과 방어 전략을 학습하세요.

share:
VBA 매크로 악성코드: Office 문서가 무기가 되는 원리 | T1059.005

MITRE ATT&CK: T1059.005 (Visual Basic) | 전술: Execution | 플랫폼: Windows

도입: 왜 이 공격이 중요한가

2021년, 북한 해킹 그룹 Kimsuky가 한국의 지정학 및 항공우주 연구기관을 대상으로 공격을 수행했을 때, 그들이 선택한 무기는 바로 VBA 매크로가 삽입된 악성 Office 문서였습니다. 평범해 보이는 Word 문서에 숨겨진 매크로 하나가 조직의 민감한 연구 자료를 탈취하는 시작점이 된 것입니다.

Visual Basic(VB)은 Microsoft에서 개발한 프로그래밍 언어로, VBA(Visual Basic for Applications), VBScript 등의 파생 언어들과 함께 Windows 환경에서 광범위하게 사용됩니다. 공격자들은 이러한 VB 계열 언어들을 악용해 악성 코드를 실행하고, 시스템을 장악합니다.

💡 쉬운 비유: Visual Basic은 Office 문서에 숨겨진 '자동 실행 버튼'과 같습니다. 원래는 반복 작업을 자동화하려고 만들어졌지만, 공격자가 이 버튼에 악성 명령을 연결하면 문서를 여는 순간 감염이 시작됩니다.


1. 공격자 관점

왜 이 기법을 사용하는가

  • 기본 설치: Windows와 Office에 기본적으로 포함되어 있어 별도 설치 없이 바로 사용 가능
  • 높은 권한: COM 객체와 Windows API에 직접 접근하여 시스템 깊숙한 곳까지 조작 가능
  • 낮은 의심도: 정상적인 업무용 스크립트로 위장하기 쉬워 보안 솔루션의 탐지를 우회

동작 흐름

공격자는 먼저 VBA 매크로가 포함된 악성 Office 문서를 이메일로 전송합니다. 피해자가 문서를 열고 매크로 실행을 허용하면, VBA 스크립트가 PowerShell이나 다른 시스템 도구를 호출해 추가 악성코드를 다운로드하고 실행합니다.


2. 실제 공격 사례

📌 Kimsuky - Blogspot 악용 VBA 매크로 공격 (2021)

배경: 북한 정부 지원 해킹 그룹 Kimsuky가 한국의 지정학 및 항공우주 연구기관을 대상으로 수행한 사이버 스파이 작전입니다. 이 공격에서는 VBA 매크로가 포함된 악성 Office 문서와 Blogspot을 악용한 다단계 페이로드 전달 기법이 사용되었습니다.

공격 과정:

  1. 스피어피싱: "북한, 비핵화, 중국-러시아 협력" 관련 주제의 악성 Office 문서를 이메일로 전달
  2. VBA 매크로 트리거: 문서에 포함된 VBA 매크로가 사용자가 텍스트를 입력할 때 자동으로 실행되도록 설계
  3. 다단계 페이로드: Base64 디코딩된 VBScript를 파일로 드롭하고, wscript.exe를 통해 실행
  4. Blogspot 악용: 정상적인 Blogspot 블로그를 통해 악성 콘텐츠를 호스팅하여 탐지 회피

피해 규모: 남한의 지정학 및 항공우주 연구기관의 민감한 연구 자료가 유출되었습니다.

출처: Cisco Talos - Kimsuky Abuses Blogs to Deliver Malware

📌 Lazarus Group - Windows Update 악용 VBA 공격 (2022)

배경: 북한 해킹 그룹 Lazarus가 VBA 매크로가 포함된 악성 문서를 통해 Windows Update 클라이언트와 GitHub를 악용한 고급 공격을 수행했습니다.

공격 과정:

  1. 피싱 문서 전달: VBA 매크로가 임베디드된 악성 Word 문서 전달
  2. 매크로 실행: 문서를 열면 악성 매크로가 실행되어 셸코드 로드 시작
  3. 고급 제어 흐름 탈취: WMIsAvailableOffline 함수의 메모리를 조작하고 KernelCallbackTable 포인터를 활용하여 악성 셸코드 실행
  4. 다단계 DLL 주입: 여러 단계의 DLL 주입을 통해 지속적인 접근 권한 확보

피해 규모: 전 세계 다양한 조직이 이 캠페인의 영향을 받았으며, 특히 암호화폐 관련 기업들이 집중 표적이 되었습니다.

출처: Threatdown - North Korea's Lazarus APT Leverages Windows Update Client

📌 APT-C-36 (Blind Eagle) - 콜롬비아 정부기관 타겟 공격 (2018-2019)

배경: 남미 지역에서 활동하는 것으로 추정되는 APT-C-36 그룹이 콜롬비아 정부기관과 금융, 석유, 제조업 분야의 주요 기업들을 지속적으로 공격했습니다.

공격 과정:

  1. 정교한 사회공학: 패스워드로 보호된 RAR 첨부파일이 포함된 스피어피싱 이메일 발송 (이메일 게이트웨이 탐지 우회)
  2. VBScript 매크로 실행: .doc 확장자를 가진 MHTML 매크로 기반 문서 내부에 VBScript를 삽입하여 문서 열람 시 자동 실행
  3. 백도어 설치: Imminent 백도어를 설치하여 네트워크 내부로의 추가 침투를 위한 발판 마련

피해 규모: 2018년 4월부터 2019년 2월까지 29개의 미끼 문서, 62개의 트로이목마 샘플, 다수의 악성 도메인이 발견되었으며, 콜롬비아 정부 및 주요 기업들이 지속적인 공격에 노출되었습니다.

출처: QiAnXin Threat Intelligence Center - APT-C-36 Analysis


3. 왜 탐지가 어려운가?

공식 탐지 방법

DET0076 Visual Basic 실행의 행위 기반 탐지: VB 기반 스크립트나 매크로(VBS/VBA/VBScript)의 실행을 cscript.exe/wscript.exe, Office 기반 프로세스 체인, 또는 HTA 사용을 통해 탐지합니다. Office나 HTML 컨테이너가 스크립트 호스트를 생성하고, 스크립트 호스트가 PowerShell, 네트워크 연결, 또는 프로세스 인젝션을 수행하는 연쇄 행동에 중점을 둡니다.

공격자가 이 기법을 선호하는 이유

  • 정상 기능과의 구분 어려움: VBA 매크로는 정상적인 업무 자동화에도 광범위하게 사용되어 악성 활동과 구분하기 매우 어려움
  • 다단계 실행 체인: Office → VBA → PowerShell → 악성코드 다운로드의 복잡한 실행 체인으로 인해 각 단계별로는 정상적인 활동으로 보일 수 있음
  • 환경별 동작 차이: 가상 환경이나 분석 도구에서는 다르게 동작하도록 설계하여 샌드박스 분석을 우회

탐지의 현실적 한계

공식 탐지 방법이 존재하지만 실제 환경에서는 다음과 같은 한계가 있습니다. 첫째, 정상적인 VBA 매크로 사용이 많은 조직에서는 오탐(False Positive) 비율이 매우 높아 실용적이지 않습니다. 둘째, 행위 기반 탐지를 위해서는 고급 EDR(Endpoint Detection and Response) 솔루션이 필요한데, 이는 상당한 비용과 전문 인력을 요구합니다. 셋째, 공격자들이 정상적인 시스템 도구들을 연쇄적으로 사용하기 때문에 어느 시점에서 악성 활동이 시작되었는지 판단하기 어렵습니다.


4. 나도 위험할까? 자가 진단

이 공격이 나와 관련 있는지 확인해보세요.

이런 환경이라면 주의가 필요합니다

  • Microsoft Office를 사용하며, 외부에서 받은 문서의 매크로를 종종 실행하는 환경
  • 이메일을 통해 업무용 문서(Word, Excel, PowerPoint)를 자주 주고받는 조직
  • 정부기관, 금융기관, 인프라 기업 등 국가적으로 중요한 시설이나 기관
  • VBA 매크로나 VBScript를 업무 자동화에 광범위하게 사용하는 환경

공식 대응 방안

M1049 안티바이러스/안티맬웨어: 안티바이러스를 사용하여 의심스러운 파일을 자동으로 격리할 수 있습니다.

M1040 엔드포인트 행위 방지: Windows 10에서 공격 표면 축소(ASR) 규칙을 활성화하여 Visual Basic 스크립트가 잠재적으로 악성인 다운로드된 콘텐츠를 실행하는 것을 방지합니다.

M1042 기능 또는 프로그램 비활성화/제거: 불필요한 VB 구성 요소에 대한 액세스를 차단하거나 제한합니다.

M1038 실행 방지: 적절한 경우 응용 프로그램 제어를 사용합니다. 파일의 웹 표시(MOTW) 속성을 기반으로 인터넷에서 가져온 VBA 매크로는 Windows 버전 2203부터 기본적으로 Office 응용 프로그램에서 실행이 차단될 수 있습니다.

M1021 웹 기반 콘텐츠 제한: 스크립트 차단 확장 프로그램은 공격 과정에서 일반적으로 사용되는 스크립트와 HTA 파일의 실행을 방지하는 데 도움이 됩니다.

당장 할 수 있는 것

  • Office 매크로 보안 설정 강화: Office에서 매크로 자동 실행을 비활성화하고, 신뢰할 수 있는 출처의 문서만 매크로 실행 허용
  • 이메일 첨부파일 주의: 외부에서 받은 Office 문서는 매크로 실행 전 반드시 발신자 확인 및 내용 검토
  • 이상한 점 발견 시 전문가에게 문의하거나 관련 기관에 신고하기: 예상치 못한 매크로 실행 요청이나 시스템 이상 동작 발견 시 즉시 신고

5. 관련 기술

기법어떤 상황에서 함께 사용되나
T1566.001 Spearphishing AttachmentVBA 매크로가 포함된 악성 Office 문서를 스피어피싱 이메일의 첨부파일로 전송할 때
T1059.001 PowerShellVBA 스크립트에서 PowerShell을 호출하여 추가 악성코드를 다운로드하거나 시스템 정보를 수집할 때
T1553.005 Mark-of-the-Web Bypass인터넷에서 다운로드한 Office 문서의 보안 경고를 우회하여 VBA 매크로를 실행할 때

참고 자료


📌 이 글은 AI(Claude) 를 활용하여 작성되었으며, MITRE ATT&CK v18.0 기준 (2025-10-28) 을 기준으로 합니다. 본 콘텐츠는 보안 교육 및 방어 목적으로만 제공되며, 이를 악용한 불법 행위에 대한 책임은 전적으로 행위자 본인에게 있습니다.


?뱛 ??湲€?€ [?ㅽ겕由쏀듃 ?ㅽ뻾(T1059) ?쒕━利?(/blog/t1059-command-and-scripting-interpreter)???쇰??낅땲??

COMMENTS (0)

댓글은 익명으로 작성되며, 삭제 비밀번호를 설정하면 본인만 삭제할 수 있습니다. 비밀번호를 설정하지 않은 댓글은 누구나 삭제할 수 있습니다.