Linux 시스템 보안 기초 · 19/50편

이 글은 리눅스 시스템 기초 · 파일 · 권한 · 사용자 관리 · 서비스 · 프로세스 관리 시리즈를 선행 학습으로 두고, 동일한 개념을 보안관제(SOC) 관점에서 한 단계 확장합니다.

선행 학습

1. 들어가며

SGID는 SUID의 '그룹 버전'이지만, 파일에 붙을 때와 디렉터리에 붙을 때 의미가 완전히 다릅니다. 이 차이를 모르면 정상 SGID 디렉터리를 취약점으로 오탐하거나, 진짜 위험을 놓칩니다.

2. 핵심 개념

  • 파일의 SGID(2000): 실행 시 프로세스의 EGID가 파일 그룹으로 설정(그룹 권한으로 동작).
  • 디렉터리의 SGID: 그 안에 만들어지는 파일이 '부모 디렉터리의 그룹'을 상속. 협업 디렉터리에서 유용.

즉 파일 SGID는 '권한 상승 가능성', 디렉터리 SGID는 '그룹 상속 편의'로 성격이 다릅니다.

파일 SGID                        디렉터리 SGID
실행 → EGID = 파일그룹            새 파일의 그룹 = 부모 디렉터리 그룹
  │                                 │
  ▼                                 ▼
그룹 권한으로 동작(악용 시 상승)   협업 디렉터리 그룹 통일(정상 용도)

3. 동작 원리

파일 SGID는 SUID와 유사한 위험 구조를 갖되 '그룹' 단위입니다. 예를 들어 SGID가 shadow 그룹으로 붙은 범용 실행 파일은 shadow 그룹 권한으로 민감 파일에 접근할 수 있습니다.

디렉터리 SGID는 위험이 아니라 기능입니다. /var/log 등 일부 시스템 디렉터리, 팀 공유 폴더에서 그룹 소유권을 통일하는 정상 용도로 쓰입니다. 그래서 SGID 디렉터리를 무조건 취약으로 보면 오탐입니다.

4. 명령어 실습

# SGID '파일'만 (권한 상승 관점)
sudo find / -xdev -perm -2000 -type f 2>/dev/null

# SGID '디렉터리' (대개 정상, 맥락 확인용)
sudo find / -xdev -perm -2000 -type d 2>/dev/null | head

5. 실행 결과

실습 컨테이너의 실제 SGID 파일 목록입니다. (실제 캡처)

$ find /usr/bin -perm -2000 -type f 2>/dev/null
/usr/bin/chage
/usr/bin/expiry
/usr/bin/crontab
/usr/bin/ssh-agent

chage, crontab, ssh-agent 등은 표준 SGID 파일입니다. 여기에 낯선 범용 도구나 커스텀 바이너리가 SGID로 나타나면 SUID와 동일한 기준으로 조사합니다.

6. 보안 관점 — 정상 사용 vs 악용

  • 정상: crontab/chage 등 표준 SGID 파일, 협업 디렉터리의 SGID.
  • 위험:
    • 민감 그룹(shadow, disk 등)으로 SGID된 범용 실행 파일
    • 비표준 경로의 SGID 파일

SUID/SGID 점검은 항상 '표준 기준선 대비 차이'와 '해당 그룹이 무엇에 접근 가능한가'를 함께 봐야 합니다.

7. 탐지 방법

  • SGID 파일 기준선 대비 diff
  • 민감 그룹으로 붙은 SGID 우선 조사
  • SGID 부여 감사(auditd chmod mode 02000)

8. SOC 관점 — SIEM · Wazuh · IOC

SGID도 SUID와 함께 Wazuh SCA/rootcheck의 정기 점검 항목입니다. SIEM에서는 SUID/SGID를 하나의 '특수 권한 실행 파일' 인벤토리로 관리하고, 신규 등장 시 경보합니다. 디렉터리 SGID는 오탐을 줄이기 위해 파일 SGID와 분리해 다룹니다.

9. 실습 체크리스트

[ ] SGID 파일과 디렉터리를 분리해 조회
[ ] 파일 SGID의 그룹 접근 범위 확인
[ ] 표준 기준선과 diff
[ ] 민감 그룹 SGID 우선 조치

10. 핵심 정리

  • 파일 SGID는 실행 시 EGID를 파일 그룹으로 설정한다.
  • 디렉터리 SGID는 새 파일의 그룹을 상속시키는 정상 기능이다.
  • 파일/디렉터리 SGID는 위험 성격이 완전히 다르다.
  • 민감 그룹으로 붙은 파일 SGID가 특히 위험하다.
  • SUID/SGID를 하나의 특수권한 인벤토리로 관리한다.

11. 다음 편

다음 편에서는 20. Sticky Bit 보안 를 다룹니다. 공용 디렉터리를 지키는 Sticky Bit를, /tmp를 중심으로 봅니다.


본 실습은 격리된 테스트 VM(Rocky Linux / Ubuntu, VMware) 및 테스트 계정 환경을 기준으로 하며, 운영 서버를 대상으로 하지 않습니다. 실행 결과는 실제 캡처와 예시 출력을 명확히 구분해 표기합니다.

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

0개의 댓글