152. 권한 변경 이상 — 권한 비트·umask·기본 권한의 보안 의미

changseop lee·2026년 10월 7일

시스템 보안 · 취약점

목록 보기
152/450

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

선행 학습

1. 개념

권한 변경을 탐지하려면 먼저 어떤 권한 상태가 위험한가를 알아야 합니다. 권한 비트의 의미를 "탐지 관점"(어떤 값이 이상인가)에서 정리합니다. linsec 16편이 권한 기초라면, 여기서는 위험 판정 기준입니다.

권한 8진수 구조
 4755 = SUID(4) + rwxr-xr-x
 2755 = SGID(2) + rwxr-xr-x
 1777 = Sticky(1) + rwxrwxrwx (/tmp)
 0777 = world-writable (누구나 쓰기 → 위험)

위험 판정
 일반 파일 777/666      → 과도한 쓰기 권한
 실행 파일에 SUID(4xxx) → 권한 상승 가능
 설정 파일 그룹/기타 쓰기 → 변조 가능
 umask 완화(000)       → 이후 파일 전부 느슨(A영역 05편)

2. 왜 중요한가

  • 권한 상태의 "정상값"을 알아야 변경이 "완화(위험)"인지 "강화(정상)"인지 판정할 수 있습니다(A영역 04편 매트릭스).
  • SUID/SGID는 권한 상승의 핵심이라, 이 비트가 새로 생기는 것이 가장 중요한 이상 징후입니다(D22~26).
  • world-writable·그룹 쓰기 전환은 변조·탈취 경로를 엽니다.

3. 핵심 명령어 / 설정

권한 상태의미위험도
SUID(4xxx) 실행 파일소유자 권한으로 실행높음(상승)
SGID(2xxx)그룹 권한으로 실행높음
world-writable(o+w)누구나 쓰기높음(변조)
그룹 쓰기(g+w) 설정 파일그룹 변조중간
Sticky(1xxx) 디렉터리소유자만 삭제정상(보호)

4. 실습 (실습 예시)

# 위험 권한 상태 점검 (분석 방법, 읽기 전용)
# SUID/SGID 파일 목록(기준선 대비)
sudo find / -xdev -perm -4000 -o -perm -2000 2>/dev/null | sort > /root/baseline/suid_now.txt
diff /root/baseline/suid_base.txt /root/baseline/suid_now.txt

# world-writable 파일(디렉터리 제외)
sudo find / -xdev -type f -perm -0002 2>/dev/null | head

# 8진수 권한 확인
stat -c '%a %n' /usr/bin/find /etc/passwd /etc/sudoers

권한 변경 탐지는 "현재 위험 권한"(점검)과 "변경 이벤트"(auditd, D01) 양쪽을 봅니다.

5. 정상 상태

$ diff suid_base.txt suid_now.txt
$
$ stat -c '%a %n' /usr/bin/find /etc/passwd /etc/sudoers
755 /usr/bin/find
644 /etc/passwd
440 /etc/sudoers

SUID 목록이 기준선과 동일하고, 주요 파일 권한이 기대값(A영역 04편)과 일치하는 상태가 정상입니다.

6. 이상 상태

$ diff suid_base.txt suid_now.txt
> /usr/bin/find
$ stat -c '%a %n' /usr/bin/find /etc/shadow
4755 /usr/bin/find
644 /etc/shadow
  • find에 SUID(4755) 신규 → 기준선에 없던 SUID (D25 신규 SUID 탐지)
  • /etc/shadow가 644(기대 000/640) → 해시 노출 권한 완화
  • 권한 상태만으로 위험을 판정하고, 변경 시점은 auditd(D01)로 확인

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

권한 상태의 위험 판정과 변경 이벤트를 결합합니다(가상의 예시).

[상태 점검] find: 4755 (SUID 신규, 기준선 이탈)
[변경 이벤트] type=SYSCALL comm="chmod" proctitle="chmod 4755 /usr/bin/find" auid=devops
 → 상태(위험) + 이벤트(누가·언제) 결합 = 완전한 분석
분석수단
위험 상태find -perm, stat(기준선 비교)
변경 시점·주체auditd perm_change(D01)
결합상태+이벤트 = 판정

8. SOC 관제 포인트

  • 권한 위험 판정 기준(SUID·world-writable·그룹 쓰기)을 기준선·매트릭스(A영역 04편)로 관리합니다.
  • 권한 상태 점검(find/stat)과 변경 이벤트(auditd)를 함께 봅니다.
  • SUID/SGID 신규 생성이 최우선 이상 징후입니다(D25).

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_d,perm_change,">
  <rule id="103010" level="10">
    <if_sid>103000</if_sid>
    <field name="audit.proctitle" type="pcre2">chmod\s+[0-7]?[4-7][0-7]{3}|u\+s|g\+s</field>
    <description>SUID/SGID 비트 설정 권한 변경</description>
    <mitre><id>T1548.001</id></mitre>
  </rule>
</group>

T1548.001(Setuid and Setgid)에 매핑됩니다. SUID 신규는 FIM(D41)과 함께 탐지합니다.

10. 대응 방법

  1. 초기 확인 — 위험 권한 상태(SUID·world-writable)와 기준선 차이를 확인합니다.
  2. 범위 확인 — 변경 이벤트(auditd)로 변경 시점·주체를 확인하고 상태와 결합합니다.
  3. 증거 확보 — 권한 상태 목록·audit 로그를 보존합니다.
  4. 차단/조치 — 비인가 위험 권한은 원복(기대값 복원)하고 주체를 조사합니다.
  5. 재발 방지 — 권한 위험 기준선과 SUID/world-writable 탐지를 운영합니다.

11. 핵심 정리

권한 상태위험
SUID(4xxx)권한 상승
world-writable변조·탈취
그룹 쓰기 설정 파일변조
umask 000이후 파일 느슨(A영역 05편)
면접 포인트"권한 상태(위험)와 변경 이벤트(누가·언제)를 결합해야 완전한 판정"

12. 다음 편 예고

다음 편 153. 권한 변경 이상 — 권한 변경 감사의 기반 구성(auditd perm) 에서는 권한 변경을 기록하는 기반인 권한 변경 감사의 기반 구성(auditd perm)을 다룹니다.


이전 편: 151. 권한 변경 이상 — Linux 권한 모델과 권한 변경 탐지 개요
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글