정당한 리소스 이름 위치 일치: 59개 APT가 svchost.exe로 위장하는 원리 | T1036.005
MITRE ATT&CK T1036.005 기법으로 공격자가 악성코드를 정당한 시스템 파일로 위장하는 원리와 탐지 방법을 분석합니다. svchost.exe 사칭부터 컨테이너 환경까지.
공격자들이 가장 자주 위장하는 Windows 시스템 파일은 svchost.exe이다. MITRE ATT&CK 데이터베이스에 따르면 59개 APT 그룹이 정당한 시스템 파일명을 모방하여 탐지를 회피하는 T1036.005 기법을 사용하고 있다.
악성코드가 "System32" 폴더에 자리 잡고 정상 프로세스 이름을 사칭하면, 시스템 관리자조차 구별하기 어려워집니다. 이는 단순한 파일명 변경이 아닙니다. 공격자는 파일 위치, 아이콘, 메타데이터까지 정교하게 모방하여 장기간 시스템에 잠복한다.
Adversaries may match or approximate the name or location of legitimate files or resources when naming/placing them. This is done for the purpose of evading defenses and observation. This may be done by placing an executable in a commonly trusted directory (such as System32) or giving it the name of a legitimate, trusted program (such as svchost.exe). — MITRE ATT&CK T1036.005
위 정의를 풀어보면, 공격자는 악성 파일을 신뢰할 수 있는 디렉토리에 배치하거나 정당한 프로그램 이름을 부여하여 방어 시스템과 관찰자의 탐지를 회피한다. 이는 마스커레이딩(Masquerading) 공격의 핵심 하위 기법이다.
| 용어 | 설명 |
|---|---|
| T1036.005 (정당한 이름/위치 일치) | 목적: 파일명/경로 위장 / 위장 대상: 시스템 파일, 신뢰 디렉토리 / 탐지 난이도: 높음 |
| T1036.001 (코드 서명 위조) | 목적: 인증서 위장 / 위장 대상: 디지털 서명 / 탐지 난이도: 매우 높음 |
| T1036.003 (정상 도구명 사칭) | 목적: 도구명 위장 / 위장 대상: 시스템 유틸리티 / 탐지 난이도: 중간 |
| T1036.004 (가짜 작업/서비스) | 목적: 서비스명 위장 / 위장 대상: Windows 서비스 / 탐지 난이도: 중간 |
공격자는 먼저 대상 시스템의 정당한 파일과 디렉토리 구조를 분석한다.
# 시스템 프로세스 목록 수집
Get-Process | Where-Object {$_.Path -like "*System32*"} | Select Name, Path
# 신뢰할 수 있는 디렉토리 확인
dir C:\Windows\System32\*.exe | Select Name, LastWriteTime
이 과정에서 공격자는 다음을 확인한다:
공격자는 악성코드를 정당한 파일처럼 보이도록 수정한다.
공격자는 파일 속성까지 정교하게 조작한다.
# 파일 메타데이터 위조 예시 (교육 목적)
import win32api
import win32con
def modify_file_metadata(file_path):
# 버전 정보 위조
version_info = {
'FileDescription': 'Host Process for Windows Services',
'CompanyName': 'Microsoft Corporation',
'FileVersion': '10.0.19041.1 (WinBuild.160101.0800)',
'ProductName': 'Microsoft® Windows® Operating System'
}
# 파일 시간 조작 (시스템 파일과 유사하게)
handle = win32api.CreateFile(
file_path,
win32con.GENERIC_WRITE,
0, None,
win32con.OPEN_EXISTING,
0, 0
)
공격자는 탐지를 최소화하는 위치에 파일을 배치한다.
신뢰도 높은 디렉토리 순위:
C:\Windows\System32\ - 최고 신뢰도C:\Windows\SysWOW64\ - 64비트 시스템의 32비트 호환C:\Program Files\Common Files\ - 공통 라이브러리 영역C:\ProgramData\Microsoft\ - Microsoft 관련 데이터# 악성 서비스 등록 (정상 서비스명 사칭)
sc create "Windows Update Service" binPath= "C:\Windows\System32\fake_svchost.exe" start= auto
# 작업 스케줄러 등록
schtasks /create /tn "Microsoft\Windows\UpdateOrchestrator\Schedule Scan" /tr "C:\Windows\System32\fake_svchost.exe"
현대 클라우드 환경에서는 컨테이너 리소스명을 위장하는 방식으로 진화했다.
# 정상 포드로 위장한 악성 컨테이너
apiVersion: v1
kind: Pod
metadata:
name: kube-system-monitor # 시스템 모니터링으로 위장
namespace: kube-system
spec:
containers:
- name: system-monitor
image: malicious-registry/fake-monitor:latest # 악성 이미지
resources:
requests:
memory: "64Mi"
cpu: "250m"
공격자에게 T1036.005는 "이상적인 카모플라주" 이다. 시스템에 침투한 후 가장 중요한 것은 탐지되지 않고 오래 머무르는 것이기 때문이다.
1. Lazarus 그룹의 svchost.exe 위장
# 실제 탐지된 Lazarus 악성코드
파일명: svchost.exe
위치: C:\Windows\System32\svchost.exe
크기: 정상 파일과 유사 (약 50KB)
서명: 위조된 Microsoft 인증서
2. APT28의 시스템 도구 사칭
# APT28이 사용한 위장 기법
정상 파일: C:\Windows\System32\taskmgr.exe
악성 파일: C:\Windows\System32\tasksmgr.exe # 's' 하나 추가
목적: 타이핑 실수로 위장, 관리자 혼동 유발
공격자는 다음 3가지 방식으로 보안 도구를 속이다:
1. 화이트리스트 우회
2. 행동 분석 우회
3. 시그니처 우회
SolarWinds 공급망 공격 (2020)
SolarWinds.Orion.Core.BusinessLayer.dll 위장NotPetya 랜섬웨어 (2017)
rundll32.exe 프로세스로 실행1. 파일 무결성 모니터링
# SYSMON을 통한 파일 생성 모니터링
Event ID 11: 신뢰 디렉토리의 새 파일 생성 알림
Event ID 1: 프로세스 생성 시 부모-자식 관계 확인
2. 프로세스 검증
# 정당한 svchost.exe 확인 방법
tasklist /svc | findstr svchost # 서비스 연결 확인
wmic process where name="svchost.exe" get ProcessId,ParentProcessId,CommandLine
3. 네트워크 행동 분석
4. 코드 서명 검증
# 디지털 서명 검증
Get-AuthenticodeSignature "C:\Windows\System32\svchost.exe"
# 결과: Valid, 서명자: Microsoft Windows
Kubernetes 네임스페이스 모니터링
# 의심스러운 포드명 패턴 탐지
kubectl get pods --all-namespaces | grep -E "(system|kube|monitor)"
# 리소스 생성 이벤트 모니터링
kubectl get events --sort-by='.lastTimestamp' | grep Created
T1036.005는 공격자가 시스템에 장기간 잠복하기 위해 사용하는 핵심 위장 기법이다. 단순한 파일명 변경을 넘어서 위치, 메타데이터, 행동 패턴까지 정교하게 모방하여 탐지를 회피한다.
이 기법은 T1036 위장 공격: 85개 APT 그룹이 정체를 숨기는 12가지 기법의 핵심 구성 요소이며, 정상 프로세스 위장: svchost.exe 이름 1개로 탐지 우회하는 원리 | T1036에서 더 구체적인 사례를 확인할 수 있다.
효과적인 방어를 위해서는 파일 무결성 모니터링, 프로세스 검증, 네트워크 행동 분석을 조합한 다층 방어 전략이 필요하다.
AI 활용 안내 이 글은 AI(Claude)의 도움을 받아 작성되었습니다. 인용된 통계와 사례는 참고 자료에 명시된 출처에 근거하며, 설명을 위한 일부 표현은 각색되었습니다.
면책 조항 본 글은 보안 인식 제고를 위한 교육 목적으로 작성되었습니다. 언급된 공격 기법을 실제로 시도하는 행위는 「정보통신망법」, 「형법」 등에 따라 처벌받을 수 있으며, 본 블로그는 이에 대한 법적 책임을 지지 않습니다.