153. 권한 변경 이상 — 권한 변경 감사의 기반 구성(auditd perm)

changseop lee·6일 전

시스템 보안 · 취약점

목록 보기
153/450

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

선행 학습

1. 개념

권한 변경을 탐지하려면 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편(불변 모드)의 기반 위에 권한 변경 전용 구성을 올립니다.

2. 왜 중요한가

  • 권한 변경을 기록하지 않으면 D영역 전체 탐지가 불가능합니다. 감사 구성이 전제입니다.
  • chmod/chown 시스템 콜은 많이 발생하므로, 사람 세션(auid)·중요 경로로 좁히지 않으면 로그가 폭증합니다.
  • 중요 파일(-p a)은 속성 변경만 잡아 노이즈가 적고, 시스템 콜 감시는 전역 탐지에 쓰는 보완 관계입니다.

3. 핵심 명령어 / 설정

구성용도
-S chmod,fchmod,fchmodat권한 변경 시스템 콜
-S chown,fchown,fchownat소유권 변경
-S setxattr,fsetxattr확장 속성(capability)
-w 중요파일 -p a속성 변경 감시
auid>=1000 -F auid!=unset사람 세션 한정

4. 실습 (실습 예시)

# 권한 변경 감사 구성 (실습 예시 — /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'

5. 정상 상태

$ sudo auditctl -l | grep -c 'perm_'
7
$ sudo auditctl -s | grep lost
lost 0

권한 변경 규칙이 적재되고 lost 0(유실 없음)인 상태가 정상입니다(A영역 30편 상태 지표).

6. 이상 상태

$ sudo auditctl -l | grep -c 'perm_'
0
$ sudo auditctl -s | grep lost
lost 25432
  • 권한 변경 규칙 미적재 → chmod/chown이 기록되지 않음 (D영역 탐지 불가)
  • lost 급증 → 버퍼 부족·과도한 규칙으로 이벤트 유실 (A영역 30편)
  • -S chmod를 사람 세션 한정 없이 걸면 폭증 → auid 조건 필수

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

권한 변경 감사가 남기는 이벤트 형태입니다(가상의 예시 로그).

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=268fchmodat
key=perm_change권한 변경(시스템 콜)
key=perm_critical중요 파일 속성
auid행위자

감사 규칙 자체를 불변 모드(A영역 31편, -e 2)로 보호해 공격자가 끄지 못하게 합니다.

8. SOC 관제 포인트

  • 권한 변경 감사는 시스템 콜(전역)+중요 파일(-p a) 두 방식을 함께 구성합니다.
  • chmod/chown은 사람 세션(auid)으로 좁혀 폭증을 막습니다.
  • 감사 규칙을 불변 모드(A영역 31편)로 보호하고 lost 값을 점검합니다.

9. 탐지 규칙

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

10. 대응 방법

  1. 초기 확인 — 권한 변경 규칙 적재·lost 값·불변 모드 상태를 확인합니다.
  2. 범위 확인 — 규칙 미적재·유실 기간의 권한 변경을 다른 로그원(FIM, 원격)으로 보완합니다.
  3. 증거 확보 — auditctl 상태·규칙 목록을 보존합니다.
  4. 차단/조치 — 규칙을 재적재(augenrules --load)하고 범위·버퍼를 조정합니다.
  5. 재발 방지 — 권한 변경 감사 구성을 기준선·자체 점검에 포함합니다.

11. 핵심 정리

구성용도
시스템 콜 감시chmod/chown 전역(auid 한정)
-p a 파일 감시중요 파일 속성 변경
키perm_change·perm_critical·perm_suid
보호불변 모드(A영역 31편), lost 점검
면접 포인트"chmod 시스템 콜은 폭증 — 사람 세션·중요 경로로 좁힌다"

12. 다음 편 예고

다음 편 154. 권한 변경 이상 — 권한 변경 정상 기준선 만들기 에서는 정상 범위를 정의하는 권한 변경 정상 기준선 만들기를 다룹니다.


이전 편: 152. 권한 변경 이상 — 권한 비트·umask·기본 권한의 보안 의미
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글