186. 권한 변경 이상 — root 권한 획득 경로 종합

changseop lee·2026년 10월 7일

시스템 보안 · 취약점

목록 보기
186/450

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

선행 학습

1. 개념

4단계를 마무리하며, D영역 전체의 root 권한 획득 경로를 하나의 지도로 종합합니다. D05에서 매핑한 경로를 이제 각 경로의 탐지 편과 연결해, "모든 길"을 한눈에 봅니다.

권한 변경 → root 획득 경로 지도
 ① SUID 경로:     비트 설정(D22)·신규(D25)·비표준(D26) → 바이너리 root
 ② sudo 경로:     sudoers(D29)·sudoers.d(D30)·NOPASSWD(D31) → sudo root
 ③ PAM 경로:      pam 변조(D33)·permit/nullok(D34) → 인증 우회 root
 ④ capability:    setcap(D27) → cap_setuid root
 ⑤ 그룹 경로:     특권 그룹(D35)·소유권(D21) → 그룹/파일 root

공통 전제: C영역 정찰로 경로 탐색 → D영역 변경으로 경로 생성

공격자는 이 중 하나만 성공하면 root를 얻으므로, 방어는 모든 경로를 동시에 감시해야 합니다.

2. 왜 중요한가

  • root 획득 경로가 5갈래라, 하나만 놓쳐도 상승을 허용합니다(전수 감시 필요).
  • 각 경로는 서로 다른 탐지(diff·와치·FIM·내용)가 필요하지만, 공통 대응(경로 원복·세션 종료)이 있습니다.
  • 모든 경로는 C영역 정찰→D영역 변경의 공통 전조를 가집니다.

3. 핵심 명령어 / 설정

경로핵심 탐지탐지 편
SUID기준선 diff·화이트리스트D22·25·26
sudo와치·FIM·NOPASSWD 내용D29·30·31
PAM와치·permit/nullok 내용D33·34
capabilitygetcap diffD27
그룹·소유권멤버·소유권 기준선D21·35

4. 실습 (실습 예시)

# root 획득 경로 종합 점검 (분석 방법)
echo "① SUID:" $(diff /root/baseline/suid_base.txt <(sudo find / -xdev -perm -4000 -type f 2>/dev/null|sort)|grep -c '^>')
echo "② sudoers:" $(sudo grep -rc NOPASSWD /etc/sudoers /etc/sudoers.d/ 2>/dev/null|paste -sd+|bc 2>/dev/null)
echo "③ PAM:" $(sudo grep -rlE 'pam_permit\.so|nullok' /etc/pam.d/ 2>/dev/null|wc -l)
echo "④ cap:" $(diff /root/baseline/caps_base.txt <(sudo getcap -r / 2>/dev/null|sort)|grep -c '^>')
echo "⑤ 특권그룹:" $(for g in wheel sudo docker lxd;do getent group $g;done 2>/dev/null|wc -l)

5. 정상 상태

① SUID: 0  ② sudoers: 0  ③ PAM: 0  ④ cap: 0  ⑤ 특권그룹: (기준선 일치)

5개 경로 모두 기준선과 일치해, 새로운 root 획득 경로가 없는 상태가 정상입니다.

6. 이상 상태

① SUID: 1  ② sudoers: 1(NOPASSWD)  ③ PAM: 1  ④ cap: 1  ⑤ 특권그룹: devops 추가
  • 5개 경로 모두에서 신규 상승 경로 출현 → 다중 백도어(중복 상승 확보)
  • 공격자가 여러 경로를 깔아 하나가 막혀도 상승 유지
  • 전 경로 이탈 → 심각한 침해 상태로 판정

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

root 획득 경로 종합 지도입니다(가상의 예시).

[C영역 정찰] 경로 탐색(SUID·sudo·cap·그룹)
      ↓
[D영역 변경] 경로 생성
   ├ SUID 설정 ──┐
   ├ sudoers 추가 ┤
   ├ PAM 변조 ───┼→ root 획득
   ├ setcap ─────┤
   └ 특권 그룹 ───┘
      ↓
[상승 실행] 각 경로로 root (별도 탐지)
경로 수의미
0정상
1단일 경로(조사)
2+다중 백도어(심각)

여러 경로가 동시에 생기면 공격자가 중복 상승을 확보한 심각한 상태입니다.

8. SOC 관제 포인트

  • D영역 root 획득 경로는 SUID·sudo·PAM·capability·그룹 5갈래입니다.
  • 하나만 성공해도 root이므로 모든 경로를 동시에 감시해야 합니다.
  • 각 경로는 전용 탐지(diff·와치·FIM)가 다르지만 공통 전조(C정찰)·대응을 가집니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_d,privilege,">
  <!-- 여러 상승 경로가 짧은 시간에 생성(다중 백도어) -->
  <rule id="103340" level="15" frequency="3" timeframe="900">
    <if_matched_sid>103200,103270,103310,103250,103330</if_matched_sid>
    <same_field>audit.session</same_field>
    <description>동일 세션 내 다중 root 획득 경로 생성(심각)</description>
    <mitre><id>T1548</id></mitre>
  </rule>
</group>

여러 경로 룰(D22~35)을 상관해 다중 백도어를 최고 레벨(15)로 경보합니다.

10. 대응 방법

  1. 초기 확인 — 5개 경로(SUID·sudo·PAM·cap·그룹)의 기준선 이탈을 종합 확인합니다.
  2. 범위 확인 — 여러 경로가 같은 세션·짧은 시간에 생성됐는지 확인합니다.
  3. 증거 확보 — 전 경로의 변경 이벤트와 기준선·내용을 보존합니다.
  4. 차단/조치 — 정탐이면 모든 경로 원복·세션 종료·전면 침해 조사를 진행합니다.
  5. 재발 방지 — root 획득 경로 전수 감시 체계를 운영합니다.

11. 핵심 정리

경로핵심 탐지
SUID기준선 diff·화이트리스트
sudo와치·NOPASSWD 내용
PAMpermit/nullok 내용
capabilitygetcap diff
그룹·소유권멤버·소유권 기준선
면접 포인트"root 경로는 5갈래 — 하나만 성공해도 root, 전수 감시가 방어의 전제"

12. 다음 편 예고

다음 편 187. 권한 변경 이상 — setuid/setgid 호출 이상 탐지 에서는 5단계로 넘어가 setuid/setgid 호출 이상 탐지를 다룹니다.


이전 편: 185. 권한 변경 이상 — 특권 그룹 추가와 권한 변경 연계
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글