162. 권한 변경 이상 — 디렉터리 권한 변경 탐지

changseop lee·6일 전

시스템 보안 · 취약점

목록 보기
162/450

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

선행 학습

1. 개념

디렉터리 권한은 파일과 의미가 다릅니다. 디렉터리의 쓰기 권한은 그 안에 파일을 만들거나 삭제할 수 있게 하고, 실행(x) 권한은 진입(접근)을 허용합니다. 디렉터리 완화는 파일 주입·삭제 경로가 됩니다.

디렉터리 권한 의미
 쓰기(w): 내부 파일 생성·삭제·이름변경
 실행(x): 디렉터리 진입·내부 접근
 chmod 777 dir      → 누구나 파일 주입·삭제
 chmod -R 777 dir   → 하위 전체 완화(대규모)

위험: 중요 디렉터리 쓰기 완화 / 재귀 완화

디렉터리가 world-writable이 되면 Sticky Bit(D24)가 없는 한 누구나 내부 파일을 삭제·교체할 수 있습니다.

2. 왜 중요한가

  • 디렉터리 쓰기 완화는 그 안에 악성 파일을 주입하거나 정상 파일을 교체하는 경로입니다.
  • /etc·/usr/bin 같은 시스템 디렉터리 완화는 바이너리·설정 교체로 이어집니다.
  • 재귀(-R) 완화는 하위 수백 개 파일을 한 번에 노출시킵니다.

3. 핵심 명령어 / 설정

변경대상위험
chmod 777 dir시스템 디렉터리높음(주입·교체)
chmod -R 777디렉터리 트리높음(대규모)
chmod o+w공유 디렉터리중간
Sticky 제거/tmp 등중간(삭제 허용)
chmod 755일반 디렉터리낮음

4. 실습 (실습 예시)

# 디렉터리 권한 변경 탐지 (분석 방법)
# 재귀/완화 디렉터리 변경 이벤트
sudo ausearch -k perm_change -i --start recent 2>/dev/null | grep -E 'chmod.*-R|chmod.*777' | tail

# 현재 world-writable 디렉터리(Sticky 없는)
find / -xdev -type d -perm -0002 ! -perm -1000 2>/dev/null | head

5. 정상 상태

$ (재귀/완화 변경) (없음)
$ (world-writable 디렉터리) (없음 또는 정상 공유 디렉터리만)

디렉터리 권한이 기준선을 유지하고(755/750), Sticky 없는 world-writable 디렉터리가 없는 상태가 정상입니다.

6. 이상 상태

$ (재귀/완화 변경)
02:35 auid=devops proctitle="chmod -R 777 /var/www/html"
$ (world-writable 디렉터리)
/var/www/html (and 320 subdirs)
  • /var/www/html 재귀 777 → 웹루트 전체에 파일 주입 가능(웹셸·변조)
  • 320개 하위 디렉터리가 한 번에 완화 → 대규모 노출
  • 재귀 완화 직후 파일 생성(웹셸)으로 이어지는지 확인

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

디렉터리 권한 변경 흐름입니다(가상의 예시 로그).

type=PROCTITLE ... proctitle=chmod -R 777 /var/www/html auid=devops key="perm_change"
type=PATH ... name="/var/www/html" (and recursive)
[이후] /var/www/html/shell.php 생성 (파일 주입)
관찰해석
chmod -R 777재귀 완화(대규모)
웹루트 대상웹셸 주입 가능
이후 파일 생성주입 실행
320 하위대규모 노출

재귀 완화 직후 파일 생성(FIM/프로세스)을 연계해 주입을 포착합니다.

8. SOC 관제 포인트

  • 디렉터리 쓰기 완화는 파일 주입·삭제·교체 경로입니다.
  • 시스템·웹 디렉터리의 777, 재귀(-R) 완화를 높은 우선순위로 봅니다.
  • 완화 직후 파일 생성(주입)으로 이어지는지 연계 감시합니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_d,perm_change,">
  <rule id="103100" level="11">
    <if_sid>103000</if_sid>
    <field name="audit.proctitle" type="pcre2">chmod\s+-R\s+[0-7]*7[0-7]{2}|chmod\s+777.*(/var/www|/etc|/usr|/opt)</field>
    <description>디렉터리 재귀/world-writable 권한 완화</description>
    <mitre><id>T1222.002</id></mitre>
  </rule>
</group>

재귀 완화는 단일 proctitle로도 탐지 가능합니다. 완화된 디렉터리는 FIM으로 내부 파일 생성을 감시합니다.

10. 대응 방법

  1. 초기 확인 — 완화된 디렉터리·재귀 여부·대상(시스템/웹)·주체를 확인합니다.
  2. 범위 확인 — 완화 직후 내부 파일 생성(주입)이 이어졌는지 확인합니다.
  3. 증거 확보 — 권한 변경 로그와 디렉터리 현재 권한·내부 신규 파일을 보존합니다.
  4. 차단/조치 — 권한을 원복(755/750)하고 주입된 파일을 격리합니다.
  5. 재발 방지 — 디렉터리 완화 탐지와 내부 파일 감시를 함께 운영합니다.

11. 핵심 정리

변경위험
777 시스템 디렉터리주입·교체
-R 777재귀 대규모 완화
o+w 공유 디렉터리파일 주입
Sticky 제거삭제 허용
면접 포인트"디렉터리 쓰기 완화는 내부 파일 주입·삭제 경로 — 재귀는 대규모"

12. 다음 편 예고

다음 편 163. 권한 변경 이상 — world-writable 전환 탐지 에서는 world-writable 전환을 집중적으로 다루는 world-writable 전환 탐지를 다룹니다.


이전 편: 161. 권한 변경 이상 — 실행 파일 권한 변경 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글