작업 환경

  • VMware Workstation Pro (17.6.2 ver)
  • Server 
    • Rocky_Linux(8.10 ver) : NAT
U-13 (상)2. 파일 및 디렉토리 관리 > 2.9 /etc/services 파일 소유자 및 권한 설정
취약점 개요
점검 내용불필요하거나 악의적인 파일에 SUID, SGID 설정 여부 점검
점검 목적불필요한 SUID, SGID 설정 제거로 악의적인 사용자의 권한상승을 방지하기 위
 보안 위협SUID, SGID 파일의 접근권한이 적절하지 않을 경우 SUID, SGID 설정된 파일로
특정 명령어를 실행하여root 권한 획득 가능함
판단 기준

양호 : 불필요한 SUID, SGID 파일 제거
취약 : 아래의 목록 이외에 애플리케이션에서 생성한 파일이나, 사용자가 임의 로 생성한 파일 등
의심스럽거나 특이한 파일의 발견 시 SUID 제거 필요
참고1. SUID: 설정된 파일 실행 시, 특정 작업 수행을 위하여 일시적으로 파일 소유자의 권한 을 얻게 됨
2. SGID: 설정된 파일 실행 시, 특정 작업 수행을 위하여 일시적으로 파일 소유 그룹의 권한을 얻게 됨

 

파일 확인법(쉘 스크립트 참고)

ls –alL [check_file] | awk ‘{ print $1}’ | grep –i ‘s’

 

권한이 불필요한 파일 목록

파일명기능
/sbin/dumpBackup/Restore
/sbin/restoreBackup/Restore
/sbin/unix_chkpwd사용자의 암호가 읽을 수 없는 장소에 보관되는 경우 사 용자의 암호를 검사해주는 프로그램.
이 프로그램을 호출 한 사용자의 암호를 검사해주는 역할만 함
/usr/bin/a지정된 시간에 실행할 작업을 입력하고, 대기 목록을 확인하고, 제거하는 명령어
/usr/bin/lpq라인프린터 작업 큐 조회 명령어
/usr/bin/lpq-lpdDAEMON
/usr/bin/lpr콘솔환경에서 명시된 파일을 인쇄할 때 사용
/usr/bin/lpr-lpdDAEMON
/usr/bin/lprmlpq 명령어로 볼 수 있는 작업 큐를 살펴보고 해당하는 작업을 취소하거나 작업 번호를 지정하여 작업 번호에 해 당하는 큐를 삭제
/usr/bin/lprm-lpdDAEMON
/usr/bin/newgrp현재 세션의 사용자 그룹 변경(지정한 그룹의 쉘로 환경 이 바로 변경)
/usr/sbin/lpc커맨드 기반의 프린터 제어
/usr/sbin/lpc-lpdDAEMON
/usr/sbin/traceroute네트워크 경로 출력

 
LINUX

  • Step 1) 제거 방법
    • chown -s <file_name>
  • Step 2) 주기적인 감사 방법 
    • find / -user root -type f \( -perm -04000 -o -perm -02000 \) -xdev -exec ls –al {} \;
  • Step 3) 반드시 사용이 필요한 경우 특정 그룹에서만 사용하도록 제한하는 방법
    • 일반사용자의 Setuid 사용을 제한함 (임의의 그룹만 가능)
    • /usr/bin/chgrp <group_name> <setuid_file_name>
    • /usr/bin/chmod 4750 <setuid_file_name>

점검 쉘 스크립트

#!/bin/bash

FILES=(
/sbin/dump
/sbin/restore
/sbin/unix_chkpwd
/usr/bin/at
/usr/bin/lpq
/usr/bin/lpq-lpd
/usr/bin/lpr
/usr/bin/lpr-lpd
/usr/bin/lprm
/usr/bin/lprm-lpd
/usr/bin/newgrp
/usr/sbin/lpc
/usr/sbin/lpc-lpd
/usr/sbin/traceroute
)

echo "========== SUID/SGID 설정 점검 =========="
for FILE in "${FILES[@]}"
do
    if [ -e "$FILE" ]; then
        PERM=$(ls -alL "$FILE" | awk '{print $1}')
        if echo "$PERM" | grep -q "s"; then
            echo "⚠️ $FILE : SUID 또는 SGID 설정됨 ($PERM)"
        else
            echo "✅ $FILE : SUID/SGID 설정 없음 ($PERM)"
        fi
    else
        echo "❌ $FILE : 파일 존재하지 않음"
    fi
done
echo "========== 점검 완료 =========="

 

결과

SUID,SGID 점검 결과

설정된 파일들만 Step 1) 에 따라서 권한을 제거한다
 

조치시 영향

SUID 제거 시 OS 및 응용 프로그램 등 서비스 정상작동 유무 확인 필요