211. 중요 정보 접근 — SSH 키·인증 파일 접근 탐지

changseop lee·4일 전

시스템 보안 · 취약점

목록 보기
211/450

시스템 보안 · 취약점 › E. 중요 정보 접근 로그 분석 · 11/50편 (전체 211/450)
학습 단계: 중요 파일 접근 이상
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.

선행 학습

1. 개념

SSH 키는 비밀번호 없는 인증 수단이라, 탈취되면 다른 시스템 접근(측면 이동)에 바로 쓰입니다. SSH 인증 파일 읽기 접근은 키 탈취 시도로, 측면 이동의 전조입니다.

SSH 인증 파일 접근 위험
 ~/.ssh/id_rsa(개인키)   읽기 → 키 탈취 → 다른 서버 접속
 ~/.ssh/authorized_keys  읽기 → 허용 키 파악 / 쓰기 → 백도어(D15)
 /etc/ssh/ssh_host_*_key 읽기 → 호스트키 탈취(MITM)
 ~/.ssh/known_hosts      읽기 → 접속 이력(대상 식별)

키 탈취 = 측면 이동(T1021)·자격증명 접근(T1552.004)

개인키 읽기는 정상적으로 SSH 클라이언트(ssh)만 하므로, 다른 명령(cat·cp)의 읽기는 탈취 시도입니다.

2. 왜 중요한가

  • SSH 개인키 탈취는 비밀번호 없이 다른 시스템에 접속(측면 이동)하는 수단입니다.
  • known_hosts는 "어디에 접속했는가"를 알려줘 다음 공격 대상 식별에 쓰입니다.
  • 정상은 ssh 클라이언트만 개인키를 읽으므로, 쉘 명령 읽기는 탈취 신호입니다.

3. 핵심 명령어 / 설정

SSH 파일접근 위험악용
id_rsa(개인키)키 탈취측면 이동
authorized_keys허용 키 파악백도어 식별
ssh_host_*_key호스트키 탈취MITM
known_hosts접속 이력대상 식별
config접속 설정대상·계정

4. 실습 (실습 예시)

# SSH 키 접근 탐지 (분석 방법)
# SSH 인증 파일 읽기(ssh 클라이언트 외)
sudo ausearch -k sensitive_read -i --start recent 2>/dev/null | grep -E '\.ssh/(id_|authorized_keys|known_hosts)|ssh_host_' | grep -vE 'comm="(ssh|sshd|scp|sftp)"' | tail

# 타 사용자 개인키 접근(교차 접근)
sudo ausearch -k sensitive_read -i --start recent 2>/dev/null | grep 'id_rsa'

5. 정상 상태

$ (SSH 키 접근) (없음 또는 ssh 클라이언트만)

SSH 개인키 접근이 ssh 클라이언트(정상 접속)에 의해서만 발생하고, 쉘 명령의 키 읽기가 없는 상태가 정상입니다.

6. 이상 상태

$ (SSH 키 접근)
04:00 comm="cat" auid=devops /home/alice/.ssh/id_rsa   (타 사용자 키)
04:01 comm="cp" auid=devops /root/.ssh/id_rsa → /tmp
  • devops가 alice의 개인키를 cat → 타 사용자 키 탈취(측면 이동 준비)
  • root 개인키를 /tmp에 복사 → 키 수집(유출·측면 이동)
  • 타 사용자·root 키의 쉘 읽기·복사 → 키 탈취 → 정탐

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

SSH 키 탈취 흐름입니다(가상의 예시 로그).

type=SYSCALL comm="cat" auid=devops key="sensitive_read"
type=PATH name="/home/alice/.ssh/id_rsa"
 → devops가 alice 개인키 읽기(탈취)
[이후] ssh -i 탈취키 alice@other-server (측면 이동, 별도 탐지)
관찰해석
cat id_rsa(타인)개인키 탈취
cp → /tmp키 수집
이후 ssh -i측면 이동
known_hosts대상 식별

키 탈취 → 측면 이동(ssh)으로 이어지므로, 아웃바운드 SSH와 연계해 탐지합니다.

8. SOC 관제 포인트

  • SSH 인증 파일 접근은 키 탈취 → 측면 이동의 전조입니다.
  • 개인키는 정상적으로 ssh 클라이언트만 읽으므로 쉘 명령 읽기는 탈취 신호입니다.
  • 타 사용자·root 키의 읽기·복사, known_hosts 접근(대상 식별)을 위험으로 봅니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_e,sensitive_access,">
  <rule id="104100" level="13">
    <if_sid>104000</if_sid>
    <field name="audit.file" type="pcre2">\.ssh/(id_[a-z]+|authorized_keys)|ssh_host_[a-z]+_key</field>
    <field name="audit.comm" type="pcre2">^(?!(ssh|sshd|scp|sftp|ssh-agent))[a-z]+$</field>
    <description>비SSH 주체의 SSH 개인키·인증 파일 접근(키 탈취)</description>
    <mitre><id>T1552.004</id><id>T1021.004</id></mitre>
  </rule>
</group>

정상 ssh 계열 프로세스는 제외합니다. 키 읽기 후 아웃바운드 SSH(측면 이동)를 상관으로 연계합니다.

10. 대응 방법

  1. 초기 확인 — 접근된 SSH 키 파일·대상 사용자·주체·방법을 확인합니다.
  2. 범위 확인 — 타 사용자·root 키 교차 접근·복사·이후 측면 이동(ssh)을 확인합니다.
  3. 증거 확보 — SSH 키 접근 이벤트와 연계 로그를 보존합니다.
  4. 차단/조치 — 키 탈취 정탐이면 세션 종료·키 교체(재발급)·측면 이동 조사를 진행합니다.
  5. 재발 방지 — SSH 키 접근 탐지를 운영합니다.

11. 핵심 정리

SSH 파일악용
id_rsa(개인키)측면 이동
authorized_keys백도어 식별
ssh_host_keyMITM
known_hosts대상 식별
면접 포인트"SSH 키 탈취는 측면 이동 수단 — 정상은 ssh 클라이언트만, 쉘 읽기는 탈취"

12. 다음 편 예고

다음 편 212. 중요 정보 접근 — 인증서·개인키 파일 접근 탐지 에서는 인증서·개인키 파일 접근을 다루는 인증서·개인키 파일 접근 탐지를 다룹니다.


이전 편: 210. 중요 정보 접근 — 계정 정보(passwd) 접근 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글