rundll32 위장: 정상 도구 이름으로 탐지를 우회하는 원리 | T1036.003
6개 APT가 svchost.exe, rundll32.exe 이름을 복사해 악성코드를 위장한다. PE 메타데이터 기반으로 원본과 위조를 구별하는 탐지법.
MITRE ATT&CK에 등록된 공격 기법은 200개 이상이다. 그중 T1036.003 "Rename System Utilities"는 6개 APT 그룹이 사용하는 핵심 방어 회피 기법이다. 원리는 단순하다. 시스템 유틸리티의 이름을 바꿔 보안 모니터링을 우회한다. 2014년 백악관과 미 국무부를 공격한 CozyDuke부터 APT32까지 광범위하게 활용되고 있다.
기존 보안 솔루션은 프로세스 이름으로 화이트리스트를 관리해왔다. rundll32.exe는 Windows 정당 유틸리티이므로 대부분 허용 목록에 포함된다. 이 접근 방식은 파일명만 확인하는 표면적 검증이다. 근본적인 취약점을 안고 있었다.
공격자들은 자체 악성코드 대신 시스템에 이미 존재하는 도구를 악용한다. LOLBAS(Living Off The Land Binaries, Scripts and Libraries) 전략이다. 탐지 회피뿐 아니라 개발 비용 절약과 안정성 확보라는 이점도 있다.
Security monitoring and control mechanisms may be in place for common utilities to prevent their usage by adversaries. It may be possible to bypass those security mechanisms by renaming the utility prior to utilization (ex: rename rundll32.exe). — MITRE ATT&CK T1036.003
공식 정의가 명확히 보여준다. T1036.003은 파일명 기반 탐지의 약점을 직접 노린 기법이다.
T1036.003은 시스템 유틸리티의 파일명을 변경해 보안 모니터링을 우회하는 방어 회피 기법이다. 파일의 실제 기능은 그대로 유지된다. 보안 솔루션의 화이트리스트 기반 탐지만 무력화한다.
| 용어 | 설명 |
|---|---|
| T1036.003 | 정의: 시스템 유틸리티 이름 변경 / 탐지 대상: 파일명 기반 모니터링 / 우회 방법: 파일명 변경 |
| T1036.005 | 정의: 정상 프로세스 위장 / 탐지 대상: 프로세스명 기반 탐지 / 우회 방법: 악성코드를 정상 이름으로 위장 |
| LOLBAS | 정의: 정당한 도구 악용 / 탐지 대상: 행위 기반 탐지 / 우회 방법: 정당한 기능의 악의적 사용 |
| Process Hollowing | 정의: 프로세스 내부 교체 / 탐지 대상: 프로세스 실행 경로 추적 / 우회 방법: 정상 프로세스 내부에 악성코드 삽입 |
3.2.1 1단계: 대상 유틸리티 선택
공격자는 먼저 악용할 시스템 유틸리티를 선택한다. 가장 많이 쓰이는 도구는 다음과 같다.
rundll32.exe: DLL 파일 실행regsvr32.exe: COM 구성 요소 등록mshta.exe: HTML 애플리케이션 실행powershell.exe: PowerShell 스크립트 실행3.2.2 2단계: 파일 이름 변경
파일명 변경에는 두 가지 방식이 있다.
방식 A: 직접 이름 변경
copy C:\Windows\System32\rundll32.exe C:\Temp\svchost32.exe
방식 B: 위치 이동 + 이름 변경
copy C:\Windows\System32\rundll32.exe C:\Users\Public\legitimate_tool.exe
3.2.3 3단계: 악의적 페이로드 실행
변경된 이름의 유틸리티로 악의적 작업을 수행한다.
C:\Temp\svchost32.exe shell32.dll,Control_RunDLL C:\malicious\payload.dll
실제로는 rundll32.exe가 악성 DLL을 실행한다. 그러나 보안 솔루션은 svchost32.exe라는 알 수 없는 프로세스로만 인식한다.
보안 솔루션의 화이트리스트 검사 과정은 4단계다.
T1036.003은 3단계에서 화이트리스트 조회를 실패하게 만든다. 가짜 신분증으로 출입 통제를 우회하는 것과 같은 원리다.
3.4.1 메타데이터 불일치 활용
PE 파일의 내부 메타데이터와 실제 파일명 간 불일치를 이용한다.
# PowerShell로 PE 메타데이터 확인
Get-ItemProperty "C:\Temp\fake_name.exe" | Select-Object OriginalFilename
실제 파일명은 fake_name.exe다. 그러나 내부 메타데이터에는 rundll32.exe로 기록되어 있다. 포렌식 분석 시 혼란을 유발하는 요소다.
3.4.2 경로 기반 탐지 우회
정당한 유틸리티를 비표준 경로로 이동시킨다. 경로 기반 화이트리스트까지 함께 우회하는 방법이다.
# 정상 경로: C:\Windows\System32\rundll32.exe
# 변경 경로: C:\Users\Public\Documents\system_tool.exe
공격자들이 T1036.003을 선호하는 이유는 보안 솔루션의 근본적 한계 때문이다. 대부분의 엔드포인트 보안 제품은 단순한 화이트리스트 검사 로직을 사용한다.
# 보안 솔루션의 단순한 화이트리스트 검사 로직
whitelist = ['rundll32.exe', 'regsvr32.exe', 'powershell.exe']
def is_safe_process(process_name):
return process_name.lower() in whitelist
# 이 검사는 쉽게 우회 가능
print(is_safe_process('rundll32.exe')) # True
print(is_safe_process('my_rundll32.exe')) # False - 탐지됨
4.2.1 CozyDuke APT 그룹 사례
CozyDuke (also known as CozyBear, CozyCar, or "Office Monkeys") is a precision adversary. Kaspersky Lab observed evidence of attacks against government organizations and commercial entities in the United States, Germany, South Korea and Uzbekistan. Targets in 2014 included the White House and the US State Department. — Kaspersky SecureList
CozyDuke는 시스템 유틸리티 이름을 변경해 장기간 탐지를 회피했다. 2014년 백악관 침입 사건에서 이 기법이 핵심 역할을 했다.
4.2.2 APT32 그룹의 pubprn.vbs 사례
APT32 moved and renamed pubprn.vbs to a .txt file to avoid detection. — MITRE ATT&CK T1036.003
APT32는 Windows 정당 스크립트 pubprn.vbs를 .txt 확장자로 변경했다. 스크립트 기반 탐지를 우회하기 위해서다.
4.3.1 다단계 이름 위장
공격자들은 여러 단계에 걸쳐 파일명을 변경한다. 포렌식 추적을 더 어렵게 만드는 방법이다.
4.3.2 시간 지연 실행
# 이름 변경 후 일정 시간 대기
copy rundll32.exe temp_tool.exe
timeout /t 3600
temp_tool.exe malicious.dll,EntryPoint
이름 변경과 실행 사이에 시간 간격을 둔다. 행위 기반 탐지를 회피하는 전략이다.
Existing endpoint and antivirus solutions have difficulty detecting LOLBAS attacks because the events they generate mimic legitimate system and administrator activity. — D3FEND MITRE
LOLBAS 공격은 거주 시간이 길다. 공격자가 몇 주에서 몇 개월간 네트워크에 잠복할 수 있는 이유다.
It may be possible to detect instances where the file name on disk does not match that of the binary's PE metadata, this is a likely indicator that a binary was renamed after it was compiled. — MITRE ATT&CK T1036.003
가장 효과적인 탐지 방법은 PE 파일 내부 메타데이터와 실제 파일명을 비교하는 것이다.
# PowerShell을 이용한 PE 메타데이터 검사
$file = Get-ItemProperty "C:\suspicious\file.exe"
$versionInfo = [System.Diagnostics.FileVersionInfo]::GetVersionInfo($file.FullName)
Write-Host "파일명: $($file.Name)"
Write-Host "원본 파일명: $($versionInfo.OriginalFilename)"
Write-Host "내부 이름: $($versionInfo.InternalName)"
Write-Host "제품명: $($versionInfo.ProductName)"
Sysmon의 OriginalFileName 필드를 활용한 탐지 규칙이다.
<RuleGroup name="T1036.003 Detection" groupRelation="or">
<ProcessCreate onmatch="include">
<Rule name="Renamed System Utilities" groupRelation="and">
<OriginalFileName condition="is">rundll32.exe</OriginalFileName>
<Image condition="not contains">rundll32.exe</Image>
</Rule>
</ProcessCreate>
</RuleGroup>
시스템 유틸리티의 특징적인 명령줄 패턴으로 이름 변경된 도구를 식별할 수 있다.
# SIGMA 탐지 규칙 예시
title: Renamed rundll32.exe Execution
description: Detects execution of renamed rundll32.exe based on command line patterns
logsource:
category: process_creation
product: windows
detection:
selection:
CommandLine|contains:
- '.dll,'
- 'DllRegisterServer'
- 'Control_RunDLL'
filter:
Image|endswith: '\rundll32.exe'
condition: selection and not filter
파일명에 의존하지 않는 방법이다. 프로세스의 실제 행위를 분석한다.
즉시 적용 가능한 방어 조치:
고급 방어 전략:
T1036.003은 단독보다 다른 공격 기법과 조합해 사용된다. T1036 위장 공격의 12가지 기법 중 하나이며, 유니코드 RLO 공격이나 이중 확장자 공격과 함께 더 정교한 위장을 구현한다.
이 기법은 단순한 파일명 변경만으로 보안 체계의 맹점을 악용하는 대표 사례다. 방어자는 파일명 기반 탐지에서 벗어나야 한다. 프로세스의 실제 행위와 메타데이터를 종합 분석하는 접근이 필요하다.
AI 활용 안내 이 글은 AI(Claude)의 도움을 받아 작성되었습니다. 인용된 통계와 사례는 참고 자료에 명시된 출처에 근거하며, 설명을 위한 일부 표현은 각색되었습니다.
면책 조항 본 글은 보안 인식 제고를 위한 교육 목적으로 작성되었습니다. 언급된 공격 기법을 실제로 시도하는 행위는 「정보통신망법」, 「형법」 등에 따라 처벌받을 수 있으며, 본 블로그는 이에 대한 법적 책임을 지지 않습니다.