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

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

선행 학습

1. 들어가며

SUID는 '실행하는 동안 파일 소유자의 권한으로 동작'하게 하는 특수 비트입니다. passwd가 일반 사용자로도 shadow를 수정할 수 있는 이유죠. 그런데 이 편리함이 곧 권한 상승의 단골 통로입니다. 이번 편은 정상 SUID와 비정상 SUID를 구분하는 실무 기준을 세웁니다.

2. 핵심 개념

SUID 비트(s, 8진수 4000)가 실행 파일에 있으면, 실행 시 프로세스의 EUID가 파일 소유자로 설정됩니다. 소유자가 root면 그 프로그램은 실행 중 root 권한을 갖습니다.

문제는 그 프로그램이 '쉘 실행'이나 '임의 파일 쓰기' 같은 기능을 제공할 때입니다. 예컨대 SUID가 붙은 find, vim, bash 등은 GTFOBins에 정리된 기법으로 root 쉘로 이어질 수 있습니다.

정상 SUID (passwd)              비정상 SUID (find)
일반 사용자 실행                일반 사용자 실행
   │ EUID→root                    │ EUID→root
   ▼                              ▼
shadow의 '자기 항목만' 수정      find -exec /bin/sh  → root 쉘
(기능이 제한적)                  (임의 명령 실행 가능) ← 권한 상승

3. 동작 원리

커널은 SUID 바이너리를 exec할 때 EUID를 소유자로 승격합니다. 정상 SUID 프로그램은 '자신이 필요한 최소 작업'만 root로 수행하도록 설계됩니다. 반면 범용 도구(find/vim/awk/perl 등)에 SUID가 붙으면, 그 도구의 '명령 실행 기능'을 통해 root 권한으로 임의 명령을 돌릴 수 있어 즉시 권한 상승이 됩니다.

따라서 점검의 핵심은 '목록에 있어야 할 표준 SUID 외에 무엇이 추가되었는가'입니다.

4. 명령어 실습

# 모든 SUID 파일 나열
sudo find / -xdev -perm -4000 -type f 2>/dev/null

# 기준선(표준 SUID)과 비교: 현재 목록 저장 후 diff
sudo find / -xdev -perm -4000 -type f 2>/dev/null | sort > /root/suid.now
diff /root/suid.baseline /root/suid.now   # 기준선이 있을 때

5. 실행 결과

실습 컨테이너(Ubuntu 24.04)의 실제 SUID 목록 일부입니다. (실제 캡처)

$ find /usr/bin /usr/sbin /bin -perm -4000 -type f 2>/dev/null
/usr/bin/fusermount3
/usr/bin/sudo
/usr/bin/chfn
/usr/bin/chsh
/usr/bin/gpasswd
/usr/bin/mount
/usr/bin/newgrp
/usr/bin/passwd
/usr/bin/su
/usr/bin/umount

이들은 모두 표준 SUID입니다. 여기에 /usr/bin/find, /bin/bash, /usr/bin/vim 같은 범용 도구가 나타나면 즉시 조사 대상 — 권한 상승 백도어일 가능성이 큽니다.

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

  • 정상: passwd/su/sudo/mount 등 배포판 표준 SUID.
  • 비정상/위험:
    • 범용 도구(find/vim/awk/perl/python/bash)에 SUID
    • /tmp·홈 디렉터리·비표준 경로의 SUID 바이너리
    • 소유자가 root인 낯선 커스텀 바이너리

GTFOBins(gtfobins.github.io)는 어떤 SUID 바이너리가 어떻게 악용되는지 정리한 참고자료입니다. 공격자 관점을 알면 방어 우선순위가 명확해집니다.

7. 탐지 방법

  • SUID 기준선 대비 diff(신규 SUID 탐지가 핵심)
  • 비표준 경로(/tmp, /home)의 SUID 즉시 조사
  • SUID 부여 순간 감사: auditd chmod/fchmodat에서 mode에 04000 포함

8. SOC 관점 — SIEM · Wazuh · IOC

신규 SUID 바이너리 등장은 강력한 권한 상승/지속성 IOC입니다. Wazuh rootcheck/SCA는 SUID 목록을 정기 점검하고, FIM으로 실행 디렉터리 변경을 감시합니다. SIEM에서는 'SUID 기준선에 없던 파일'을 알람으로 올리고, 해당 파일 경로·해시를 IOC로 등록합니다.

9. 실습 체크리스트

[ ] 전체 SUID 목록 확보
[ ] 표준 SUID 기준선과 diff
[ ] 범용 도구/비표준 경로 SUID 탐지
[ ] 신규 SUID 감사 설정

10. 핵심 정리

  • SUID는 실행 중 EUID를 파일 소유자로 승격한다.
  • 범용 도구에 붙은 SUID는 즉시 권한 상승으로 이어진다.
  • 점검의 핵심은 표준 목록 대비 '추가된 SUID' 탐지다.
  • 비표준 경로의 SUID는 우선 조사 대상이다.
  • 신규 SUID는 강력한 권한 상승 IOC다.

11. 다음 편

다음 편에서는 19. SGID 파일 보안 점검 를 다룹니다. SUID의 그룹 버전인 SGID를, 파일과 디렉터리에서 각각 어떤 의미인지 봅니다.


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

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

0개의 댓글