T1036 위장 공격: APT 그룹이 정체를 숨기는 다양한 기법
파일명, 프로세스명, 인증서까지. APT 그룹이 정체를 숨기는 12가지 위장 기법의 전체 구조와 탐지 포인트.
T1036 Masquerading은 다수의 APT 그룹에서 활용되고 있다. 전체 공격 기법 중 가장 널리 사용되는 방어 회피 기술 중 하나이다. 2017년 ShadowPad 공급망 침해 사건에서부터 최근 July 2025 WinRAR 취약점 악용 사례까지, 공격자들은 끊임없이 정당한 프로그램이나 파일로 위장하여 보안 솔루션과 사용자의 눈을 속여왔다.
전통적인 보안 접근 방식에서는 알려진 악성 파일의 해시값이나 시그니처를 기반으로 탐지를 수행했다. 하지만 공격자가 정당한 프로그램의 이름을 사용하거나, 신뢰할 수 있는 위치에 악성 파일을 배치하면 이 방어 체계는 무력화된다. 사용자 역시 "svchost.exe"나 "notepad.exe" 같은 익숙한 프로세스명을 보면 의심하지 않다.
T1036 Masquerading은 공격자가 악성 객체를 정당한 것처럼 보이게 만들어 탐지를 회피하는 기술이다.
Masquerading occurs when the name or location of an object, legitimate or malicious, is manipulated or abused to evade defenses and observation. This may include manipulating file metadata, tricking users into misidentifying the file type, or giving the task or service a name and description that of a legitimate one. — MITRE ATT&CK T1036
위 정의를 해석하면, Masquerading은 객체(파일, 프로세스, 서비스 등)의 이름이나 위치를 조작하여 방어 시스템과 관찰자를 속이는 기법이다. 파일 메타데이터 조작, 파일 유형 오인 유도, 정당한 작업명 사용 등이 포함된다.
T1036의 핵심은 다음 5가지 요소로 구성된다:
| 용어 | 설명 |
|---|---|
| Masquerading (T1036) | 정의: 이름/위치로 정체성 위장 / 주요 차이점: 외형적 속임수 / 예시: svchost.exe로 이름 변경 |
| Process Injection (T1055) | 정의: 정상 프로세스에 코드 삽입 / 주요 차이점: 실제 정상 프로세스 악용 / 예시: explorer.exe 메모리에 악성코드 주입 |
| Living off the Land | 정의: 시스템 내장 도구 악용 / 주요 차이점: 정당한 도구의 정당한 사용 / 예시: PowerShell로 악성 스크립트 실행 |
| Code Signing (T1553.002) | 정의: 유효한 디지털 서명 획득 / 주요 차이점: 실제 신뢰 관계 악용 / 예시: 탈취한 인증서로 서명 |
A. 매직 바이트 조작 (T1036.008)
파일의 첫 번째 바이트들은 파일 유형을 식별하는 "매직 바이트" 역할을 한다. 예를 들어 JPEG 파일은 FF D8로, PDF는 25 50 44 46으로 시작한다.
정상 JPEG 헤더:
FF D8 FF E0 00 10 4A 46 49 46
위조된 실행 파일:
FF D8 FF E0 00 10 4A 46 49 46 ← JPEG 헤더로 위장
4D 5A 90 00 03 00 00 00 ← 실제 PE 헤더 (MZ)
공격자는 이 기법으로 업로드 필터를 우회한다. 웹 애플리케이션이 파일 헤더만 검사한다면, JPEG로 위장한 실행 파일이 업로드된다.
B. 이중 확장자 공격 (T1036.007)
Windows는 기본적으로 알려진 확장자를 숨기는 설정이 활성화되어 있다. 이를 악용하면:
실제 파일명: report.pdf.exe
사용자가 보는 이름: report.pdf (확장자 숨김)
실제 실행: PE 실행 파일
이중 확장자 공격: report.pdf.exe 1개가 문서로 보이는 이유에서 다룬 바와 같이, 이 기법은 사용자가 문서 파일로 인식하도록 속이다.
C. 유니코드 RLO 공격 (T1036.002)
Right-to-Left Override (RLO) 문자를 이용해 파일명을 시각적으로 조작한다:
실제 파일명: photo[RLO]gpj.exe
표시되는 이름: photoexe.jpg
실제 확장자: .exe
유니코드 RLO 공격: 파일명 1글자로 확장자가 뒤집히는 원리에서 상세한 동작 원리를 확인할 수 있다.
A. 정당한 프로세스명 도용 (T1036.005)
공격자는 시스템 관리자나 보안 도구가 신뢰하는 프로세스명을 사용한다:
# 정상 svchost.exe 위치
C:\Windows\System32\svchost.exe
# 공격자가 배치한 위치
C:\Users\Public\svchost.exe
C:\ProgramData\svchost.exe
이 기법의 핵심은 위치의 차이 이다. 프로세스 목록에서는 동일하게 "svchost.exe"로 표시되지만, 실행 경로가 다른다.
B. 프로세스 트리 조작 (T1036.009)
Linux에서 공격자는 fork() 시스템 콜을 연속으로 호출하여 부모-자식 관계를 끊다:
// 1차 fork: 자식 프로세스 생성
pid_t child = fork();
if (child == 0) {
// 2차 fork: 손자 프로세스 생성
pid_t grandchild = fork();
if (grandchild == 0) {
// 손자 프로세스에서 악성 코드 실행
execve("/tmp/malware", NULL, NULL);
}
exit(0); // 자식 프로세스 종료
}
// 부모 프로세스도 종료
결과적으로 손자 프로세스는 부모가 없는 "고아 프로세스"가 되어 init(PID 1)에 입양된다. 원래 실행한 프로세스와의 연결 고리가 사라진다.
A. 가짜 Windows 서비스 생성 (T1036.004)
공격자는 정당한 서비스명과 유사한 이름으로 악성 서비스를 등록한다:
# 정상 서비스
sc create "Windows Update" binPath= "C:\Windows\System32\wuauserv.dll"
# 위장 서비스
sc create "Windows Updates" binPath= "C:\ProgramData\malware.exe"
sc create "Microsoft Update Service" binPath= "C:\Temp\backdoor.exe"
서비스 목록에서는 구분하기 어려운 이름들로 등록되어 관리자의 주의를 피한다.
APT29(Cozy Bear)가 실제로 사용한 다단계 위장 기법을 살펴보겠다:
공격자가 T1036을 선택하는 이유는 비용 대비 효과 가 뛰어나기 때문이다. 복잡한 제로데이 취약점을 찾는 대신, 단순히 파일명이나 위치를 조작하는 것만으로도 상당한 탐지 회피 효과를 얻을 수 있다.
1. 자동화된 보안 도구 우회
대부분의 EDR(Endpoint Detection and Response) 솔루션은 프로세스명 기반 화이트리스트를 운영한다:
# 전형적인 EDR 화이트리스트 규칙
allowed_processes:
- name: "svchost.exe"
path: "C:\\Windows\\System32\\"
- name: "explorer.exe"
path: "C:\\Windows\\"
공격자는 이 규칙의 허점을 노립다. 프로세스명만 확인하고 경로는 검사하지 않는 경우, 다른 위치의 "svchost.exe"도 허용될 수 있다.
2. 사회공학적 기만 효과
사회공학 공격의 심리 해킹 기법에서 다룬 바와 같이, 인간의 인지적 편향을 악용한다:
사례 1: WinRAR CVE-2023-38831 악용
2023년 발견된 이 취약점을 통해 공격자는 아카이브 내에서 파일 확장자를 스푸핑할 수 있었다:
압축 파일 내용:
├── resultati_sovehchaniya_11_09_2023.pdf (가짜 PDF)
└── resultati_sovehchaniya_11_09_2023.exe (실제 실행 파일)
사용자 관점: PDF 문서로 인식
실제 실행: EXE 파일 실행
사례 2: ShadowPad 공급망 침해 (2017)
코드 서명 위조: 2017년 ShadowPad 사건의 가짜 인증서 원리에서 분석한 바와 같이, 공격자는 정당한 소프트웨어의 코드 서명 정보를 복사하여 악성코드에 적용했다:
정상 프로그램:
- 파일명: CCleaner.exe
- 서명자: Piriform Ltd
- 서명 상태: 유효
위조된 악성코드:
- 파일명: CCleaner.exe
- 서명자: Piriform Ltd (복사됨)
- 서명 상태: 무효 (하지만 표면적으로는 동일)
사례 3: 브라우저 핑거프린트 위조
최근에는 브라우저 핑거프린트 위조: 3단계로 네트워크 탐지를 우회하는 원리와 같은 고도화된 기법도 등장했다:
// 정상 Chrome 브라우저 핑거프린트 위조
navigator.__defineGetter__('userAgent', function() {
return 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36';
});
// GPU 정보 위조
WebGLRenderingContext.prototype.getParameter = function(param) {
if (param === 0x1F00) return 'Intel(R) HD Graphics 630';
return originalGetParameter.call(this, param);
};
A. 시간 기반 우회
공격자는 시간차를 이용해 탐지를 회피한다:
# 1단계: 정상 파일로 시작
cp /bin/ls /tmp/system_update
chmod +x /tmp/system_update
# 2단계: 일정 시간 후 악성 코드로 교체
sleep 3600 # 1시간 대기
cp /tmp/malware /tmp/system_update
B. 환경 기반 조건부 실행
샌드박스나 분석 환경을 탐지하여 정상 동작을 수행한다:
import os
import time
# 분석 환경 탐지
if os.path.exists("C:\\analysis") or os.getenv("USERNAME") == "analyst":
# 정상 동작 수행 (계산기 실행)
os.system("calc.exe")
else:
# 실제 환경에서만 악성 행위
download_and_execute_payload()
1. 다층 검증 체계
단일 지표에 의존하지 않는 다층 검증이 필요하다:
# 종합적인 프로세스 검증 규칙
process_validation:
name_check: true
path_verification: true
digital_signature: true
parent_process: true
command_line_args: true
network_connections: true
2. 행동 기반 분석
정적 지표 대신 동적 행동 패턴을 분석한다:
# 의심스러운 행동 패턴 탐지
suspicious_behaviors = {
"process_name": "svchost.exe",
"unexpected_network": True, # svchost가 외부 통신
"file_creation": True, # 파일 생성 행위
"registry_modification": True, # 레지스트리 수정
"privilege_escalation": True # 권한 상승 시도
}
3. 화이트리스트 기반 실행 제어
Application Control을 통한 선제적 차단:
<Allow>
<FilePublisher PublisherName="Microsoft Corporation"
ProductName="Windows Operating System"
BinaryName="svchost.exe">
<BinaryVersionRange LowSection="10.0.0.0" HighSection="*" />
</FilePublisher>
</Allow>
파일 시스템 모니터링
프로세스 행동 분석
서비스 및 작업 검증
사용자 교육
시스템 설정
T1036 Masquerading은 단순해 보이지만 매우 효과적인 공격 기법이다. APT 그룹이 이 기법을 선택하는 이유는 구현이 쉽고, 탐지 우회 효과가 뛰어나며, 사용자와 보안 시스템 모두를 속일 수 있기 때문이다.
특히 AI 악성코드 LAMEHUG: 탈취 토큰으로 LLM을 무기화한 러시아 해커와 같은 최신 사례에서 보듯이, AI 기술과 결합된 위장 기법은 더욱 정교해지고 있다.
방어의 핵심은 단일 지표에 의존하지 않는 다층 검증과 행동 기반 분석이다. 파일명이나 프로세스명만으로 신뢰하지 말고, 실행 경로, 디지털 서명, 행동 패턴을 종합적으로 평가해야 한다.
AI 활용 안내 이 글은 AI(Claude)의 도움을 받아 작성되었습니다. 인용된 통계와 사례는 참고 자료에 명시된 출처에 근거하며, 설명을 위한 일부 표현은 각색되었습니다.
면책 조항 본 글은 보안 인식 제고를 위한 교육 목적으로 작성되었습니다. 언급된 공격 기법을 실제로 시도하는 행위는 「정보통신망법」, 「형법」 등에 따라 처벌받을 수 있으며, 본 블로그는 이에 대한 법적 책임을 지지 않습니다.