시스템 보안 · 취약점 › H. 방어 회피 · 흔적 삭제 징후 · 30/50편 (전체 380/450)
학습 단계: 위장·난독화·흔적 분석
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
공격자는 악성 파일을 정상 파일명·확장자로 위장합니다. Linux는 확장자가 아닌 실제 내용으로 실행되므로, 이름과 실제 파일 유형(file 명령)이 불일치합니다. 유니코드·이중 확장자·공백 트릭도 쓰입니다.
파일명·확장자 위장 기법
확장자 위장: payload.jpg(실제는 ELF 실행 파일)
이중 확장자: invoice.pdf.sh
유니코드 트릭: RTL 오버라이드로 이름 역전
정상명 사칭: libssl.so 흉내(실제 악성)
특징: 이름·확장자 vs 실제 파일 유형(magic) 불일치
탐지: file 명령 유형 vs 확장자, 실행 가능 비정상 파일
핵심은 "확장자와 실제 내용이 다른 것"입니다. file 명령으로 매직 바이트를 확인하면 .jpg인데 ELF 실행 파일 같은 위장이 드러납니다.
| 위장 | 예 | 단서 |
|---|---|---|
| 확장자 위장 | .jpg = ELF | file 유형 불일치 |
| 이중 확장자 | .pdf.sh | 실행 가능 |
| 유니코드 | RTL 역전 | 이름 디코딩 |
| 라이브러리 사칭 | libX.so 흉내 | 서명·경로 |
| 정상 | 유형=확장자 | 일치 |
# 파일명·확장자 위장 탐지 (분석 방법)
# 확장자 vs 실제 유형 불일치(이미지·문서인데 실행 파일)
for f in $(find /tmp /home /var/tmp -type f \( -name '*.jpg' -o -name '*.pdf' -o -name '*.png' -o -name '*.txt' \) 2>/dev/null | head); do file "$f" 2>/dev/null | grep -E 'ELF|executable|script' && echo "위장: $f"; done
# 실행 권한 있는 비정상 확장자 파일
sudo find /tmp /dev/shm -type f -perm -u+x \( -name '*.jpg' -o -name '*.png' -o -name '*.pdf' \) 2>/dev/null | head
$ (확장자 vs 유형) 일치(.jpg=이미지, .pdf=문서)
$ (실행 가능 이미지) (없음)
파일 확장자와 실제 유형이 일치하고, 이미지·문서 확장자에 실행 권한·실행 코드가 없는 상태가 정상입니다.
$ (확장자 vs 유형)
/tmp/photo.jpg: ELF 64-bit LSB executable (실행 파일!)
/home/user/invoice.pdf.sh: Bourne shell script
$ (실행 가능 이미지)
/dev/shm/logo.png (실행 권한 + ELF)
파일명·확장자 위장 분석입니다(가상의 예시).
[공격자] 악성 ELF 실행 파일
이름을 photo.jpg로 변경 (이미지처럼 위장)
↕ (탐지)
[분석가]
확장자: .jpg (이미지처럼 보임)
file photo.jpg → ELF executable (실체 노출)
실행 권한 존재 (이미지는 실행 권한 불필요)
↓
= 확장자는 속여도 매직 바이트(file)가 실체 → 정탐
| 관점 | 위장 | 실체 |
|---|---|---|
| 확장자 | .jpg | 이미지인 척 |
| file 유형 | — | ELF 실행 |
| 실행 권한 | — | +x(비정상) |
확장자 vs file 유형 교차가 파일 위장 탐지의 핵심입니다.
<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_h,defense_evasion,">
<rule id="107290" level="12">
<if_sid>107000</if_sid>
<field name="audit.exe" type="pcre2">\.(jpg|jpeg|png|gif|pdf|txt|doc|csv)$</field>
<description>이미지·문서 확장자 파일의 실행(확장자 위장)</description>
<mitre><id>T1036.008</id><id>T1036.005</id></mitre>
</rule>
</group>
실행된 파일의 확장자와 실제 유형을 대조합니다. 이미지·문서 확장자 파일의 실행은 확장자 위장으로 높은 레벨 경보합니다.
| 위장 | 예 |
|---|---|
| 확장자 위장 | .jpg = ELF |
| 이중 확장자 | .pdf.sh |
| 유니코드 | RTL 역전 |
| 라이브러리 사칭 | libX.so 흉내 |
| 면접 포인트 | "Linux는 내용으로 실행 — 확장자 vs file 유형 불일치가 위장 신호" |
다음 편 381. 방어 회피·흔적 삭제 — 경로·위치 위장 탐지 에서는 경로·위치 위장을 다루는 경로·위치 위장 탐지를 다룹니다.
이전 편: 379. 방어 회피·흔적 삭제 — 정상 프로세스 위장(masquerading) 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점