299. 프로세스·지속성 — 실전 시나리오 — 침투부터 지속성·C2까지

changseop lee·7일 전

시스템 보안 · 취약점

목록 보기
299/450

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

선행 학습

1. 개념

F영역을 실전 시나리오로 종합합니다. 침투(웹셸)→비정상 실행→지속성→C2의 전체 공격을 관제 화면과 로그 흔적 중심으로 재구성합니다. SOC가 보는 탐지·판정·봉쇄·근절 관점으로 서술하며, 모든 데이터는 가상입니다.

시나리오 개요(가상)
 대상: 웹 서버(192.0.2.50, 가상 IP)
 침투: 웹 취약점 → 웹셸 업로드(가정)
 목표: 장기 거점 유지(지속성·C2)
 관제: Wazuh+ELK+Sysmon으로 탐지, 관제원이 대응

웹셸 침투 → 비정상 실행 → 지속성 → C2 → 봉쇄·근절

이 시나리오는 F영역 전편(프로세스·지속성·C2 탐지·분석·대응)이 실제 거점 구축 사건에서 어떻게 작동하는지 보여줍니다.

2. 왜 중요한가

  • 전체 시나리오로 보면 개별 탐지가 "거점 구축 사건 대응"으로 어떻게 통합되는지 이해됩니다.
  • 관제 화면·로그 흔적 중심 서술은 실무 SOC의 거점 대응 관점을 보여줍니다.
  • 실행→지속성→C2 연계·계보 재구성·전수 근절이 실전으로 확인됩니다.

3. 핵심 명령어 / 설정

단계공격(가상)탐지(관제)
침투웹셸 업로드·실행105040·105310
실행/tmp/.x105080
지속성cron+systemd105180·105190
C2리버스셸105280
대응봉쇄·근절105460

4. 실습 (실습 예시)

# 실전 시나리오 관제 분석 (분석 방법)
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='

5. 정상 상태

$ (평시 관제 화면)
거점 구축 경보: 0 (고위험)
세션: 정상 서비스·배포만
→ 평시엔 거점 구축 경보 없음

평시에는 거점 구축 경보가 없고, 정상 서비스·배포 활동만 기록되는 상태가 정상입니다.

6. 이상 상태

$ (사건 발생 — 관제 화면 타임라인)
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 웹셸
  • 웹셸→비표준 실행→cron+systemd 지속성→리버스 셸 C2→로그 삭제
  • 계보 상관(105410)+재구성(105420)으로 거점·root cause(웹셸) 파악
  • 관제원: 조사→계보 재구성→봉쇄(C2·프로세스)→근절(지속성 전수+웹셸)

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

실전 거점 구축 사건 흐름입니다(가상의 예시).

[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:13C2105280

침투부터 C2까지 6분 공격이 관제 화면에 단계별 경보로 포착되고, 계보 상관으로 확정됩니다.

8. SOC 관제 포인트

  • 실전 시나리오는 침투(웹셸)→실행→지속성→C2를 관제 관점으로 재구성합니다.
  • 개별 탐지가 계보 상관·재구성·타임라인을 통해 거점 구축 사건 대응으로 통합됩니다.
  • 봉쇄(C2 차단·종료)·근절(지속성 전수 제거+root cause)이 거점 대응의 핵심입니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 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영역 룰을 세션·계보로 엮어 거점 구축 전 과정을 한 사건으로 포착합니다.

10. 대응 방법

  1. 초기 확인 — 침투(웹셸)→실행→지속성→C2→은닉 경보를 세션·계보로 연결합니다.
  2. 범위 확인 — 계보 재구성(F43)으로 root cause·거점 범위를 파악합니다.
  3. 증거 확보 — 전 단계 경보·세션·계보 로그를 사건 증거로 보존합니다.
  4. 차단/조치 — 봉쇄(C2 차단·종료)→근절(지속성 전수 제거+root cause)을 진행합니다.
  5. 재발 방지 — 침투 인지+거점 확정+봉쇄·근절의 사건 대응 체계를 운영합니다.

11. 핵심 정리

단계탐지·대응
침투(웹셸)105040 — 인지
실행·지속성105080·105180 — 거점
C2·은닉105280·105340 — 제어·회피
대응봉쇄·전수 근절
면접 포인트"침투부터 C2까지 계보·세션 상관으로 한 사건 — 봉쇄+전수 근절+root cause"

12. 다음 편 예고

다음 편 300. 프로세스·지속성 — 비정상 프로세스·지속성 징후 종합 정리 에서는 F영역을 마무리하는 비정상 프로세스·지속성 징후 종합 정리를 다룹니다.


이전 편: 298. 프로세스·지속성 — 비정상 프로세스·지속성 탐지 규칙 모음
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글