310. 내부 확장·측면 이동 — 탈취한 SSH 키 재사용 탐지

changseop lee·6일 전

시스템 보안 · 취약점

목록 보기
310/450

시스템 보안 · 취약점 › G. 내부 확장 · 측면 이동 징후 · 10/50편 (전체 310/450)
학습 단계: 인증·자격증명 기반 이동
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.

선행 학습

1. 개념

SSH 키는 비밀번호 없는 인증 수단이라, 탈취되면 키 재사용으로 측면 이동에 바로 쓰입니다. 공격자는 거점에서 개인키(E11)를 탈취해, 그 키가 접근 가능한 모든 내부 호스트로 확산합니다.

SSH 키 재사용 측면 이동
 거점에서 ~/.ssh/id_rsa 탈취(E11)
   → 그 키로 접근 가능한 내부 호스트 전부 로그인
 공개키 핑거프린트로 추적:
   같은 키가 여러 호스트에서 인증 성공
 키 기반 인증(publickey) + 비정상 출발지

핵심: 하나의 키가 다수 호스트에 재사용됨

키 재사용의 특징은 "같은 키(핑거프린트)가 평소와 다른 출발지·호스트에서 인증 성공"하는 것입니다. SSH 로그의 키 핑거프린트로 추적합니다.

2. 왜 중요한가

  • SSH 키 재사용은 비밀번호 없이 다수 호스트로 확산하는 효율적 측면 이동입니다.
  • 같은 키 핑거프린트가 여러 호스트·비정상 출발지에서 쓰이면 재사용 신호입니다.
  • 키 탈취(E11)→재사용(여기)의 연계가 전형적 확산 체인입니다.

3. 핵심 명령어 / 설정

키 재사용 신호패턴위험
동일 키 다수 호스트핑거프린트 공유높음
비정상 출발지 키 인증서비스 서버 발높음
publickey + 새 경로키 기반 이동높음
탈취 직후 재사용E11→G10높음
정상 키 사용관리 호스트정상

4. 실습 (실습 예시)

# SSH 키 재사용 탐지 (분석 방법)
# publickey 인증의 키 핑거프린트(출발지별)
sudo grep 'Accepted publickey' /var/log/secure 2>/dev/null | grep -oE 'from [0-9.]+.*SHA256:[A-Za-z0-9+/]+' | tail
# 같은 핑거프린트가 여러 호스트/출발지에서 사용(중앙 집계 대조)
sudo grep 'Accepted publickey' /var/log/secure 2>/dev/null | grep -oE 'SHA256:[A-Za-z0-9+/]+' | sort | uniq -c | sort -rn | head

5. 정상 상태

$ (publickey 인증)
Accepted publickey for deploy from 10.0.0.10 SHA256:AAA... (mgmt, 정상)

키 기반 인증이 정상 키·관리 호스트 출발지에서만 발생하고, 키 재사용 이상이 없는 상태가 정상입니다.

6. 이상 상태

$ (publickey 인증)
Accepted publickey for root from 10.0.0.50 SHA256:XXX (web01→db01)
Accepted publickey for root from 10.0.0.60 SHA256:XXX (db01→dc01, 동일 키)
  • 동일 키(SHA256:XXX)가 web01·db01 출발지에서 연쇄 인증 → 키 재사용 확산
  • 탈취한 root 키로 비밀번호 없이 다수 호스트 로그인
  • 동일 키·비정상 출발지·연쇄 → 키 재사용 측면 이동 → 정탐

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

SSH 키 재사용 분석입니다(가상의 예시).

[탈취] web01에서 ~/.ssh/id_rsa 탈취 (E11)
   ↓ (키 재사용)
[1홉] 탈취 키(SHA256:XXX)로 db01 로그인(publickey)
   ↓ (db01에서 또 키 탈취 or 동일 키)
[2홉] dc01 로그인(동일/새 키)
   ↓
[추적] 핑거프린트 SHA256:XXX가 여러 호스트에서 등장
 = 하나의 키 재사용으로 확산
관찰해석
동일 핑거프린트키 재사용
다수 출발지확산
publickey 인증비번 없는 이동
탈취 연계E11→G10

키 핑거프린트 추적으로 재사용 확산 경로가 드러납니다.

8. SOC 관제 포인트

  • 탈취한 SSH 키 재사용은 비밀번호 없이 다수 호스트로 확산하는 측면 이동입니다.
  • 같은 키(핑거프린트)가 여러 호스트·비정상 출발지에서 쓰이는 것이 핵심 신호입니다.
  • 키 탈취(E11)→재사용(G10)의 연계로 확산 체인을 추적합니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_g,lateral,">
  <!-- 동일 키 핑거프린트가 여러 호스트에서 인증(키 재사용) -->
  <rule id="106090" level="13">
    <decoded_as>sshd</decoded_as>
    <field name="rule.description" type="pcre2">Accepted publickey</field>
    <field name="srcip" type="pcre2">^10\.0\.0\.(5[0-9]|[6-9][0-9])$</field>
    <description>비정상 출발지 SSH 키 인증(탈취 키 재사용 의심)</description>
    <mitre><id>T1021.004</id><id>T1552.004</id></mitre>
  </rule>
</group>

키 핑거프린트 기반 재사용 추적은 중앙 집계(ELK)로 호스트 간 상관해야 완전합니다. 정상 배포 키는 예외 처리합니다.

10. 대응 방법

  1. 초기 확인 — 키 기반 인증의 핑거프린트·출발지·목적지를 확인합니다.
  2. 범위 확인 — 동일 키의 다수 호스트 재사용·비정상 출발지·탈취 연계를 확인합니다.
  3. 증거 확보 — 키 인증 로그와 핑거프린트 추적 경로를 보존합니다.
  4. 차단/조치 — 키 재사용 정탐이면 해당 키 폐기·전 호스트 authorized_keys 점검·키 교체를 진행합니다.
  5. 재발 방지 — 키 핑거프린트 기반 재사용 탐지를 운영합니다.

11. 핵심 정리

키 재사용 신호패턴
동일 키 다수 호스트핑거프린트 공유
비정상 출발지서비스 서버 발
publickey + 새 경로키 기반 이동
탈취 직후 재사용E11→G10
면접 포인트"SSH 키 재사용은 비번 없는 확산 — 핑거프린트 추적으로 재사용 경로 포착"

12. 다음 편 예고

다음 편 311. 내부 확장·측면 이동 — 비정상 내부 SSH 연결 패턴 탐지 에서는 비정상 내부 SSH 연결 패턴을 다루는 비정상 내부 SSH 연결 패턴 탐지를 다룹니다.


이전 편: 309. 내부 확장·측면 이동 — SSH를 통한 측면 이동 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글