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

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

선행 학습

1. 들어가며

World-Writable(other에 쓰기 허용, -rw-rw-rw- 등) 파일은 '아무 사용자나 내용을 바꿀 수 있는' 파일입니다. 설정 파일·스크립트가 이 상태면 권한 상승·지속성의 발판이 됩니다. 이번 편은 탐지와 예외 판단을 다룹니다.

2. 핵심 개념

위험의 크기는 파일 종류에 따라 다릅니다.

대상위험
루트 소유 스크립트/설정매우 높음(내용 변조→권한 상승)
cron으로 실행되는 스크립트매우 높음(지속성+상승)
일반 데이터 파일낮음~중간

핵심은 '단순히 world-writable인가'가 아니라 '누가 실행/신뢰하는 파일인가'입니다.

root 소유, cron 실행 스크립트가 world-writable 이면:

일반 사용자 alice ──write──> /opt/backup.sh (rw-rw-rw-)
                                  │ cron이 root로 실행
                                  ▼
                          alice가 넣은 코드가 root로 실행 → 권한 상승

3. 동작 원리

other 쓰기 비트가 켜지면 소유자·그룹과 무관하게 누구든 내용을 덮어쓸 수 있습니다. 여기에 '그 파일이 높은 권한으로 실행됨'이 결합되면 권한 상승이 성립합니다. 대표 시나리오: root의 cron이 도는 스크립트가 world-writable → 일반 사용자가 악성 코드를 삽입 → cron이 root로 실행.

그래서 탐지 시 반드시 소유자·실행 맥락을 함께 봐야 합니다. world-writable 자체보다 조합이 위험합니다.

4. 명령어 실습

# world-writable '파일' 탐지 (심볼릭 링크 제외 권장)
sudo find / -xdev -type f -perm -0002 ! -path '/proc/*' 2>/dev/null

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

# 특정 위험 대상만: root 소유 world-writable 파일
sudo find / -xdev -type f -perm -0002 -user root 2>/dev/null

5. 실행 결과

실습 환경에서 테스트 파일을 만들어 탐지한 실제 결과입니다. (실제 캡처)

$ find ww -perm -0002 -type f -ls
794673  0 -rw-rw-rw-  1 root root  0 Sep 25 12:37 ww/leak.sh

ww/leak.sh가 rw-rw-rw-(world-writable)이고 root 소유입니다. 이런 파일이 실행 경로에 있으면 즉시 권한을 644 또는 600으로 조여야 합니다: chmod o-w ww/leak.sh.

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

  • 정상 예외: /tmp, /var/tmp, /dev/shm 등은 원래 world-writable이되 Sticky Bit로 보호됨(20편).
  • 위험:
    • Sticky 없는 world-writable 디렉터리
    • root 소유 world-writable 스크립트/설정
    • 웹·앱 실행 경로 상의 world-writable 파일

점검 결과를 무조건 '취약'으로 보고하면 오탐이 됩니다. 정상 예외를 구분하는 것이 실력입니다.

7. 탐지 방법

  • 정기 find -perm -0002 스캔 후 예외 목록과 대조
  • Sticky 없는 world-writable 디렉터리 우선 조사
  • 발견 파일의 소유자·실행 맥락(cron/서비스) 확인

8. SOC 관점 — SIEM · Wazuh · IOC

Wazuh SCA는 CIS 벤치마크 항목으로 world-writable 파일/디렉터리를 정기 점검합니다. SIEM 관점에서는 스캔 결과 자체보다, '기준선에 없던 world-writable 파일이 새로 생김'이 의미 있는 신호입니다. 특히 실행 경로의 신규 world-writable 파일은 권한 상승 준비 단계로 볼 수 있습니다.

9. 실습 체크리스트

[ ] find -perm -0002로 파일/디렉터리 스캔
[ ] 정상 예외(/tmp 등 Sticky) 구분
[ ] root 소유 world-writable 우선 조치
[ ] 실행 맥락(cron/서비스) 확인

10. 핵심 정리

  • world-writable은 아무나 내용을 바꿀 수 있는 상태다.
  • 위험은 '실행/신뢰되는 파일인가'의 조합에서 커진다.
  • root 소유 + cron 실행 + world-writable은 전형적 권한 상승 발판이다.
  • /tmp 등 Sticky 보호 예외를 오탐하지 않아야 한다.
  • 기준선에 없던 신규 world-writable은 유의미한 신호다.

11. 다음 편

다음 편에서는 18. SUID 파일 보안 점검 를 다룹니다. 권한 상승의 단골, SUID 파일을 정상과 비정상으로 구분하는 법을 봅니다.


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

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

0개의 댓글