275. 프로세스·지속성 — SSH authorized_keys 지속성 탐지

changseop lee·2026년 10월 7일

시스템 보안 · 취약점

목록 보기
275/450

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

선행 학습

1. 개념

공격자는 자신의 공개키를 authorized_keys에 추가해, 비밀번호 없이 언제든 SSH로 재접속하는 지속성을 확보합니다. 가장 간단하고 흔한 SSH 지속성으로, 키 하나로 영구 접근이 가능합니다.

SSH authorized_keys 지속성
 ~/.ssh/authorized_keys에 공격자 공개키 추가
   → 비밀번호 없이 SSH 재접속
 추가 위치: 사용자별·root 홈
 위장: 정상 키처럼 보이는 주석(comment)
 옵션 악용: command=·from= 제거로 제한 우회

특징: 키 1줄 추가로 영구 백도어, 비번 변경 무력

E15(authorized_keys 권한 변경)·E11(키 접근)과 연계되지만, 여기서는 키 추가(내용 변경)가 지속성 확보임을 집중합니다. 비밀번호를 바꿔도 키 백도어는 유지됩니다.

2. 왜 중요한가

  • authorized_keys 키 추가는 비밀번호 없이 영구 재접속하는 간단·강력한 지속성입니다.
  • 비밀번호 변경·계정 잠금으로도 키 백도어는 제거되지 않습니다(별도 제거 필요).
  • 여러 사용자·root의 authorized_keys에 추가하면 중복 백도어가 됩니다.

3. 핵심 명령어 / 설정

지속성 요소효과위험
공개키 추가비번 없는 재접속매우 높음
root authorized_keysroot 재접속매우 높음
다중 사용자 추가중복 백도어높음
정상 키 위장탐지 회피높음
정상 키 등록정상(배포)정상

4. 실습 (실습 예시)

# SSH authorized_keys 지속성 탐지 (분석 방법)
# authorized_keys 변경 이벤트(watch/FIM)
sudo ausearch -k persist -i --start recent 2>/dev/null | grep 'authorized_keys' | tail
# 현재 키 개수·핑거프린트(기준선 대비 신규 키)
for f in /home/*/.ssh/authorized_keys /root/.ssh/authorized_keys; do echo "== $f =="; ssh-keygen -lf "$f" 2>/dev/null; done

5. 정상 상태

$ (authorized_keys 변경) (없음 또는 배포 맥락)
$ (키 핑거프린트) 기준선과 동일(등록된 정상 키만)

authorized_keys에 변경이 없거나 배포 맥락과 일치하고, 키 핑거프린트가 기준선과 같은 상태가 정상입니다.

6. 이상 상태

$ (authorized_keys 변경)
04:14 auid=devops /root/.ssh/authorized_keys (키 추가)
$ (키 핑거프린트)
/root/.ssh/authorized_keys: 신규 키 1개(기준선에 없음, comment="backup@legit 위장")
  • root authorized_keys에 신규 키 추가 → root 비번 없는 재접속(지속성)
  • comment를 "backup@legit"로 위장 → 정상 키처럼 보이게
  • root 키 추가·기준선 이탈 → 백도어 키 → 정탐

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

SSH 키 지속성 분석입니다(가상의 예시).

[추가] echo "ssh-rsa AAAA... attacker" >> /root/.ssh/authorized_keys (FIM)
   ↓
[재접속] ssh -i attacker_key root@target (비번 없이)
   ↓
[유지] 비밀번호 변경·계정 잠금에도 키 백도어 유지
 → 별도 키 제거 없이는 영구 접근
[연계] E11(키 접근)·E15(권한) + F25(키 추가·지속성)
요소해석
키 추가백도어 등록
root 대상root 재접속
comment 위장은닉
비번 무력키로 우회

키 추가(FIM)+이후 비번 없는 로그인(B영역)을 연계해 백도어를 확정합니다.

8. SOC 관제 포인트

  • SSH authorized_keys 키 추가는 비밀번호 없이 영구 재접속하는 간단·강력한 지속성입니다.
  • 비밀번호 변경·계정 잠금으로도 제거되지 않아 별도 키 제거가 필요합니다.
  • 키 추가(watch/FIM)·기준선 이탈·정상 키 위장을 탐지합니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_f,persistence,">
  <rule id="105240" level="13">
    <if_sid>105060</if_sid>
    <field name="audit.file" type="pcre2">\.ssh/authorized_keys</field>
    <field name="audit.comm" type="pcre2">^(?!(ssh-copy-id))[a-z]+$</field>
    <description>authorized_keys 키 추가(SSH 백도어 지속성)</description>
    <mitre><id>T1098.004</id></mitre>
  </rule>
</group>

키 핑거프린트 기준선 대비 신규 키를 FIM·주기 점검으로 탐지합니다. 정상 배포(ssh-copy-id)는 맥락으로 구분합니다.

10. 대응 방법

  1. 초기 확인 — authorized_keys 변경·추가된 키·핑거프린트·대상(사용자/root)을 확인합니다.
  2. 범위 확인 — 기준선 이탈 키·comment 위장·이후 비번 없는 로그인을 확인합니다.
  3. 증거 확보 — 키 추가 이벤트·키 내용·로그인 로그를 보존합니다.
  4. 차단/조치 — 키 백도어 정탐이면 공격자 키 제거·전 계정 키 점검·키 교체를 진행합니다.
  5. 재발 방지 — authorized_keys 지속성 탐지(watch+FIM+핑거프린트)를 운영합니다.

11. 핵심 정리

지속성 요소효과
공개키 추가비번 없는 재접속
root 키root 재접속
다중 사용자중복 백도어
정상 키 위장탐지 회피
면접 포인트"authorized_keys 키 추가는 비번 변경으로도 안 지워짐 — 별도 키 제거 필수"

12. 다음 편 예고

다음 편 276. 프로세스·지속성 — PAM·인증 모듈 지속성 탐지 에서는 PAM·인증 모듈 지속성을 다루는 PAM·인증 모듈 지속성 탐지를 다룹니다.


이전 편: 274. 프로세스·지속성 — LD_PRELOAD·동적 라이브러리 지속성 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글