175. 권한 변경 이상 — 신규 SUID/SGID 파일 생성 탐지

changseop lee·7일 전

시스템 보안 · 취약점

목록 보기
175/450

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

선행 학습

1. 개념

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는 조사 대상입니다.

2. 왜 중요한가

  • SUID 쉘 복사본은 재방문 없이 언제든 root를 얻는 영구 백도어입니다.
  • 신규 SUID는 경로·이름을 바꿔 숨기므로, 기준선 diff가 가장 확실한 탐지입니다.
  • 복사(cp)+설정(chmod) 또는 생성+설정의 연계로 포착 정확도를 높입니다.

3. 핵심 명령어 / 설정

신규 SUID 유형특징위험
쉘 복사본 SUID/tmp/.sh 등매우 높음
커스텀 바이너리업로드+SUID높음
비표준 경로/tmp·/dev/shm높음(D26)
정상 경로 위장유사 이름높음
기준선 이탈diff로 탐지조사

4. 실습 (실습 예시)

# 신규 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'

5. 정상 상태

$ (신규 SUID diff) (없음)
$ (신규 SGID diff) (없음)

현재 SUID/SGID 목록이 기준선(D04)과 완전히 일치해, 신규 특수권한 파일이 없는 상태가 정상입니다.

6. 이상 상태

$ (신규 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 연계가 명확 → 정탐(고위험)

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

신규 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→기준선 이탈을 연계하면 백도어 생성을 명확히 포착합니다.

8. SOC 관제 포인트

  • 신규 SUID/SGID 출현은 영구 상승 백도어 생성의 핵심 신호입니다.
  • 기준선(D04) diff가 경로·이름 변화에 강한 가장 확실한 탐지입니다.
  • 복사(cp)+설정(chmod)+기준선 이탈 연계로 정확도를 높입니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 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를 경보합니다.

10. 대응 방법

  1. 초기 확인 — 신규 출현한 SUID/SGID 파일·경로·이름·주체를 확인합니다.
  2. 범위 확인 — 복사(cp)·업로드·설정(chmod) 연계와 설정 후 실행을 확인합니다.
  3. 증거 확보 — 신규 SUID/SGID 파일(해시·경로)과 생성 이벤트를 보존합니다.
  4. 차단/조치 — 백도어는 SUID 제거·파일 격리·기준선 갱신·세션 종료를 진행합니다.
  5. 재발 방지 — 기준선 diff 기반 신규 SUID/SGID 탐지를 운영합니다.

11. 핵심 정리

유형위험
쉘 복사본 SUID영구 상승 백도어
커스텀 바이너리위장 백도어
비표준 경로은닉(D26)
정상 경로 위장유사 이름
면접 포인트"신규 SUID는 기준선 diff로 탐지 — 쉘 복사본 SUID는 영구 백도어"

12. 다음 편 예고

다음 편 176. 권한 변경 이상 — 비표준 경로 SUID 탐지 에서는 비표준 경로의 SUID를 집중 다루는 비표준 경로 SUID 탐지를 다룹니다.


이전 편: 174. 권한 변경 이상 — Sticky Bit 변경 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글