HTTP 헤더 처리

웹 클라이언트가 웹 서버로 요청을 전달할 때나 웹 서버가 쿼리를 응답할 때, 응답의 앞 부분은 HTTP 요청이거나 HTTP 응답이 된다. HTTP 응답/요청 후에 비로소 클라이언트/서버는 HTTP 헤더를 전송한다. 요청 헤더 필드에서는 클라이언트가 서버로 추가적인 정보를 전송한다. HTTP 헤더에는 브라우저 종류, 운영 체제 정보, 세부적인 인증 정보 등과 같은 정보를 포함한다. 클라이언트 헤더는 요청을 어떤 애플리케이션이 담당하는지 확인하기 위해 유저-에이전트(User-Agent) 속성을 이용한다.

HTTP 필터의 도움을 통해 특정한 HTTP 헤더를 차단할 수 있다.
사용자 삽입 이미지

Server Header 필드 설정값을 통해 관리자는 응답가 기타 설정에 있어 HTTP 헤더의 값을 벼경하거나 HTTP 헤더를 제거할 수 있다.

다음 화면에서는 P2P 프로그램으로 유명한 Kazaa를 차단하는 예이다.
사용자 삽입 이미지


HTTP 시그내처

HTTP 시그내처는 HTTP 본문 또는 헤더에 위치한다. 여러분은 특정한 애플리케이션의 실행을 거부하기 위해 HTTP 시그내처를 이용할 수 있다. 문제는 여러분이 특정 애플리케이션에서 사용하는 시그내처가 무엇인지 알아 내는 것이다. 인터넷에서 검색해 보면 일부 문서가 공개되어 있지만, 가장 좋은 방법은 네트워크 스니터 프로그램과 같은 프로그램을 사용하여 HTTP 시그내처를 직접 확인할 수도 있다.

중요 정보: ISA 2006에서는 요청 또는 응답이 UTF-8로 인코딩된 경우에만 HTTP 시그내처를 필터링할 수 있다.

사용자 삽입 이미지

아래 그림은 MS Live Messenger 프로토콜을 차단하는 예이다.

사용자 삽입 이미지


자주 사용되는 프로그램의 시그내처에 대한 정보를 얻고자 한다면 여기를 클릭하세요.


중요 정보: ISA 2006에서는 요청/응답의 맨 앞부분 100 바이트에 대해서만 검사를 한다.검사하는 최대 바이트 수를 늘릴 수 있지만, 시스템의 부하를 줄 수 있다는 점을 주의하자.

아래 그림은 HTTP 필터가 차단했을 때 브라우저에서 보여 주는 오류 화면의 예이다.
사용자 삽입 이미지

특정한 HTTP 헤더 찾는 방법

어떤 HTTP 시그내처는 여러분이 생소할 수도 있다. 하지만, Windows Netmon 3.0과 같은 프로그램을 사용하여 HTTP 네트워크 트래픽을 추적할 수 있다.

다음 그림은 Wireshark(예전의 Ethereal)과 같은 네트워크 모니터링 프로그램인 Microsoft Netmon 2.0의 출력 화면의 예이다.
사용자 삽입 이미지

위의 예를 보면, 요청 형식(GET), HTTP 요청 헤더(HTTP/1.1), 유저-에이전트(Mozilla/4.0), 시그내처(MSIE 6.0)임을 알 수 있다.


HTTPFILTERCONFIG.VBS

또한, ISA2006 SDK에서 HTTPFILTERCONFIG.VBS 파일을 이용하여 HTTP 필터 구성 정보를 가져오거나 내보낼 수 있다.(경로: :\PROGRAMME\MICROSOFT ISA SERVER 2006 SDK\SDK\SAMPLES\ADMIN)

사용자 삽입 이미지


마치며

지금까지 ISA 2006에서 제공하는 HTTP 필터의 동작 원리에 대해 살펴 보았다. HTTP 필터는 악성코드, 트로이 목마, 웜을 차단할 수 있는 강력한 도구이다. 또한, 특정한 HTTP 시그내처를 차단하는데도 유용하게 사용된다. MS Live Messenger와 같이 방화벽에서 일반적으로 차단하는 방식인 포트 차단으로 막을 수 없는 경우 시그내처 차단을 통해 가능해 진다.

관련 자료 안내

ISA Server 2006 SDK

Common Application signatures

More about the HTTP protocol


reTweet
Posted by 문스랩닷컴
blog comments powered by Disqus


    Web Analytics 태그 앞에 붙여 넣습니다. -->