Information Security ˗ˋˏ ♡ ˎˊ˗

취약점 분석/Linux Server

[UNIX/Linux서버] "파일 및 디렉터리 관리" 취약점 점검

토오쓰 2021. 10. 5. 14:47

* 대상: AIX, HP-UX, SOLARIS, LINUX

* 각 OS별로 사용자 UID 체계가 달라 시스템 계정 및 일반 사용자 계정이 부여받는 값의 범위에 차이가 있다.

 

root 홈, 패스 디렉터리 권한 및 패스 설정 U-05(상)

점검내용)

root 계정의 PATH 환경변수에 "." 포함되어 있는지 점검

보안위협)

root 계정의 PATH에 정상적인 관리자 명령어의 디렉터리 경로보다 현재 디렉터리를 지칭하는 마침표가 우선하면 현재 디렉터리에 변조된 명령어를 삽입하여 관리자 명령어 입력 시 악의적인 기능 실행 가능하다.

즉 "."이 /usr/bin, /bin, /sbin 등 명령어들이 위치하고 있는 디렉터리보다 우선하여 위치하고 있을 경우, root 계정으로 접속한 관리자가 특정 명령을 실행하면, 불법적으로 현재 디렉터리에 위치시킨 파일 실행 가능하다.

점검 및 조치사례)

root 계정의 PATH 환경변수에 마침표 “.” 포함되어 있는 점검

#echo $PATH

=> 포함되어 있으면 이동시키거나 제거

참고)

SHELL에 따라 참조되는 환경설정 파일

/bin/sh = /etc/profile, $HOME/.profile

/bin/csh = $HOME/.cshrc, $HOME/.login, /etc/.login

/bin/ksh = /etc/profile, $HOME/.profile, $HOME/kshrc

/bin/bash = /etc/profile, $HOME/.bash_profile

=> 홈 디렉터리에 설정된 값이 가장 늦게 적용되어 최종 PATH로 설정

 

 

파일 및 디렉터리 소유자 설정 U-06(상)

점검내용)

소유자 불분명한 파일이나 디렉터리가 존재하는지 여부를 점검

보안위협)

소유자가 존재하지 않는 파일의 UID와 동일한 값으로 특정 계정의 UID값을 변경하면 해당 파일의 소유자가 되어 모든 작업이 가능하다. 또한 시스템 자원 낭비될 수 있다.

참고)

[find 명령어 옵션]

1) nouser: 소유자 없음

2) nogroup: 소유 그룹 없음

[파일 소유자/소유 그룹 변경 또는 불 필요시 삭제]

- chown(소유자 변경), chgrp(소유 그룹 변경)

2 > /dev/null 의미: 접근 제한 파일인 경우 오류 메시지를 출력하지 않는다.

 

점검 및 조치사례)

* OS별 점검 파일 위치 및 점검 방법

[SOLARIS, AIX]

소유자가 nouser, nogroup인 파일이나 디렉터리 검색

#find / -nouser –o –nogroup –xdev –ls 2 > /dev/null

[HP-UX]

#find / \( -nouser –o –nogroup \) -xdev –exec ls –al {} \; 2> /dev/null

[LINUX]

#find / -nouser –print

#find / -nogroup -print

 

 

world writable 파일 점검 U-15(상)

점검목적)

시스템 파일과 같은 중요 파일에 world writable 설정이 될 경우, 일반 사용자 및 비인가된 사용자가 해당 파일을 임의로 수정, 삭제가 가능하다.

참고)

* world writable 파일: 파일의 내용을 소유자나 그룹 외 모든 사용자에 대해 쓰기가 허용된 파일

(예 : rwxrwxrwx root root <파일명>)

-perm -2 의미: -0002와 동일

점검 및 조치사례)

1) world writable 파일 존재 여부 확인

#find / -type f -perm –2 –exec ls –l {} \;

2) 모든 사용자(others)에 쓰기(w) 권한을 제거하거나 불필요한 파일 및 디렉터리를 삭제하는 경우

- 대상에 chmod 명령을 이용하여 others(o)에 쓰기 권한을 제거(-w)하거나 rm 명령어로 삭제한다.

 

 

주요 파일 소유자 및 권한 설정

1) /etc/passwd 파일은 사용자의 ID, 패스워드, UID, GID, 홈 디렉터리, 쉘 정보를 담고 있는 파일로  root 소유의 644 이하로 설정

 

2) /etc/shadow 파일은 시스템에 등록된 모든 계정의 패스워드를 암호화된 형태로 저장 및 관리하고 있는 파일로 root 소유의 400 이하의 파일 권한을 설정

 

3) /etc/hosts 파일은 IP와 HostName을 매핑하는 파일로 외부의 불법적인 접근에 의한 조작 시 악의적인 시스템에 접근할 가능성이 있으므로 root 소유의 600 이하의 권한을 설정

참고)

파밍(Pharming): 사용자의 DNS 또는 hosts 파일을 변조함으로써 정상적인 사이트로 오인하여 접속하도록 유도한 뒤 개인정보를 훔치는 새로운 컴퓨터 범죄 수법

 

4) /etc/(x)inetd.conf 파일은 inetd 데몬에 대한 설정 파일로 자주 사용하지 않는 서비스가 상시 실행되어 메모리를 점유하는 것을 방지하기 위해 (x)inetd(슈퍼대몬)에 자주 사용하지 않는 서비스를 등록하여 요청이 있을 시에만 해당 서비스를 실행하고 요청이 끝나면 서비스를 종료하는 역할 수행하며, root 소유의 600 이하의 권한을 설정한다.

 

5) /etc/syslog.conf 파일은 syslogd 데몬 실행 시 참조되는 설정 파일로 시스템 로그 기록의 종류, 위치 및 Level을 설정할 수 있고, root 소유의 640 이하로 권한을 설정한다.

 

6) /etc/services 파일은 서비스 관리(서비스별 포트/프로토콜 정보) 정보를 위해 사용되는 파일로 해당 파일에 서버에서 사용하는 모든 포트(port)들에 대해 정의되어 있으며, 필요시 서비스 기본 사용 포트를 변경하여 네트워크 서비스를 운용할 수 있다. 접근권한이 적절하지 않아 외부의 불법적인 접근에 의해 변경되는 경우 정상적인 서비스를 제한하거나 허용되지 않은 서비스를 등록하는 등의 위험이 있으므로 root 소유의 644 이하의 권한을 설정한다.

 

 

 

 

참고) 주요정보통신기반시설 “기술적 취약점 분석/평가 방법 상세가이드”

https://www.kisa.or.kr/public/laws/laws3.jsp

'취약점 분석 > Linux Server' 카테고리의 다른 글

[UNIX/Linux서버] "계정 관리" 취약점 점검  (280) 2021.10.05