본문 바로가기
MAKESITE

점검 항목 · 보안

불필요한 HTTP 메서드 허용

이 항목은 누가 잘못 켠 것이 아니라 기본값이 넓어서 생깁니다. 브라우저가 쓰는 것은 두세 가지인데 서버는 그보다 많은 방식을 받아 주고, 그 사실을 아무도 확인해 본 적이 없습니다.

심각도 보통 보안 무료 스캔 판정 항목 /check/http-methods

01DEFINITION

한 줄로 말하면

브라우저가 쓰는 것은 대개 두세 가지인데 서버는 그보다 많은 요청 방식을 받아 줍니다. 파일을 올리거나 지우는 방식이 열려 있다면 그 자체가 통로이고, 진단용 방식이 열려 있으면 다른 이용자의 인증 정보가 되비쳐 나오는 공격에 쓰입니다. 쓰지 않는 것은 닫는 편이 맞습니다.

02RISK

없으면 무슨 일이 생기나

웹 서버와 애플리케이션 프레임워크는 대개 여러 요청 방식을 기본으로 받습니다. 브라우저가 실제로 쓰는 것은 페이지를 받는 방식과 폼을 보내는 방식 정도인데, 파일을 올리거나 지우는 방식이 함께 열려 있는 경우가 있습니다. 권한 검사가 앞에 있으면 바로 사고가 되지는 않지만, 그 검사에 구멍이 하나 생기는 순간 파일을 직접 쓰는 통로가 됩니다.

진단용으로 만들어진 방식은 성격이 다릅니다. 보낸 요청을 그대로 되돌려 주는 방식이 열려 있으면, 공격자는 이용자의 브라우저가 자동으로 붙이는 쿠키와 인증 헤더를 응답 본문으로 되비쳐 읽을 수 있습니다. HttpOnly 로 막아 둔 쿠키가 이 경로로 새어 나가는 것이 알려진 수법이고, 그래서 이 방식은 운영에서 열어 둘 이유가 없습니다.

허용 목록이 넓으면 다른 항목의 방어도 함께 약해집니다. 접근 제어를 특정 방식에만 걸어 둔 설정이 흔한데, 목록에 없는 방식으로 같은 주소를 부르면 그 검사를 지나가는 구현이 있습니다. 즉 이 항목은 단독으로도 위험이지만 다른 설정의 전제를 무너뜨리는 쪽에서 더 비쌉니다.

03CHECK IT YOURSELF

직접 확인하는 방법

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

  1. 01
    서버에게 무엇을 받는지 물어봅니다

    해당 주소에 대해 허용하는 방식을 응답 헤더로 알려 주는 요청이 있습니다. 답이 오면 그 목록이 곧 검토 대상이고, 답이 없다고 해서 닫혀 있는 것은 아닙니다.

    $ curl -sI -X OPTIONS https://example.com/ | grep -i '^allow'
    allow: GET,HEAD,POST,OPTIONS,PUT,DELETE,TRACE

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

04HOW TO FIX

고치는 방법

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

쓰는 것만 남기고 닫습니다

허용 목록을 좁히는 방식이 아니라 필요한 것만 통과시키는 방식이 안전합니다. 새 방식이 생겨도 자동으로 막히기 때문입니다. API 경로가 있다면 그 경로에만 필요한 방식을 따로 엽니다.

되돌려 주는 방식은 서버 설정에서 끕니다
앞단과 뒷단을 같이 봅니다
조치 코드는 셀프수리 가이드에 있습니다. 서버 구성별 설정 원문 3단계와, 귀사 사이트에서 실제로 관찰된 값이 함께 실립니다 — 무엇을 어디에 적어야 하는지가 정해집니다.
가이드 안내 보기 · 먼저 무료로 진단받기
이미 열람권을 구매하셨다면 안내 메일의 가이드 링크로 바로 열립니다 — 링크를 잃으셨다면 문의 주시면 다시 보내 드립니다.
주의. 저희 무료 진단은 이 항목을 판정하지 않습니다. 서버에 여러 방식으로 실제 요청을 보내야 알 수 있고, 그것은 남의 서버에 동의 없이 할 일이 아니기 때문입니다. 유료 진단에서도 이 항목은 계약 범위에 능동 점검이 포함될 때만 판정합니다.

05FAQ

자주 묻는 질문

PUT 이나 DELETE 를 쓰는 API 가 있는데 닫아도 되나요

그 경로에서는 열어 두십시오. 닫으라는 것은 쓰지 않는 경로까지 전부 열려 있는 상태입니다. 정적 파일을 주는 경로와 API 경로에 같은 허용 목록을 쓰고 있다면, 그것을 나누는 일이 이 항목의 조치입니다.

OPTIONS 도 닫아야 하나요

교차 출처 요청을 쓰는 사이트라면 브라우저가 이 방식을 먼저 보내므로 닫으면 기능이 멈춥니다. 이 방식 자체는 위험하지 않고, 문제는 그 응답이 알려 주는 목록이 넓은 것입니다. 목록을 줄이면 이 방식은 남겨 두어도 됩니다.

응답 헤더에 목록이 안 나오면 안전한가요

아닙니다. 알려 주지 않는 것과 받지 않는 것은 다릅니다. 목록을 감추는 설정을 쓰면서 실제로는 받고 있는 서버가 있습니다. 위의 두 번째와 세 번째 확인 방법처럼 실제로 보내 봐야 알 수 있습니다.

호스팅을 쓰는데 서버 설정을 못 고칩니다

Apache 계열이면 사이트 폴더의 설정 파일로 대부분 가능합니다. 그것도 막혀 있다면 호스팅사에 문의해 되돌려 주는 방식을 꺼 달라고 요청하십시오. 공유 호스팅에서는 서버 전체 설정이라 개별로 못 바꾸는 경우가 있고, 그때는 그 사실을 위험 목록에 적어 두는 것이 맞습니다.
여기까지는 항목 일반론입니다. 무엇이고 왜 문제이며 어떻게 고치는지는 감출 이유가 없어 그대로 적었습니다. 리포트에 들어가는 것은 귀사 사이트에서 실제로 어떤 값이 나왔는지 — 어느 주소의 어느 응답인지, 그 환경에서 어떤 순서로 적용해야 하는지, 예상 공수가 얼마인지입니다. 이 페이지만 보고 직접 고치셔도 되고, 실제로 그러시라고 적어 두었습니다.

GET STARTED

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

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

무료 스캔 문의하기 로그인