[CTF] 2019 사이버공격방어대회 예선 System Hardening
2019 사이버공격방어대회 예선에서 시스템 하드닝이라는 분야를 처음 접했다.
서로 다른 환경의 설정 파일을 조건에 맞게 수정하여 업로드하면 플래그를 준다.
총 3개의 문제가 나왔고 web.xml, elasticsearch.yml, django 설정을 바꾸는 것이었다.
web.xml
- web.xml 설정을 수정해서 PUT, DELETE 메소드를 차단하세요.
ATTACHMENT를 클릭하면 설정 파일이 다운로드 되고, 그 파일을 수정하면 된다.
업로드 해야 할 파일과 테스트 스크립트도 알려준다.
PUT,DELETE 메소드를 차단하려면 <security-constraint>
옵션을 추가해주면 된다.
모든 요청에 대해 PUT, DELETE 메소드를 차단하는 설정은 다음과 같다.
<security-constraint>
<web-resource-collection>
<web-resource-name>Restricted methods</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>
elasticsearch.yml
- elasticsearch.yml 파일을 수정해서 localhost Bind 만 허용되게 하시오
elasticsearch.yml은 처음 들어보는 파일이었다.
그래도 web.xml보다 훨씬 짧고 간단하다!
Elasticsearch Network Settings Elasticsearch의 네트워크 설정에 관한 레퍼런스를 참고하면 network.host
를 다음과 같이 설정할 수 있다.
localhost Bind만 허용되게 해야하므로
network.host: 0.0.0.0
를 network.host: _local_
로 변경해주면 된다.
Django
- django 설정을 변경해서 DEBUG 모드를 Off하세요
Django는 한 번도 안써봤는데 elasticsearch.yml 보다 간단했다.
설정 파일 폴더/django_proj/settings.py
를 수정하면 된다.
DEBUG = True
를 DEBUG = False
로 바꿔주기만 하면 된다.
시스템 하드닝 분야는 생소한 이름과는 다르게 점수를 거저주는 문제였다. 보안 설정에 대해 새로운걸 알게돼서 좋은 기회였다 :)