|
2008년 11월 05일
TraceEnable 「TraceEnable」는 Apache에 디폴트로 허가되어 있는 「Trace」메소드의 온・오프를 설정하는 옵션으로 Apache 1.3.34 와 2.0.55부터 서포트되고 있다. telnet 192.168.0.201 80
HTTP/1.1 200 OK Date: Tue, 25 Jul 2006 01:39:23 GMT Server: Apache Transfer-Encoding: chunked Content-Type: message/http 25 TRACE / HTTP/1.1 Host: www.pentest.com 리퀘스트에 송신한 문자열 「Host: www.test.com」이 그대로 반환되었다. 왜 이 메소드가 문제가 되는가 하면 Trace메소드를 사용한 공격 방법에 「XST(Cross-Site Tracing)」이라는 것이 있기 때문이다. 다운로드: http://www.cgisecurity.com/lib/WH-WhitePaper_XST_ebook.pdf
이런 이유로 Trace메소드를 무효로 할 것을 권장하고 있는 것이다.
그럼 실제로 httpd.conf를 변경해 보자. 실제로는 매우 간단하다. httpd.conf의 적당한 부분에 다음을 기술하고 Apache를 재기동한다. TraceEnable Off 「TraceEnable Off」를 기술하기 전과 후의 Apache 반응을 「OPTIONS」메소드를 사용하여 비교해 보자. 적용 전 telnet 192.168.0.201 80 HTTP/1.1 200 OK
telnet 192.168.0.201 80 HTTP/1.1 200 OK 「적용 후」에는 「Allow」부분에 「TRACE」가 삭제되어 있다. Apache 1.3.34과 2.0.55에는 「TraceEnable」가 서포트되고 있어 상기와 같이 간단히 TRACE메소드를 무효로 할 수 있지만, 이전 버전(1.3.33과 2.0.54)을 사용하고 있는 경우에는「mod_rewire」를 사용하는 방법이 있다. 이 방법은 「TraceEnable」과는 달리 TRACE메소드가 허가되고 있는 것처럼 보이지만, 내부 처리에 의해 무효화하는 방법이다.
우선, 「mod_rewrite」가 유효하게 되어 있는지 확인한다. 무효로 되어 있다면 유효하게 할 것. LoadModule rewrite_module libexec/mod_rewrite.so 위의 부분이 확인되었다면, 적당한 부분에 <IfModule mod_rewrite.c>
이것으로 TRACE메소드는 유효하게 되어 있지만, 클라이언트로부터 송신할 수 없게 된다.
예를 들어 TRACE메소드를 송신한 경우 적용 전 telnet 192.168.0.201 80 Host:localhost HTTP/1.1 200 OK Date: Tue, 11 Jul 2006 10:57:30 GMT Server: Apache/1.3.12 (Unix) Transfer-Encoding: chunked Content-Type: message/http TRACE / HTTP/1.1 Host: localhost
telnet 192.168.0.201 80 Host: localhost HTTP/1.1 403 Forbidden Date: Tue, 11 Jul 2006 10:55:04 GMT Server: Apache/1.3.12 (Unix) Transfer-Encoding: chunked Content-Type: text/html; charset=iso-8859-1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <HTML><HEAD> <TITLE>403 Forbidden</TITLE> </HEAD><BODY> <H1>Forbidden</H1> You don't have permission to access / on this server.<P> <HR> <ADDRESS>Apache/1.3.12 Server at localhost.localdomain Port 80</ADDRESS> </BODY></HTML>
「적용 후」를 보면 알 수 있듯이 TRACE메소드를 송신할 수 없게 되어 있다. ■ IIS(Intenet Information Service)의 경우 IIS Lockdown툴에 포함되어 있는 URLScan을 사용한다. 1. IIS Lockdown Tool을 설치한다. 2. IIS Lockdown Tool에 포함되어 있는 URLScan을 설치한다. 3. urlscan.ini에 다음의 내용을 추가한다. ◇ UseAllowVerbs=1을 지정한 경우 [options] UseAllowVerbs=1 [AllowVerbs] GET HEAD POST ◇ UseAllowVerbs=0을 지정한 경우 [options] UseAllowVerbs=0 [DenyVerbs] TRACE TRACK [2] IIS Lockdown Wizard 툴 http://www.microsoft.com/korea/technet/security/tools/locktool.asp
[3] URLScan 보안 툴 http://www.microsoft.com/korea/technet/security/URLScan.asp
[4] KB326444 - URLScan 툴의 구성 방법 http://support.microsoft.com/kb/326444/ko ■ Sun One WebServer (iPlanet6.0SP2이후 버전) 1. /config/obj.conf의 Default오브젝트안에 다음의 기술을 추가한다. <Client method=""TRACE""> AuthTrans fn=""set-variable"" remove-headers=""transfer-encoding"" set-headers=""content-length: -1"" error=""501"" </Client> 2. 웹 서버를 재기동한다. [5] Sun ONE/iPlanet Web Server Enable HTTP TRACE Method by Default to Emulate the CERT VU http://sunsolve.sun.com/search/document.do?assetkey=1-26-50603-1 ※ 로그인 사용자만 덧글을 남길 수 있습니다.
|
|