155. 권한 변경 이상 — 권한 상승 경로와 권한 변경의 관계

changseop lee·6일 전

시스템 보안 · 취약점

목록 보기
155/450

시스템 보안 · 취약점 › D. 권한 변경 이상 징후 · 5/50편 (전체 155/450)
학습 단계: 권한 모델·기본 개념
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.

선행 학습

1. 개념

권한 변경은 그 자체가 목적이 아니라 권한 상승의 수단입니다. 어떤 권한 변경이 어떤 상승 경로를 여는지 알면, 변경 탐지를 상승 탐지로 연결할 수 있습니다.

권한 변경 → 권한 상승 경로 매핑
 SUID 설정(chmod u+s)      → 그 바이너리로 소유자(root) 권한 실행
 sudoers 규칙 추가          → sudo로 root 명령
 capability 부여(setcap)    → 특정 권한(cap_setuid 등) 획득
 설정 파일 쓰기 권한 완화    → 설정 변조로 상승(cron·service)
 중요 파일 소유권 탈취       → passwd/shadow 조작

C영역 정찰(C27·28)로 찾은 경로 → D영역에서 권한 변경으로 실행 → 상승 완성

B영역 37편이 "sudo 상승 실행"이라면, 여기서는 상승을 가능하게 하는 권한 변경 전반을 상승 경로별로 정리합니다.

2. 왜 중요한가

  • 권한 변경을 상승 경로와 연결하면, "이 chmod가 왜 위험한가"를 설명할 수 있습니다(단순 변경 아님).
  • 각 경로는 서로 다른 탐지·대응이 필요합니다(SUID는 FIM, sudoers는 파일 감시, capability는 setcap 감사).
  • C영역 정찰(경로 탐색) → D영역 변경(경로 실행)의 연결이 조기 탐지의 핵심입니다.

3. 핵심 명령어 / 설정

권한 변경상승 경로탐지(D영역)
SUID 설정바이너리 root 실행D22·25
sudoers 추가sudo rootD29·30·31
capability 부여cap 권한D27
설정 쓰기 완화설정 변조 상승D10·14
소유권 탈취계정 파일 조작D19·21

4. 실습 (실습 예시)

# 권한 변경 → 상승 경로 연결 점검 (분석 방법)
# 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

5. 정상 상태

$ (SUID diff) (없음)
$ (sudoers 변경) (없음)
$ (capability diff) (없음)

SUID·sudoers·capability 모두 기준선과 동일해, 새로운 상승 경로가 생기지 않은 상태가 정상입니다.

6. 이상 상태

$ (SUID diff) > /usr/bin/find
$ (capability diff) > /usr/bin/python3.9 cap_setuid+ep
  • find SUID 신규 → 그 바이너리로 상승 경로 생성(D25)
  • python3에 cap_setuid 부여 → 파이썬으로 UID 변경 가능(상승)
  • C27 정찰에서 찾은 경로가 D영역에서 실제 생성됨 → 상승 임박

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

권한 변경 → 상승 연결 흐름입니다(가상의 예시 로그).

[C영역 정찰] find / -perm -4000 (상승 경로 탐색, C27)
[D영역 변경] chmod u+s /usr/bin/find (SUID 설정, perm_change)
[상승 실행]  find를 통한 권한 상승 (별도 탐지)
 → 정찰 → 변경 → 상승의 3단 연결
단계영역탐지
경로 탐색C27recon_priv
권한 변경D영역perm_change
상승 실행상승별도

정찰(C)과 변경(D)을 세션으로 연결하면 상승 이전에 탐지할 수 있습니다.

8. SOC 관제 포인트

  • 권한 변경을 상승 경로별로 분류해 "왜 위험한가"를 설명합니다.
  • C영역 정찰(경로 탐색)과 D영역 변경(경로 실행)을 세션으로 연결합니다.
  • 각 경로(SUID·sudoers·capability)별 전용 탐지를 D영역 후속 편에서 다룹니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 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)을 상관하면 "경로 탐색→생성"을 포착합니다.

10. 대응 방법

  1. 초기 확인 — 권한 변경이 어떤 상승 경로를 여는지 분류·확인합니다.
  2. 범위 확인 — C영역 정찰과 같은 세션인지, 이후 상승 실행으로 이어졌는지 확인합니다.
  3. 증거 확보 — SUID·sudoers·capability 기준선 차이와 audit 로그를 보존합니다.
  4. 차단/조치 — 비인가 변경이면 경로 원복(SUID 제거 등)·세션 종료를 진행합니다.
  5. 재발 방지 — 정찰→변경→상승 상관을 운영해 조기 탐지합니다.

11. 핵심 정리

권한 변경상승 경로
SUID 설정바이너리 root 실행
sudoers 추가sudo root
setcapcapability 권한
설정 쓰기 완화설정 변조 상승
면접 포인트"권한 변경은 상승의 수단 — 변경을 상승 경로로 연결해 설명"

12. 다음 편 예고

다음 편 156. 권한 변경 이상 — chmod 동작 원리와 로그 흔적 에서는 chmod의 동작 원리와 로그 흔적을 다루는 chmod 동작 원리와 로그 흔적을 다룹니다.


이전 편: 154. 권한 변경 이상 — 권한 변경 정상 기준선 만들기
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글