Security/KISA 주요정보통신기반시설 기술적 취약점 진단 가이드

[주요정보통신기반시설 취약점 진단] U-05(상) root 홈, 패스 디렉터리 권한 및 패스 설정

학슈퍼맨 2024. 6. 5. 21:02

Unix 서버 취약 분석·평가 항목

1. 계정 관리(U-01 ~ U-04, U-44 ~ U-54 -> 15개)
2. 파일 및 디렉터리 관리(U-05 ~ U-18, U-55 ~ U-59 -> 19개)
3. 서비스 관리(U-19 ~ U-41, U-60 ~ U-71 -> 35개)
4. 패치 관리(U-42 -> 1개)
5. 로그 관리(U-43, U-72 -> 2개)


 

1. 취약점 개요

1) 점검 내용

  • root 계정의 PATH 환경 변수에 "."(마침표)이 포함되어 있는지 점검

2) 점검 목적

  • 비인가자가 불법적으로 생성한 디렉터리 및 명령어를 우선으로 실행되지 않도록 설정하기 위해 환경변수 점검이 필요함

3) 보안 위협

  • root 계정의 PATH(환경변수)에 정상적인 관리자 명령어(ex. ls, mv, cp 등)의 디렉터리 경로 보다 현재 디렉터리를 지칭하는 "." 표시가 우선하면 현재 디렉터리에 변조된 명령어를 삽입하여 관리자 명령어 입력 시 악의적인 기능이 실행될 수 있음

4) 참고

  • 환경변수 : 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 집합으로 PATH 환경변수는 실행파일을 찾는 경로에 대한 변수임

 

2. 점검 대상 및 판단 기준

1) 대상

  • Solaris, Linux, AIX, HP-UX 등

2) 판단 기준

  • 양호 : PATH 환경변수에 "."이 맨 앞이나 중간에 포함되지 않은 경우
  • 취약 : PATH 환경변수에 "."이 맨 앞이나 중간에 포함되어 있는 경우

3) 조치 방법

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

 

3. 점검 및 조치 사례

1) 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 변수 내에 "." 또는 "::" 포함 여부 확인

-> PATH 변수 내에 ".", "::"이 맨 앞에 존재하는 경우 아래의 보안 설정 방법에 따라 설정을 변경함

 

2) 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/profiel, $HOME/.bash_profile

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

 

3) 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 별로 약간씩 다를 수 있음!

 

4. 조치 시 영향

  • 일반적인 경우 영향 없음