
주요 실행파일의 권한에 SUID와 SGID에 대한 설정이 부여되어 있는 경우를 확인
find / -xdev -user root -type f \( -perm -04000 -o -perm -02000 \) -exec ls -al {} \;
이렇게 수정하면, root 사용자가 소유하며 SUID 또는 SGID 권한이 설정된 파일을 찾아 그 파일들의 상세 정보를 출력합니다.
이러한 파일들은 특별한 권한이 부여되었으므로 시스템 보안에 영향을 줄 수 있습니다. 따라서 출력된 파일 리스트를 확인하여 필요없는 SUID/SGID 권한을 제거하거나 해당 파일의 사용을 제한하는 것이 좋습니다.
불필요하거나 악의적인 파일에 SUID, SGID 설정 여부 점검을 하는 이유는:
- SUID(set user-id): 설정된 파일 실행 시, 특정 작업 수행을 위하여 일시적으로 파일 소유자의 권한을 얻게 됨.
-> 쉽게 말해 소유자가 루트인 파일인데 루트가 아닌 사용자가 잠깐 루트 사용권한을 써서 파일을 실행해야할 필요가 있을 때 주는 권한임.
- SUID는 절대표기값은 4000이고 일반사용자가 소유자 권한으로 실행할 수 있도록 하는 것이 보안상문제가 있기 때문에 조심해서 사용해야한다. (chmod +s -> suid적용, chmod -s suid 해제)
- SGID(set group-id): 설정된 파일 실행 시, 특정 작업 수행을 위하여 일시적으로 파일 소유 그룹의 권한을 얻게 됨.
- SGID는 절대표기값은 2000이고 일반사용자가 소유그룹의 권한을 실행할 수 있도록 하는 것. 파일이 적용 되면 다른 그룹이 소유그룹의 권한으로 파일을 실행하는것과 같음. (chmod +s -- sgid 적용, chomod -s sgid 해제)
제시된 파일 목록에서 대부분의 SUID/SGID 설정은 특정 목적으로 사용되기 위해 설정된 것입니다. 그러나 잘못 사용되면 시스템 보안에 위협이 될 수 있습니다.
다음은 일반적으로 SUID/SGID 권한을 지닌 것으로 알려져 있으나, 특정 환경이나 설정에 따라 불필요할 수 있는 파일들입니다:
/usr/bin/fusermount3 및 /usr/bin/fusermount: FUSE 파일 시스템을 사용하지 않는 경우 필요하지 않습니다.
/usr/bin/chage: 시스템 관리자가 아닌 일반 사용자가 비밀번호 만료 정보를 변경할 필요가 없는 경우 제거 가능합니다.
/usr/bin/at: 'at' 명령어를 사용하여 예약된 작업을 실행하지 않는 경우 제거할 수 있습니다.
/usr/bin/locate: 'locate' 명령을 사용하지 않는 경우 제거할 수 있습니다.
/usr/bin/vmware-user-suid-wrapper: VMware 도구를 사용하지 않는 경우 불필요합니다.
/usr/libexec/openssh/ssh-keysign: 호스트 기반 인증을 사용하지 않는 경우 제거할 수 있습니다. 그러나 SSH 호스트 기반 인증에 필요하므로 일반적으로 제거하지 않습니다.
/usr/libexec/qemu-bridge-helper: QEMU 가상화를 사용하지 않는 경우 제거할 수 있습니다.
조치 방법
불필요한 SUID, SGID 파일 제거
chmod -s <file_name>
- SUID:
chmod u-s /usr/bin/fusermount3
chmod u-s /usr/bin/fusermount
chmod u-s /usr/bin/chage
chmod u-s /usr/bin/at
chmod u-s /usr/bin/locate
chmod u-s /usr/bin/vmware-user-suid-wrapper
chmod u-s /usr/libexec/qemu-bridge-helper- SGID:
chmod g-s /usr/bin/fusermount3
chmod g-s /usr/bin/fusermount
chmod g-s /usr/bin/chage
chmod g-s /usr/bin/at
chmod g-s /usr/bin/locate
chmod g-s /usr/bin/vmware-user-suid-wrapper
chmod g-s /usr/libexec/qemu-bridge-helper- 결과:
반드시 사용이 필요한 경우 특정 그룹에서만 사용하도록 제한하는 방법
일반 사용자의 Setuid 사용을 제한함 (임의의 그룹만 가능)
/usr/bin/chgrp <group_name> <setuid_file_name>
/usr/bin/chmod 4750 <setuid_file_name>