파일 퍼미션 설정을 통한 로컬 공격 방지
공격자는 원격 취약점을
이용하여 시스템을 장악할 수 있지만 원격 취약점이 없으면 보통 웹 페이지의 취약점
을 이용하여 로컬 공격을 하고, 이를 통해
시스템을 장악하는 경우가 있습니다. 보통 웹 공격을 통해 획득할
수 있는 것은 nobody 또는 apache 권한입니다.
이는 웹 서버 설정 파일인 httpd.conf라는 파일의 설정에 따라
사용하는 용어가 달라질 수 있으며, 공격에 성공할 경우
보통 ‘웹 권한을 획득했다’고 합니다.
웹 권한을 획득하면 웹 페이지의 변조가 가능할 수 있고, 시스템
장악을 위해 로컬 공격을 할 수 있습니다.
이를 경우를 대비하여 공격자가 원활한 로컬 공격을 하지 못하도록 파일 퍼미션을
설정하는 것입니다. 여기서
는 공격자가 웹 권한을 획득하고, 로컬 공격 시 반드시 사용하거나 사용할 가능성이 높은 파일들을
대상으로
퍼미션 조정을 할 것입니다. 제일 먼저 /bin 디렉토리의 파일 설정에 대해 알아보도록 하겠습니다.
많
은 사용자 계정이 없는 경우라면 이 파일들은 모두 퍼미션을 700으로 수정합니다. 다른 사용자들이 있으면
특정 그룹의
사용자만 이용할 수 있도록 설정을 해야 합니다. 그러나 이 문서가 대상으로 하고 있는 독자들의
서버는 많은 계정이 없는,
대부분 root만이 서버에 접속하여 서버를 관리하는 경우입니다.
[root@localhost root]# cd /bin
[root@localhost
bin]# ls -al
합계 5448
-rwxr-xr-x 1 root root 14364 2월 19 2003 cat
-rwxr-xr-x
1 root root 18076 2월 19 2003 chgrp
-rwxr-xr-x 1 root root 18076 2월
19 2003 chmod
-rwxr-xr-x 1 root root 47732 2월 19 2003 cp
-rwxr-xr-x
1 root root 28596 2월 19 2003 df
-rwxr-xr-x 1 root root 11356 2월 19
2003 env
-rwxr-xr-x 1 root root 294332 1월 25 2003 gawk
-rwxr-xr-x 1
root root 75668 1월 25 2003 grep
-rwxr-xr-x 1 root root 7996 2월 25
2003 kill
-rwxr-xr-x 1 root root 10780 2월 19 2003 link
-rwxr-xr-x 1
root root 22204 2월 19 2003 ln
-rwxr-xr-x 1 root root 67668 2월 19
2003 ls
-rwxr-xr-x 1 root root 18396 2월 19 2003 mkdir
-rwsr-xr-x 1
root root 68508 2월 25 2003 mount
-rwxr-xr-x 1 root root 51028 2월 19
2003 mv
-rwxr-xr-x 1 root root 85240 2월 11 2003 netstat
-r-xr-xr-x
1 root root 69772 2월 20 2003 ps
-rwxr-xr-x 1 root root 10620 2월 19
2003 pwd
-rwxr-xr-x 1 root root 26556 2월 19 2003 rm
-rwxr-xr-x 1
root root 11804 2월 19 2003 rmdir
36
-rwx------ 1 rpm rpm 77404 2월
28 2003 rpm
-rwxr-xr-x 1 root root 26332 2월 19 2003 touch
-rwxr-xr-x
1 root root 12188 2월 19 2003 uname
-rwxr-xr-x 1 root root 10848 2월
19 2003 unlink
-rwxr-xr-x 1 root root 456108 2월 12 2003 vi
[root@localhost
bin]#
이 파일들의 퍼미션을 700으로 조정해도 홈페이지를 운영하는 데는 아무런 문제가 없습니다.
퍼미션 조정 방
법은 다음과 같습니다. 순서대로 ‘chmod 700 파일명’으로 하면 됩니다. 예를 한 가지 들어보겠습니다.
[root@localhost bin]# chmod 700 cat
퍼미션을 확인해보도록 하겠습니다.
[root@localhost
bin]# ls -la cat
-rwx------ 1 root root 26556 2월 19 2003 cat
[root@localhost
bin]#
퍼미션 조절하는 것은 전혀 어렵지 않습니다. 이제는 /sbin 디렉토리에서 퍼미션 조정이 필요한 파일을
찾아
보도록 하겠습니다. 역시 퍼미션을 700으로 수정합니다.
[root@localhost
bin]# cd /sbin
[root@localhost sbin]# ls -la
합계 17400
drwxr-xr-x
2 root root 8192 7월 4 09:22 .
drwxr-xr-x 21 root root 4096 7월 18
05:38 ..
-rwxr-xr-x 1 root root 38556 2월 11 2003 arp
-rwxr-xr-x 1
root root 51672 2월 11 2003 ifconfig
-rwxr-xr-x 1 root root 47560 2월 4
2003 iptables
[root@localhost sbin]#
이제 /usr/bin 디렉토리의 파일들
중에서 700으로 수정이 필요한 것들을 찾아보겠습니다.
[root@localhost sbin]# cd
/usr/bin
[root@localhost bin]# ls ?al
[root@localhost bin]# ls -la
| more
합계 283228
lrwxrwxrwx 1 root root 3 7월 4 08:55 cc -> gcc
-rwxr-xr-x
1 root root 62268 1월 26 2003 dig
-rwxr-xr-x 1 root root 51028 1월 25
2003 find
-rwxr-xr-x 2 root root 80644 2월 25 2003 gcc
-rwxr-xr-x 2
root root 81864 2월 12 2003 gcc296
-rwxr-xr-x 1 root root 2116372 2월
25 2003 gdb
-rwxr-xr-x 1 root root 44800 2월 25 2003 gdbserver
-rwxr-xr-x
1 root root 14236 2월 19 2003 id
-rwxr-xr-x 1 root root 15260 2월 19
2003 kill
-rwxr-xr-x 1 root root 13144 1월 25 2003 killall
-rwxr-xr-x
1 root root 11068 2월 11 2003 last
-rwxr-xr-x 1 root root 127932 1월
25 2003 make
-rwxr-xr-x 1 root root 55068 2월 19 2003 mysql
-rwxr-xr-x
1 root root 257788 1월 26 2003 nmap
-rwxr-xr-x 1 root root 55968 1월
26 2003 nslookup
-rwxr-xr-x 2 root root 12572 2월 19 2003 perl
-rwxr-xr-x
2 root root 12572 2월 19 2003 perl5.8.
-rwxr-xr-x 2 root root 791232
2월 25 2003 python
-rwxr-xr-x 3 root root 57468 1월 25 2003 rz
-rwxr-xr-x
1 root root 64632 2월 15 2003 ssh-add
-rwxr-xr-x 1 root root 47544 2월
15 2003 ssh-agent
-rwxr-xr-x 1 root root 64760 2월 15 2003 ssh-keygen
-rwxr-xr-x
1 root root 135800 2월 15 2003 ssh-keyscan
-rwxr-xr-x 1 root root
35604 2월 19 2003 tail
-rwxr-xr-x 1 root root 1893740 2월 12 2003 vim
-rwxr-xr-x
1 root root 7168 2월 25 2003 whereis
-rwxr-xr-x 1 root root 15324 1월
25 2003 which
-rwxr-xr-x 1 root root 10784 2월 19 2003 whoami
[root@localhost bin]#
이제 /usr/sbin 디렉토리입니다. 여기는 그렇게 많지 않습니다. lsof 파일을 700으로
설정합니다.
[root@localhost bin]# cd /usr/sbin
[root@localhost
sbin]# ls -al
-rwxr-xr-x 1 root root 95640 1월 25 2003 lsof
마지막으 로 /proc 디렉토리는 디렉토리 자체를 700으로 설정합니다.
[root@localhost sbin]#
cd
[root@localhost root]# chmod 700 /proc
[root@localhost root]#
이
제 파일 및 디렉토리 퍼미션 설정을 다 알아보았습니다. 앞에서 언급되지 않은 파일이나 디렉토리를 굳이
변경할 필요는 없을
것입니다. 이 정도 설정하면 많은 공격을 막을 수 있을 것입니다.