본문 바로가기
MAKESITE

점검 항목 · 보안

디렉터리 목록 노출

이름을 맞혀야 하는 공격이 이름을 읽는 일로 바뀝니다. 업로드 폴더에서는 남이 올린 파일이 보이고, 백업 폴더에서는 덤프 파일이 이름째 드러납니다.

심각도 높음 보안 무료 스캔 판정 항목 /check/directory-listing

01DEFINITION

한 줄로 말하면

파일 목록이 그대로 보이는 폴더는 공격자에게 지도를 건네는 것과 같습니다. 업로드 폴더에서 다른 사람이 올린 파일이 보이고, 백업 폴더에서는 데이터베이스 덤프가 이름째 드러납니다. 색인 파일 하나를 두거나 서버 설정 한 줄로 막을 수 있는 일입니다.

02RISK

없으면 무슨 일이 생기나

이 항목의 크기는 옆 항목과 겹칠 때 정해집니다. 링크 없는 파일을 찾는 공격은 원래 이름을 맞혀야 합니다. 흔한 이름 목록을 넣어 보고 200 이 나오기를 기다리는 일이라 맞히지 못하면 지나갑니다. 그런데 폴더 목록이 열려 있으면 그 단계가 통째로 사라집니다. 서버가 그 안에 무엇이 있는지 정확한 이름으로 알려 주기 때문입니다.

업로드 폴더가 가장 아픕니다. 회원이 올린 사업자등록증, 계약서 스캔본, 이력서 같은 것이 한 폴더에 쌓여 있고 파일명이 순번이나 원본 이름 그대로인 경우가 많습니다. 목록이 열려 있으면 로그인도 필요 없이 전부 내려받을 수 있습니다. 이때 유출되는 것은 우리 자료가 아니라 고객의 개인정보라, 사고가 나면 통지 의무가 따라옵니다.

백업이나 로그 폴더는 규모가 다릅니다. 데이터베이스 덤프 파일 하나가 이름째 드러나면 그 한 줄이 곧 전체 유출입니다. 그리고 목록 화면에는 파일 크기와 수정 시각이 함께 나오므로, 공격자는 어느 것이 최신이고 어느 것이 큰지 보고 가장 값나가는 하나만 골라 갑니다.

03CHECK IT YOURSELF

직접 확인하는 방법

아래는 저희를 거치지 않고 지금 해 보실 수 있는 방법입니다. 결과를 저희에게 보내실 필요도 없습니다.

  1. 01
    흔한 폴더를 열어 본다

    파일 목록이 표로 그려지면 걸린 것입니다. 아파치는 "Index of /경로" 라는 제목을 쓰고, Nginx 도 비슷한 목록을 그립니다. 403 이면 막혀 있는 것이고 404 는 그 폴더가 없는 것입니다.

    $ for d in /uploads/ /files/ /data/ /backup/ /images/ /assets/ /logs/; do
        printf "%-12s %s\n" "$d" "$(curl -s https://example.com$d | grep -o 'Index of[^<]*' | head -1)"
      done

나머지 확인 방법 2단계는 셀프수리 가이드에 있습니다.

04HOW TO FIX

고치는 방법

서버 환경에 따라 적을 자리가 다릅니다. 아래는 가장 흔한 구성 기준이고, 적용 전에 현재 설정을 백업하십시오.

서버 설정에서 목록 생성을 끈다

가장 확실한 방법이고 하위 폴더 전체에 걸립니다. 아파치는 Options 에서 Indexes 를 빼고, Nginx 는 autoindex 를 off 로 둡니다. 이 설정은 전역에서 끄고 필요한 곳만 켜는 방향이 맞습니다.

색인 파일을 두는 것은 보조 수단이다
업로드 폴더는 목록만 막아서 끝내지 않는다
조치 코드는 셀프수리 가이드에 있습니다. 서버 구성별 설정 원문 3단계와, 귀사 사이트에서 실제로 관찰된 값이 함께 실립니다 — 무엇을 어디에 적어야 하는지가 정해집니다.
가이드 안내 보기 · 먼저 무료로 진단받기
이미 열람권을 구매하셨다면 안내 메일의 가이드 링크로 바로 열립니다 — 링크를 잃으셨다면 문의 주시면 다시 보내 드립니다.
주의. 목록을 막는 것과 파일을 막는 것은 다른 일입니다. 이 항목이 통과해도 이름을 아는 사람은 그대로 내려받습니다. 개인정보나 계약 자료가 있는 폴더라면 세 번째 조치까지 가셔야 합니다.

05FAQ

자주 묻는 질문

이미지 폴더가 보이는 것도 문제인가요

내용에 따라 다릅니다. 상품 사진만 있다면 잃을 것이 적습니다. 다만 그 목록이 사이트의 구조와 파일 명명 규칙을 알려 주고, 아직 공개하지 않은 신제품 이미지나 시안이 섞여 있는 경우가 흔합니다. 위험도가 낮다고 열어 둘 이유는 없습니다 — 끄는 데 한 줄이 듭니다.

index.html 을 넣었는데도 이 항목에 걸립니다

하위 폴더 중 하나가 남아 있을 가능성이 큽니다. 연도·월로 자동 생성되는 업로드 폴더는 새로 만들어질 때 색인 파일이 안 들어갑니다. 그래서 이 방법은 보조 수단이고, 서버 설정에서 끄는 쪽이 새 폴더까지 함께 막습니다.

목록이 보여야 편한 폴더가 있는데요

내부에서 파일을 주고받는 용도라면 그 폴더만 접근 IP 를 제한하거나 인증을 걸고 목록을 켜십시오. 전역에서 끄고 예외를 하나 두는 것이, 전역에서 켜고 위험한 곳을 하나씩 막는 것보다 안전합니다. 빠뜨렸을 때 어느 쪽으로 기우는지가 다릅니다.

이 항목과 링크 없는 파일 항목은 무엇이 다른가요

순서가 다릅니다. 링크 없는 파일은 이름을 맞혀야 열리고, 이 항목은 서버가 이름을 알려 줍니다. 그래서 둘이 함께 걸리면 앞의 것이 쉬워지는 정도가 아니라 필요 없어집니다. 조치도 짝으로 하시는 것이 맞습니다.
여기까지는 항목 일반론입니다. 무엇이고 왜 문제이며 어떻게 고치는지는 감출 이유가 없어 그대로 적었습니다. 리포트에 들어가는 것은 귀사 사이트에서 실제로 어떤 값이 나왔는지 — 어느 주소의 어느 응답인지, 그 환경에서 어떤 순서로 적용해야 하는지, 예상 공수가 얼마인지입니다. 이 페이지만 보고 직접 고치셔도 되고, 실제로 그러시라고 적어 두었습니다.

GET STARTED

내 사이트는
이 항목을 통과할까요

주소만 넣으시면 이 항목을 포함해 58가지를 판정해 점수와 실패 개수를 보여 드립니다. 로그인도, 소유 확인도 필요 없습니다 — 전부 밖에서 관찰만 하는 항목이기 때문입니다.

무료 스캔 문의하기 로그인