esxi 서버 보안취약점 조치 - 파일시스템관리
1. Setuid, Setgid 설정
- 취약점 : SUID(Set User-ID) SGID(Set Group-ID)가 설정된 파일의 경우, 특히 root 소유의 파일인 경우, BufferOverflow 공격과 Local 공격에 많이 사용되는 매우 보안상 관리가 필요한 파일들로 이들 파일들의 추가적인 관리가 필요함
- 점검방법 : 아래 파일들에 setuid, setgid 속성이 설정 되어 있는지 확인
/sbin/dump
/usr/bin/lpq-lpd
/usr/bin/newgrp
/sbin/restore
/usr/bin/lpr
/usr/sbin/lpc
/sbin/unix_chkpwd
/usr/bin/lpr-lpd
/usr/sbin/lpc-lpd
/usr/bin/at
/usr/bin/lprm
/usr/sbin/traceroute
/usr/bin/lpq
/usr/bin/lprm-lpd
- 조치사항 : 보안에 취약한 root 소유의 setuid 파일들의 경우에는 꼭 필요한 파일을 제외하고는 그 외 setuid, setgid 파일에 대하여 setuid, setgid 속성을 제거해주고, 잘못 설정되어 보안 위협이 되고 있는지 주기적인 진단 및 관리가 필요함.
Application에서 생성한 파일이나, 사용자가 임의로 생선한 파일등 특이한 파일의 발견시에도 Setuid를 제거해야 함.
Setuid 제거시는 OS 및 응용프로그램 등 서비스의 정상유무를 파악하면서 신중하게 진행해야 함
2. 홈디렉토리 접근권한
- 취약점 : 사용자 계정 $HOME 디렉터리의 퍼미션은 0751이 아니면 취약
- 점검방법 : /etc/passwd 파일에서 사용자 계정과 HOME 디렉토리 확인하고 해당 디렉토리의 접근권한 확인
- 조치사항 : chmod 명령어를 사용하여 HOME 디렉토리의 접근권한을 변경한다
- 점검시주의사항 : root, OS Default 및 APP user 계정은 예외처리함
3. 홈디렉토리 소유자
- 취약점 : 사용자 계정 $HOME 디렉터리의 소유자가 사용자 본인이 아닌 경우 취약
- 점검방법 : /etc/passwd 파일에서 사용자 계정과 HOME 디렉터리 확인하고 해당 디렉터리가 사용자 소유인지 확인
- 조치사항 : chown 명령어로 HOME 디렉터리 소유자를 변경한다
- 점검시주의사항 : root, OS Default 및 APP user 계정은 예외처리함
4. 기본 환경 파일의 접근권한
- 취약점 : 기본 환경 파일의 접근 권한이 아래와 다르면 취약
/etc/profile 0644
/etc/bashrc 0644
/etc/bash.bashrc 0644
root$HOME의 '.hidden.file' 0644
- 점검방법 : ls -l 명령어로 접근권한 확인
- 조치사항 : chmod 644 명령어로 접근권한 변경
5. 사용자 환경 파일의 접근 권한
- 취약점 : group, other 사용자에게 쓰기권한, 실행권한이 있을경우 취약
.profile 0644
.cshrc 0644
.login 0644
.netrc 0644
.bash_profile 0644
.bashrc 0644
.bash_logout 0644
- 점검방법 : ls -l 명령어로 사용자 HOME 디렉터리 파일에 대한 접근권한 확인
- 조치사항 : chmod 644 명령어로 접근권한 변경
6. PATH 경로 검사
- 취약점
1) .profile 및 .cshrc내의 PATH에 '.' 및 WW 설정 금지
2) 경로에 "." 및 WW 디렉터리가 포함되어 있는지 검사
3) "." 및 WW 디렉터리가 설정 되어 있을 경우 이를 삭제/속성제거한다
4) "." 및 WW 디렉터리는 해킹시 백도어로 이용된다
- 점검방법 : 환경설정 파일 PATH 설정에 "."이 포함되어 있는지 점검
/etc/profile
/etc/bashrc
/etc/bash.bashrc
사용자 홈디렉터리/.profile
사용자 홈디렉터리/.cshrc
사용자 홈디렉터리/.bashrc
사용자 홈디렉터리/.login
- 조치사항 : 환경설정 파일 PATH 설정에서 "." 를 제거
ex) vi 사용자/홈디렉터리/.profile
-> PATH=/usr/bin:/etc/:/usr/sbin:/usr/ucb:$HOME/bin:/usr/bin/X11:/sbin:"." -> "." 제거
* PATH 값 설정
root 계정의 환경 변수 설정 파일(.profile, .cshrc등)과 "/etc/profile" 등에서 PATH 환경 변수에 포함되어 있는 "."을 제거
- 점검시주의사항 : "." 제거시 영향도 파악 필요. 보안상 PATH내에는 현재 디렉토리를 나타내는 "."(dot)을 포함시지키 않을것을 권장함. 꼭 추가해서 사용하고자 할때는 PATH 마지막에 추가할 것을 권고
7. Sticky bit 설정 디렉터리
- 취약점 : /tmp 디렉터리에 Sticky bit 설정이 되어 있으면 양호
- 점검방법 : 디렉터리 권한 확인(ls -ld /tmp/var/tmp)
- 조치사항 : /tmp, /var/tmp 디렉터리의 권한을 1777로 변경
# chmod 1777 /tmp
# chmod 1777 /var/tmp
8. 사용자 UMASK 검사
- 취약점 : umask 명령어를 사용하여 현재 설정된 UMASK 값이 022이면 양호
- 점검방법 : umask 명령어를 사용하여 현재 설정된 UMASK 값이 022인지 점검
# umask 또는 su - root -c 'umask' 명령어 수행하여 결과 확인(0022 혹은 022)
- 조치사항 : 시스템환경파일
# vi /etc/profile, /etc/.login 파일에서 umask 값을 022로 설정
* 사용자 $HOME 환경파일
.cshrc .login .profile .bash_profile .kshrc .tcshrc 파일에서 umask 값을 022로 설정