복사된 시스템 파일, 보안 솔루션은 동일하게 볼까?
🕵️♂️ 복사된 시스템 파일, 정말로 “정상 파일”일까요?
사이버 공격은 점점 더 정교해지고 있으며, 그중에서도 마스커레이딩(Masquerading) 기법은
보안 솔루션을 우회하는 데 매우 효과적인 방식 중 하나입니다.
이 기법은 단순히 파일명을 바꾸는 수준이 아닙니다.
정상적인 시스템 파일을 복사하거나, 신뢰할 수 있는 실행 파일처럼 보이도록 위장하여
보안 제품의 탐지 로직을 흔들고, 악성 행위를 정상처럼 보이게 만드는 것이 핵심입니다.
그렇다면 보안 솔루션은
원본 시스템 파일과
비정상 경로에 복사된 동일한 파일을
정말로 다르게 볼 수 있을까요?
이 글에서는 실제 데모를 통해 그 차이를 확인해 보고,
왜 파일 이름보다 실행 문맥(context) 이 더 중요해지는지를 살펴보겠습니다.
1. 마스커레이딩(Masquerading)이란 무엇인가?
마스커레이딩은 공격자가 자신의 정체를 숨기거나 다른 사용자·프로세스·파일을 가장하는 기법으로,
보안 시스템을 우회하거나 민감한 정보를 탈취하는 데 사용됩니다.
MITRE ATT&CK에서는 이를 T1036 Masquerading으로 분류합니다.
공격자가 자주 노리는 대상은 대체로 다음과 같습니다.
🕵️♂️ 자주 악용되는 파일 유형
✅ 1) Windows 기본 실행 파일 (Windows Native Executables)
Windows에 기본 내장된 실행 파일은 사용자도 익숙하고, 일부 보안 제품도 상대적으로 신뢰하는 경향이 있어 악용되기 쉽습니다.
cmd.exepowershell.exewscript.exerundll32.exemshta.exeregsvr32.execertutil.exewmic.exe
이들 중 상당수는 단순 시스템 파일이 아니라,
실제 공격자가 자주 사용하는 LOLBAS(Living Off the Land Binaries) 계열과도 연결됩니다.
✅ 2) 일반 사용자가 자주 보는 프로그램명
사용자의 의심을 피하기 위해 아래와 같은 이름을 쓰는 경우도 많습니다.
chrome.exenotepad.exeexcel.exeword.exe
즉, 마스커레이딩의 핵심은
“파일 그 자체가 악성이냐”보다
무엇을, 어디서, 어떤 방식으로 실행시키느냐에 있습니다.
2. 공격자는 어떻게 탐지를 우회할까?
공격자는 단순히 이름만 바꾸지 않습니다.
보안 제품이 흔히 보는 기준을 조금씩 비껴 가는 방식으로 우회를 시도합니다.
✅ 1) 비정상 경로에서 실행
예를 들어 cmd.exe, powershell.exe, explorer.exe 같은 시스템 파일을
정상 경로가 아닌 아래와 같은 위치에서 실행합니다.
C:\ProgramData\cmd.exeC:\Users\Public\powershell.exeC:\Temp\rundll32.exe
파일명은 정상처럼 보이지만,
원래 있어야 할 위치가 아니라는 점이 이미 중요한 이상 징후입니다.
✅ 2) 확장자 변경 또는 숨김
malware.exe→explorer.exeransomware.exe→winword.exe.exe를.scr,.com,.bat등으로 바꾸어 위장
✅ 3) 코드 서명 남용 또는 신뢰 오용
공격자는 Microsoft, Google, Adobe처럼 익숙한 이름이나 신뢰 요소를 악용합니다.
실제 공격 사례에서는 정상 서명된 파일을 악용하거나,
서명 검증을 우회하는 방식으로 사용자의 경계심과 탐지 로직을 동시에 흔드는 경우가 많습니다.
즉, 중요한 것은 “서명이 있다/없다”만이 아니라
서명된 파일이 어떤 문맥에서 악용되는가입니다.
3. 실제 데모: 시스템 파일 복사 후 실행

[사진 1] PowerShell을 통해 cmd.exe를 비정상 경로로 복사
먼저 PowerShell에서 아래 명령어를 실행해,
정상 시스템 파일인 cmd.exe를 비정상적인 경로로 복사한 뒤 실행합니다.
copy-item "$env:windir\System32\cmd.exe" -destination "$env:allusersprofile\cmd.exe"
start-process "$env:allusersprofile\cmd.exe"
sleep -s 5
stop-process -name "cmd" | out-null

[사진 2] 복사 후 오류 메시지 발생
복사된 cmd.exe를 바로 실행하면 위와 같은 오류가 발생했습니다.
그 이유는 cmd.exe가 단독으로만 동작하는 파일이 아니라,
다국어 사용자 인터페이스를 위한 .mui 리소스 파일과 함께 동작하기 때문입니다.
예를 들어 한국어 환경에서는 다음 파일이 함께 필요합니다.
C:\Windows\System32\ko-KR\cmd.exe.mui
즉, 단순 복사만으로는 “정상 파일과 완전히 동일한 실행 환경”이 되지 않습니다.
이 점은 공격자 입장에서도 중요합니다.
실제 위장은 파일 하나만으로 끝나지 않고, 필요한 주변 리소스까지 함께 맞춰야 더 자연스럽게 보이기 때문입니다.

[사진 3] ko-KR 폴더 복사
.mui 파일이 포함된 ko-KR 폴더를 함께 복사합니다.

[사진 4] 복사된 cmd.exe 위치에 ko-KR 폴더 추가
복사된 cmd.exe가 있는 비정상 경로에 해당 폴더를 넣어 줍니다.

[사진 5] 오류 없이 정상 실행
이제 복사된 cmd.exe가 정상적으로 실행됩니다.
여기서 중요한 점은 단순합니다.
파일 이름만 보면 정상처럼 보이지만, 실행 위치와 실행 문맥은 전혀 정상적이지 않습니다.
4. 보안 솔루션 탐지 여부 데모
이번 데모에는 지난 글에서 설명한 프로세스 할로잉(Process Hollowing) 기법으로 제작한 테스트 악성 코드를 사용했습니다.
즉, 이번 실험은 단순 복사만 보는 것이 아니라,
정상처럼 보이는 실행 파일 + 악성 실행 행위의 조합을 보안 제품이 어떻게 처리하는지 확인하는 목적도 함께 가집니다.
1) A사 백신

[사진 6] A사 백신 탐지
hollow_test.exe가 A사 백신에서 탐지되었습니다.

[사진 7] A사 백신 보호 기록
A사 백신에서는 Trojan:Win32/Bearfoos.A!ml로 분류하여 격리한 것을 확인할 수 있습니다.
해석: 시그니처 또는 머신러닝 기반 정적 탐지 측면에서는 비교적 잘 반응한 사례입니다.
2) B사 백신

[사진 8] B사 백신 실시간 감시로 탐지하지 못함

[사진 9] B사 백신 빠른 검사로 탐지되지 않음

[사진 10] B사 백신 정밀 검사에서 탐지
B사 백신은 실시간 감시와 빠른 검사 단계에서는 탐지하지 못했지만,
정밀 검사에서는 탐지가 이루어졌습니다.
해석: 같은 제품이라도 실시간 보호, 빠른 검사, 정밀 검사가 서로 다른 탐지 로직으로 동작할 수 있음을 보여줍니다.
즉, “탐지된다/안 된다”만이 아니라 언제, 어떤 조건에서 탐지되는가를 함께 봐야 합니다.
3) C사 백신
여기서부터는 특정 제품을 단순히 “낮은 성능”이라고 단정하기보다,
무료 또는 경량형 제품군에서 흔히 보이는 한계를 확인하는 관점으로 보는 편이 더 적절합니다.
무료 보안 솔루션에서 자주 나타나는 한계는 대체로 다음과 같습니다.
- 서명(Signature) 기반 탐지 비중이 높음
- 행위 기반(Behavioral) 분석이 약함
- 실시간 감시가 제한적이거나 민감도가 낮음
- 프로세스 체인, 부모-자식 관계, 경로 문맥 분석이 부족함
- EDR 수준의 위협 헌팅 기능이 없음

[사진 11] C사 백신 실시간 감시로 탐지하지 못함

[사진 12] C사 백신 빠른 검사로 탐지하지 못함

[사진 13] C사 백신 지정 폴더 검사로 탐지하지 못함
해석: 이 결과는 단순히 특정 제품의 문제가 아니라,
행위 기반 문맥 분석이 약한 제품군은 마스커레이딩 + 프로세스 인젝션 조합에 취약할 수 있다는 점을 보여줍니다.
4) D사 백신(무료 버전)

[사진 14] D사 백신 실시간 감시로 탐지
D사 무료 버전은 실시간 감시 단계에서 탐지가 이루어졌습니다.
해석: 무료 제품이라고 해서 모두 약한 것은 아니며,
특정 조건에서는 충분히 탐지가 가능한 경우도 있습니다.
다만 중요한 것은 단일 탐지 성공 여부보다,
마스커레이딩·LOLBAS·프로세스 인젝션 같은 복합 우회 기법 전반에 대해
얼마나 일관된 문맥 분석이 가능한가입니다.
5. 이 데모가 보여주는 진짜 핵심
이번 데모의 핵심은 “어느 백신이 더 낫다”는 단순 비교가 아닙니다.
오히려 더 중요한 메시지는 이것입니다.
1) 파일 이름만으로는 부족합니다
cmd.exe는 정상 파일입니다.
하지만 C:\Windows\System32\cmd.exe와
C:\ProgramData\cmd.exe는 동일하게 봐서는 안 됩니다.
2) 위치와 부모 프로세스가 중요합니다
정상 파일이라도
- 비정상 경로에서 실행되고
- 비정상 부모 프로세스에 의해 실행되며
- 직후 인젝션, 네트워크 연결, 자식 프로세스 생성이 이어진다면
그 순간부터는 더 이상 “정상 파일 실행”이 아니라
침해 흐름의 일부로 봐야 합니다.
3) 마스커레이딩은 단독이 아니라 다른 기법과 결합됩니다
실제 공격에서는 마스커레이딩만 따로 쓰이지 않습니다.
자주 결합되는 기법은 다음과 같습니다.
- Process Hollowing
- DLL Search Order Hijacking
- LOLBAS 실행
- Scheduled Task 등록
- Persistence 확보
- 서명된 바이너리 악용
즉, 마스커레이딩은 탐지 우회의 입구이고,
그 뒤에는 훨씬 더 복잡한 공격 체인이 따라옵니다.
6. Masquerading + LOLBAS 조합이 더 위험한 이유
이번 글에서 사용한 예시는 cmd.exe 복사였지만,
실제 공격자는 cmd.exe보다 더 공격 친화적인 LOLBAS를 선호하는 경우가 많습니다.
예를 들어,
mshta.exe→ 스크립트 실행rundll32.exe→ DLL 로드 및 실행regsvr32.exe→ 스크립트 기반 우회certutil.exe→ 다운로드 및 인코딩/디코딩wmic.exe→ 원격 실행 및 정보 수집powershell.exe→ 광범위한 자동화와 실행
이 파일들이 비정상 경로에서 실행되거나,
복사본 형태로 사용되거나,
정상 업무 흐름과 맞지 않는 부모 프로세스 아래에서 동작한다면
탐지 난이도는 더 높아집니다.
따라서 마스커레이딩은 단지 “파일 위장” 문제가 아니라,
LOLBAS 악용과 결합되는 문맥 기반 위협으로 봐야 합니다.
7. 그래서 무엇을 해야 할까? 실무 방어 전략
여기서부터가 가장 중요합니다.
이 글의 결론은 “복사된 시스템 파일이 위험할 수 있다”가 아니라,
운영 환경에서 무엇을 확인하고 막아야 하는가입니다.
✅ 1) 정상 실행 파일의 “정상 경로”를 정의해야 합니다
cmd.exe, powershell.exe, rundll32.exe, mshta.exe 같은 파일은
존재 자체보다 어디서 실행됐는가가 중요합니다.
- 시스템 파일의 정상 경로 목록 정리
- 비정상 경로 실행 알림 설정
- 사용자 프로필,
ProgramData, 임시 폴더 실행 감시
✅ 2) 부모-자식 프로세스 관계를 봐야 합니다
정상 파일이라도 비정상 부모 아래에서 실행되면 의미가 달라집니다.
예:
winword.exe→cmd.exewscript.exe→powershell.exemshta.exe→rundll32.exe
이런 체인은 단일 파일 검사보다 훨씬 강한 신호가 됩니다.
✅ 3) AppLocker 또는 WDAC 같은 실행 제어를 검토해야 합니다
탐지보다 더 강력한 방법은
애초에 허용되지 않은 위치에서 시스템 실행 파일이 동작하지 못하게 하는 것입니다.
- AppLocker 정책
- WDAC(Windows Defender Application Control)
- 허용 목록 기반 실행 통제
- LOLBAS 제한 정책
✅ 4) EDR 수준의 문맥 분석이 필요합니다
서명 기반 탐지만으로는 한계가 있습니다.
최소한 다음 요소를 함께 볼 수 있어야 합니다.
- 파일 경로
- 부모/자식 프로세스 관계
- 명령행 인자
- 네트워크 연결
- 계정 문맥
- 이후 발생한 후속 행위
✅ 5) SIEM/XDR에서 상관 분석이 가능해야 합니다
예를 들어,
- 비정상 경로의
cmd.exe실행 - 직후 프로세스 인젝션 탐지
- 외부 통신 발생
- 동일 계정의 권한 상승 시도
이런 흐름이 연결되어 보여야
단순 이벤트가 아니라 공격 시나리오로 해석할 수 있습니다.
8. PLURA-XDR 관점에서의 차이점
이 지점에서 중요한 것은
“특정 악성 파일 하나를 잡느냐”보다,
정상처럼 보이는 행위를 비정상 문맥으로 읽을 수 있는가입니다.
PLURA-XDR 같은 XDR 접근이 의미를 갖는 이유도 여기에 있습니다.
예를 들어 다음과 같은 흐름을 함께 볼 수 있습니다.
ProgramData경로에서cmd.exe실행- 부모 프로세스가 일반적이지 않음
- 이어서 의심스러운 자식 프로세스 생성
- 이후 외부 연결 또는 추가 실행 발생
이 경우 파일명만 보면 cmd.exe지만,
행위 흐름 전체를 보면 정상 사용과 다른 패턴이 드러납니다.
즉, 차이는 제품 이름보다
파일을 보느냐, 문맥을 보느냐에 있습니다.
9. 결론: 정상 파일도, 정상 문맥이 아니면 더 이상 정상은 아닙니다
마스커레이딩은 오래된 기법이지만 여전히 유효합니다.
그 이유는 단순합니다.
보안 제품과 운영자가 여전히
“파일 이름”이나 “서명 여부”에 먼저 반응하는 경우가 많기 때문입니다.
하지만 실제 공격은 그렇게 단순하지 않습니다.
- 정상 파일도 복사될 수 있고
- 정상 경로 밖에서 실행될 수 있으며
- 정상 프로세스처럼 보이도록 위장될 수 있고
- 다른 우회 기법과 결합될 수 있습니다
결국 중요한 것은 이것입니다.
정상 파일인가? 보다
정상 문맥에서 실행되고 있는가? 를 먼저 봐야 합니다.
그리고 NDR, LOLBAS, Process Hollowing 글과 마찬가지로
이 글이 던지는 실무적 메시지도 분명합니다.
파일은 정상일 수 있습니다.
하지만 그 실행 흐름까지 정상이라는 뜻은 아닙니다.