← 홈
주요통신기반시설

DI · 디렉터리 인덱싱

#주요통신기반시설 #WEB-08

개요

주요정보통신기반시설 기술적 취약점 분석·평가 방법 상세가이드의 DI 개요 원문
점검 내용웹 애플리케이션 서버 내 디렉터리 인덱싱 취약점 존재 여부 점검
점검 목적디렉터리 인덱싱 취약점을 제거하여 특정 디렉터리 내 불필요한 파일 정보의 노출 및 비인가자가 민감한 파일에 대한 접근을 차단
보안 위협해당 취약점이 존재할 경우, 브라우저를 통해 특정 디렉터리 내 파일 리스트가 노출되어 응용 시스템의 구조가 외부에 공개될 수 있으며, 민감한 정보가 포함된 설정 파일 등이 노출될 경우 보안상 심각한 위험을 초래할 수 있음
참고※ 디렉터리 인덱싱 취약점: 특정 디렉터리의 초기 페이지(index.html, home.html, default.asp 등) 파일이 존재하지 않을 때 디렉터리 목록을 출력하는 취약점
대상웹 애플리케이션 서버
판단 기준양호 : 디렉터리 파일 리스트가 노출되지 않는 경우
취약: 디렉터리 파일 리스트가 노출되는 경우
조치 방법웹 애플리케이션 서버 설정을 변경하여 디렉터리 파일 리스트가 노출되지 않도록 설정
조치 시 영향일반적인 경우 영향 없음

원리

디렉터리 인덱싱(Directory Indexing)이란 웹 서버에 특정 디렉터리의 기본 페이지(index.html, index.php 등)가 없을 때, 해당 폴더 안의 모든 파일과 하위 폴더 목록을 웹 브라우저에 노출하는 기능이다.

디렉터리 인덱싱 취약점은 이 기능이 켜져 있어서 발생한다.

브라우저가 디렉터리로 끝나는 주소를 요청하면 서버는 먼저 기본 문서를 찾는다. 기본 문서로는 index.html, index.php, default.asp 같은 파일들이 있다. 기본 문서가 있으면 해당 파일을 브라우저로 전달해 화면에 표시한다. 만약 기본 문서가 없고 디렉터리 인덱싱 기능이 켜져 있다면 브라우저에는 해당 폴더 안의 모든 파일과 하위 폴더 목록까지 전부 보여주게 된다. 반면 해당 기능이 꺼져 있다면 서버는 403(접근 거부)을 반환한다.

점검

점검 대상 : /uploads/, /logs/, /data/, /backup/

Step 1) URL 경로 중 확인하고자 하는 디렉터리 경로에 대하여 주소창에 입력하여 인덱싱 여부 확인

/backup/ 경로에 접속하였고, 아래 사진처럼 디렉터리 인덱싱 기능이 켜져 있어 파일 목록을 볼 수 있다.

조치 방안

Apache

  • httpd.conf 파일 내 Indexes 옵션 제거 후 서버 재기동

Apache 서버 설정 예시

<Directory /var/www/html>
          Options Indexes FollowSymLinks
          # Indexes 옵션 제거
          Options FollowSymLinks
</Directory>

Tomcat

  • web.xml 파일 내 아래 지시자 수정 후 서버 재기동

Tomcat 서버 설정 예시

<init-param>
          <param-name>listings</param-name>
          <param-value>false</param-value>
</init-param>

IIS (6.0 이하)

  • 인터넷 정보 서비스 → 등록 정보 → 홈 디렉터리 → 디렉터리 검색 해제

IIS (7.0 이상)

  • IIS 관리자 → 디렉터리 검색 → 사용 안 함

Nginx

  • /etc/nginx/sites-available/default 등 파일 내 아래 지시자 수정 후 서버 재기동

Nginx 서버 설정 예시

...
server {
    location / {
        autoindex off;
    }
}
...