192. 권한 변경 이상 — 권한 변경 before/after 비교 분석

changseop lee·2026년 10월 7일

시스템 보안 · 취약점

목록 보기
192/450

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

선행 학습

1. 개념

권한 변경을 판정하려면 "변경 전과 후"를 알아야 합니다. auditd는 PATH 레코드에 변경 전 상태(mode·ouid·ogid)를, PROCTITLE에 변경 의도(명령 입력)를 남깁니다. 이를 결합하면 before/after를 확정할 수 있습니다.

before/after 비교의 두 축
 [before] PATH 레코드
   mode=0100755  → 변경 전 권한(755)
   ouid=0 ogid=0 → 변경 전 소유자/그룹(root)
 [after]  PROCTITLE
   chmod 4755    → 변경 후 의도(SUID 755)
   chown devops  → 변경 후 소유자

결합: 755(root) → 4755(root) : SUID 추가

핵심은 PATH mode/ouid가 "변경 전" 값이라는 점입니다. 많은 분석가가 이를 "변경 후"로 오해해 판정을 틀립니다.

2. 왜 중요한가

  • before/after를 알아야 "완화인가 강화인가, 무엇이 추가됐나"를 정확히 판정합니다.
  • PATH의 mode/ouid는 변경 전 값 — 이를 혼동하면 판정이 반대로 됩니다.
  • 변경 후 실제 상태는 현재 파일(stat)로 확인해 교차 검증합니다.

3. 핵심 명령어 / 설정

값출처의미
mode(PATH)auditd변경 전 권한
ouid/ogid(PATH)auditd변경 전 소유자/그룹
proctitleauditd변경 후 의도
현재 stat파일시스템변경 후 실제
기준선D04원래 정상값

4. 실습 (실습 예시)

# before/after 비교 분석 (분석 방법)
# 변경 전(PATH) + 변경 의도(PROCTITLE) + 현재(stat)
sudo ausearch -k perm_change -i --start recent 2>/dev/null | grep -E 'mode=|ouid=|proctitle=chmod|proctitle=chown' | tail

# 변경 후 실제 상태 교차 확인
stat -c '현재: %a %U:%G %n' /usr/bin/find 2>/dev/null

5. 정상 상태

$ (before/after)
PATH mode=0100755 ouid=48 ogid=48   (before: 755, apache)
PROCTITLE proctitle=chmod 750 /var/www/app.sh  (after: 750)
$ (현재) 현재: 750 apache:apache /var/www/app.sh

before(755)→after(750)는 권한 강화(완화 아님)라 정상 방향입니다. 현재 상태도 일치합니다.

6. 이상 상태

$ (before/after)
PATH mode=0100755 ouid=0 ogid=0    (before: 755, root)
PROCTITLE proctitle=chmod 4755 /usr/bin/find  (after: 4755 SUID)
$ (현재) 현재: 4755 root:root /usr/bin/find
  • before 755(일반) → after 4755(SUID) : SUID 비트 추가(완화·상승 방향)
  • 현재 stat도 4755 확인 → 변경 확정
  • before/after로 "SUID 추가"를 명확히 판정 → 정탐

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

before/after 비교 흐름입니다(가상의 예시).

[PATH]      mode=0100755 ouid=0   ← before (755, root)
   +
[PROCTITLE] chmod 4755            ← after 의도 (SUID 추가)
   +
[stat]      현재 4755             ← after 실제 (확정)
   =
판정: 755 → 4755, SUID 비트 추가(완화·상승 방향)
축값시점
PATH mode755before
proctitle4755after(의도)
stat4755after(실제)
방향SUID 추가완화

세 값을 결합하면 before→after와 변경 방향이 확정됩니다.

8. SOC 관제 포인트

  • 권한 변경 판정은 before(PATH mode/ouid)+after(proctitle·현재 stat) 결합으로 합니다.
  • PATH의 mode/ouid는 변경 전 값 — 혼동하면 판정이 반대가 됩니다.
  • 현재 stat로 변경 후 실제 상태를 교차 검증해 확정합니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_d,perm_change,">
  <!-- before(PATH mode 일반) + after(proctitle SUID) : SUID 추가 확정 -->
  <rule id="103400" level="12">
    <if_sid>103000</if_sid>
    <field name="audit.mode" type="pcre2">^0?100[0-7]{3}$</field>
    <field name="audit.proctitle" type="pcre2">chmod\s+[4267][0-7]{3}</field>
    <description>before(일반)→after(특수권한) 권한 상향 변경</description>
    <mitre><id>T1222</id></mitre>
  </rule>
</group>

mode(before)와 proctitle(after)를 함께 보는 룰로 "방향"까지 판정합니다. 필드 파싱은 wazuh-logtest로 검증합니다.

10. 대응 방법

  1. 초기 확인 — 변경 전(PATH mode/ouid)·변경 의도(proctitle)·현재(stat)를 함께 확인합니다.
  2. 범위 확인 — 변경 방향(완화/강화·비트 추가)과 before/after 일관성을 확인합니다.
  3. 증거 확보 — before/after 값과 현재 상태·기준선을 보존합니다.
  4. 차단/조치 — 완화·상승 방향이면 원복·세션 대응, 강화는 정상 처리합니다.
  5. 재발 방지 — before/after 결합 판정을 표준 분석 절차로 운영합니다.

11. 핵심 정리

값시점
PATH mode/ouid변경 전(before)
proctitle변경 의도(after)
현재 stat변경 후 실제(after)
기준선원래 정상값
면접 포인트"PATH mode는 변경 전 값 — before(PATH)+after(proctitle/stat)로 방향 판정"

12. 다음 편 예고

다음 편 193. 권한 변경 이상 — 권한 변경 로그의 정규화와 수집 에서는 권한 변경 로그의 정규화·수집을 다루는 권한 변경 로그의 정규화와 수집을 다룹니다.


이전 편: 191. 권한 변경 이상 — 권한 변경과 파일 무결성(FIM) 연계
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글