시스템 보안 · 취약점 › D. 권한 변경 이상 징후 · 25/50편 (전체 175/450)
학습 단계: 소유권·특수권한 이상
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
SUID/SGID 설정(D22·23)이 "기존 파일에 비트 추가"라면, 여기서는 기준선에 없던 SUID/SGID 파일이 새로 나타나는 것을 봅니다. 공격자는 쉘을 복사해 SUID를 주거나(백도어), 커스텀 바이너리를 심습니다.
신규 SUID/SGID 출현 유형
① 복사+설정: cp /bin/bash /tmp/.sh; chmod 4755 /tmp/.sh
② 커스텀 심기: 업로드한 바이너리에 SUID
③ 비트 추가: 기존 바이너리에 신규 SUID(D22)
④ 패키지 위장: 정상 경로에 유사 이름 SUID
탐지: 기준선(D04) 대비 SUID/SGID 목록 diff
핵심은 "기준선에 없는 SUID/SGID"의 출현입니다. 어떤 경로든 신규 SUID는 조사 대상입니다.
| 신규 SUID 유형 | 특징 | 위험 |
|---|---|---|
| 쉘 복사본 SUID | /tmp/.sh 등 | 매우 높음 |
| 커스텀 바이너리 | 업로드+SUID | 높음 |
| 비표준 경로 | /tmp·/dev/shm | 높음(D26) |
| 정상 경로 위장 | 유사 이름 | 높음 |
| 기준선 이탈 | diff로 탐지 | 조사 |
# 신규 SUID/SGID 파일 탐지 (분석 방법)
# 기준선(D04) 대비 신규 SUID/SGID
diff /root/baseline/suid_base.txt <(sudo find / -xdev -perm -4000 -type f 2>/dev/null | sort) | grep '^>'
diff /root/baseline/sgid_base.txt <(sudo find / -xdev -perm -2000 -type f 2>/dev/null | sort) | grep '^>'
# 복사+SUID 연계(쉘 복사본)
sudo ausearch -k perm_suid -i --start recent 2>/dev/null | grep -B2 'u\+s\|4[0-7]{3}' | grep -E 'cp |bash|sh'
$ (신규 SUID diff) (없음)
$ (신규 SGID diff) (없음)
현재 SUID/SGID 목록이 기준선(D04)과 완전히 일치해, 신규 특수권한 파일이 없는 상태가 정상입니다.
$ (신규 SUID diff)
> /tmp/.sh
> /usr/local/bin/update-helper
$ (복사+SUID 연계)
proctitle=cp /bin/bash /tmp/.sh
proctitle=chmod 4755 /tmp/.sh
/tmp/.sh = bash 복사본 + SUID → 영구 상승 백도어update-helper 신규 SUID 커스텀 바이너리 → 위장 백도어신규 SUID 생성 흐름입니다(가상의 예시 로그).
[복사] proctitle=cp /bin/bash /tmp/.sh (bash 복사)
↓
[설정] proctitle=chmod 4755 /tmp/.sh key="perm_suid" (SUID 부여)
↓
[기준선 이탈] suid diff > /tmp/.sh (신규 출현)
↓
[상승] /tmp/.sh -p 실행 → root (별도 탐지)
| 단계 | 흔적 |
|---|---|
| 복사 | cp bash |
| 설정 | chmod 4755 |
| 이탈 | diff 신규 |
| 상승 | 실행 |
복사→SUID→기준선 이탈을 연계하면 백도어 생성을 명확히 포착합니다.
<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_d,perm_suid,">
<!-- 쉘/인터프리터 복사 후 SUID 설정 상관 -->
<rule id="103230" level="13">
<if_sid>103010,103200</if_sid>
<field name="audit.proctitle" type="pcre2">(bash|sh|dash|python|perl)</field>
<description>쉘/인터프리터 신규 SUID 파일 생성(상승 백도어)</description>
<mitre><id>T1548.001</id><id>T1546</id></mitre>
</rule>
</group>
기준선 diff 결과는 Wazuh rootcheck/FIM이나 주기적 스크립트 로그로 수집해 신규 SUID를 경보합니다.
| 유형 | 위험 |
|---|---|
| 쉘 복사본 SUID | 영구 상승 백도어 |
| 커스텀 바이너리 | 위장 백도어 |
| 비표준 경로 | 은닉(D26) |
| 정상 경로 위장 | 유사 이름 |
| 면접 포인트 | "신규 SUID는 기준선 diff로 탐지 — 쉘 복사본 SUID는 영구 백도어" |
다음 편 176. 권한 변경 이상 — 비표준 경로 SUID 탐지 에서는 비표준 경로의 SUID를 집중 다루는 비표준 경로 SUID 탐지를 다룹니다.
이전 편: 174. 권한 변경 이상 — Sticky Bit 변경 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점