웹 취약성 검사 대비하기 !

2018. 10. 26. 13:39인프라/Web Server & WAS

이번 프로젝트에서 웹 취약성 검사에 나왔던 이슈관련 정리입니다.


1.Content-Security-Policy ->간단하게 페이지에서 사용하는 모든 자원에 대한 제한을 거는 설정입니다. 즉, XSS관련 공격을 막아줍니다.

2.X-Content-Type-Option ->MIME을 무시하지 않게 제한합니다. 즉, mime기반 공격을 막아줍니다.(반드시 정해진 mime type으로만 화면을 렌더링하게함)

3.X-XSS-Protection ->XSS 공격을 막아줍니다.


출처:http://cyberx.tistory.com/171 ->개략적인 웹 취약성을 방지해주는 헤더들의 설명이 들어간 블로그.


검사에서 나왔던 요소들이었습니다. 그래서 이러한 헤더 설정을 위하여 Apache의 httpd.conf 파일에 정의했습니다.



1
2
3
4
5
<IfModule mod_headers.c>
    Header set Content-Security-Policy "script-src 'self' ; img-src 'self'; style-src 'self' 'unsafe-inline';connect-src http:; child-src 'unsafe-inline'"
    Header set X-Content-Type-Options nosniff
    Header set X-XSS-Protection "1;mode=block"
</IfModule>
cs




해당 설정의 요소들은 구글링하면 자료를 많이 찾으실수 있습니다. 몇개만 예로 설명하면 script-src 'self' 같은 경우는 자바스크립트 코드는 해당 도메인 내의(자신의 도메인) 코드만 이용해라라고 제한하는 것이고(ex /js/script.js 같이 자신의 리소스자원에 있는), unsafe-inline 같은 경우는 보안에 좋지 않은 제한 범위이지만 html소스내에서 <script></script> 코드로 박혀있는 애들도 사용할수 있게 해라라는 뜻입니다. 해당 'self','insafe-inline'은 하나 이상 적용가능합니다. connect-src http: 같은 경우는 http:로 들어오는 모든 요청에 커넥션(ajax...등)을 받을 수 있게 합니다.


X-Content-Type-Options nosniff 같은 경우는 헤더가 응답 내용 유형을 무시하지 않도록 브라우저에 지시하므로 Internet Explorer가 선언 된 내용 유형에서 응답을 MIME 스니핑하지 못하게합니다. nosniff 옵션을 사용하면 서버에서 내용이 text / html이라고하면 브라우저는 text / html로 렌더링합니다.


X-XSS-Protection "1;mode=block" 같은 경우는 공격자가 XSS 공격을 시도할때 내장되어있는 XSS-Filter를 이용해 공격을 막을 수 있게 하는 설정입니다.




이 3개 이외에도 많은 웹 취약성을 보완해주는 설정들이 많습니다. 자신의 프로젝트 성격에 맞는 설정들을 찾으면 됩니다.