시스템 보안 · 취약점 › I. 지속성 · 재침투 징후 · 50/50편 (전체 450/450)
학습 단계: 실전 시나리오·종합
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
I영역 50편을 한 편으로 정리합니다. 지속성·재침투 대응은 "무엇이 남아 있는가(인벤토리)", "언제 생겼는가(타임라인)", "다시 돌아올 수 없는가(근절 검증)" 세 질문으로 요약됩니다.
I영역 50편 지도
[기초 I01~08] 개념·감사 기반·기준선·분류(MITRE)·재침투 경로·정상 구분·판정 6축
[계정·인증 I09~18] 백도어 계정·UID 0·휴면·SSH 키·sshd·PAM·sudoers·자격증명·CA
[스케줄·부팅 I19~28] cron·at·service·timer·drop-in·rc.local·셸·udev·preload
[통로·거점 I29~38] 리버스·리스너·웹셸·비컨·터널·신뢰 관계·커널 모듈·바이너리·복귀
[분석·SOC I39~50] 인벤토리·정기 diff·타임라인·정규화·상관·Wazuh·ELK·근절·대응·룰·시나리오
세 질문
무엇이 남았나 → 인벤토리(I39)
언제 생겼나 → 타임라인(I41)
돌아올 수 없나 → 근절 검증·감시 기간(I46·I37)
이 세 질문은 Linux 지속성뿐 아니라 Windows·클라우드 환경에서도 그대로 쓸 수 있는 범용 사고 대응 틀입니다.
| 질문 | 도구 | 산출물 |
|---|---|---|
| 무엇이 | 인벤토리·기준선 diff | 지속성 목록 |
| 누가·어떻게 | auditd·FIM whodata | 주체·방법 |
| 언제·순서 | 타임라인·상관 | 설치 순서·재생성 관계 |
| 얼마나 넓게 | IOC·키 지문 상관 | 영향 호스트 |
| 끝났는가 | 재부팅 재수집·감시 기간 | 근절 증명 |
# I영역 최종 점검 루틴 (분석 방법) — 한 호스트 15분 점검
sudo /usr/local/sbin/persist-inventory | tee /root/ir/inv_$(hostname).tsv | grep -cP '\t미소유\t'
awk -F: '$3==0{print $1}' /etc/passwd
ls /etc/ld.so.preload 2>/dev/null; cat /proc/sys/kernel/tainted
sudo rpm -Va 2>/dev/null | grep -cE '^..5.* /(usr/)?s?bin/'
sudo ss -lntup | wc -l; sudo ss -tnp | grep -cE '"(bash|sh|python[0-9.]*|nc|ssh)"'
sudo atq; systemctl list-timers --all --no-legend | wc -l
미소유 지속성 0 · UID 0 = root · preload 없음 · tainted 0
바이너리 불일치 0 · 셸 외부 연결 0 · atq 비어 있음
15분 점검 결과가 모두 기준값이면 해당 호스트에 알려진 지속성·재침투 경로가 없다고 판단하고, 결과를 기준선으로 보관합니다.
미소유 지속성 4 · UID 0 = root, backup · tainted 12288
→ 계정·부팅·커널 층 동시 이상 → 깊은 거점 의심
「시스템 보안 · 취약점」 450편 전체 흐름입니다(가상의 예시).
A 서버 보안 설정(001~050) 기준선을 만든다
↓
B 계정·인증(051~100) 누가 들어오는지 본다
↓
C 정보 노출·수집(101~150) 들어와서 무엇을 살피는지 본다
↓
D 권한 변경(151~200) 어떻게 권한을 얻는지 본다
↓
E 중요 정보 접근(201~250) 무엇을 가져가는지 본다
↓
F 프로세스·지속성(251~300) 무엇을 실행하는지 본다
↓
G·H 로그 변조·방어 회피(301~400) 어떻게 숨는지 본다
↓
I 지속성·재침투(401~450) 어떻게 남고 돌아오는지 보고, 끊는다
| 단계 | 관제 질문 |
|---|---|
| 하드닝(A) | 정상은 무엇인가 |
| 침투·상승(B~D) | 누가 어떻게 들어와 권한을 얻나 |
| 행위(E~F) | 무엇을 가져가고 실행하나 |
| 은폐·잔존(G~I) | 어떻게 숨고 남고 돌아오나 |
450편은 결국 "정상을 알고(A), 이상을 단계별로 보고(B~H), 끝까지 끊는다(I)"는 하나의 관제 흐름입니다. 다음 학습은 이 흐름을 실제 SIEM 데이터와 사고 대응 보고서로 연결하는 것입니다.
<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_i,persistence,">
<rule id="108490" level="3">
<if_sid>108000</if_sid>
<field name="audit.key" type="pcre2">^(persist_|account_persist|reentry_)</field>
<description>I영역 지속성·재침투 감시 이벤트(종합 대시보드 집계용)</description>
<mitre><id>TA0003</id></mitre>
</rule>
</group>
종합 대시보드 집계용 저레벨 룰입니다. 상세 판정은 108080~108480 하위 룰이 담당하고, 이 룰은 호스트별·분류별 전체 추이를 보는 데 씁니다.
| 축 | 핵심 |
|---|---|
| 무엇이 | 인벤토리 |
| 언제 | 타임라인 |
| 끝났나 | 근절 검증·감시 기간 |
| 범용성 | Linux 외 환경에도 적용 |
| 면접 포인트 | "지속성 대응은 세 질문 — 무엇이 남았나, 언제 생겼나, 다시 돌아올 수 없나" |
「시스템 보안 · 취약점」 시리즈 450편이 이 글로 마무리됩니다. 처음부터 다시 보려면 001. Linux 서버 보안 — 기본 보안 점검 항목과 하드닝 로드맵에서 시작하면 되고, 전체 목록은 아래 시리즈 링크에서 확인할 수 있습니다.
이전 편: 449. 지속성·재침투 — 실전 시나리오 — 침투부터 지속성 설치·재침투까지
📚 시리즈 전체 보기: 시스템 보안 · 취약점