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

선행 학습

1. 개념

SUID(set-user-ID)는 특수 권한 중 가장 위험합니다. SUID가 설정된 바이너리는 실행자가 아닌 파일 소유자(주로 root) 권한으로 실행됩니다. 공격자는 바이너리에 SUID를 설정해 상시 상승 경로를 만듭니다.

SUID 동작과 위험
 chmod u+s file / chmod 4755 file
  → file 실행 시 소유자(root) 권한 획득
 정상: passwd, sudo, ping 등 소수 시스템 바이너리
 공격: find, python, bash 등에 SUID → 상승 도구화

4000(SUID) + 755 = 4755

핵심은 "어떤 바이너리에 SUID가 새로 생겼는가"입니다. 쉘·인터프리터·범용 도구의 SUID는 즉시 상승 경로입니다.

2. 왜 중요한가

  • SUID는 한 번 설정되면 상시 상승 경로가 되어, 재방문 없이도 언제든 root를 얻습니다.
  • 정상 SUID 바이너리는 소수·고정이라, 신규·비표준 SUID는 강한 이상 징후입니다.
  • bash·find·python 같은 범용 도구의 SUID는 직접 상승 도구가 됩니다.

3. 핵심 명령어 / 설정

SUID 대상위험판정
bash/sh/find직접 상승 도구매우 높음
python/perl인터프리터 상승매우 높음
커스텀 바이너리백도어 가능높음
정상(passwd 등)기준선 등록정상
신규 SUID기준선 이탈조사

4. 실습 (실습 예시)

# SUID 비트 설정 탐지 (분석 방법)
# SUID 설정 이벤트(chmod u+s / 4xxx)
sudo ausearch -k perm_change,perm_suid -i --start recent 2>/dev/null | grep -E 'u\+s|chmod 4[0-7]{3}' | tail

# 현재 SUID 목록과 기준선 비교(D04)
diff /root/baseline/suid_base.txt <(sudo find / -xdev -perm -4000 -type f 2>/dev/null | sort)

5. 정상 상태

$ (SUID 설정 이벤트) (없음)
$ (SUID 기준선 비교) (차이 없음)

SUID 설정 이벤트가 없고, 현재 SUID 목록이 기준선(D04)과 일치하는 상태가 정상입니다.

6. 이상 상태

$ (SUID 설정 이벤트)
03:10 auid=devops proctitle="chmod u+s /usr/bin/find"
$ (SUID 기준선 비교)
> /usr/bin/find
> /tmp/.bash
  • find에 SUID → find의 -exec로 root 명령 실행(상승)
  • /tmp/.bash 신규 SUID 바이너리 → 숨김 백도어 상승 도구
  • 범용 도구·비표준 경로 SUID → 정탐(고위험)

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

SUID 설정 흐름입니다(가상의 예시 로그).

type=SYSCALL ... comm="chmod" auid=devops key="perm_suid"
type=PATH ... name="/usr/bin/find" mode=0100755
type=PROCTITLE ... proctitle=chmod u+s /usr/bin/find
 → 755 → 4755(SUID) : find가 root 권한 상승 도구화
필드해석
proctitle u+sSUID 설정
PATH mode 0100755이전: SUID 없음
대상 find범용 도구(상승)
key perm_suid특수권한 감사

SUID 설정 직후 해당 바이너리 실행(상승)으로 이어지는지 연계 감시합니다.

8. SOC 관제 포인트

  • SUID 설정은 상시 상승 경로를 만드는 가장 위험한 특수 권한입니다.
  • bash·find·python 등 범용 도구, 비표준 경로 바이너리의 SUID가 핵심 위험입니다.
  • 기준선(D04) 대비 신규 SUID와 SUID 설정 이벤트를 함께 탐지합니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_d,perm_suid,">
  <rule id="103200" level="13">
    <if_sid>103010</if_sid>
    <field name="audit.proctitle" type="pcre2">chmod\s+(u\+s|[2467][0-7]{3}).*(bash|sh|find|python|perl|vim|nmap|cp|awk)</field>
    <description>범용 도구에 SUID 비트 설정(직접 상승)</description>
    <mitre><id>T1548.001</id></mitre>
  </rule>
</group>

GTFOBins류 범용 도구의 SUID는 level 13으로 둡니다. 신규 SUID 바이너리 생성은 D25에서 상세 탐지합니다.

10. 대응 방법

  1. 초기 확인 — SUID가 설정된 바이너리·주체·시점과 기준선 이탈 여부를 확인합니다.
  2. 범위 확인 — 범용 도구·비표준 경로 여부와 설정 후 실행(상승)을 확인합니다.
  3. 증거 확보 — SUID 설정 이벤트와 대상 바이너리(권한·해시)를 보존합니다.
  4. 차단/조치 — 비인가 SUID는 제거(chmod u-s)·바이너리 격리·세션 종료를 진행합니다.
  5. 재발 방지 — SUID 설정 탐지와 기준선 비교를 운영합니다.

11. 핵심 정리

SUID 대상위험
bash/find/python직접 상승 도구
커스텀 바이너리백도어
정상(passwd 등)기준선
신규 SUID조사 대상
면접 포인트"SUID는 상시 상승 경로 — 범용 도구·신규 SUID가 핵심 이상 징후"

12. 다음 편 예고

다음 편 173. 권한 변경 이상 — SGID 비트 설정 탐지 에서는 SGID 비트 설정을 다루는 SGID 비트 설정 탐지를 다룹니다.


이전 편: 171. 권한 변경 이상 — 중요 파일 소유권 탈취 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글