시스템 보안 · 취약점 › F. 비정상 프로세스 · 지속성 징후 · 43/50편 (전체 293/450)
학습 단계: 프로세스·지속성 로그 분석
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
타임라인(F39)이 "시간순"이라면, 계보 기반 공격 체인 재구성은 "인과순"입니다. 프로세스 계보(부모-자식)를 따라가면 "최초 무엇이 무엇을 실행했고, 그것이 무엇으로 이어졌는가"의 인과 관계를 복원해, 최초 침투점(root cause)을 찾습니다.
계보 기반 공격 체인 재구성
프로세스 트리를 역추적:
C2 프로세스 → 부모 → 부모 ... → 최초 침투점
/tmp/.x → sh → nginx(웹셸) → 웹 요청(최초)
각 노드: 실행·지속성·C2 행위 매핑
목적: 최초 침투점(root cause) + 전체 영향 범위
핵심: 계보(인과) + 각 노드 행위 = 공격 스토리
계보 재구성의 목적은 root cause(최초 침투점) 식별입니다. C2 프로세스에서 부모를 역추적하면 웹셸·취약점 등 최초 진입점에 도달합니다.
| 재구성 요소 | 내용 | 가치 |
|---|---|---|
| 역추적 | C2→부모→최초 | root cause |
| 노드 행위 | 실행·지속성·C2 | 행위 매핑 |
| 최초 침투점 | 웹셸·취약점 | 근본 원인 |
| 영향 범위 | 계보 전체 | 전수 제거 |
| 분기 | 여러 자식 | 확산 파악 |
# 계보 기반 공격 체인 재구성 (분석 방법)
# C2 프로세스에서 부모 역추적
PID=3002
while [ "$PID" -gt 1 ]; do
read -r PPID COMM < <(ps -o ppid=,comm= -p $PID 2>/dev/null)
echo "$PID ($COMM) ← 부모 $PPID"; PID=$PPID
done 2>/dev/null
# auditd 계보로 재구성(ppid 체인)
sudo ausearch -k proc_exec -i --session 99 2>/dev/null | grep -E 'pid=|ppid=|comm=|exe='
$ (계보 역추적)
정상: bash ← sshd ← systemd (로그인 계보, root cause=정상 로그인)
프로세스 계보를 역추적했을 때 정상 로그인(systemd→sshd→bash)에 도달하는, 정상 인과 구조입니다.
$ (계보 역추적)
3002 (/tmp/.x) ← 3001 (sh) ← 985 (nginx) ← 1 (systemd)
$ (노드 행위 매핑)
nginx(985): 웹 요청 처리(최초 침투 — 웹셸)
sh(3001): 웹셸 명령 실행
/tmp/.x(3002): 페이로드 + cron/systemd 지속성 + C2
계보 기반 공격 체인 재구성입니다(가상의 예시).
[최초 침투 root cause]
웹 요청 → nginx(985) 웹셸
↓ (실행)
sh(3001) 웹셸 명령
↓ (실행)
/tmp/.x(3002) 페이로드
├ cron/systemd 지속성(F19·20)
├ bash→/dev/tcp C2(F29)
└ rm 로그(F35)
→ root cause(nginx 웹셸) + 전체 영향 범위
| 노드 | 행위 | 역할 |
|---|---|---|
| nginx | 웹셸 | root cause |
| sh | 명령 | 중간 |
| /tmp/.x | 페이로드 | 거점 |
| 지속성·C2 | 유지·제어 | 영향 |
계보를 역추적하면 root cause와 전체 영향이 한 그림으로 복원됩니다.
<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_f,lineage,">
<!-- 웹셸 계보에서 지속성·C2까지 전체 체인(root cause=웹서버) -->
<rule id="105420" level="15">
<if_sid>105410</if_sid>
<field name="audit.ppid_comm" type="pcre2">^(nginx|httpd|apache2?|php-fpm|tomcat)$</field>
<description>웹서버 기원 공격 체인 재구성(root cause=웹셸)</description>
<mitre><id>T1505.003</id><id>T1059</id></mitre>
</rule>
</group>
계보 재구성은 Sysmon·ELK 프로세스 트리 시각화로 보완합니다. root cause(최초 침투점)를 찾아 근본 원인(취약점·업로드)을 제거합니다.
| 재구성 요소 | 가치 |
|---|---|
| 역추적(C2→최초) | root cause |
| 노드 행위 매핑 | 행위 스토리 |
| 최초 침투점 | 근본 원인 |
| 영향 범위 | 전수 제거 |
| 면접 포인트 | "계보 재구성은 인과순 — root cause(최초 침투점) 찾아 근본 원인 제거" |
다음 편 294. 프로세스·지속성 — Wazuh 기반 프로세스·지속성 탐지 에서는 6단계로 넘어가 Wazuh 기반 프로세스·지속성 탐지를 다룹니다.
이전 편: 292. 프로세스·지속성 — 프로세스·지속성 이벤트 상관분석
📚 시리즈 전체 보기: 시스템 보안 · 취약점