본문 바로가기
Hacking/infra 진단

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

by 알거음슴 2021. 8. 17.
취약점 개요
점검 내용 root 계정의 PATH 환경변수에 “.”(마침표) 포함되어 있는지 점검
점검 목적 비인가자가 불법적으로 생성한 디렉터리 및 명령어를 우선으로 실행되지 않도록 설정하기 위해 환경변수 점검이 필요함
보안 위협 root 계정의 PATH(환경변수)에 정상적인 관리자 명령어(: ls, mv, cp)의 디렉터리 경로 보다 현재 디렉터리를 지칭하는 “.” 표시가 우선하면 현재 디렉터리에 변조된 명령어를 삽입하여 관리자 명령어 입력 시 악의적인 기능이 실행 될 수 있음
참고 ※ 환경변수: 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 집합
으로 Path 환경변수는 실행파일을 찾는 경로에 대한 변수임
점검대상 및 판단 기준
대상 LINUX
판단기준 양호 : PATH 환경변수에 “.” 이 맨 앞이나 중간에 포함되지 않은 경우
취약 : PATH 환경변수에 “.” 이 맨 앞이나 중간에 포함되어 있는 경우
조치 방법 root 계정의 환경변수 설정파일(“/.profile”, “/.cshrc” ) “/etc/profile” 등에서 PATH 환경변수에 포함되어 있는 현재 디렉터리를 나타내는 “.” PATH 환경변수의 마지막으로 이동
“/etc/profile”, root 계정의 환경변수 파일, 일반계정의 환경변수 파일을 순차
적으로 검색하여 확인

 

점검 및 조치
점검 #echo $PATH
/usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin/X11:
/usr/local/bin:/usr/bin:/usr/X11R6/bin:/root/bin
위와 같이 출력되는 PATH 변수 내에 “.” 또는, “::” 포함 여부 확인
PATH 변수 내에 “.”, “::” 이 맨 앞에 존재하는 경우 아래의 보안설정방법에 따라 설정을 변경함
조치 Step 1) vi 편집기를 이용하여 root 계정의 설정파일(~/.profile /etc/profile) 열기
 #vi /etc/profile
Step 2) 아래와 같이 수정
 (수정 전) PATH=.:$PATH:$HOME/bin
 (수정 후) PATH=$PATH:$HOME/bin:.
※ 환경변수 파일은 OS별로 약간씩 다를 수 있음

 

점검 스크립트

#!/bin/bash

. function.sh

BAR
CODE [U-05] root홈, 패스 디렉터리 권한 및 패스 설정
cat << EOF >> $RESULT
[양호]: PATH 환경변수에 “.” 이 맨 앞이나 중간에 포함되지 않은 경우
[취약]: PATH 환경변수에 “.” 이 맨 앞이나 중간에 포함되지 않은 경우
EOF
BAR

CHECK=$(echo $PATH | egrep "\.:|::|:.:" )

if [ -z $CHECK ] ; then
    OK "PATH 환경변수에 “.” 이 맨 앞이나 중간에 포함되지 않은 경우"
else
    VULN "PATH 환경변수에 “.” 이 맨 앞이나 중간에 포함되지 않은 경우"
fi

cat $RESULT