주요정보통신기반기설 기술적 취약점 분석 평가 방법 상세가이드/WEB 진단

25. 경로 추적 WEB [PT] - 주요정보통신기반시설 기술적 취약점 분석 평가 방법 상세 가이드(2021)

재민스 2021. 11. 10. 11:06

가. 취약점 개요

    내용 : 웹 서버와 웹 애플리케이션의 파일 또는 디렉터리의 접근 통제 여부 점검

    목적 : 웹 서버 또는 웹 애플리케이션의 중요한 파일과 데이터의 접근 및 실행을 방지하고자 함

    보안 위협

    -      웹 서버와 웹 애플리케이션의 파일 또는 디렉터리 접근이 통제되지 않아 웹 서버 또는 웹 애플리케이션의 중요한 파일과 데이터에 접근을 허용하는 취약점으로 웹 루트 디렉터리에서 외부의 파일까지 접근하여 이를 실행할 수 있음

    참고

    ※ 소스코드 및 취약점 점검 필요

 

나. 점검방법

    대상 : 웹 애플리케이션 소스코드, 웹 서버, 웹 방화벽

    판단기준

    -      양호 : 웹 루트 디렉터리보다 상위 디렉터리(. /root)에 접근이 불가능한 경우

    -      취약 : 웹 루트 디렉터리보다 상위 디렉터리에 접근이 가능한 경우

    점검방법

    Step 1) 웹 브라우저에 표시할 페이지를 지정하는 파라미터 값을 임의의 경로가 포함된 값으로 변조 후 전송하여 해당경로의 파일 내용이 웹 브라우저에 표시되는지 확인

        ../../../../../../../../../../../../etc/passwd

        ../../../../../../../../../../../../winnt/win.ini

        ../../../../../../../../../../../../boot.ini

 

    Step 2) "Step 1)"에서 변조하여 전송한 파라미터 값을 아래의 인코딩(또는 치환, 종단문자 추가)을 적용하여 재전송 후 해당경로의 파일 내용이 웹 브라우저에 표시되는지 확인

      

다. 조치방법

    사용자가 임의로 접근할 수 있는 최상위 디렉터리를 웹 루트 디렉터리로 설정하여 웹 서버의 시스템 루트 디렉터리로 접근하지 못하게 제한

    -      URL 인코딩: .(%2e), /(%2f), \(%5c)

    -      16bit 유니코드 인코딩: .(%u002e), /(%u2215), \(%u2216)

    -      더블URL 인코딩: .(%252e), /(%252f), \(%255c)

    -      경로 치환: //, .\\, .\/, ./\

    -      종단 문자 추가: [파일명]%00.jpg, [파일명]%0a.jpg

    보안설정방법

    -      웹 사이트에서 접근하려는 파일이 있는 디렉터리에 chroot 환경1) 적용 시 경로 추적 공격을 최소화할 수 있음

    -      chroot 디렉터리는 해당 디렉터리가 루트처럼 다뤄짐. chroot 파일 시스템은 대부분의 유닉스를 기반으로 한 플랫폼에서 지원 가능하며, 윈도우 플랫폼에서는 적절한 시작 디렉터리를 새로운 논리 드라이브로 만들어 웹 사이트에서 해당 드라이브를 통하여 접근하게 함 (: 웹 사이트의 최상위 디렉터리를 웹 루트 디렉터리로 제한)

    IIS

    -      인터넷 정보서비스(IIS) 관리> [해당 웹 사이트]> [속성]> [홈 디렉터리]> [구성] 버튼 선택> [옵션] 탭에서 [부모 경로 사용] 체크 해제

    -      애플리케이션 소스 파일을 수정하여 파일 내용을 웹 브라우저에 표시할 수 있는 디렉터리를  특정 디렉터리로 한정하고 이 외의 다른 디렉터리에서는 파일 내용을 표시할 수 없도록 설정해야 함

    -      PHP를 사용하는 경우 php.ini 에서 magic_quotes_gpc On으로 설정하여 .\./ 와 같은 역 슬러시 문자 입력 시 치환되도록 설정

    -      웹 사이트에서 사용되는 파라미터 값 대상으로 특수 문자를 필터링하도록 웹 방화벽 룰셋 적용

  

라. 조치시 영향

    일반적으로 영향 없음