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

선행 학습

1. 개념

Sticky Bit는 특수 권한 중 "보호" 역할을 합니다. world-writable 공유 디렉터리(/tmp 등)에 설정하면, 자기가 만든 파일만 삭제·이름변경할 수 있게 제한합니다. 이 비트를 제거하면 누구나 타인의 파일을 삭제·교체할 수 있습니다.

Sticky Bit 동작
 chmod +t dir / 1777 → 공유 디렉터리 보호(본인 파일만 삭제)
 chmod -t dir / 0777 → 보호 제거(누구나 타인 파일 삭제·교체)
 정상: /tmp, /var/tmp, /dev/shm = 1777

위험: Sticky 제거 → 파일 교체 공격(심볼릭 링크·경쟁 조건)

/tmp의 Sticky 제거는 TOCTOU·심볼릭 링크 공격, 타 사용자 임시 파일 교체의 전제가 됩니다.

2. 왜 중요한가

  • Sticky 제거된 공유 디렉터리는 타인 파일 삭제·교체가 가능해, 파일 교체 공격의 토대가 됩니다.
  • /tmp 등의 Sticky 제거는 정상 운영에서 거의 없어, 강한 이상 징후입니다.
  • 공격자는 보호 제거 후 타 프로세스의 임시 파일을 악성으로 교체합니다.

3. 핵심 명령어 / 설정

변경대상위험
Sticky 제거/tmp,/var/tmp높음(파일 교체)
Sticky 제거공유 디렉터리중간
Sticky 설정신규 공유정상
1777 유지/tmp 기본정상
0777 전환보호 해제위험

4. 실습 (실습 예시)

# Sticky Bit 변경 탐지 (분석 방법)
sudo ausearch -k perm_change -i --start recent 2>/dev/null | grep -E '\-t |chmod 0?777 ' | grep -E '/tmp|/var/tmp|/dev/shm' | tail

# world-writable인데 Sticky 없는 디렉터리(보호 제거 상태)
find / -xdev -type d -perm -0002 ! -perm -1000 2>/dev/null | grep -E '/tmp|/var/tmp'

5. 정상 상태

$ (Sticky 변경 이벤트) (없음)
$ (보호 제거 디렉터리) (없음 — /tmp 등 1777 유지)

/tmp·/var/tmp가 Sticky(1777)를 유지하고, Sticky 제거 이벤트가 없는 상태가 정상입니다.

6. 이상 상태

$ (Sticky 변경 이벤트)
03:20 auid=www-data proctitle="chmod -t /tmp"
$ (보호 제거 디렉터리)
/tmp (현재 0777, Sticky 없음)
  • /tmp Sticky 제거 → 누구나 타 사용자 임시 파일 삭제·교체 가능
  • 웹 계정(www-data)의 /tmp 보호 제거 → 파일 교체 공격 준비
  • 이후 타 프로세스 임시 파일 교체(악성)로 이어질 수 있음 → 정탐

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

Sticky Bit 변경 흐름입니다(가상의 예시 로그).

type=SYSCALL ... comm="chmod" auid=www-data key="perm_change"
type=PATH ... name="/tmp" mode=041777
type=PROCTITLE ... proctitle=chmod -t /tmp
 → 1777 → 0777 : Sticky 제거(보호 해제)
[이후] 타 사용자 /tmp 파일 교체(심볼릭 링크·경쟁 조건)
필드해석
proctitle -tSticky 제거
mode 041777이전: Sticky 있음
대상 /tmp공유 디렉터리
이후 교체파일 교체 공격

Sticky 제거 후 타 사용자 파일 교체·삭제가 이어지는지 연계로 봅니다.

8. SOC 관제 포인트

  • Sticky Bit는 공유 디렉터리의 타인 파일 보호 장치입니다.
  • /tmp 등의 Sticky 제거는 파일 교체·삭제 공격의 전제로 강한 이상 징후입니다.
  • Sticky 변경 이벤트와 "보호 제거 상태" 디렉터리를 함께 탐지합니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_d,perm_change,">
  <rule id="103220" level="11">
    <if_sid>103000</if_sid>
    <field name="audit.proctitle" type="pcre2">chmod\s+(-t|0?777)\s+(/tmp|/var/tmp|/dev/shm)</field>
    <description>공유 디렉터리 Sticky Bit 제거(파일 교체 공격 토대)</description>
    <mitre><id>T1222</id></mitre>
  </rule>
</group>

/tmp류 Sticky 제거는 정상 운영에서 드물어 단건도 조사 대상입니다.

10. 대응 방법

  1. 초기 확인 — Sticky가 제거된 디렉터리·주체·시점과 이전 상태(1777)를 확인합니다.
  2. 범위 확인 — 보호 제거 후 타 사용자 파일 삭제·교체가 이어졌는지 확인합니다.
  3. 증거 확보 — Sticky 변경 이벤트와 대상 디렉터리 현재 권한을 보존합니다.
  4. 차단/조치 — Sticky 원복(chmod +t)·교체된 파일 점검·세션 종료를 진행합니다.
  5. 재발 방지 — 공유 디렉터리 Sticky 변경 탐지를 운영합니다.

11. 핵심 정리

변경위험
Sticky 제거 /tmp파일 교체·삭제 공격
Sticky 제거 공유타인 파일 조작
0777 전환보호 해제
1777 유지정상
면접 포인트"Sticky는 공유 디렉터리 타인 파일 보호 — /tmp 제거는 파일 교체 공격 토대"

12. 다음 편 예고

다음 편 175. 권한 변경 이상 — 신규 SUID/SGID 파일 생성 탐지 에서는 신규 SUID/SGID 파일 생성을 다루는 신규 SUID/SGID 파일 생성 탐지를 다룹니다.


이전 편: 173. 권한 변경 이상 — SGID 비트 설정 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글