252. 프로세스·지속성 — 프로세스 기본 구조와 정상 상태 이해

changseop lee·5일 전

시스템 보안 · 취약점

목록 보기
252/450

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

선행 학습

1. 개념

비정상 프로세스를 탐지하려면 먼저 정상 프로세스의 구조와 상태를 알아야 합니다. 프로세스는 PID·PPID(부모)·실행 경로·명령줄·소유자·상태 등으로 구성되며, 이 속성들이 판정의 기준이 됩니다.

프로세스 핵심 속성
 PID/PPID:  프로세스 ID / 부모 ID(계보)
 exe:       실행 파일 경로(/proc/<pid>/exe)
 cmdline:   실행 명령줄(/proc/<pid>/cmdline)
 UID/GID:   실행 소유자
 cwd:       작업 디렉터리
 상태:      R(실행)·S(대기)·Z(좀비)·D

정상: 알려진 경로·부모·소유자로 실행되는 서비스·명령

정상 프로세스는 표준 경로(/usr/bin 등)에서, 적절한 부모(systemd·셸)로, 예상 소유자로 실행됩니다. 이 기준에서 벗어나면 이상입니다.

2. 왜 중요한가

  • 프로세스 속성(경로·부모·소유자·명령줄)이 정상/비정상 판정의 기준입니다.
  • 정상 프로세스의 계보(systemd→서비스)를 알아야 비정상 계보가 보입니다.
  • /proc 파일시스템으로 실시간 프로세스 상태를 확인할 수 있습니다.

3. 핵심 명령어 / 설정

속성정상비정상 신호
exe 경로/usr/bin 등/tmp·삭제됨
PPID(부모)systemd·셸웹서버·DB(셸 생성)
UID예상 소유자권한 불일치
cmdline정상 인자난독화·인코딩
상태R/S다수 좀비

4. 실습 (실습 예시)

# 프로세스 기본 구조 확인 (분석 방법)
# 프로세스별 경로·부모·소유자·명령줄
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

5. 정상 상태

$ (프로세스 목록)
PID  PPID USER  COMMAND
980  1    root  /usr/sbin/sshd      (systemd 자식, 표준 경로)
1200 980  root  sshd: alice [priv]  (sshd 자식)

프로세스가 표준 경로에서 적절한 부모(systemd·sshd)로 실행되는, 정상 계보 상태입니다.

6. 이상 상태

$ (프로세스 목록)
PID   PPID USER      COMMAND
3001  985  www-data  sh -c /tmp/.x   (웹서버가 셸 생성)
3002  3001 www-data  /tmp/.x         (비표준 경로)
  • 웹서버(985)가 셸(sh) 생성 → 웹셸 실행 신호(비정상 부모-자식)
  • /tmp/.x 실행 → 비표준 경로 악성 프로세스
  • 비정상 계보·경로 → 이상 프로세스 → 정탐

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

프로세스 구조 분석 예시입니다(가상의 예시).

[정상] systemd(1) → sshd(980) → sshd:alice(1200) → bash(1201)
[비정상] httpd(985) → sh(3001) → /tmp/.x(3002)
         부모가 웹서버 + 자식이 셸·비표준 경로 → 이상
속성정상비정상
경로/usr/sbin/sshd/tmp/.x
부모systemdhttpd
계보표준웹→셸

정상 프로세스 구조를 알면 비정상 계보·경로가 즉시 드러납니다.

8. SOC 관제 포인트

  • 프로세스는 PID·PPID·exe·cmdline·UID 등 속성으로 구성되며, 이것이 판정 기준입니다.
  • 정상 프로세스는 표준 경로·적절한 부모·예상 소유자로 실행됩니다.
  • /proc 파일시스템으로 실행 경로·명령줄·계보를 확인해 이상을 판별합니다.

9. 탐지 규칙

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

10. 대응 방법

  1. 초기 확인 — 프로세스의 exe 경로·부모(PPID)·소유자·명령줄을 확인합니다.
  2. 범위 확인 — 표준 경로·적절한 부모·예상 소유자 여부(정상 구조)를 확인합니다.
  3. 증거 확보 — 프로세스 속성·계보 정보를 보존합니다.
  4. 차단/조치 — 비정상 구조(비표준 경로·이상 부모)면 상세 분석(F09~)으로 넘깁니다.
  5. 재발 방지 — 프로세스 구조 기준 정상/비정상 판별을 운영합니다.

11. 핵심 정리

속성정상 vs 비정상
exe 경로/usr/bin vs /tmp·삭제
PPID(부모)systemd·셸 vs 웹·DB
UID예상 vs 불일치
cmdline정상 vs 난독화
면접 포인트"정상 프로세스 구조(경로·부모·소유자)를 알아야 비정상이 보인다"

12. 다음 편 예고

다음 편 253. 프로세스·지속성 — 프로세스 감사의 기반 구성(auditd execve) 에서는 프로세스 감사 기반을 다루는 프로세스 감사의 기반 구성(auditd execve)을 다룹니다.


이전 편: 251. 프로세스·지속성 — 비정상 프로세스·지속성 징후 분석 개요
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글