시스템 보안 · 취약점 › D. 권한 변경 이상 징후 · 38/50편 (전체 188/450)
학습 단계: sudo·PAM·capability 권한 변경
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
공격자는 한 번 상승한 뒤 재방문 없이 다시 상승할 수 있도록 영구 경로를 남깁니다. 권한 변경은 지속성의 핵심 수단입니다. D영역 전편의 변경들이 "지속성"이라는 관점에서 어떻게 쓰이는지 정리합니다.
권한 변경 기반 지속성 유형
SUID 백도어: SUID 쉘 복사본(D25) → 언제든 root 쉘
sudo 백도어: NOPASSWD 규칙(D31) → 비번 없이 상승
PAM 백도어: pam_permit(D34) → 임의 비번 로그인
cap 백도어: cap_setuid(D27) → 인터프리터 상승
그룹 백도어: docker 그룹(D35) → 컨테이너 root
키 백도어: authorized_keys(D15) → 비번 없는 SSH
특징: 설치 후 "조용히" 유지 → 주기적 재확인 필요
지속성 백도어는 설치 후 조용하므로, 설치 시점 탐지 + 주기적 기준선 재확인이 핵심입니다.
| 지속성 백도어 | 재상승 방식 | 탐지 |
|---|---|---|
| SUID 쉘 | SUID 바이너리 실행 | diff(D25) |
| NOPASSWD | 비번 없는 sudo | 내용(D31) |
| PAM permit | 임의 비번 로그인 | 내용(D34) |
| cap_setuid | 인터프리터 상승 | getcap(D27) |
| docker 그룹 | 컨테이너 root | 멤버(D35) |
# 권한 변경 기반 지속성 점검 (분석 방법)
# 주기적 전수 점검 스크립트(기준선 대비)
echo "SUID신규:"; diff /root/baseline/suid_base.txt <(sudo find / -xdev -perm -4000 -type f 2>/dev/null|sort)|grep '^>'
echo "NOPASSWD:"; sudo grep -rl NOPASSWD /etc/sudoers.d/ 2>/dev/null
echo "PAM백도어:"; sudo grep -rlE 'pam_permit\.so|nullok' /etc/pam.d/ 2>/dev/null
echo "cap신규:"; diff /root/baseline/caps_base.txt <(sudo getcap -r / 2>/dev/null|sort)|grep '^>'
SUID신규: (없음)
NOPASSWD: (없음)
PAM백도어: (없음)
cap신규: (없음)
모든 지속성 경로가 기준선과 일치해, 영구 백도어가 없는 상태가 정상입니다. 주기 점검으로 유지 확인합니다.
SUID신규: /tmp/.sh
NOPASSWD: /etc/sudoers.d/99-devops
PAM백도어: /etc/pam.d/sshd
cap신규: /usr/bin/python3.9 cap_setuid+ep
권한 변경 기반 지속성 흐름입니다(가상의 예시).
[초기 침해·상승] (C·D영역 경로)
↓
[지속성 설치] SUID 쉘 + NOPASSWD + PAM permit + cap (중복)
↓
[조용한 유지] 재방문 없이 각 백도어로 재상승
↓
[탐지] 설치 시점(D영역 룰) + 주기 기준선 재확인
| 백도어 수 | 의미 |
|---|---|
| 0 | 정상 |
| 1 | 단일 지속성 |
| 2+ | 중복 백도어(심각) |
설치 시점 탐지를 놓쳐도 주기적 기준선 재확인으로 조용한 백도어를 찾아냅니다.
<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_d,persistence,">
<!-- 주기 점검 스크립트 결과(지속성 백도어 발견)를 로그로 수집·경보 -->
<rule id="103360" level="13">
<decoded_as>json</decoded_as>
<field name="check">persistence_backdoor</field>
<field name="status">found</field>
<description>권한 변경 기반 지속성 백도어 발견(주기 점검)</description>
<mitre><id>T1548</id><id>T1098</id></mitre>
</rule>
</group>
설치 시점 룰(D22·31·34·27·35)과 주기 점검 로그를 함께 수집해 지속성을 전수 포착합니다.
| 지속성 백도어 | 재상승 방식 |
|---|---|
| SUID 쉘 | SUID 실행 |
| NOPASSWD | 비번 없는 sudo |
| PAM permit | 임의 비번 로그인 |
| docker 그룹 | 컨테이너 root |
| 면접 포인트 | "권한 변경 지속성은 재방문 없는 영구 상승 — 설치 시점+주기 점검 전수 감시" |
다음 편 189. 권한 변경 이상 — auditd 권한 변경 이벤트(chmod/chown) 분석 에서는 6단계로 넘어가 auditd 권한 변경 이벤트(chmod/chown) 분석을 다룹니다.
이전 편: 187. 권한 변경 이상 — setuid/setgid 호출 이상 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점