시스템 보안 · 취약점 › D. 권한 변경 이상 징후 · 5/50편 (전체 155/450)
학습 단계: 권한 모델·기본 개념
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
권한 변경은 그 자체가 목적이 아니라 권한 상승의 수단입니다. 어떤 권한 변경이 어떤 상승 경로를 여는지 알면, 변경 탐지를 상승 탐지로 연결할 수 있습니다.
권한 변경 → 권한 상승 경로 매핑
SUID 설정(chmod u+s) → 그 바이너리로 소유자(root) 권한 실행
sudoers 규칙 추가 → sudo로 root 명령
capability 부여(setcap) → 특정 권한(cap_setuid 등) 획득
설정 파일 쓰기 권한 완화 → 설정 변조로 상승(cron·service)
중요 파일 소유권 탈취 → passwd/shadow 조작
C영역 정찰(C27·28)로 찾은 경로 → D영역에서 권한 변경으로 실행 → 상승 완성
B영역 37편이 "sudo 상승 실행"이라면, 여기서는 상승을 가능하게 하는 권한 변경 전반을 상승 경로별로 정리합니다.
| 권한 변경 | 상승 경로 | 탐지(D영역) |
|---|---|---|
| SUID 설정 | 바이너리 root 실행 | D22·25 |
| sudoers 추가 | sudo root | D29·30·31 |
| capability 부여 | cap 권한 | D27 |
| 설정 쓰기 완화 | 설정 변조 상승 | D10·14 |
| 소유권 탈취 | 계정 파일 조작 | D19·21 |
# 권한 변경 → 상승 경로 연결 점검 (분석 방법)
# 1) SUID 신규 (상승 경로 생성)
diff /root/baseline/suid_base.txt <(sudo find / -xdev -perm -4000 2>/dev/null | sort)
# 2) sudoers 변경 (상승 규칙)
sudo ausearch -k perm_critical -i --start recent 2>/dev/null | grep sudoers | tail
# 3) capability 부여 (setcap)
sudo getcap -r / 2>/dev/null | sort > /root/baseline/caps_now.txt
diff /root/baseline/caps_base.txt /root/baseline/caps_now.txt
$ (SUID diff) (없음)
$ (sudoers 변경) (없음)
$ (capability diff) (없음)
SUID·sudoers·capability 모두 기준선과 동일해, 새로운 상승 경로가 생기지 않은 상태가 정상입니다.
$ (SUID diff) > /usr/bin/find
$ (capability diff) > /usr/bin/python3.9 cap_setuid+ep
find SUID 신규 → 그 바이너리로 상승 경로 생성(D25)python3에 cap_setuid 부여 → 파이썬으로 UID 변경 가능(상승)권한 변경 → 상승 연결 흐름입니다(가상의 예시 로그).
[C영역 정찰] find / -perm -4000 (상승 경로 탐색, C27)
[D영역 변경] chmod u+s /usr/bin/find (SUID 설정, perm_change)
[상승 실행] find를 통한 권한 상승 (별도 탐지)
→ 정찰 → 변경 → 상승의 3단 연결
| 단계 | 영역 | 탐지 |
|---|---|---|
| 경로 탐색 | C27 | recon_priv |
| 권한 변경 | D영역 | perm_change |
| 상승 실행 | 상승 | 별도 |
정찰(C)과 변경(D)을 세션으로 연결하면 상승 이전에 탐지할 수 있습니다.
<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_d,perm_change,privilege,">
<!-- C영역 정찰(권한 경로 탐색) 후 D영역 권한 변경 결합 -->
<rule id="103030" level="12">
<if_sid>103010</if_sid>
<if_matched_sid>102260</if_matched_sid>
<same_field field="audit.session" />
<description>권한 상승 경로 정찰 직후 권한 변경(상승 준비→실행)</description>
<mitre><id>T1548</id></mitre>
</rule>
</group>
C27(102260 SUID 탐색)과 D영역 SUID 설정(103010)을 상관하면 "경로 탐색→생성"을 포착합니다.
| 권한 변경 | 상승 경로 |
|---|---|
| SUID 설정 | 바이너리 root 실행 |
| sudoers 추가 | sudo root |
| setcap | capability 권한 |
| 설정 쓰기 완화 | 설정 변조 상승 |
| 면접 포인트 | "권한 변경은 상승의 수단 — 변경을 상승 경로로 연결해 설명" |
다음 편 156. 권한 변경 이상 — chmod 동작 원리와 로그 흔적 에서는 chmod의 동작 원리와 로그 흔적을 다루는 chmod 동작 원리와 로그 흔적을 다룹니다.
이전 편: 154. 권한 변경 이상 — 권한 변경 정상 기준선 만들기
📚 시리즈 전체 보기: 시스템 보안 · 취약점