시스템 보안 · 취약점 › D. 권한 변경 이상 징후 · 13/50편 (전체 163/450)
학습 단계: 파일 권한 변경 이상
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
world-writable(others에 쓰기 허용, o+w/끝자리 2·6·7)는 가장 위험한 권한 완화 유형입니다. 누구나(서비스 계정·침투한 저권한 계정 포함) 그 파일·디렉터리를 변조·주입할 수 있기 때문입니다.
world-writable 전환
파일: chmod o+w file / chmod 666 / 777
→ 누구나 내용 변조(설정·스크립트·바이너리)
디렉터리: chmod o+w dir / 777
→ 누구나 파일 생성·삭제·교체(Sticky 없으면)
위험도: 중요 파일·실행 파일·설정 > 일반 데이터
world-writable 전환은 "완화 방향"의 극단이라 단건이라도 우선 확인 대상입니다.
| 전환 대상 | 위험 | 비고 |
|---|---|---|
| 설정·스크립트 | 높음 | 변조→실행 |
| 실행 파일·바이너리 | 높음 | 변조 |
| 시스템 디렉터리 | 높음 | 주입·교체 |
| 로그 파일 | 중간 | 로그 변조 |
| 임시 공유(정상) | 낮음 | Sticky 동반 |
# world-writable 전환 탐지 (분석 방법)
# 변경 이벤트 중 o+w/666/777
sudo ausearch -k perm_change -i --start recent 2>/dev/null | grep -oE 'proctitle=chmod [^,]+' | grep -E 'o\+w|[0-9][2367][2367]|777|666'
# 현재 world-writable 중요 파일(Sticky 제외)
find /etc /usr /opt -xdev -type f -perm -0002 2>/dev/null
$ (world-writable 전환 이벤트) (없음)
$ (중요 경로 world-writable 파일) (없음)
중요 경로에 world-writable 파일이 없고, 전환 이벤트도 없는 상태가 정상입니다. 정상 예외(소켓 등)는 기준선에 등록합니다.
$ (전환 이벤트)
02:40 auid=www-data proctitle="chmod 666 /etc/myapp/db.conf"
02:41 auid=devops proctitle="chmod o+w /usr/local/bin/backup.sh"
db.conf 666 → 누구나 DB 설정 변조(자격증명·경로)backup.sh o+w → root로 도는 스크립트를 변조해 상승(cron 연계)world-writable 전환 흐름입니다(가상의 예시 로그).
type=PROCTITLE ... proctitle=chmod o+w /usr/local/bin/backup.sh auid=devops key="perm_change"
type=PATH ... name="/usr/local/bin/backup.sh" mode=0100755
[이후] backup.sh 내용 변경(FIM) → cron 실행 시 상승
| 관찰 | 해석 |
|---|---|
| chmod o+w backup.sh | world-writable 전환 |
| 이전 755 | 정상 → 완화 |
| 이후 내용 변경 | 변조(FIM) |
| cron 실행 | root 상승 |
전환 → 변조(FIM) → 실행(cron)의 3단을 연계로 탐지합니다.
<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_d,perm_change,">
<rule id="103110" level="11">
<if_sid>103000</if_sid>
<field name="audit.proctitle" type="pcre2">chmod\s+.*(o\+w|[0-7][2367][2367]|666|777)\s+(/etc/|/usr/|/opt/|/var/www/)</field>
<description>중요 경로 world-writable 전환</description>
<mitre><id>T1222.002</id></mitre>
</rule>
</group>
정상 예외(소켓·공유 임시 경로)는 좁은 if_sid 예외로 분리합니다(D46).
| 전환 대상 | 위험 |
|---|---|
| 설정·스크립트 | 변조→실행 |
| 바이너리 | 변조 |
| 시스템 디렉터리 | 주입·교체 |
| 로그 | 로그 변조 |
| 면접 포인트 | "world-writable 전환은 저권한 공격자의 변조·상승 경로 — 단건도 확인" |
다음 편 164. 권한 변경 이상 — /etc 권한 변경 탐지 에서는 /etc 디렉터리 권한 변경을 집중 다루는 /etc 권한 변경 탐지를 다룹니다.
이전 편: 162. 권한 변경 이상 — 디렉터리 권한 변경 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점