가. 취약점 개요
■ 내용
- root 계정의 PATH 환경변수에 “.”이(마침표) 포함되어 있는지 점검
■ 목적
- 비인가자가 불법적으로 생성한 디렉터리 및 명령어를 우선으로 실행되지 않도록 설정하기 위해 환경변수 점검이 필요함
■ 보안 위협
- root 계정의 PATH(환경변수)에 정상적인 관리자 명령어(예: ls, mv, cp등)의 디렉터리 경로 보다 현재 디렉터리를 지칭하는 “.” 표시가 우선하면 현재 디렉터리에 변조된 명령어를 삽입하여 관리자 명령어 입력 시 악의적인 기능이 실행 될 수 있음
■ 참고
- 환경변수: 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 집합으로 Path 환경변수는 실행파일을 찾는 경로에 대한 변수임
-
나. 점검방법
■ 대상 : SOLARIS, LINUX, AIX, HP-UX 등
■ 판단기준
- 양호 : PATH 환경변수에 “.” 이 맨 앞이나 중간에 포함되지 않은 경우
- 취약 : PATH 환경변수에 “.” 이 맨 앞이나 중간에 포함되어 있는 경우
■ 점검 명령어
OS | 점검 파일 |
SOLARIS, LINUX, AIX, HP-UX | #echo $PATH /usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin/X11: /usr/local/bin:/usr/bin:/usr/X11R6/bin:/root/bin 위와 같이 출력되는 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로 설정됨 |
다. 조치방법
■ 조치방법
- root 계정의 환경변수 설정파일(“/.profile”, “/.cshrc” 등)과 “/etc/profile” 등에서 PATH 환경변수에 포함되어 있는 현재 디렉터리를 나타내는 “.”을 PATH 환경변수의 마지막으로 이동
※ “/etc/profile”, root 계정의 환경변수 파일, 일반계정의 환경변수 파일을 순차적으로 검색하여 확인
■ SOLARIS, LINUX, AIX, HP-UX
Step 1) vi 편집기를 이용하여 root 계정의 설정파일(~/.profile 과 /etc/profile) 열기
#vi /etc/profile
Step 2) 아래와 같이 수정
(수정 전) PATH=.:$PATH:$HOME/bin
(수정 후) PATH=$PATH:$HOME/bin:.
※ 환경변수 파일은 OS별로 약간씩 다를 수 있음
라. 조치시 영향
■ 일반적인 경우 영향 없음