본문 바로가기

정보보안 일반/Snort

[Snort] HTTP 통신 URI 탐지 옵션 비교 (uricontent vs http.uri)

728x90
반응형

HTTP 통신 URI 탐지 옵션 비교 (uricontent vs http.uri)

 

Snort는 네트워크 침입 탐지 및 방지 시스템으로 다양한 HTTP 트래픽 분석 기능을 제공합니다. 특히 HTTP 요청에서 URI를 탐지하는 기능은 아주 중요합니다. Snort에서 URI 내용을 탐지하기 위해 주로 사용되는 옵션은 http.uriuricontent입니다. 이 두 옵션의 차이점과 활용 방법에 대해 자세히 비교해 보겠습니다.

 

uricontent vs http.uri

1. uricontent

  • 기능: uricontent는 HTTP 요청에서 정규화된 URI 내용을 탐지하는 데 사용됩니다. URI의 인코딩(예: %20으로 표시되는 공백 등)이 일관되게 처리되어 분석됩니다.
  • 장점: URI 내에 포함된 다양한 인코딩 형식이 표준 형태로 변환되어 일관된 탐지가 가능합니다. 이를 통해 공격자가 URI를 인코딩하여 우회하려는 시도를 효과적으로 방어할 수 있습니다.
  • 사용 예시:이 규칙은 HTTP 요청의 정규화된 URI에 "/admin"이라는 경로가 포함될 때 경고를 발생시킵니다.
  • alert tcp any any -> any 80 (msg:"Normalized URI match"; uricontent:"/admin"; sid:1000001;)

2. http.uri

  • 기능: http.uricontent 키워드와 함께 사용되어 정규화되지 않은 원본 URI 내용을 탐지합니다. URI의 인코딩이 그대로 유지된 상태로 분석됩니다.
  • 장점: 원본 URI 내용을 분석할 때 유용하며, 특정 인코딩이나 비표준 형식으로 작성된 URI를 탐지할 수 있습니다.
  • 사용 예시:이 규칙은 HTTP 요청의 원본 URI에 "/admin"이라는 경로가 포함될 때 경고를 발생시킵니다.
  • alert tcp any any -> any 80 (msg:"Raw URI match"; content:"/admin"; http_uri; sid:1000002;)

3. 두 옵션의 차이점

  • 정규화 처리 여부: uricontent는 URI를 정규화하여 탐지하는 반면, http.uri는 원본 그대로 탐지합니다. 이로 인해 uricontent는 다양한 인코딩 변형을 처리할 수 있는 반면, http.uri는 보다 세부적인 원본 매칭이 필요할 때 유리합니다.
  • 사용 목적:
    • uricontent: 일반적인 웹 공격 시도 탐지, URI 인코딩 우회 방지.
    • http.uri: 특정 인코딩된 URI 패턴이나 정규화되지 않은 형태의 URI 탐지.

 

4. HTTP 메서드와의 관계

uricontenthttp.uriHTTP 메서드(GET, POST 등)와 무관하게 URI 내용을 탐지합니다. 즉, 요청이 GET이든 POST이든 상관없이 해당 URI 패턴을 탐지합니다. 만약 특정 메서드에 대한 탐지를 원한다면, http_method 옵션을 함께 사용해야 합니다.

 

alert tcp any any -> any 80 (msg:"GET request with /example"; http_method:GET; uricontent:"/example"; sid:1000003;)

 

이 규칙은 HTTP GET 요청에서 URI에 "/example"이 포함될 때만 탐지합니다.

 

5. 결론

uricontenthttp.uri는 Snort에서 HTTP URI 분석을 위한 핵심 옵션입니다. uricontent는 정규화된 URI 탐지에 적합하고, http.uri는 원본 형태의 URI를 정확히 탐지할 때 유리합니다. 필요에 따라 두 옵션을 적절히 사용하여 웹 애플리케이션 보안을 강화할 수 있습니다.

728x90
반응형