151. 권한 변경 이상 — Linux 권한 모델과 권한 변경 탐지 개요

changseop lee·2026년 10월 7일

시스템 보안 · 취약점

목록 보기
151/450

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

선행 학습

1. 개념

C영역이 "상승 경로를 찾는 정찰"이었다면, D영역은 공격자가 그 경로로 권한을 실제 바꾸는 행위를 탐지합니다. 권한 변경은 권한 상승·지속성·방어 무력화의 실행 단계입니다.

정찰(C27·28: SUID·sudo 경로 탐색)
    ↓
권한 변경 ← D영역 (chmod·chown·setuid·sudoers 변경)
    ↓
권한 상승 완성 → 지속성(F) · 중요 정보 접근(E) · 로그 변조(G)

권한 변경의 세 목적
 ① 권한 상승: SUID 설정, sudoers 추가 → root 획득
 ② 접근 확보: 중요 파일 권한 완화 → 읽기/쓰기
 ③ 지속성:   실행 파일·설정 권한 조작 → 재실행 보장

D영역은 명령 사용법이 아니라, 권한 변경 행위가 남기는 흔적(auditd·FIM)과 정상/비정상 구분에 초점을 둡니다.

2. 왜 중요한가

  • 권한 변경은 권한 상승의 실행 지점이라, 여기서 탐지하면 root 획득·지속성 이전에 차단할 수 있습니다.
  • 권한 변경 명령(chmod·chown)은 관리자도 쓰므로, 대상·방향(완화/강화)·주체·맥락으로 정상과 구분해야 합니다.
  • A영역(설정 하드닝)이 "올바른 권한 설정"이라면, D영역은 "그 권한이 비정상적으로 바뀌는 것"을 탐지합니다.

3. 핵심 명령어 / 설정

변경 유형명령위험 방향
권한 비트chmod완화(644→777), SUID 설정(C27)
소유자chown탈취(root→user), 권한 획득
그룹chgrp특권 그룹 소유
capabilitysetcap비표준 권한 부여
정책visudo·sudoers.d권한 규칙 추가

4. 실습 (실습 예시)

# 권한 변경 탐지의 기반 감사 규칙 (실습 예시 — /etc/audit/rules.d/60-perm.rules)
# 권한/소유권 변경 시스템 콜 감시
-a always,exit -F arch=b64 -S chmod,fchmod,fchmodat -F auid>=1000 -F auid!=unset -k perm_change
-a always,exit -F arch=b64 -S chown,fchown,lchown,fchownat -F auid>=1000 -F auid!=unset -k perm_change
-a always,exit -F arch=b64 -S setxattr,fsetxattr -k perm_change

# 세션별 권한 변경 흐름 확인 (분석 방법)
sudo ausearch -k perm_change -i --start recent | grep -E 'chmod|chown' | tail

A영역 04편(권한 매트릭스)·30편(감사 정책)에서 다룬 감사 기반 위에 권한 변경 전용 키(perm_change)를 둡니다.

5. 정상 상태

$ sudo ausearch -k perm_change -i --start today | tail -2
14:02:11 auid=admin1 ses=8 comm="chmod" (대상 /var/www/html/upload, 755)  (배포 작업)

관리자가 배포·설정 작업으로 특정 파일 권한을 바꾸는 것은 정상입니다(변경관리와 일치). 차이는 대상·방향·맥락입니다.

6. 이상 상태

02:20:00 auid=devops ses=12 comm="chmod" (대상 /usr/bin/find, 4755 — SUID 설정)
02:20:05 auid=devops ses=12 comm="chown" (대상 /etc/passwd, devops)
  • find에 SUID 설정(4755) → 권한 상승 경로 생성(C27 정찰 결과 실행)
  • /etc/passwd 소유자 변경 → 계정 파일 탈취
  • C영역 정찰(ses=12)에 이어 권한 변경 실행 → 상승 단계 진입

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

권한 변경은 auditd 시스템 콜로 정확히 기록됩니다(가상의 예시 로그).

type=SYSCALL msg=audit(...): arch=c000003e syscall=268 success=yes auid=devops uid=0 comm="chmod" exe="/usr/bin/chmod" key="perm_change"
type=PATH msg=audit(...): name="/usr/bin/find" nametype=NORMAL mode=0100755
type=PROCTITLE msg=audit(...): proctitle=chmod 4755 /usr/bin/find
필드분석 포인트
syscall=268fchmodat(권한 변경)
proctitle실제 명령(4755 = SUID)
name변경 대상
auid=devops uid=0행위자 devops, root 권한 실행

변경 전후 권한은 PATH의 mode와 proctitle로 확인하며, 상세 before/after는 D42편에서 다룹니다.

8. SOC 관제 포인트

  • 권한 변경은 대상(중요 파일/바이너리)·방향(완화·SUID)·주체(auid)·맥락(정찰 연계) 으로 판정합니다.
  • C영역 정찰(C27·28)에서 찾은 경로가 D영역에서 실행되는지 세션으로 추적합니다.
  • 권한 변경 탐지는 권한 상승(root 획득) 이전의 조기 대응 지점입니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_d,perm_change,">
  <rule id="103000" level="7">
    <if_group>audit</if_group>
    <field name="audit.key">perm_change</field>
    <description>파일 권한/소유권 변경 발생</description>
    <mitre><id>T1222.002</id></mitre>
  </rule>
</group>

D영역 Wazuh 커스텀 룰은 103000번대를 씁니다. T1222(File and Directory Permissions Modification)에 매핑됩니다. 단건은 낮은 레벨, 대상·방향 조건으로 상향합니다(D09~).

10. 대응 방법

  1. 초기 확인 — 권한 변경의 대상·방향·주체·시각을 확인합니다.
  2. 범위 확인 — C영역 정찰과 같은 세션인지, 이후 상승·접근(E·F)으로 이어졌는지 확인합니다.
  3. 증거 확보 — 권한 변경 audit 로그와 변경 대상 파일 상태를 보존합니다.
  4. 차단/조치 — 비인가 변경이면 권한 원복·세션 종료(B영역 연계)를 진행합니다.
  5. 재발 방지 — 권한 변경 기준선과 대상·방향 기반 탐지 룰을 운영합니다.

11. 핵심 정리

구분핵심 내용
D영역 초점권한 변경 행위의 탐지(정찰의 실행 단계)
변경 유형chmod·chown·chgrp·setcap·sudoers
세 목적권한 상승·접근 확보·지속성
판정대상·방향·주체·맥락
면접 포인트"C영역은 상승 경로 정찰, D영역은 그 경로로 권한을 바꾸는 실행"

12. 다음 편 예고

다음 편 152. 권한 변경 이상 — 권한 비트·umask·기본 권한의 보안 의미 에서는 권한 비트·umask의 보안 의미를 탐지 관점에서 정리하는 권한 비트·기본 권한의 보안 의미를 다룹니다.


이전 편: 150. Linux 정보 수집 — Linux 정보 노출 및 수집 종합 정리
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글