시스템 보안 · 취약점 › F. 비정상 프로세스 · 지속성 징후 · 13/50편 (전체 263/450)
학습 단계: 비정상 프로세스 징후
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
공격자는 바이너리를 실행한 뒤 파일을 삭제해 디스크 흔적을 지웁니다. 프로세스는 메모리에서 계속 동작하지만 바이너리 파일은 사라져, 파일 기반 탐지·포렌식을 회피합니다. 이는 강한 악성 신호입니다.
삭제된 바이너리 실행
공격: /tmp/.x 실행 → rm /tmp/.x (파일 삭제)
프로세스는 살아있음(메모리), 파일은 없음
흔적: /proc/<pid>/exe → "/tmp/.x (deleted)"
파일 스캔·해시 검사 회피
정상 프로세스는 바이너리가 디스크에 존재함
리눅스는 실행 중 파일을 삭제해도 프로세스가 계속 돕니다. /proc/<pid>/exe가 (deleted)로 표시되는 것이 핵심 탐지 지표입니다.
(deleted) 상태는 강한 악성 신호입니다.| 지표 | 의미 | 위험 |
|---|---|---|
/proc/*/exe (deleted) | 바이너리 삭제됨 | 매우 높음 |
| 실행 직후 rm | 흔적 삭제 | 높음 |
| /tmp 삭제 바이너리 | 비표준+삭제 | 매우 높음 |
| memfd 실행 | fileless(F14) | 높음 |
| 정상 업데이트 교체 | 일시적 | 맥락 확인 |
# 삭제된 바이너리 실행 탐지 (분석 방법)
# /proc/<pid>/exe가 (deleted)인 프로세스
ls -l /proc/*/exe 2>/dev/null | grep '(deleted)'
# 실행 후 삭제 연계(execve 후 같은 경로 unlink)
sudo ausearch -k proc_exec -i --start recent 2>/dev/null | grep -A5 'exe=/tmp' | grep -E 'unlink|delete'
$ (deleted 바이너리) (없음)
실행 중 모든 프로세스의 바이너리가 디스크에 존재하고, (deleted) 상태 프로세스가 없는 상태가 정상입니다.
$ (deleted 바이너리)
/proc/3002/exe -> /tmp/.x (deleted)
/proc/3100/exe -> /dev/shm/payload (deleted)
삭제된 바이너리 실행 분석입니다(가상의 예시).
[실행] execve /tmp/.x (프로세스 3002 생성)
↓
[삭제] rm /tmp/.x (디스크 파일 제거)
↓
[상태] /proc/3002/exe -> /tmp/.x (deleted)
프로세스 살아있음, 파일 없음(흔적 회피)
↓
[대응] /proc/3002/exe 메모리 덤프로 바이너리 확보·분석
| 관찰 | 해석 |
|---|---|
| exe (deleted) | 바이너리 삭제 |
| 프로세스 생존 | 메모리 동작 |
| 디스크 없음 | 스캔 회피 |
| /proc 덤프 | 분석 확보 |
삭제돼도 /proc//exe로 메모리의 바이너리를 복원할 수 있습니다.
/proc/<pid>/exe (deleted) 상태가 핵심 탐지 지표이자 강한 악성 신호입니다.<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_f,process,">
<!-- 주기 점검: (deleted) 바이너리 실행 프로세스 -->
<rule id="105120" level="13">
<decoded_as>json</decoded_as>
<field name="check">deleted_exe</field>
<field name="status">found</field>
<description>삭제된 바이너리 실행 프로세스(흔적 회피)</description>
<mitre><id>T1070.004</id><id>T1620</id></mitre>
</rule>
</group>
(deleted) 상태는 주기 점검 스크립트·EDR로 탐지해 로그로 수집합니다. 실행 후 unlink 연계는 auditd로 보완합니다.
(deleted) 상태 프로세스·경로·주체·계보를 확인합니다.| 지표 | 의미 |
|---|---|
| /proc/*/exe (deleted) | 바이너리 삭제됨 |
| 실행 직후 rm | 흔적 삭제 |
| /dev/shm 삭제 | 메모리+삭제 |
| /proc 덤프 | 분석 확보 |
| 면접 포인트 | "실행 후 파일 삭제해도 /proc/exe로 복원 — (deleted) 상태는 강한 악성 신호" |
다음 편 264. 프로세스·지속성 — 메모리 전용 실행(fileless) 징후 탐지 에서는 메모리 전용 실행을 다루는 메모리 전용 실행(fileless) 징후 탐지를 다룹니다.
이전 편: 262. 프로세스·지속성 — 셸·인터프리터 비정상 실행 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점