시스템 보안 · 취약점 › B. 계정 · 인증 보안 강화 · 31/50편 (전체 081/450)
학습 단계: 2단계 · 설정 및 점검
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
권한 확대(privilege escalation)의 지속성 형태는 대개 "내 계정을 특권 그룹에 넣기" 또는 "sudoers에 내 계정 규칙 추가" 입니다. 054편이 그룹 구조를, 006편이 sudoers를 다뤘다면, 여기서는 변경 이벤트를 권한 확대로 연결합니다.
권한 확대 경로
① 그룹 추가 : usermod -aG wheel / gpasswd -a → 재로그인 후 sudo 가능
② sudoers 추가: /etc/sudoers.d/에 규칙 파일 → 즉시 sudo 가능
③ SUID 악용 : (D영역 「권한 변경 이상 징후」에서 상세)
확인 흐름: 변경 이벤트 → 권한 부여 → 실제 사용(sudo 성공) 까지 연결
| 경로 | 탐지 |
|---|---|
| 그룹 추가 | add '계정' to group 'wheel'(054편 101030) |
| sudoers.d 생성 | /etc/sudoers.d/ FIM(A영역 006편 100130대) |
| sudoers 변경 | visudo/파일 변경, priv_conf 키 |
| 권한 사용 | sudo ... USER=root 성공(5402) |
| 연결 | 변경 주체 auid = 사용 주체 |
LOG=/var/log/secure # Ubuntu: /var/log/auth.log
# 1) 특권 그룹 추가 + sudoers 변경 이벤트 모으기
sudo grep -E "to group '(wheel|sudo|docker|lxd)'" $LOG
sudo ausearch -k priv_conf -i --start today 2>/dev/null | grep -E 'sudoers' | tail
# 2) 권한 획득 계정이 실제 sudo를 썼는지
for u in apache devops; do
echo "== $u"; sudo grep "sudo\[.*$u : .*USER=root" $LOG | tail -3
done
# 3) 현재 특권 보유 현황 (054·006편 교차)
getent group wheel sudo docker
sudo grep -rhEv '^\s*(#|$)' /etc/sudoers /etc/sudoers.d/* 2>/dev/null
Oct 2 10:30:01 rocky9-web01 usermod[13201]: add 'newadmin' to group 'wheel'
$ (사용) newadmin : ... USER=root ; COMMAND=/usr/bin/dnf update
관리자가 업무 시간에 신규 관리자를 wheel에 추가하고(인사 승인), 이후 정상 업무에 sudo를 쓴 상태면 정상입니다.
Oct 2 02:16:00 rocky9-web01 ... /etc/sudoers.d/99-sysupdate 생성 (apache NOPASSWD:ALL)
Oct 2 02:16:10 rocky9-web01 usermod[11440]: add 'apache' to group 'wheel'
$ (사용) apache : TTY=unknown ; USER=root ; COMMAND=...
$ sudo ausearch -k priv_conf -i | grep -A1 sudoers
... auid=devops ... /etc/sudoers.d/99-sysupdate ...
권한 확대의 연결 고리입니다(가상의 예시 로그).
02:16:00 PATH /etc/sudoers.d/99-sysupdate CREATE (auid=devops, priv_conf)
02:16:10 usermod: add 'apache' to group 'wheel' (auid=devops)
02:21:00 sudo: apache : TTY=unknown ; USER=root ; COMMAND=/bin/bash (5402)
| 단계 | 의미 |
|---|---|
| sudoers.d 생성 | 즉시 유효한 권한 부여 |
| wheel 추가 | 재로그인 후에도 유효한 권한(이중화) |
| sudo root 성공 | 권한이 실제로 사용됨 |
| 모두 auid=devops | 단일 행위자의 권한 확대 |
권한 "부여"와 "사용"을 연결하면 준비와 실행을 모두 증명할 수 있습니다.
<group name="local,syssec_b,privilege,">
<!-- 권한 부여(그룹/sudoers) 후 같은 계정의 sudo root 사용 -->
<rule id="101280" level="13">
<if_sid>5402</if_sid>
<if_matched_group>privilege</if_matched_group>
<same_user />
<description>권한 부여 직후 해당 계정의 sudo root 사용(권한 확대 완성)</description>
</rule>
</group>
이 상관 룰은 054편(101030 그룹 추가)·006편(sudoers)·057편(101060 sudo 셸) 룰에 privilege 그룹이 공통으로 붙어 있어야 동작합니다. wazuh-logtest로 그룹·same_user를 검증합니다.
| 경로 | 특성 |
|---|---|
| 그룹 추가 | 재로그인 후 유효, usermod/gpasswd 로그 |
| sudoers.d | 즉시 유효, 파일 FIM |
| 확인 | 부여 → 사용(sudo root)까지 연결 |
| 위험 | 서비스 계정 대상, 다중 경로 동시 부여 |
| 면접 포인트 | "권한 부여만으로는 피해 없음 — 실제 사용 연결이 핵심" |
다음 편 082. 계정 · 인증 보안 — 계정 삭제·흔적 정리 탐지 에서는 흔적을 지우는 계정 삭제·흔적 정리 탐지를 다룹니다.
이전 편: 080. 계정 · 인증 보안 — 계정 변경(usermod) 이벤트 분석
📚 시리즈 전체 보기: 시스템 보안 · 취약점