인프라

[보안취약점] 웹서비스 메소드 설정 및 조치 방안 (GET POST PUT PATCH...)

소행성왕자 2023. 7. 25. 09:29

http method

웹 메소드명 특징
GET 요청하는 내용이 URL에 노출되는 형태이며, Request-URI 뒤에 붙는 query string에는 길이 제한이 있다. 요청을 보내고 응답을 받는 형태로 검색 등에 사용된다.
HEAD GET과 유사하지만, Response로 BODY를 반환하지 않고 응답코드만 있다.
응답내용이 필요없이 정상 호출 여부를 확인할 때 사용하는 Health-Check 페이지 등에 사용한다.
POST Request body 내용에 데이터를 담아 전송하는데 사용하며, 생성이나 수정 용도로 사용된다.
PUT POST 방식과 유사하게 데이터를 전송하는 용도이지만, Update의 성격이 더 강하다.
DELETE 요청하는 대상에 대해 삭제하도록 하는 메소드
이름만 봐도 느껴지지만 안전상의 이유로 해당 메소드는 사용하지 못하게 차단하는 것을 권고한다.
OPTIONS 웹서버에서 지원되는 메소드의 종류를 확인하기 위해 사용된다.
웹 서비스 메소드 공격을 위해서 해당 메소드로 허용가능 대상을 확인 후 진행할 수 있으니, 막아두는 것이 좋다.  
TRACE 요청을 보내면 클라이언트의 요청 메시지를 그대로 반환하여 응답하는 'loop-back' 형태의 메소드
TRACE 메소드를 사용 시, 클라이언트의 쿠키정보 및 다양한 정보가 포함될 수 있는데 이걸 가로채는 공격을 시도할 수 있다고 하니 해당 메소드도 막는 것이 좋다.
CONNECT 요청한 리소스에 대해 양방향 연결을 할 수 있도록 하는 메소드로, CONNECT을 통해 터널을 열어줄 수 있다.

 

톰캣에서 웹서비스 메소드 제한

web.xml 추가

<security-constraint>
  <web-resource-collection>
    <web-resource-name>Web Service Method type </web-resource-name>
    <url-pattern>/*</url-pattern>

    <http-method>PUT</http-method>
    <http-method>DELETE</http-method>
    <http-method>OPTIONS</http-method>
    <http-method>TRACE</http-method>

  </web-resource-collection>
  <auth-constraint />
  </security-constraint>

 

크롬 확장팩 Talend API Tester 사용

https://chrome.google.com/webstore/detail/talend-api-tester-free-ed/aejoelaoggembcahagimdiliamlcdmfm/related

 

Talend API Tester - Free Edition

Visually interact with REST, SOAP and HTTP APIs.

chrome.google.com