23.12.24 삭제예정/Unix 서버 취약점 점검

■ 리눅스 서버 점검 가이드 2-1 root 홈, 패스 디렉터리 권한 및 패스 설정

몽블86 2017. 6. 30. 10:58

■ 리눅스 서버 점검 가이드-2단계- 파일 및 디렉터리 관리


다음은 리눅스의 2단계인 파일 및 디렉터리 관리이다. 


본 리눅스의 점검 가이드는 주요정보통신기반시설_기술적_취약점_분석_평가_방법_상세가이드를 기반으로 작성이 되었다.

2-1 root 홈, 패스(path) 디렉터리 권한 및 패스(path)설정

■ 점검 분류항목: 파일 및 디렉터리 관리
■ 세부 점검항목: root 홈, 패스(path) 디렉터리 권한 및 패스(path) 설정
■ 대상: 리눅스
■ 위험도: 상
■ 관련 코드: U-16

1. 취약점 개요
root계정의 path 환경변수에 "."(현재 디렉토리 지칭)이 포함되어 있으면, root계정의 인가자로 인해 비의도적으로 현재 디렉터리에 위치하고 있는 명령어가 실행할수있음
즉 "."이 /usr/bin이나 /bin,/sbin등 명령어들이 위치하고 있는 디렉터리보다 우선하여 위차하여 있을 경우, root 계정의 인가자가 특정 명령을 실행하면, 비인가자가 불법적으로 위치시킨 파일을 실행하여 예기치 않은 결과를 가져올수 있음
잘못된 path의 경우 우선순위 등이 침해사고에 이용될수 있으므로 "."뿐만 아니라 비인가자가 불법적으로 디렉터리를 우선으로 가리키지 않도록 설정함

2. 판단기준
양호:path 환경변수에 "."이 맨 앞이나 중간에 포함되지 않는 경우
취약:path 환경변수에 "."이 맨 앞이나 중간에 포함되어 있는 경우

3. 조치방법
root 계정의 환경변수 설정파일(“/.profile”, “/.cshrc” 등)과 “/etc/profile” 등에서 PATH 환경변수에 포함되어 있는 현재 디렉터리를 나타내는 “.”을 PATH 환경변수의 마지막으로 이동 “/etc/profile”, root 계정의 환경변수 파일, 일반계정의 환경변수 파일을 순차적으로 검색하여 확인

4. 보안 설정 방법

■ 점검 방법

# echo $PATH

/usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/bin/X11:/usr/local/bin:/usr/bi

n:/usr/X11R6/bin:/root/bin

위와 같이 출력되는 PATH 변수 내에 “.” 또는, “::” 포함 여부 확인

★ 과연실제로 path에 존재를 하는지 확인하기

★★★

필자의 경우 path변수내에 .이나 ::이 포함되어 있지 않으므로 양호라고 판단됨


■ 설정 방법

1. vi 편집기를 이용하여 root 계정의 설정파일(~/.profile 과 /etc/profile)을 연 후

# vi /etc/profile

2. 아래와 같이 수정

(수정 전) PATH=.:$PATH:$HOME/bin

(수정 후) PATH=$PATH:$HOME/bin

※ 환경변수 파일은 OS별로 약간씩 다를 수 있음

5. 조치시 영향

일반적인 경우 영향 없음

★ 고객에게 설명
root 사용자의 path변수 설정에 현재 디렉토리가 설정이 되어 있다면 일반 사용자가 이 취약점을 이용하여 root 권한을 따낼수 있다. 일반 사용자가 root 사용자에 의한 프로그램 실행