취약점 개요 | |
점검 내용 | 불필요하거나 악의적인 파일에 SUID, SGID 설정 여부 점검 |
점검 목적 | 불필요한 SUID, SGID 설정 제거로 악의적인 사용자의 권한상승을 방지하기 위함 |
보안 위협 | SUID, SGID 파일의 접근권한이 적절하지 않을 경우 SUID, SGID 설정된 파일로 특정 명령어를 실행하여 root 권한 획득 가능함 |
참고 | ※ SUID: 설정된 파일 실행 시, 특정 작업 수행을 위하여 일시적으로 파일 소유자의 권한을 얻게 됨 ※ SGID: 설정된 파일 실행 시, 특정 작업 수행을 위하여 일시적으로 파일 소유 그룹의 권한을 얻게 됨 ※ 불필요한 SUID/SGID 목록: 부록 참고 |
점검대상 및 판단 기준 | |
대상 | LINUX |
판단기준 | 양호 : 주요 실행파일의 권한에 SUID와 SGID에 대한 설정이 부여되어 있지 않은 경우 |
취약 : 주요 실행파일의 권한에 SUID와 SGID에 대한 설정이 부여되어 있는 경우 | |
조치 방법 | Step 1) 불필요한 SUID, SGID 파일 제거 Step 2) 아래의 목록 이외에 애플리케이션에서 생성한 파일이나, 사용자가 임의로 생성한 파일 등 의심스럽거나 특이한 파일의 발견 시 SUID 제거 필요 |
점검 및 조치 | |
점검 | OS별 주요 실행파일에 대한 SUID/SGID 설정 여부 확인 (※ 불필요한 SUID/SGID 목록: 부록 참고) #ls –alL [check_file] | awk ‘{ print $1}’ | grep –i ‘s’ |
주요 파일에 불필요한 SUID/SGID가 설정된 경우 아래의 보안설정방법에 따라 SUID/SGID를 제거함 | |
조치 | Step 1) 제거 방법 #chmod -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
. function.sh
BAR
CODE [U-13] SUID, SGID, 설정 파일점검
cat << EOF >> $RESULT
[양호]: 주요 실행파일의 권한에 SUID와 SGID에 대한 설정이 부여되어 있지 않은 경우
[취약]: 주요 실행파일의 권한에 SUID와 SGID에 대한 설정이 부여되어 있는 경우
EOF
BAR
CHECK1=$(find / -user root -type f \( -perm 4000 -o -perm -2000 \) >> /root/linuxs/U-13.txt 2>&1)
for i in /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-lqp /usr/bin/newgrp /usr/sbin/lpc /usr/sbin/lpc-lpd /usr/sbin/traceroute
do
cat /root/linuxs/U-13.txt | grep $i >> /root/linuxs/U-13_1.txt
done
CHECK3=$(cat /root/linuxs/U-13_1.txt | wc -l )
if [ $CHECK3 = 0 ] ; then
OK "주요 실행파일의 권한에 SUID와 SGID에 대한 설정이 부여되어 있지 않은 경우"
else
VULN "주요 실행파일의 권한에 SUID와 SGID에 대한 설정이 부여되어 있는 경우"
fi
cat $RESULT
'Hacking > infra 진단' 카테고리의 다른 글
[Linux] U-14 (상) 사용자, 시스템 시작파일 및 환경파일 소유자 및 권한 설정 (0) | 2021.08.23 |
---|---|
[Linux] U-15 (상) world writable 파일 점검 (0) | 2021.08.23 |
[Linux] U-12 (상) /etc/services 파일 소유자 및 권한 설정 (0) | 2021.08.23 |
[Linux] U-11(상) /etc/syslog.conf 파일 소유자 및 권한 설정 (0) | 2021.08.23 |
[Linux] U-10 (상) /etc/(x)inetd.conf 파일 소유자 및 권한 설정 (0) | 2021.08.23 |