Security Practice Archive

보안 점검과 설정을
기록합니다.

시스템, 클라우드 등 다양한 환경에서 확인한 점검 기준과 설정 과정, 검증 결과를 정리합니다.

categories 글 모아보기
Browse topics

주제별로 빠르게 이동

카테고리를 선택해 관련 글을 모아볼 수 있습니다.

약 1분

[인프라진단] #U-14 root 홈, 패스 디렉터리 권한 및 패스 설정

반응형

1. 항목 설명

root의 PATH 앞이나 중간에 현재 디렉터리를 뜻하는 .이 있으면 공격자가 놓아둔 동명 명령이 정상 시스템 명령보다 먼저 실행될 수 있습니다.

판단 기준: root PATH의 맨 앞이나 중간에 .이 없으면 양호, 포함되어 있으면 취약입니다.

2026 가이드 근거

출처: 과학기술정보통신부·한국인터넷진흥원, 「2026 주요정보통신기반시설 기술적 취약점 분석·평가 방법 상세가이드」, U-14, p.39. 본 게시글은 위 가이드의 판단 기준을 참고하여 작성했으며, 진단 결과와 증적은 개인 실습 환경에서 직접 수집했습니다.

2. 점검 목적

root가 신뢰되지 않은 현재 디렉터리의 프로그램을 실수로 우선 실행하는 경로 가로채기 위험을 방지하는 것이 목적입니다.

3. 실습 환경

  • 운영체제: Ubuntu Server 24.04.2 LTS
  • 커널: Linux 6.8.0-53-generic
  • 가상화 환경: VMware Workstation
  • 호스트 이름: u-lab
  • 수집 방식: VMware Ubuntu VM 콘솔에서 진단 명령 실행 및 화면 캡처
  • 네트워크: VMware Host-only 격리망, 기본 게이트웨이 없음
  • 실행 ID: 20260903-085839

취약 상태와 조치 상태의 반복 구성에는 격리된 Host-only 관리 연결을 보조적으로 사용했습니다. 단, 판단 명령과 결과는 Ubuntu VM 콘솔에서 직접 확인하고 VMware 콘솔 원본 화면으로 캡처했으며 외부 네트워크 경로는 두지 않았습니다.

4. 취약 상태 구성

전역 프로필 조각에서 기존 PATH 앞에 .을 추가해 현재 디렉터리가 가장 먼저 검색되도록 구성했습니다.

이 구성은 인터넷과 분리된 실습 VM에서 관리자 권한으로만 수행했습니다.

구성 방법

# /etc/profile.d/u14-path.sh
export PATH=".:${PATH}"

구성 후 다음 명령으로 실제 상태를 확인했습니다.

bash --noprofile --norc -c 'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin; source /etc/profile.d/u14-path.sh; echo PATH=$PATH'

5. 최초진단 결과

  • 판정: 취약
  • VM 콘솔 판정 근거: PATH가 .:/usr/local/sbin:...으로 시작해 현재 디렉터리가 최우선이었습니다.

U-14 최초진단 현황 증적

6. 조치 방법

실습용 프로필 조각을 제거하고 root가 사용하는 프로필 파일 전체에서 독립된 . 경로가 남아 있지 않은지 확인했습니다.

sudo rm /etc/profile.d/u14-path.sh
sudo grep -RHE '(^|:)[.](:|$)' /etc/profile /etc/profile.d /root/.profile /root/.bashrc

Linux 설정 확인 위치: /etc/profile, /etc/profile.d, /root/.profile, /root/.bashrc 및 sudo secure_path

U-14 Linux 설정 확인 화면 증적

7. 이행진단 결과

  • 판정: 양호
  • VM 콘솔 판정 근거: 검증 셸의 PATH에 독립된 . 항목이 없고 root 프로필 검색에서도 해당 설정이 발견되지 않았습니다.

U-14 이행진단 현황 증적

8. 실무 주의사항

가이드는 .을 마지막으로 이동하는 예시를 제시하지만 운영상 필요가 없다면 완전히 제거하는 편이 안전합니다. sudo의 secure_path와 systemd 서비스 환경도 별도입니다.

컨설턴트 조언

  • root 로그인 셸, /etc/profile.d, 개인 프로필과 sudoers의 secure_path를 모두 확인합니다.
  • 빈 PATH 요소인 앞·뒤 콜론이나 ::도 현재 디렉터리를 의미할 수 있어 함께 탐지합니다.
  • 관리 스크립트는 PATH에 의존하지 말고 중요 명령에 절대 경로를 사용하도록 개선합니다.
  • 변경 후 cron, 백업, 패치와 장애 조치 스크립트를 실행해 명령 탐색 영향이 없는지 확인합니다.

9. 마무리

root PATH에서 현재 디렉터리와 빈 경로 요소를 제거하고 관리 스크립트는 절대 경로를 사용해야 합니다.

반응형