백인감자
[웹 취약점] 웹서버 디렉토리 리스팅 방지 본문
웹취약점에 대해서 공부를 하다가 디렉토리 리스팅이 유독 민감하게 느껴져서 GPT 에 질문을 해봤고 아래와 같다.
- 디렉토리 리스팅 (Directory Listing):
- 서버 디렉토리의 파일 목록이 노출되어 민감한 정보가 유출될 수 있습니다.
- 예: 특정 디렉토리에 접근하면 해당 디렉토리 내의 파일 목록이 표시됨
디렉토리 리스팅(Directory Listing)은 웹 서버가 특정 디렉토리의 파일 목록을 브라우저에 표시하는 기능입니다. 이는 서버 설정에 따라 기본적으로 활성화되어 있거나, 개발자가 실수로 비활성화하지 않았을 때 발생할 수 있습니다. 디렉토리 리스팅이 활성화된 경우, 해당 디렉토리에 있는 파일과 폴더가 모두 노출될 수 있어 보안에 취약할 수 있습니다.
필자의 환경
- 인스턴스 : AWS EC2
- OS : Amazon Linux 2 (CentOS 기반)
- 웹서버 : Apache
실제 내가 사용중인 AWS EC2 인스턴스의 경우 웹서버를 Apache 를 쓰고 있는데 내가 임의로 만든 디렉토리 파일과 하위 디렉토리를 만들었는데 url 을 디렉토리까지 입력하니 디렉토리 리스트가 그대로 노출이 되었다.
취미용으로 AWS 를 쓰고 있지만 디렉토리가 노출되는것은 꺼림칙하기 때문에 조치를 아래와 같이 하였다.
내 경우 httpd.conf 의 경로는 /etc/httpd/conf/httpd.conf 였다.( centOS 기반)
또한 웹루트 디렉토리에 대해서 비활성화를 원했기 때문에 아래처럼 조치하였다.
1. httpd.conf 파일의 웹루트 디렉토리에 Options -Indexes 추가
2. 웹루트 디렉토리에 .htaccess 파일 추가 , 파일내용은 Options -Indexes
3. 1에서 만든 httpd.conf 파일에서 웹루트 디렉토리( <Directory "/var/www/html">) 에 대하여 AllowOverride All 로 수정
.
4. Apache 서버 재시작 (centOS기준) : sudo systemctl restart httpd
위의 1~4 과정대로 수행 후 다시 확인해보니 403에러를 표시하면서 디렉토리 리스팅 방지가 된 것을 확인했다.
* 위 과정 중 불필요한 중복과정이 있을 수 있음.
아래는 GPT 답변이다.