시스템 보안 · 취약점 › D. 권한 변경 이상 징후 · 29/50편 (전체 179/450)
학습 단계: sudo·PAM·capability 권한 변경
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
4단계는 sudo·PAM·capability 등 권한 체계 자체의 변경을 다룹니다. 첫 번째는 sudoers 규칙 변경입니다. /etc/sudoers에 규칙을 추가하면 특정 사용자가 sudo로 root 명령을 실행할 수 있어, 영구적 상승 경로가 됩니다.
sudoers 규칙 변경 위험
사용자 추가: devops ALL=(ALL) ALL → devops가 sudo root
NOPASSWD 추가: devops ALL=(ALL) NOPASSWD: ALL → 비번 없이 (D31)
명령 확대: 제한 규칙 → ALL로 확대
위험 명령 허용: 특정 사용자에 /bin/bash 등
변경 방법: visudo(정상) vs 직접 편집·추가(의심)
B영역 37편이 "sudo 실행 이상"이라면, 여기서는 그 권한을 만드는 규칙 변경 자체를 탐지합니다.
| sudoers 변경 | 효과 | 위험 |
|---|---|---|
| 사용자 ALL 추가 | sudo root | 높음 |
| NOPASSWD 추가 | 비번 없는 상승 | 매우 높음(D31) |
| 명령 범위 확대 | 상승 범위↑ | 높음 |
| include 추가 | sudoers.d 연계 | 높음(D30) |
| visudo 정상 변경 | 검증된 변경 | 정상 |
# sudoers 규칙 변경 탐지 (분석 방법)
# sudoers 접근/변경 이벤트(와치)
sudo ausearch -k perm_critical,sudoers_change -i --start recent 2>/dev/null | grep -E '/etc/sudoers' | tail
# 현재 sudoers 규칙 중 위험 패턴(분석용 — 실제 자격 부여 금지)
sudo grep -nE 'ALL=\(ALL\).*ALL|NOPASSWD' /etc/sudoers 2>/dev/null
$ (sudoers 변경)
14:10 auid=admin1 comm="visudo" /etc/sudoers (정상 편집)
$ (위험 패턴)
%wheel ALL=(ALL) ALL (정상 그룹 규칙)
관리자가 visudo로 wheel 그룹 규칙을 유지·변경하는 것은 정상입니다(문법 검증 동반).
$ (sudoers 변경)
03:30 auid=devops comm="vi" /etc/sudoers (직접 편집)
$ (위험 패턴)
devops ALL=(ALL) NOPASSWD: ALL (신규 추가)
sudoers 규칙 변경 흐름입니다(가상의 예시 로그).
type=SYSCALL ... comm="vi" auid=devops key="perm_critical"
type=PATH ... name="/etc/sudoers" nametype=NORMAL
[FIM] /etc/sudoers 내용 변경: + devops ALL=(ALL) NOPASSWD: ALL
[이후] sudo 실행(B영역 37) → root
| 흔적 | 해석 |
|---|---|
| comm=vi(not visudo) | 검증 우회 편집 |
| 대상 /etc/sudoers | 권한 규칙 |
| FIM 추가 규칙 | devops 상승 |
| 이후 sudo | 상승 실행 |
접근(와치)+내용 변경(FIM)+이후 sudo 실행을 연계해 규칙 변경 상승을 포착합니다.
<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_d,sudoers_change,">
<rule id="103270" level="13">
<if_sid>103020</if_sid>
<field name="audit.path" type="pcre2">/etc/sudoers$</field>
<field name="audit.proctitle" type="pcre2">^(?!.*visudo)(vi|vim|nano|sed|tee|echo|cat)</field>
<description>visudo 외 도구로 sudoers 직접 변경</description>
<mitre><id>T1548.003</id></mitre>
</rule>
</group>
sudoers 내용 변경은 FIM으로 병행 탐지하고, 추가된 규칙 문자열(NOPASSWD 등)은 D31에서 상세 탐지합니다.
| 변경 | 위험 |
|---|---|
| 사용자 ALL 추가 | sudo root |
| NOPASSWD 추가 | 비번 없는 상승 |
| 직접 편집(not visudo) | 검증 우회 |
| include 추가 | sudoers.d 연계 |
| 면접 포인트 | "sudoers는 visudo로만 변경이 정상 — 직접 편집·NOPASSWD 추가는 영구 상승" |
다음 편 180. 권한 변경 이상 — sudoers.d 신규 규칙 탐지 에서는 sudoers.d 신규 규칙을 다루는 sudoers.d 신규 규칙 탐지를 다룹니다.
이전 편: 178. 권한 변경 이상 — 소유권·특수권한 변경 이상 종합 분석
📚 시리즈 전체 보기: 시스템 보안 · 취약점