시스템 보안 · 취약점 › D. 권한 변경 이상 징후 · 3/50편 (전체 153/450)
학습 단계: 권한 모델·기본 개념
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
권한 변경을 탐지하려면 auditd로 권한/소유권 변경을 기록해야 합니다. 두 방식이 있습니다: ①시스템 콜 감시(chmod/chown 계열, 전역), ②파일 감시(-p a, 특정 중요 파일의 속성 변경).
권한 변경 감사 두 방식
① 시스템 콜: -a always,exit -S chmod,chown,... (전역, 사람 세션 한정)
② 파일 속성: -w /etc/passwd -p a -k ... (중요 파일, 속성 변경)
키 체계(D영역)
perm_change : 권한/소유권 시스템 콜(D01)
perm_critical : 중요 파일 속성 변경(-p a)
perm_suid : SUID/SGID·setcap 관련
A영역 30편(감사 정책)·31편(불변 모드)의 기반 위에 권한 변경 전용 구성을 올립니다.
-p a)은 속성 변경만 잡아 노이즈가 적고, 시스템 콜 감시는 전역 탐지에 쓰는 보완 관계입니다.| 구성 | 용도 |
|---|---|
-S chmod,fchmod,fchmodat | 권한 변경 시스템 콜 |
-S chown,fchown,fchownat | 소유권 변경 |
-S setxattr,fsetxattr | 확장 속성(capability) |
-w 중요파일 -p a | 속성 변경 감시 |
auid>=1000 -F auid!=unset | 사람 세션 한정 |
# 권한 변경 감사 구성 (실습 예시 — /etc/audit/rules.d/60-perm.rules)
# ① 시스템 콜 (사람 세션 한정)
-a always,exit -F arch=b64 -S chmod,fchmod,fchmodat -F auid>=1000 -F auid!=unset -k perm_change
-a always,exit -F arch=b64 -S chown,fchown,lchown,fchownat -F auid>=1000 -F auid!=unset -k perm_change
-a always,exit -F arch=b64 -S setxattr,fsetxattr,removexattr -k perm_suid
# ② 중요 파일 속성 감시
-w /etc/passwd -p a -k perm_critical
-w /etc/shadow -p a -k perm_critical
-w /etc/sudoers -p a -k perm_critical
-w /etc/ssh/sshd_config -p a -k perm_critical
sudo augenrules --load
sudo auditctl -l | grep -E 'perm_'
sudo auditctl -s | grep -E 'lost|backlog'
$ sudo auditctl -l | grep -c 'perm_'
7
$ sudo auditctl -s | grep lost
lost 0
권한 변경 규칙이 적재되고 lost 0(유실 없음)인 상태가 정상입니다(A영역 30편 상태 지표).
$ sudo auditctl -l | grep -c 'perm_'
0
$ sudo auditctl -s | grep lost
lost 25432
lost 급증 → 버퍼 부족·과도한 규칙으로 이벤트 유실 (A영역 30편)-S chmod를 사람 세션 한정 없이 걸면 폭증 → auid 조건 필수권한 변경 감사가 남기는 이벤트 형태입니다(가상의 예시 로그).
type=SYSCALL ... syscall=268 success=yes auid=devops uid=0 comm="chmod" key="perm_change"
type=PATH ... name="/usr/bin/find" nametype=NORMAL
type=CONFIG_CHANGE ... (perm 규칙이 불변 모드면 삭제 시도 실패, A영역 31편)
| 필드 | 의미 |
|---|---|
| syscall=268 | fchmodat |
| key=perm_change | 권한 변경(시스템 콜) |
| key=perm_critical | 중요 파일 속성 |
| auid | 행위자 |
감사 규칙 자체를 불변 모드(A영역 31편, -e 2)로 보호해 공격자가 끄지 못하게 합니다.
lost 값을 점검합니다.<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_d,perm_change,">
<rule id="103020" level="10">
<if_group>audit</if_group>
<field name="audit.key">perm_critical</field>
<description>중요 파일(passwd/shadow/sudoers/sshd) 속성 변경</description>
<mitre><id>T1222.002</id></mitre>
</rule>
</group>
중요 파일 속성 변경은 단건도 높은 레벨로 둡니다. 시스템 콜(perm_change)은 대상·방향 조건으로 상향합니다(D09~).
lost 값·불변 모드 상태를 확인합니다.| 구성 | 용도 |
|---|---|
| 시스템 콜 감시 | chmod/chown 전역(auid 한정) |
| -p a 파일 감시 | 중요 파일 속성 변경 |
| 키 | perm_change·perm_critical·perm_suid |
| 보호 | 불변 모드(A영역 31편), lost 점검 |
| 면접 포인트 | "chmod 시스템 콜은 폭증 — 사람 세션·중요 경로로 좁힌다" |
다음 편 154. 권한 변경 이상 — 권한 변경 정상 기준선 만들기 에서는 정상 범위를 정의하는 권한 변경 정상 기준선 만들기를 다룹니다.
이전 편: 152. 권한 변경 이상 — 권한 비트·umask·기본 권한의 보안 의미
📚 시리즈 전체 보기: 시스템 보안 · 취약점