450. 지속성·재침투 — 지속성·재침투 징후 종합 정리

changseop lee·4일 전

시스템 보안 · 취약점

목록 보기
450/450

시스템 보안 · 취약점 › I. 지속성 · 재침투 징후 · 50/50편 (전체 450/450)
학습 단계: 실전 시나리오·종합
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.

선행 학습

1. 개념

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·클라우드 환경에서도 그대로 쓸 수 있는 범용 사고 대응 틀입니다.

2. 왜 중요한가

  • 지속성은 사고 대응의 마지막 관문이며, 놓치면 사고가 반복됩니다.
  • I영역은 앞선 A~H영역(하드닝·인증·정찰·권한·접근·프로세스·회피)의 결과가 모이는 곳입니다.
  • 범용 틀로 정리해 두면 새로운 지속성 기법에도 같은 방식으로 대응할 수 있습니다.

3. 핵심 명령어 / 설정

질문도구산출물
무엇이인벤토리·기준선 diff지속성 목록
누가·어떻게auditd·FIM whodata주체·방법
언제·순서타임라인·상관설치 순서·재생성 관계
얼마나 넓게IOC·키 지문 상관영향 호스트
끝났는가재부팅 재수집·감시 기간근절 증명

4. 실습 (실습 예시)

# 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

5. 정상 상태

미소유 지속성 0 · UID 0 = root · preload 없음 · tainted 0
바이너리 불일치 0 · 셸 외부 연결 0 · atq 비어 있음

15분 점검 결과가 모두 기준값이면 해당 호스트에 알려진 지속성·재침투 경로가 없다고 판단하고, 결과를 기준선으로 보관합니다.

6. 이상 상태

미소유 지속성 4 · UID 0 = root, backup · tainted 12288
→ 계정·부팅·커널 층 동시 이상 → 깊은 거점 의심
  • 여러 층에서 동시에 이상 → 단일 항목 제거로는 불충분
  • 커널 taint + UID 0 → 호스트 신뢰 불가, 재설치 검토
  • I47 플레이북으로 즉시 전환

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

「시스템 보안 · 취약점」 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 데이터와 사고 대응 보고서로 연결하는 것입니다.

8. SOC 관제 포인트

  • 지속성 점검 15분 루틴을 사고 대응 초기 표준 절차로 씁니다.
  • 인벤토리·타임라인·근절 검증 세 산출물을 모든 지속성 인시던트에 남깁니다.
  • A~I영역 룰셋(100100~108499)을 하나의 저장소로 관리하고 회귀 시험합니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 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 하위 룰이 담당하고, 이 룰은 호스트별·분류별 전체 추이를 보는 데 씁니다.

10. 대응 방법

  1. 초기 확인 — 15분 점검 루틴으로 호스트 상태를 확인합니다.
  2. 범위 확인 — 이상 층이 여러 개면 상관·인벤토리로 범위를 확정합니다.
  3. 증거 확보 — 인벤토리·타임라인·로그를 원격 보존합니다.
  4. 차단/조치 — I46 순서로 근절하거나 깊은 거점이면 재설치합니다.
  5. 재발 방지 — 감시 기간 0건 확인 후 기준선을 갱신하고 절차를 개선합니다.

11. 핵심 정리

축핵심
무엇이인벤토리
언제타임라인
끝났나근절 검증·감시 기간
범용성Linux 외 환경에도 적용
면접 포인트"지속성 대응은 세 질문 — 무엇이 남았나, 언제 생겼나, 다시 돌아올 수 없나"

12. 다음 편 예고

「시스템 보안 · 취약점」 시리즈 450편이 이 글로 마무리됩니다. 처음부터 다시 보려면 001. Linux 서버 보안 — 기본 보안 점검 항목과 하드닝 로드맵에서 시작하면 되고, 전체 목록은 아래 시리즈 링크에서 확인할 수 있습니다.


이전 편: 449. 지속성·재침투 — 실전 시나리오 — 침투부터 지속성 설치·재침투까지
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글