Linux 시스템 보안 기초 · 20/50편

이 글은 리눅스 시스템 기초 · 파일 · 권한 · 사용자 관리 · 서비스 · 프로세스 관리 시리즈를 선행 학습으로 두고, 동일한 개념을 보안관제(SOC) 관점에서 한 단계 확장합니다.

선행 학습

1. 들어가며

/tmp는 누구나 쓸 수 있는(world-writable) 디렉터리인데도 왜 서로의 파일을 함부로 지우지 못할까요? 그 답이 Sticky Bit입니다. 17편에서 world-writable을 다뤘으니, 이번 편은 그것을 안전하게 만드는 장치를 봅니다.

2. 핵심 개념

Sticky Bit(8진수 1000, 디렉터리 권한 끝에 t)가 디렉터리에 붙으면, 그 안의 파일은 파일 소유자·디렉터리 소유자·root만 삭제/이름변경할 수 있습니다. world-writable이라도 남의 파일을 지우지 못하게 막는 것이 핵심입니다.

대표 예: /tmp, /var/tmp, /dev/shm — 모두 drwxrwxrwt(1777)입니다.

Sticky 없는 world-writable /shared (rwxrwxrwx)
  alice가 만든 파일 ──bob이 삭제 가능──> 데이터 파괴/교체 위험

Sticky 있는 /tmp (rwxrwxrwt)
  alice가 만든 파일 ──bob 삭제 불가──> 소유자/root만 삭제

3. 동작 원리

디렉터리에 w가 있으면 원래 그 안의 모든 파일을 삭제할 수 있습니다(16편). Sticky Bit는 이 규칙에 예외를 걸어 '삭제는 소유자만'으로 제한합니다. 그래서 공유 임시 디렉터리에서 사용자 간 파일 파괴·교체를 막습니다.

Sticky가 빠진 world-writable 디렉터리는 위험합니다: 공격자가 다른 사용자의 파일을 자신의 악성 파일로 교체(예: 실행 예정 스크립트 스와핑)할 수 있기 때문입니다.

4. 명령어 실습

# Sticky Bit 확인 (끝의 t)
ls -ld /tmp /var/tmp /dev/shm

# Sticky 없는 world-writable 디렉터리 탐지 (위험)
sudo find / -xdev -type d -perm -0002 ! -perm -1000 2>/dev/null

# Sticky Bit 부여
sudo chmod +t /shared

5. 실행 결과

실습 컨테이너 실제 실행 결과입니다. (실제 캡처)

$ ls -ld /tmp
drwxrwxrwt 1 root root ... /tmp

권한 끝의 t가 Sticky Bit입니다. 만약 drwxrwxrwx(t 없음)로 보이면, 그 디렉터리는 사용자 간 파일 삭제/교체가 가능하므로 chmod +t로 보호해야 합니다.

6. 보안 관점 — 정상 사용 vs 악용

  • 정상: /tmp 등 공용 임시 디렉터리는 Sticky Bit(1777).
  • 위험 징후:
    • Sticky 없는 world-writable 디렉터리(파일 교체 공격 표면)
    • 원래 Sticky였던 디렉터리에서 Sticky가 제거됨

17편의 world-writable 점검과 결합해, '쓰기 가능 + Sticky 없음' 조합을 우선순위로 조사합니다.

7. 탐지 방법

  • Sticky 없는 world-writable 디렉터리 스캔(위 find)
  • 공용 디렉터리의 Sticky 유지 여부 기준선 비교
  • 디렉터리 권한 변경 감사

8. SOC 관점 — SIEM · Wazuh · IOC

Sticky Bit 누락은 Wazuh SCA의 CIS 점검 항목입니다. 단독으로는 저위험이지만, 임시 디렉터리에서의 파일 교체는 권한 상승 체인의 한 고리가 될 수 있어, SIEM에서는 /tmp 등에서의 의심 실행(27·32편)과 결합해 분석합니다.

9. 실습 체크리스트

[ ] /tmp 등 공용 디렉터리의 t 비트 확인
[ ] Sticky 없는 world-writable 디렉터리 탐지
[ ] 필요 디렉터리에 +t 부여
[ ] Sticky 제거 이벤트 감사

10. 핵심 정리

  • Sticky Bit는 world-writable 디렉터리에서 삭제를 소유자로 제한한다.
  • /tmp·/var/tmp·/dev/shm이 대표적 1777 디렉터리다.
  • Sticky 없는 world-writable 디렉터리는 파일 교체 공격 표면이다.
  • world-writable 점검과 결합해 우선순위를 정한다.
  • Sticky 제거는 방어 약화 신호로 감사한다.

11. 다음 편

다음 편에서는 21. ACL 보안 를 다룹니다. rwx보다 세밀한 권한 제어인 ACL과, ACL로 숨긴 권한을 탐지하는 법을 봅니다.


본 실습은 격리된 테스트 VM(Rocky Linux / Ubuntu, VMware) 및 테스트 계정 환경을 기준으로 하며, 운영 서버를 대상으로 하지 않습니다. 실행 결과는 실제 캡처와 예시 출력을 명확히 구분해 표기합니다.

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

0개의 댓글