[Linux] setuid, getgid, Sticky Bit 보안 문제와 해지 방법 Computer Tip

*NIX 시스템에서는
권한을 줄 때 User/Group/Other 로 나뉩니다.
그리고 각각이 RWX 비트로 구성되어 있지요.

그래서보통
$ ls -al

명령에는
-rwxr-xr--
와 같이 보입니다.

그런데 보안 분야에서는 StickyBit 라는 것이 있습니다.
비단 일반 Linux 뿐만 아니라 1976년 이후의 거의 모든 *Nix 시스템에서 나타나는 군요.

뭐 이유가 있어서 이렇게 만들어 놓았을 것인데,
이것이 왜 보안에 취약하냐 하면은요...

$ sudo apt-get install tcpdump
테스트로 tcpdump 패키지를 실행시킵니다.

$ /usr/sbin/tcpdump -nn -i eth0
tcpdump: eth0: You don't have permission to capture on that device
(socket: Operation not permitted)
위와 같이 권한 문제가 발생합니다.


$ ll /usr/sbin/tcpdump
-rwxr-xr-x 1 root root 966064  4월 25 04:28 /usr/sbin/tcpdump*
tcpdump의 권한을 보면 위와 같습니다.


$ sudo chmod +s /usr/sbin/tcpdump
[sudo] password for future: 
만약 해커가 tcpdump 실행파일에 위와 같이 StickyBit를 설정했다 하면,

$ ll /usr/sbin/tcpdump
-rwsr-sr-x 1 root root 966064  4월 25 04:28 /usr/sbin/tcpdump*
위와 같이 's' 라는 설정이 되어 있구요.

이제 다시 tcpdump를 실행시키면,

$ /usr/sbin/tcpdump -nn -i eth0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
11:32:57.107085 IP 10.31.1.35.22 > 10.31.1.77.53067: Flags [P.], seq 1394605394:1394605578, ack 4085767277, wi
n 340, options [nop,nop,TS val 13545656 ecr 1162823633], length 184
11:32:57.107401 IP 10.31.1.77.53067 > 10.31.1.35.22: Flags [.], ack 184, win 8331, options [nop,nop,TS val 116
2823663 ecr 13545656], length 0
...

위와 같이 sudo 권한을 주지도 않았는데 잘 수행됨을 알 수 있습니다.


그러면 과연 어떻게 이런 스티키비트가 설정된 파일을 모두 찾아
설정 해제를 시키는가가 관건인데, 다음과 같이
쉽게 됩니다.


$ sudo find /usr/sbin -perm /ugo=s -ls
33825134  320 -rwsr-xr--   1 root     dip        325744  2월  4  2011 /usr/sbin/pppd
33825215   20 -rwsr-sr-x   1 libuuid  libuuid     18856  3월 30  2012 /usr/sbin/uuidd
33835881  944 -rwsr-sr-x   1 root     root       966064  4월 25  2015 /usr/sbin/tcpdump

일단 /usr/sbin 에서 스티키비트가 설정된 파일들을 찾습니다.

$ sudo find /usr/sbin -perm /ugo=s -exec chmod ugo-s {} \;
위의 명령으로 설정을 해제시킵니다.

$ sudo find /usr/sbin -perm /ugo=s -ls
다시 확인해 보면 없습니다.


어느 분께는 도움이 되셨기를...


덧글

  • 이갑상 2015/10/23 11:41 # 삭제 답글

    도움이 되었습니다 감사합니다 ^^.
  • 지훈현서아빠 2015/10/23 11:42 #

    ㅎㅎ 도움이 되었다니 저의 보람입니다~~ ^^
  • 지나다 2015/10/23 15:45 # 삭제 답글

    좋은 정보인데 sticky bit는 /tmp와 같이 drwxrwxrwt 끝에 t로 표시됩니다. setuid/setgid permission에 대한 설명을 하신거구요.
  • JungIn 2015/10/23 16:24 # 삭제 답글

    헐... 다 필요하기 때문에 존재하는건데 그걸 싸그리 해제 하다니요... 다 제끼고 password 명령 실행해보세요 자기 비번도 못바꿉니다.... 헐 황당하네요...
댓글 입력 영역

구글애드텍스트