437. 지속성·재침투 — 근절 후 재침투(복귀) 징후 탐지

changseop lee·4일 전

시스템 보안 · 취약점

목록 보기
437/450

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

선행 학습

1. 개념

근절이 끝났다고 사고가 끝난 것은 아닙니다. 공격자는 놓친 지속성, 남은 자격증명, 패치되지 않은 최초 침투 경로를 통해 돌아옵니다. 그래서 근절 이후 일정 기간은 재침투 감시 기간으로 운영해야 합니다.

재침투(복귀) 신호
 ① IOC 재출현   : 같은 C2 IP·도메인·파일 해시·키 지문
 ② 기법 재사용 : 같은 이름의 cron·유닛, 같은 경로(/usr/lib/.x/)
 ③ 계정 재사용 : 근절 전 사용된 계정·출발지의 재로그인
 ④ 최초 경로   : 같은 취약점·같은 웹 경로로 재침투
   ↓
 원인 판정: 놓친 지속성? 남은 자격증명? 미패치 취약점?

핵심: 재침투는 "근절 실패의 증거" — 원인을 찾아 근절 절차를 고친다

복귀 신호를 보면 어떤 경로로 돌아왔는지가 곧 근절 단계에서 무엇을 놓쳤는지를 알려 줍니다.

2. 왜 중요한가

  • 같은 공격자의 재침투는 빠르고 정확해 피해가 더 커질 수 있습니다.
  • 근절 직후 IOC를 감시하면 재침투를 초기에 잡을 수 있습니다.
  • 재침투 원인 분석은 근절 절차 개선의 가장 직접적인 근거입니다.

3. 핵심 명령어 / 설정

신호근거 데이터놓친 것
C2 재연결방화벽·DNS·connect남은 지속성
같은 키 지문sshd VERBOSE미제거 키·키 재사용
같은 계정·출발지secure미교체 자격증명
같은 웹 경로access_log미패치 취약점

4. 실습 (실습 예시)

# 재침투 감시: 근절 시 확정한 IOC 목록으로 사후 검색 (분석 방법)
cat /root/ir/ioc.txt     # ip:198.51.100.7 / hash:... / fp:SHA256:Qm3... / path:/usr/lib/.x/
grep -oE '([0-9]{1,3}\.){3}[0-9]{1,3}' /root/ir/ioc.txt | while read ip; do
  sudo grep -l "$ip" /var/log/secure /var/log/httpd/access_log 2>/dev/null | sed "s/^/$ip → /"
done
sudo grep -F -f <(grep -oE 'SHA256:[^ ]+' /root/ir/ioc.txt) /var/log/secure | tail
sudo find / -xdev -path '*/.x/*' 2>/dev/null

5. 정상 상태

근절 후 14일: IOC IP·지문·경로 재출현 0건
C2 목적지 차단 로그: 0건

근절 이후 감시 기간 동안 IOC가 다시 나타나지 않고 같은 기법의 흔적도 없는 상태가 근절 성공입니다.

6. 이상 상태

근절 후 6일: DROP DST=198.51.100.7 DPT=443 (5분 간격)
근절 후 9일: Accepted password for oldsvc from 203.0.113.80
/usr/lib/.x/agent 재생성 (부모: systemd-udevd)
  • 같은 C2로 5분 간격 재시도 → 남은 스케줄 트리거
  • 휴면 계정 oldsvc 재로그인 → 재활성화 계정 미정리
  • udev 규칙이 agent 재생성 → 근절 체크리스트에서 udev 누락

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

재침투 원인 분석 흐름입니다(가상의 예시).

[복귀 신호] IOC 재출현 · 기법 재사용
   ↓
[경로 특정] 어떤 트리거·계정·취약점으로 돌아왔나
   ↓
[누락 원인] 근절 체크리스트와 대조 → 빠진 항목
   ↓
[재근절] 누락 항목 + 전 항목 재점검 → 감시 기간 재시작
   ↓
[개선] 체크리스트·탐지 룰 보완
복귀 경로근절 누락
스케줄·이벤트 트리거지속성 점검 범위
계정·키자격증명 정리
웹·취약점최초 침투 경로 패치

이 사례에서는 udev 규칙(I26)과 휴면 계정(I11)이 체크리스트에서 빠져 있었습니다. 재침투 원인은 개인 실수가 아니라 절차의 빈칸으로 기록해 개선합니다.

8. SOC 관제 포인트

  • 근절 시 확정한 IOC를 SIEM 감시 목록(CDB 리스트)으로 등록합니다.
  • 근절 후 최소 2~4주를 재침투 감시 기간으로 정하고 경보 레벨을 올립니다.
  • 재침투 발생 시 근절 체크리스트 개정을 사고 보고서에 포함합니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_i,persistence,">
  <rule id="108360" level="14">
    <if_sid>108000</if_sid>
    <field name="audit.key">reentry_net</field>
    <list field="dstip" lookup="address_match_key">etc/lists/ir-ioc-ip</list>
    <description>근절 IOC 목록의 목적지로 연결 시도(근절 후 재침투 의심)</description>
    <mitre><id>TA0003</id></mitre>
  </rule>
</group>

근절 시 확정한 IOC IP를 CDB 리스트(ir-ioc-ip)로 관리하고, 연결 목적지가 목록에 있으면 경보합니다. 목적지 IP 필드는 수집 방식(auditd SOCKADDR 디코딩·방화벽 로그)에 맞게 조정합니다.

10. 대응 방법

  1. 초기 확인 — 복귀 신호의 유형과 경로를 확인합니다.
  2. 범위 확인 — 근절 체크리스트와 대조해 누락 항목을 찾습니다.
  3. 증거 확보 — 복귀 관련 로그와 재생성된 파일을 보존합니다.
  4. 차단/조치 — 누락 항목을 포함해 재근절하고 감시 기간을 다시 시작합니다.
  5. 재발 방지 — IOC 감시 목록·체크리스트·탐지 룰을 개정합니다.

11. 핵심 정리

신호의미
IOC 재출현지속성 잔존
계정 재사용자격증명 미정리
같은 침투 경로미패치
대응원인 찾아 절차 개정
면접 포인트"재침투는 근절 실패의 증거 — 돌아온 경로가 체크리스트의 빈칸을 알려 준다"

12. 다음 편 예고

다음 편 438. 지속성·재침투 — 백도어·재침투 경로 종합 분석 에서는 I29~I37의 리버스 셸·리스너·웹셸·C2·SSH 터널·신뢰 관계·커널 모듈·바이너리 교체·복귀 징후를 재침투 경로 지도로 종합합니다.


이전 편: 436. 지속성·재침투 — 시스템 바이너리 교체(트로이목마화) 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글