작업 환경
- 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/dump | Backup/Restore |
/sbin/restore | Backup/Restore |
/sbin/unix_chkpwd | 사용자의 암호가 읽을 수 없는 장소에 보관되는 경우 사 용자의 암호를 검사해주는 프로그램. 이 프로그램을 호출 한 사용자의 암호를 검사해주는 역할만 함 |
/usr/bin/a | 지정된 시간에 실행할 작업을 입력하고, 대기 목록을 확인하고, 제거하는 명령어 |
/usr/bin/lpq | 라인프린터 작업 큐 조회 명령어 |
/usr/bin/lpq-lpd | DAEMON |
/usr/bin/lpr | 콘솔환경에서 명시된 파일을 인쇄할 때 사용 |
/usr/bin/lpr-lpd | DAEMON |
/usr/bin/lprm | lpq 명령어로 볼 수 있는 작업 큐를 살펴보고 해당하는 작업을 취소하거나 작업 번호를 지정하여 작업 번호에 해 당하는 큐를 삭제 |
/usr/bin/lprm-lpd | DAEMON |
/usr/bin/newgrp | 현재 세션의 사용자 그룹 변경(지정한 그룹의 쉘로 환경 이 바로 변경) |
/usr/sbin/lpc | 커맨드 기반의 프린터 제어 |
/usr/sbin/lpc-lpd | DAEMON |
/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 "========== 점검 완료 =========="
결과

설정된 파일들만 Step 1) 에 따라서 권한을 제거한다
조치시 영향
SUID 제거 시 OS 및 응용 프로그램 등 서비스 정상작동 유무 확인 필요
'주요정보통신기반시설가이드 > LINUX 취약점 점검' 카테고리의 다른 글
[U-15(상)] 2. 파일 및 디렉토리 관리 > 2.11 world writable 파일 점검 (0) | 2025.04.29 |
---|---|
[U-14(상)] 2. 파일 및 디렉토리 관리 > 2.10 사용자, 시스템 시작파일 및 환경파일 소유자 및 권한 설정 (0) | 2025.04.29 |
[U-12(상)] 2. 파일 및 디렉토리 관리 > 2.8 /etc/services 파일 소유자 및 권한 설정 (0) | 2025.04.15 |
[U-11(상)] 2. 파일 및 디렉토리 관리 > 2.7 /etc/syslog.conf 파일 소유자 및 권한 설정 (0) | 2025.04.13 |
[U-10(상)] 2. 파일 및 디렉토리 관리 > 2.6 /etc/(x)inetd.conf 파일 소유자 및 권한 설정 (0) | 2025.04.13 |