시스템 보안 · 취약점 › F. 비정상 프로세스 · 지속성 징후 · 10/50편 (전체 260/450)
학습 단계: 비정상 프로세스 징후
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
공격자는 악성 프로세스를 정상 프로세스로 위장(masquerading)해 탐지를 피합니다. kworker·sshd·systemd 같은 익숙한 이름을 쓰거나, 정상 경로를 흉내 내거나, 오타 이름(sshd vs sshdd)을 씁니다.
프로세스 위장 기법
이름 위장: [kworker/0:0] 흉내, sshd·systemd 사칭
오타 위장: sshd→sshdd, cron→crond2
경로 위장: /usr/bin/sshd 아닌 /tmp/sshd
공백·특수문자: "nginx " (뒤 공백)
탐지: 이름 같아도 경로·해시·계보가 정상과 불일치
위장의 핵심은 "이름은 정상 같지만 경로·해시·계보가 다르다"입니다. 이름만 믿지 말고 실제 경로·해시를 검증해야 합니다.
| 위장 기법 | 신호 | 탐지 |
|---|---|---|
| 이름 사칭(sshd) | 경로 불일치 | exe 경로 검증 |
| 오타(sshdd) | 미세 차이 | 이름 정밀 비교 |
| 커널 스레드 사칭 | [kworker] 흉내 | PPID·경로 |
| 경로 위장 | /tmp/sshd | 표준 경로 대조 |
| 해시 변조 | 정상명·악성 해시 | 해시 대조 |
# 위장 프로세스 탐지 (분석 방법)
# 정상 이름인데 비표준 경로(위장)
sudo ausearch -k proc_exec -i --start recent 2>/dev/null | grep -E 'comm="(sshd|systemd|nginx|cron)"' | grep -vE 'exe=/usr/|exe=/lib/|exe=/sbin/'
# 커널 스레드 사칭(실제 커널 스레드는 PPID=2[kthreadd])
ps -eo pid,ppid,comm | awk '$3 ~ /\[/ && $2 != 2 {print "위장의심:",$0}'
$ (이름-경로 불일치) (없음)
$ (커널 스레드 사칭) (없음)
정상 이름 프로세스가 모두 표준 경로에서 실행되고, 커널 스레드 사칭이 없는 상태가 정상입니다.
$ (이름-경로 불일치)
comm="sshd" exe=/tmp/sshd ppid_comm="sh" (sshd 사칭)
$ (커널 스레드 사칭)
위장의심: 3100 3001 [kworker/9:9] (PPID≠2, 사용자 프로세스)
프로세스 위장 분석입니다(가상의 예시).
[정상] comm="sshd" exe=/usr/sbin/sshd ppid=systemd
[위장] comm="sshd" exe=/tmp/sshd ppid=sh
이름 같음 but 경로·부모 불일치 → 위장
[커널 사칭] comm="[kworker/9:9]" ppid≠2 → 사용자 프로세스
| 검증 | 정상 | 위장 |
|---|---|---|
| 경로 | /usr/sbin/sshd | /tmp/sshd |
| 부모 | systemd | sh |
| 커널 스레드 | PPID=2 | PPID≠2 |
이름이 같아도 경로·부모·해시로 위장을 식별합니다.
<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_f,process,">
<!-- 정상 이름인데 비표준 경로(위장) -->
<rule id="105090" level="13">
<if_sid>105010</if_sid>
<field name="audit.comm" type="pcre2">^(sshd|systemd|nginx|httpd|cron|crond|kworker)$</field>
<field name="audit.exe" type="pcre2">^(/tmp/|/dev/shm/|/var/tmp/|/home/)</field>
<description>정상 이름 프로세스의 비표준 경로 실행(위장)</description>
<mitre><id>T1036.005</id></mitre>
</rule>
</group>
정상 프로세스명의 표준 경로 매핑을 기준선으로 두고 경로 불일치를 탐지합니다. 커널 스레드 사칭은 PPID로 보완합니다.
| 위장 기법 | 탐지 |
|---|---|
| 이름 사칭(sshd) | exe 경로 검증 |
| 오타(sshdd) | 이름 정밀 비교 |
| 커널 스레드 사칭 | PPID≠2 |
| 해시 변조 | 해시 대조 |
| 면접 포인트 | "위장은 이름만 정상 — 경로·해시·계보 불일치로 식별, 이름만 믿지 말 것" |
다음 편 261. 프로세스·지속성 — 부모-자식 관계 이상 탐지 에서는 부모-자식 관계 이상을 다루는 부모-자식 관계 이상 탐지를 다룹니다.
이전 편: 259. 프로세스·지속성 — 비표준 경로 실행 프로세스 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점