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

선행 학습

1. 개념

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 전환은 "완화 방향"의 극단이라 단건이라도 우선 확인 대상입니다.

2. 왜 중요한가

  • world-writable 설정·스크립트는 저권한 공격자가 상승·지속성에 악용합니다(변조 후 root 실행).
  • 공유 디렉터리를 world-writable로 만들면 파일 주입(웹셸)·교체 경로가 됩니다.
  • 정상 예외(일부 소켓·공유 임시 경로)가 있어, 대상·주체로 정탐/오탐을 구분합니다.

3. 핵심 명령어 / 설정

전환 대상위험비고
설정·스크립트높음변조→실행
실행 파일·바이너리높음변조
시스템 디렉터리높음주입·교체
로그 파일중간로그 변조
임시 공유(정상)낮음Sticky 동반

4. 실습 (실습 예시)

# 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

5. 정상 상태

$ (world-writable 전환 이벤트) (없음)
$ (중요 경로 world-writable 파일) (없음)

중요 경로에 world-writable 파일이 없고, 전환 이벤트도 없는 상태가 정상입니다. 정상 예외(소켓 등)는 기준선에 등록합니다.

6. 이상 상태

$ (전환 이벤트)
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 연계)
  • 비관리 계정(www-data)의 설정 완화 → 정탐

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

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.shworld-writable 전환
이전 755정상 → 완화
이후 내용 변경변조(FIM)
cron 실행root 상승

전환 → 변조(FIM) → 실행(cron)의 3단을 연계로 탐지합니다.

8. SOC 관제 포인트

  • world-writable 전환은 완화의 극단으로 단건도 우선 확인합니다.
  • 설정·스크립트·실행 파일·시스템 디렉터리의 전환이 특히 위험합니다.
  • 전환 → 내용 변조(FIM) → 실행 연계로 상승·지속성을 포착합니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 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).

10. 대응 방법

  1. 초기 확인 — world-writable로 전환된 대상·주체·시점과 이전 권한을 확인합니다.
  2. 범위 확인 — 전환 직후 내용 변조(FIM)·실행이 이어졌는지 확인합니다.
  3. 증거 확보 — 전환 이벤트·대상 파일(권한·해시)을 보존합니다.
  4. 차단/조치 — 권한을 원복(o-w)하고 변조된 파일을 복구합니다.
  5. 재발 방지 — 중요 경로 world-writable 전환 탐지를 운영합니다.

11. 핵심 정리

전환 대상위험
설정·스크립트변조→실행
바이너리변조
시스템 디렉터리주입·교체
로그로그 변조
면접 포인트"world-writable 전환은 저권한 공격자의 변조·상승 경로 — 단건도 확인"

12. 다음 편 예고

다음 편 164. 권한 변경 이상 — /etc 권한 변경 탐지 에서는 /etc 디렉터리 권한 변경을 집중 다루는 /etc 권한 변경 탐지를 다룹니다.


이전 편: 162. 권한 변경 이상 — 디렉터리 권한 변경 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글