리눅스/파일 및 디렉토리 관리

[CentOS 7] SUID, SGID, Sticky bit 설정 파일 점검

참두릅 2021. 3. 19. 01:25

취약점

SUID, SGID 파일의 접근권한이 적절하지 않을 경우 roo권한 탈취가 발생할 수 있다.

◾ Sticky bit #

더보기

SUID와 SGID 정의

SUID : 설정된 파일 실행 시, 특정 작업 수행을 위하여 일시적으로 파일 소유자의 권한을 얻게 됨

SGID : 파일 소유 그룹의 권한을 얻게 됨

 

 

실습

일반 유저가 shadow파일을 열람할 수 없다. 하지만 파일의 소유자가 root이면서 SetUID설정이 되면

열람이 가능해진다. 이것은 일시적으로 root의 권한을 부여받기 때문이다.

[test@localhost /]$ cat /etc/shadow
cat: /etc/shadow: 허가 거부
[root@localhost /]# su root
[root@localhost /]# ls -l /usr/bin/cat
-rwxr-xr-x. 1 root root 54080  8월 20  2019 /usr/bin/cat

[root@localhost /]# chmod 4755 /usr/bin/cat
[root@localhost /]# ls -l /usr/bin/cat
-rwsr-xr-x. 1 root root 54080  8월 20  2019 /usr/bin/cat

[root@localhost /]# su test
[test@localhost /]$ cat /etc/shadow
root:$6$kZXbeAFq$bpGsWrBsetT5c5DYgmhQWV3bd3siNkf2dGd6wAd3G.HIthFTVBFoReYd.UUUE47eSi70D5qEuKnAgF81:18712:1:60:7:::

 

 

보안조치

◾ SetUID(4000)와 SetGID(2000)가 설정된 파일을 조회하는 명령어(-4000는 4000 이상을 의미)

[root@localhost ~]# find / -user root -type f \( -perm -4000 -o -perm -2000 \) -exec ls -al {} \;

 

◾ SetUID, SetGID 제거 명령어

[root@localhost ~]# ls -l /usr/bin/vi
-rwsr-xr-x. 1 root root 928056 10월 14 01:13 /usr/bin/vi
[root@localhost ~]# chmod -s /usr/bin/vi
[root@localhost ~]# ls -l /usr/bin/vi
-rwxr-xr-x. 1 root root 928056 10월 14 01:13 /usr/bin/vi

 

 

마무리

SetUID는 권한을 다루기때문에 꼭 확인해주어야 하고 주기적인 검사를 위한 cron을 이용하는 것이 좋다.