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

선행 학습

1. 개념

SGID(set-group-ID)는 SUID의 그룹 버전입니다. 파일에 설정하면 실행 시 파일의 그룹 권한을 얻고, 디렉터리에 설정하면 그 안에 생성되는 파일이 디렉터리 그룹을 상속합니다. 특권 그룹과 결합하면 권한 획득 경로가 됩니다.

SGID 동작과 위험
 파일:   chmod g+s file / 2755 → 실행 시 파일 그룹 권한
   → 특권 그룹(shadow 등) 소유 바이너리면 그룹 권한 획득
 디렉터리: chmod g+s dir → 내부 생성 파일이 dir 그룹 상속
   → 공유 디렉터리 그룹 상속 악용

2000(SGID) + 755 = 2755

SGID는 SUID보다 덜 알려졌지만, 특권 그룹과 결합하면 민감 파일 접근 경로가 됩니다.

2. 왜 중요한가

  • 특권 그룹(shadow·wheel) 소유 바이너리에 SGID → 실행 시 그 그룹 권한 획득.
  • SGID 디렉터리는 내부 파일 그룹을 통제해, 공유 경로에서 권한 상속을 악용합니다.
  • 신규·비표준 SGID 바이너리는 SUID와 함께 특수권한 감사 대상입니다.

3. 핵심 명령어 / 설정

SGID 대상악용위험
특권 그룹 바이너리그룹 권한 획득높음
범용 도구+그룹그룹 기반 상승높음
SGID 디렉터리그룹 상속 악용중간
정상(write 등)기준선정상
신규 SGID조사조사

4. 실습 (실습 예시)

# SGID 비트 설정 탐지 (분석 방법)
sudo ausearch -k perm_change,perm_suid -i --start recent 2>/dev/null | grep -E 'g\+s|chmod 2[0-7]{3}' | tail

# 현재 SGID 목록과 기준선 비교
diff /root/baseline/sgid_base.txt <(sudo find / -xdev -perm -2000 2>/dev/null | sort)

5. 정상 상태

$ (SGID 설정 이벤트) (없음)
$ (SGID 기준선 비교) (차이 없음)

SGID 설정 이벤트가 없고, SGID 목록이 기준선과 일치하는 상태가 정상입니다.

6. 이상 상태

$ (SGID 설정 이벤트)
03:15 auid=devops proctitle="chmod g+s /usr/local/bin/reader"
$ (SGID 기준선 비교)
> /usr/local/bin/reader (group=shadow)
  • reader가 shadow 그룹 소유 + SGID → 실행 시 shadow 그룹 권한(해시 읽기)
  • 커스텀 바이너리에 특권 그룹 SGID → 민감 파일 접근 경로
  • 신규 SGID + 특권 그룹 → 정탐

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

SGID 설정 흐름입니다(가상의 예시 로그).

type=SYSCALL ... comm="chmod" auid=devops key="perm_suid"
type=PATH ... name="/usr/local/bin/reader" mode=0100755 ogid=shadow
type=PROCTITLE ... proctitle=chmod g+s /usr/local/bin/reader
 → 755 → 2755(SGID), 그룹=shadow : 실행 시 shadow 권한
필드해석
proctitle g+sSGID 설정
ogid=shadow특권 그룹 소유
대상 커스텀접근 도구
key perm_suid특수권한

SGID + 특권 그룹 조합을 확인하고, 설정 후 실행(그룹 권한 사용)을 연계합니다.

8. SOC 관제 포인트

  • SGID는 파일 그룹 권한 실행·디렉터리 그룹 상속을 통한 권한 획득 경로입니다.
  • 특권 그룹 소유 바이너리의 SGID, 신규·비표준 SGID가 핵심 위험입니다.
  • SUID와 함께 특수권한(perm_suid) 감사·기준선 비교로 탐지합니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_d,perm_suid,">
  <rule id="103210" level="12">
    <if_sid>103010</if_sid>
    <field name="audit.proctitle" type="pcre2">chmod\s+(g\+s|[2367][0-7]{3})\s+</field>
    <description>SGID 비트 설정(그룹 권한 획득 경로)</description>
    <mitre><id>T1548.001</id></mitre>
  </rule>
</group>

SGID 바이너리의 그룹이 특권 그룹(shadow/wheel)이면 레벨을 높입니다. 그룹 정보는 추가 조회로 확인합니다.

10. 대응 방법

  1. 초기 확인 — SGID가 설정된 바이너리/디렉터리·그룹·주체를 확인합니다.
  2. 범위 확인 — 특권 그룹 소유 여부·설정 후 실행(그룹 권한 사용)을 확인합니다.
  3. 증거 확보 — SGID 설정 이벤트와 대상(권한·그룹·해시)을 보존합니다.
  4. 차단/조치 — 비인가 SGID는 제거(chmod g-s)·격리·세션 종료를 진행합니다.
  5. 재발 방지 — SGID 설정 탐지와 기준선 비교를 운영합니다.

11. 핵심 정리

SGID 대상위험
특권 그룹 바이너리그룹 권한 획득
범용 도구+그룹그룹 기반 상승
SGID 디렉터리그룹 상속 악용
신규 SGID조사
면접 포인트"SGID는 파일=그룹 권한 실행, 디렉터리=그룹 상속 — 특권 그룹과 조합이 위험"

12. 다음 편 예고

다음 편 174. 권한 변경 이상 — Sticky Bit 변경 탐지 에서는 Sticky Bit 변경을 다루는 Sticky Bit 변경 탐지를 다룹니다.


이전 편: 172. 권한 변경 이상 — SUID 비트 설정 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글