가. 취약점 개요
■ 내용 : 불필요하거나 악의적인 파일에 SUID, SGID 설정 여부 점검
■ 목적 : 불필요한 SUID, SGID 설정 제거로 악의적인 사용자의 권한상승을 방지하기 위함
■ 보안 위협
- SUID, SGID 파일의 접근권한이 적절하지 않을 경우 SUID, SGID 설정된 파일로 특정 명령어를 실행하여 root 권한 획득 가능함
■ 참고
※ SUID: 설정된 파일 실행 시, 특정 작업 수행을 위하여 일시적으로 파일 소유자의 권한을 얻게 됨
※ SGID: 설정된 파일 실행 시, 특정 작업 수행을 위하여 일시적으로 파일 소유 그룹의 권한을 얻게 됨
※ 불필요한 SUID/SGID 목록: 부록 참고
나. 점검방법
■ 대상 : SOLARIS, LINUX, AIX, HP-UX 등
■ 판단기준
- 양호 : 주요 실행파일의 권한에 SUID와 SGID에 대한 설정이 부여되어 있지 않은 경우
- 취약 : 주요 실행파일의 권한에 SUID와 SGID에 대한 설정이 부여되어 있는 경우
■ 점검 명령어
OS | 점검 파일 |
SOLARIS, LINUX, AIX, HP-UX | OS별 주요 실행파일에 대한 SUID/SGID 설정 여부 확인 (※ 불필요한 SUID/SGID 목록: 부록 참고) #ls –alL [check_file] | awk ‘{ print $1}’ | grep –i ‘s’ |
주요 파일에 불필요한 SUID/SGID가 설정된 경우 아래의 보안설정방법에 따라 SUID/SGID를 제거함 |
다. 조치방법
■ 조치방법
Step 1) 불필요한 SUID, SGID 파일 제거
Step 2) 아래의 목록 이외에 애플리케이션에서 생성한 파일이나, 사용자가 임의 로 생성한 파일 등 의심스럽거나 특이한 파일의 발견 시 SUID 제거 필요
■ SOLARIS, LINUX, AIX, HP-UX
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>
라. 조치시 영향
■ SUID 제거 시 OS 및 응용 프로그램 등 서비스 정상작동 유무 확인 필요