반응형
년초가 되니 운영중인 사이트들에 대해 취약점 점검 문서를 받았다.
그렇게 크리티컬한 이슈는 없었고 처음보는 형태의 취약점이였는데, 찾아보니 예전부터 존재하던 취약점이였다.
웹에서는 보통 GET, POST만을 사용하는데 불필요한 메소드인 PUT, DELETE, COPY, MOVE 등이 허용되어 있어 외부에서 공격자가 해당 메소드를 사용하여 웹 서버의 파일을 생성하거나 변조, 삭제하는 등 문제를 야기시킬수 있다는 내용이였다.
TRACK메소드외 불필요한 메소드 제거하기
톰캣, 스프링 환경의 프로젝트였고, 관련 처리 방법을 찾아보니, 먼저 web.xml에 아래의 설정을 하라고 되어있었다.
web.xml
<security-constraint>
<web-resource-collection>
<web-resource-name>Protected Context</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>PUT</http-method>
<http-method>DELETE</http-method>
<http-method>HEAD</http-method>
<http-method>TRACE</http-method>
<http-method>OPTIONS</http-method>
</web-resource-collection>
<auth-constraint/>
</security-constraint>
해당 메소드들을 허용하지 않겠다는 옵션 설정으로 최하단에 해당 코드를 입력하고 재구동하였지만, 여전히 ALLOW에 비허용되어야 할 리스트들이 보였다.
적용되었는지 확인은 curl명령어를 통해 확인하였다.
cmd창을 열어서 아래와 같이 명령어를 실행한다. TRACE메소드를 사용하며 제일 마지막에 전송할 url을 입력하면 된다.
그러다 tomcat설정 파일 중 server.xml에 allowTrace를 true옵션을 처리하라는 글을 확인하고 설정 후 재기동하였다.
/conf/server.xml
<Service name="Catalina">
<!--The connectors can use a shared executor, you can define one or more named thread pools-->
<!--
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="150" minSpareThreads="4"/>
-->
<!-- A "Connector" represents an endpoint by which requests are received
and responses are returned. Documentation at :
Java HTTP Connector: /docs/config/http.html
Java AJP Connector: /docs/config/ajp.html
APR (HTTP/AJP) Connector: /docs/apr.html
Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
-->
<Connector connectionTimeout="20000" maxParameterCount="-1" maxPostSize="-1" port="80" protocol="HTTP/1.1" redirectPort="8443"
allowTrace="true" />
<!-- 이하생략 -->
allowTrace옵션을 주고 curl을 통해 재확인을 해보니 정상적으로 allow의 옵션이 사라진걸 볼 수 있었다.
반응형
'ETC.' 카테고리의 다른 글
Docker - 방화벽 이슈(서비스를 올리면 외부망 허용 현상) (4) | 2021.05.03 |
---|---|
티스토리(tistory) 블로그에 CodePen으로 소스 올리기 (0) | 2020.12.15 |
크롬브라우저 focus시 CSS 검은색 라인 제거하기 (0) | 2020.05.29 |
윈도우에서 대용량 텍스트, 로그파일 확인하기 (0) | 2020.05.13 |