시스템 보안 · 취약점 › F. 비정상 프로세스 · 지속성 징후 · 25/50편 (전체 275/450)
학습 단계: 지속성(persistence) 메커니즘
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
공격자는 자신의 공개키를 authorized_keys에 추가해, 비밀번호 없이 언제든 SSH로 재접속하는 지속성을 확보합니다. 가장 간단하고 흔한 SSH 지속성으로, 키 하나로 영구 접근이 가능합니다.
SSH authorized_keys 지속성
~/.ssh/authorized_keys에 공격자 공개키 추가
→ 비밀번호 없이 SSH 재접속
추가 위치: 사용자별·root 홈
위장: 정상 키처럼 보이는 주석(comment)
옵션 악용: command=·from= 제거로 제한 우회
특징: 키 1줄 추가로 영구 백도어, 비번 변경 무력
E15(authorized_keys 권한 변경)·E11(키 접근)과 연계되지만, 여기서는 키 추가(내용 변경)가 지속성 확보임을 집중합니다. 비밀번호를 바꿔도 키 백도어는 유지됩니다.
| 지속성 요소 | 효과 | 위험 |
|---|---|---|
| 공개키 추가 | 비번 없는 재접속 | 매우 높음 |
| root authorized_keys | root 재접속 | 매우 높음 |
| 다중 사용자 추가 | 중복 백도어 | 높음 |
| 정상 키 위장 | 탐지 회피 | 높음 |
| 정상 키 등록 | 정상(배포) | 정상 |
# 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
$ (authorized_keys 변경) (없음 또는 배포 맥락)
$ (키 핑거프린트) 기준선과 동일(등록된 정상 키만)
authorized_keys에 변경이 없거나 배포 맥락과 일치하고, 키 핑거프린트가 기준선과 같은 상태가 정상입니다.
$ (authorized_keys 변경)
04:14 auid=devops /root/.ssh/authorized_keys (키 추가)
$ (키 핑거프린트)
/root/.ssh/authorized_keys: 신규 키 1개(기준선에 없음, comment="backup@legit 위장")
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영역)을 연계해 백도어를 확정합니다.
<!-- 실습 예시 룰: 적용 전 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)는 맥락으로 구분합니다.
| 지속성 요소 | 효과 |
|---|---|
| 공개키 추가 | 비번 없는 재접속 |
| root 키 | root 재접속 |
| 다중 사용자 | 중복 백도어 |
| 정상 키 위장 | 탐지 회피 |
| 면접 포인트 | "authorized_keys 키 추가는 비번 변경으로도 안 지워짐 — 별도 키 제거 필수" |
다음 편 276. 프로세스·지속성 — PAM·인증 모듈 지속성 탐지 에서는 PAM·인증 모듈 지속성을 다루는 PAM·인증 모듈 지속성 탐지를 다룹니다.
이전 편: 274. 프로세스·지속성 — LD_PRELOAD·동적 라이브러리 지속성 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점