시스템 보안 · 취약점 › I. 지속성 · 재침투 징후 · 3/50편 (전체 403/450)
학습 단계: 지속성·재침투 기본 개념
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
지속성은 특정 파일·디렉터리·설정에 심어집니다. 따라서 탐지 기반은 "지속성이 자리 잡는 위치를 FIM·auditd watch로 감시"하는 것입니다. 변경이 드문 위치일수록 감시 가치가 높습니다.
지속성 탐지 기반 감시 대상
계정·인증: /etc/passwd·shadow·sudoers·~/.ssh/authorized_keys·PAM
스케줄: /etc/cron*·/var/spool/cron·systemd 유닛·timer
부팅: /etc/rc.local·init·udev·커널 모듈
셸: ~/.bashrc·/etc/profile.d·ld.so.preload
감시 수단: FIM(변경)·auditd watch(행위)·중앙 수집
핵심: 지속성 자리에 FIM+watch 이중 감시
핵심은 "지속성이 자리 잡는 곳을 미리 감시"하는 것입니다. 변경이 드문 인증·스케줄·부팅 위치는 FIM과 auditd watch로 이중 감시해야 합니다.
| 영역 | 감시 대상 | 수단 |
|---|---|---|
| 계정·인증 | passwd·sudoers·ssh keys·PAM | FIM·watch |
| 스케줄 | cron·systemd·timer | FIM·watch |
| 부팅 | rc.local·init·udev·모듈 | FIM |
| 셸 | bashrc·profile.d·preload | FIM |
| 중앙 | 모든 변경 | 중앙 수집 |
# 지속성 탐지 기반 구성 (분석 방법)
# 인증·스케줄 위치 변경 감시(auditd watch)
sudo auditctl -w /etc/cron.d/ -p wa -k persist 2>/dev/null
sudo auditctl -w /root/.ssh/authorized_keys -p wa -k account_persist 2>/dev/null
sudo auditctl -w /etc/sudoers -p wa -k account_persist 2>/dev/null
# systemd 유닛 디렉터리 감시
sudo auditctl -w /etc/systemd/system/ -p wa -k persist 2>/dev/null
# FIM 대상 포함 확인
sudo grep -E 'cron|ssh|sudoers|systemd|profile' /var/ossec/etc/ossec.conf 2>/dev/null | head
$ auditctl -l | grep -E 'persist|account_persist' (watch 설정됨)
$ (FIM) 지속성 위치 감시 대상 포함
지속성 위치에 대한 watch가 설정되고, FIM 감시 대상에 인증·스케줄·부팅 위치가 포함된 상태가 정상입니다.
$ auditctl -l (persist watch 없음)
$ (FIM) authorized_keys·cron·systemd 미포함
→ 지속성 설치를 탐지할 수단 부재(탐지 사각)
지속성 탐지 기반 구조입니다(가상의 예시).
[지속성 설치] authorized_keys 키 추가
↓ (포착 채널)
① auditd watch(account_persist) → 변경 행위 기록
② FIM → 파일 변경 결과 탐지
③ 중앙 수집 → 매니저 보존
↓
[탐지] 변경 행위 + 결과 + 중앙 사본 → 지속성 설치 포착
| 채널 | 역할 |
|---|---|
| auditd watch | 설치 행위 |
| FIM | 변경 결과 |
| 중앙 수집 | 보존 |
이중 감시 + 중앙 수집이 지속성 탐지 기반입니다.
<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_i,persistence,">
<rule id="108020" level="5">
<if_sid>108000</if_sid>
<field name="audit.key" type="pcre2">persist|account_persist</field>
<description>지속성 위치 변경 감시 이벤트(탐지 기반)</description>
<mitre><id>TA0003</id></mitre>
</rule>
</group>
인증·스케줄·부팅·셸 위치를 FIM·auditd watch로 감시하고 Wazuh로 중앙 수집합니다. 변경이 드문 위치는 높은 레벨로 경보 설계합니다.
| 영역 | 감시 대상 |
|---|---|
| 계정·인증 | passwd·sudoers·ssh keys·PAM |
| 스케줄 | cron·systemd·timer |
| 부팅 | rc.local·init·udev·모듈 |
| 셸 | bashrc·profile.d·preload |
| 면접 포인트 | "지속성 자리에 FIM+watch 이중 감시 — 변경 드문 위치가 고가치" |
다음 편 404. 지속성·재침투 — 지속성 정상 기준선 만들기 에서는 지속성 정상 기준선을 다루는 지속성 정상 기준선 만들기를 다룹니다.
이전 편: 402. 지속성·재침투 — 지속성(persistence)·재침투의 개념과 공격 단계
📚 시리즈 전체 보기: 시스템 보안 · 취약점