본문 바로가기

Infra/리눅스 서버

[리눅스 보안] 리눅스 파일 및 디렉토리 관리 - root 홈, 패스 디렉토리 권한 및 패스 설정

[리눅스 보안] 리눅스 파일 및 디렉토리 관리 - root 홈, 패스 디렉토리 권한 및 패스 설정



■ 대상 OS : SunOS, Linux, AIX, HP-UX


■ 취약점 개요

    - root 계정의 PATH 환경변수에 "." (현재 디렉토리 지칭)이 포함되어 있으면, root 계정의 인가자로 인해 비의도적으로 현재 디렉토리에 위치하고 있는 명령어가 실행될 수 있음

    - 즉 "."이 /usr/bin 이나 /bin, /sbin 등 명령어들이 위치하고 있는 디렉토리보다 우선하여 위치하고 있을 경우, root 계정의 인가자가 특정 명령을 실행하면, 비인가자가 불법적으로 위치시킨 파일을 실행하여 예기치 않은 결과를 가져올 수 있음.

    - 잘못된 PATH 의 우선순위 등이 침해사고에 이용될 수 있으므로 "." 뿐만 아니라 비인가자가 불법적으로 생성한 디렉토리를 우선으로 가리키지 않도록 설정함


■ 보안대책

    - 양호 : PATH 환경변수에 "." 이 맨 앞이나 중간에 포함되지 않은 경우

    - 취약 : PATH 환경변수에 "." 이 맨 앞이나 중간에 포함되어 있는 경우


■ 조치방법

    - root 계정의 환경변수 설정파일("/.profile", "/.cshrc" 등)과 "/etc/profile"등에서 PATH 환경변수에 포함되어 있는 현재 디렉토리를 나타내는 "."을 PATH 환경변수의 마지막으로 이동

    - "/etc/profilr", root 계정의 환경변수 파일, 일반계정의 환경변수 파일을 순차적으로 검색하여 확인


■ 보안설정 방법

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

        - SunOS, Linux, AIX, HP-UX

          # echo $PATH

           /usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/bin/X11:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/root/bin

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


    ※ 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로 설정됨


■ SunOS, Linux, AIX, HP-UX

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

       #vi /etc/profile

    2. 아래와 같이 수정

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

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


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




※ 문의 사항은 메일 : jyuhm@sntkor.com 이나 070-8611-4853


문의 사항 남기기