시스템 보안 · 취약점 › F. 비정상 프로세스 · 지속성 징후 · 2/50편 (전체 252/450)
학습 단계: 프로세스·지속성 기본 개념
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
비정상 프로세스를 탐지하려면 먼저 정상 프로세스의 구조와 상태를 알아야 합니다. 프로세스는 PID·PPID(부모)·실행 경로·명령줄·소유자·상태 등으로 구성되며, 이 속성들이 판정의 기준이 됩니다.
프로세스 핵심 속성
PID/PPID: 프로세스 ID / 부모 ID(계보)
exe: 실행 파일 경로(/proc/<pid>/exe)
cmdline: 실행 명령줄(/proc/<pid>/cmdline)
UID/GID: 실행 소유자
cwd: 작업 디렉터리
상태: R(실행)·S(대기)·Z(좀비)·D
정상: 알려진 경로·부모·소유자로 실행되는 서비스·명령
정상 프로세스는 표준 경로(/usr/bin 등)에서, 적절한 부모(systemd·셸)로, 예상 소유자로 실행됩니다. 이 기준에서 벗어나면 이상입니다.
| 속성 | 정상 | 비정상 신호 |
|---|---|---|
| exe 경로 | /usr/bin 등 | /tmp·삭제됨 |
| PPID(부모) | systemd·셸 | 웹서버·DB(셸 생성) |
| UID | 예상 소유자 | 권한 불일치 |
| cmdline | 정상 인자 | 난독화·인코딩 |
| 상태 | R/S | 다수 좀비 |
# 프로세스 기본 구조 확인 (분석 방법)
# 프로세스별 경로·부모·소유자·명령줄
ps -eo pid,ppid,user,comm,args --sort=start_time | tail
# 특정 프로세스 상세(/proc)
PID=1234
ls -l /proc/$PID/exe 2>/dev/null; cat /proc/$PID/cmdline 2>/dev/null | tr '\0' ' '; echo
$ (프로세스 목록)
PID PPID USER COMMAND
980 1 root /usr/sbin/sshd (systemd 자식, 표준 경로)
1200 980 root sshd: alice [priv] (sshd 자식)
프로세스가 표준 경로에서 적절한 부모(systemd·sshd)로 실행되는, 정상 계보 상태입니다.
$ (프로세스 목록)
PID PPID USER COMMAND
3001 985 www-data sh -c /tmp/.x (웹서버가 셸 생성)
3002 3001 www-data /tmp/.x (비표준 경로)
프로세스 구조 분석 예시입니다(가상의 예시).
[정상] systemd(1) → sshd(980) → sshd:alice(1200) → bash(1201)
[비정상] httpd(985) → sh(3001) → /tmp/.x(3002)
부모가 웹서버 + 자식이 셸·비표준 경로 → 이상
| 속성 | 정상 | 비정상 |
|---|---|---|
| 경로 | /usr/sbin/sshd | /tmp/.x |
| 부모 | systemd | httpd |
| 계보 | 표준 | 웹→셸 |
정상 프로세스 구조를 알면 비정상 계보·경로가 즉시 드러납니다.
<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_f,process,">
<!-- 프로세스 실행 정규화(경로·부모·소유자 추출) -->
<rule id="105010" level="5">
<if_sid>105000</if_sid>
<field name="audit.syscall">execve</field>
<description>프로세스 실행 정규화(경로·부모·소유자 분석 기준)</description>
<mitre><id>T1057</id></mitre>
</rule>
</group>
execve 감사로 실행 경로·부모·소유자·명령줄을 파싱합니다. 필드 추출은 wazuh-logtest로 검증합니다.
| 속성 | 정상 vs 비정상 |
|---|---|
| exe 경로 | /usr/bin vs /tmp·삭제 |
| PPID(부모) | systemd·셸 vs 웹·DB |
| UID | 예상 vs 불일치 |
| cmdline | 정상 vs 난독화 |
| 면접 포인트 | "정상 프로세스 구조(경로·부모·소유자)를 알아야 비정상이 보인다" |
다음 편 253. 프로세스·지속성 — 프로세스 감사의 기반 구성(auditd execve) 에서는 프로세스 감사 기반을 다루는 프로세스 감사의 기반 구성(auditd execve)을 다룹니다.
이전 편: 251. 프로세스·지속성 — 비정상 프로세스·지속성 징후 분석 개요
📚 시리즈 전체 보기: 시스템 보안 · 취약점