시스템 보안 · 취약점 › F. 비정상 프로세스 · 지속성 징후 · 3/50편 (전체 253/450)
학습 단계: 프로세스·지속성 기본 개념
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
F영역 탐지의 기반은 프로세스 실행 감사(execve)와 지속성 위치 감시입니다. execve는 모든 프로그램 실행을 포착하고, 지속성 위치(cron·systemd 등) watch는 거점 등록을 포착합니다.
프로세스·지속성 감사 구성(auditd)
execve 감사: -S execve -k proc_exec
→ 모든 실행(경로·명령줄·부모) 포착
지속성 watch:
-w /etc/cron.d -p wa -k persist
-w /etc/systemd/system -p wa -k persist
-w /root/.ssh/authorized_keys -p wa -k persist
주의: execve는 이벤트가 매우 많음 → 필터·집계 필요
execve 감사는 이벤트가 폭증하므로, Wazuh/ELK에서 필터·집계하고 비정상 패턴만 경보하도록 설계해야 합니다.
| 감사 대상 | 규칙 | 키 |
|---|---|---|
| 프로세스 실행 | -S execve | proc_exec |
| cron 지속성 | -w /etc/cron* | persist |
| systemd 지속성 | -w .../systemd/system | persist |
| SSH 키 | -w authorized_keys | persist |
| 셸 설정 | -w .bashrc 등 | persist |
# 프로세스·지속성 감사 구성 (분석 방법)
sudo tee /etc/audit/rules.d/process.rules >/dev/null <<'RULES'
-a always,exit -F arch=b64 -S execve -k proc_exec
-a always,exit -F arch=b32 -S execve -k proc_exec
-w /etc/cron.d -p wa -k persist
-w /etc/crontab -p wa -k persist
-w /etc/systemd/system -p wa -k persist
-w /root/.ssh/authorized_keys -p wa -k persist
RULES
sudo augenrules --load 2>/dev/null; sudo auditctl -l | grep -E 'execve|persist'
$ (감사 규칙 확인)
-a always,exit -S execve -k proc_exec
-w /etc/cron.d -p wa -k persist
→ 프로세스 실행·지속성 감사가 활성화된 상태
execve 실행 감사와 지속성 위치 watch가 로드되어, 실행·거점 등록이 키별로 기록되는 상태가 정상입니다.
$ (감사 규칙 확인) (없음 — 규칙 미설정)
$ sudo ausearch -k proc_exec
<no matches>
프로세스·지속성 감사 기반 구성 흐름입니다(가상의 예시).
[규칙 작성] execve + 지속성 watch
↓
[로드] augenrules --load
↓
[이벤트] 실행 시 execve 로그 / 지속성 변경 시 watch 로그
↓
[수집·필터] Wazuh/ELK에서 비정상 패턴만(F09~)
↓
[탐지] 키 기반 룰(105000번대)
| 키 | 대상 |
|---|---|
| proc_exec | 모든 프로세스 실행 |
| persist | cron·systemd·키·설정 |
키 체계로 실행과 지속성을 구분해 탐지·분석을 체계화합니다.
<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_f,process,">
<rule id="105020" level="5">
<if_sid>105000</if_sid>
<field name="audit.key" type="pcre2">proc_exec|persist</field>
<description>프로세스·지속성 감사 키 매칭(기반)</description>
<mitre><id>T1057</id></mitre>
</rule>
</group>
execve 감사량이 많으면 서비스 프로세스를 제외하거나 Sysmon(F46)으로 보완합니다. 로드 후 wazuh-logtest로 검증합니다.
| 감사 대상 | 키 |
|---|---|
| 프로세스 실행 | proc_exec(execve) |
| cron·systemd | persist |
| SSH 키·셸 설정 | persist |
| 필터 | 비정상 패턴만 경보 |
| 면접 포인트 | "F영역은 execve 감사가 기반 — 이벤트 많으므로 비정상 패턴 필터링 필수" |
다음 편 254. 프로세스·지속성 — 프로세스 정상 기준선 만들기 에서는 프로세스 정상 기준선을 다루는 프로세스 정상 기준선 만들기를 다룹니다.
이전 편: 252. 프로세스·지속성 — 프로세스 기본 구조와 정상 상태 이해
📚 시리즈 전체 보기: 시스템 보안 · 취약점