시스템 보안 · 취약점 › F. 비정상 프로세스 · 지속성 징후 · 49/50편 (전체 299/450)
학습 단계: 실전 시나리오·종합
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
F영역을 실전 시나리오로 종합합니다. 침투(웹셸)→비정상 실행→지속성→C2의 전체 공격을 관제 화면과 로그 흔적 중심으로 재구성합니다. SOC가 보는 탐지·판정·봉쇄·근절 관점으로 서술하며, 모든 데이터는 가상입니다.
시나리오 개요(가상)
대상: 웹 서버(192.0.2.50, 가상 IP)
침투: 웹 취약점 → 웹셸 업로드(가정)
목표: 장기 거점 유지(지속성·C2)
관제: Wazuh+ELK+Sysmon으로 탐지, 관제원이 대응
웹셸 침투 → 비정상 실행 → 지속성 → C2 → 봉쇄·근절
이 시나리오는 F영역 전편(프로세스·지속성·C2 탐지·분석·대응)이 실제 거점 구축 사건에서 어떻게 작동하는지 보여줍니다.
| 단계 | 공격(가상) | 탐지(관제) |
|---|---|---|
| 침투 | 웹셸 업로드·실행 | 105040·105310 |
| 실행 | /tmp/.x | 105080 |
| 지속성 | cron+systemd | 105180·105190 |
| C2 | 리버스셸 | 105280 |
| 대응 | 봉쇄·근절 | 105460 |
# 실전 시나리오 관제 분석 (분석 방법)
SES=99
echo "=== 세션 $SES 거점 구축 타임라인 ==="
sudo ausearch -k proc_exec,persist -i --session $SES 2>/dev/null | grep -E 'time->|proctitle=|ppid_comm='
# 계보 재구성(root cause)
echo "=== root cause 역추적 ==="
sudo ausearch -k proc_exec -i --session $SES 2>/dev/null | grep -E 'pid=|ppid=|comm='
$ (평시 관제 화면)
거점 구축 경보: 0 (고위험)
세션: 정상 서비스·배포만
→ 평시엔 거점 구축 경보 없음
평시에는 거점 구축 경보가 없고, 정상 서비스·배포 활동만 기록되는 상태가 정상입니다.
$ (사건 발생 — 관제 화면 타임라인)
04:09 www-data nginx→sh (웹셸, 105040 level 13)
04:10 www-data /tmp/.x (비표준 실행, 105080 level 12)
04:11 www-data cron.d/0hourly-x (지속성, 105180 level 13)
04:12 www-data updater.service (지속성, 105190 level 13)
04:13 www-data bash→/dev/tcp/192.0.2.88/4444 (C2, 105280 level 14)
04:15 www-data rm /var/log/secure (은닉, 105340)
→ 105410 계보 상관: 실행→지속성→C2 (level 15)
→ 105420: root cause=nginx 웹셸
실전 거점 구축 사건 흐름입니다(가상의 예시).
[04:09] 침투 nginx→sh 웹셸 → 105040 (관제 인지)
↓
[04:10] 실행 /tmp/.x → 105080
↓
[04:11] 지속성 cron.d/0hourly-x → 105180
[04:12] 지속성 updater.service → 105190 (중복)
↓
[04:13] C2 bash→/dev/tcp/4444 → 105280
↓
[04:15] 은닉 rm /var/log/secure → 105340
↓
[대응] C2 차단 → 프로세스 종료 → 지속성 전수 제거 → 웹셸·취약점(root cause) 제거
| 시각 | 단계 | 탐지 |
|---|---|---|
| 04:09 | 침투 | 105040 |
| 04:10 | 실행 | 105080 |
| 04:11~12 | 지속성 | 105180·190 |
| 04:13 | C2 | 105280 |
침투부터 C2까지 6분 공격이 관제 화면에 단계별 경보로 포착되고, 계보 상관으로 확정됩니다.
<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_f,scenario,">
<!-- 침투→실행→지속성→C2 전체 공격 체인 최종 상관 -->
<rule id="105480" level="15" frequency="4" timeframe="1800">
<if_matched_sid>105410</if_matched_sid>
<same_field>audit.session</same_field>
<description>거점 구축 전체 공격 체인 확증(침투→실행→지속성→C2)</description>
<mitre><id>T1505.003</id><id>T1543</id><id>T1071</id></mitre>
</rule>
</group>
전체 체인 상관(level 15)은 최우선 경보입니다. E영역·F영역 룰을 세션·계보로 엮어 거점 구축 전 과정을 한 사건으로 포착합니다.
| 단계 | 탐지·대응 |
|---|---|
| 침투(웹셸) | 105040 — 인지 |
| 실행·지속성 | 105080·105180 — 거점 |
| C2·은닉 | 105280·105340 — 제어·회피 |
| 대응 | 봉쇄·전수 근절 |
| 면접 포인트 | "침투부터 C2까지 계보·세션 상관으로 한 사건 — 봉쇄+전수 근절+root cause" |
다음 편 300. 프로세스·지속성 — 비정상 프로세스·지속성 징후 종합 정리 에서는 F영역을 마무리하는 비정상 프로세스·지속성 징후 종합 정리를 다룹니다.
이전 편: 298. 프로세스·지속성 — 비정상 프로세스·지속성 탐지 규칙 모음
📚 시리즈 전체 보기: 시스템 보안 · 취약점