253. 프로세스·지속성 — 프로세스 감사의 기반 구성(auditd execve)

changseop lee·5일 전

시스템 보안 · 취약점

목록 보기
253/450

시스템 보안 · 취약점 › F. 비정상 프로세스 · 지속성 징후 · 3/50편 (전체 253/450)
학습 단계: 프로세스·지속성 기본 개념
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.

선행 학습

1. 개념

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에서 필터·집계하고 비정상 패턴만 경보하도록 설계해야 합니다.

2. 왜 중요한가

  • execve 감사가 있어야 모든 프로세스 실행을 기록·분석할 수 있습니다(없으면 실행 추적 불가).
  • 지속성 위치 watch로 거점 등록(cron·systemd·키)을 포착합니다.
  • execve는 이벤트가 많으므로, 수집 후 비정상 패턴 필터링이 핵심입니다.

3. 핵심 명령어 / 설정

감사 대상규칙키
프로세스 실행-S execveproc_exec
cron 지속성-w /etc/cron*persist
systemd 지속성-w .../systemd/systempersist
SSH 키-w authorized_keyspersist
셸 설정-w .bashrc 등persist

4. 실습 (실습 예시)

# 프로세스·지속성 감사 구성 (분석 방법)
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'

5. 정상 상태

$ (감사 규칙 확인)
-a always,exit -S execve -k proc_exec
-w /etc/cron.d -p wa -k persist
→ 프로세스 실행·지속성 감사가 활성화된 상태

execve 실행 감사와 지속성 위치 watch가 로드되어, 실행·거점 등록이 키별로 기록되는 상태가 정상입니다.

6. 이상 상태

$ (감사 규칙 확인) (없음 — 규칙 미설정)
$ sudo ausearch -k proc_exec
<no matches>
  • execve 감사 미설정 → 프로세스 실행이 전혀 기록 안 됨
  • 비표준 경로·위장 실행·C2를 탐지할 수 없음(실행 추적 불가)
  • 감사 기반 부재 = F영역 탐지의 근본 공백 → 최우선 구성

7. 로그 분석 (분석 방법)

프로세스·지속성 감사 기반 구성 흐름입니다(가상의 예시).

[규칙 작성] execve + 지속성 watch
      ↓
[로드] augenrules --load
      ↓
[이벤트] 실행 시 execve 로그 / 지속성 변경 시 watch 로그
      ↓
[수집·필터] Wazuh/ELK에서 비정상 패턴만(F09~)
      ↓
[탐지] 키 기반 룰(105000번대)
키대상
proc_exec모든 프로세스 실행
persistcron·systemd·키·설정

키 체계로 실행과 지속성을 구분해 탐지·분석을 체계화합니다.

8. SOC 관제 포인트

  • F영역 기반은 execve 프로세스 실행 감사와 지속성 위치 watch입니다.
  • proc_exec(실행)·persist(거점) 키로 유형을 구분합니다.
  • execve는 이벤트가 많으므로 수집 후 비정상 패턴 필터링이 필수입니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 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로 검증합니다.

10. 대응 방법

  1. 초기 확인 — execve 실행 감사·지속성 watch의 로드·활성 상태를 확인합니다.
  2. 범위 확인 — proc_exec·persist 키별 이벤트 기록을 확인합니다.
  3. 증거 확보 — 감사 규칙 세트와 샘플 이벤트를 보존합니다.
  4. 차단/조치 — 감사 미설정 시 execve·지속성 규칙을 구성·로드합니다.
  5. 재발 방지 — 프로세스·지속성 감사 기반을 F영역 탐지의 토대로 운영합니다.

11. 핵심 정리

감사 대상키
프로세스 실행proc_exec(execve)
cron·systemdpersist
SSH 키·셸 설정persist
필터비정상 패턴만 경보
면접 포인트"F영역은 execve 감사가 기반 — 이벤트 많으므로 비정상 패턴 필터링 필수"

12. 다음 편 예고

다음 편 254. 프로세스·지속성 — 프로세스 정상 기준선 만들기 에서는 프로세스 정상 기준선을 다루는 프로세스 정상 기준선 만들기를 다룹니다.


이전 편: 252. 프로세스·지속성 — 프로세스 기본 구조와 정상 상태 이해
📚 시리즈 전체 보기: 시스템 보안 · 취약점

profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글