[Oisf-devel] http_host & http_raw_host
Anoop Saldanha
anoopsaldanha at gmail.com
Tue Mar 19 12:05:25 UTC 2013
On Tue, Mar 19, 2013 at 5:26 PM, Victor Julien <victor at inliniac.net> wrote:
> On 03/19/2013 12:22 PM, Anoop Saldanha wrote:
>> On Tue, Mar 19, 2013 at 4:35 PM, Victor Julien <victor at inliniac.net> wrote:
>>> On 03/19/2013 12:03 PM, Anoop Saldanha wrote:
>>>> On Tue, Mar 19, 2013 at 4:23 PM, Victor Julien <victor at inliniac.net> wrote:
>>>>> In the new http_host, which host is selected if we have:
>>>>>
>>>>> GET http://one/ HTTP/1.0
>>>>> Host: two
>>>>>
>>>>> One or two?
>>>>
>>>> One. The uri value gets priority over the header value.
>>>>
>>>>>
>>>>> I know "alert http any any -> any any (msg:"SURICATA HTTP Host header
>>>>> ambiguous"; flow:established,to_server;
>>>>> app-layer-event:http.host_header_ambiguous;
>>>>> flowint:http.anomaly.count,+,1; classtype:protocol-command-decode;
>>>>> sid:2221015; rev:1;)" will fire in this case, but I assume the http_host
>>>>> keyword will fire on something as well.
>>>>>
>>>>> Also, what does http_raw_host match on specifically?
>>>>>
>>>>
>>>> Same logic as above.
>>>>
>>>
>>> Thanks.
>>>
>>> What is the overall difference between http_host and http_raw_host? I
>>> don't think we do normalization of the host, do we?
>>>
>>
>> Case difference, iirc. http_host is lowercase. Will need to check
>> with libhtp, though.
>>
>
> Cool, please let me know.
>
> Was wondering about something related. http_host is normalized to
> lowercase. Yet it seems the rules are forced to set nocase, which is odd
> I think.
I forced the nocase so that users don't have the misconception that
they can use a uppercase pattern without a nocase, and it still
matches against a lowercase uri.
> Adding nocase makes sure we take a slower code path while we
> have no case to consider at all. We should only consider it at the rule
> parsing stage.
>
We don't take a slower code path. If anything it is faster or am I
missing something? It's considered at rule parsing stage.
> So I think we need a different sort of warning:
>
> e.g.: content:"Google.com"; http_host;
>
> should warn "uppercase pattern against lowercase buffer, use lowercase
> pattern or "nocase" if you're stupid" :)
>
> Make sense?
>
Makes sense, although I feel we should error out on such sigs, rather
than warn. In the first place, such a sig is technically wrong, and
when we are reading such sigs quickly, we tend to not notice the
difference immediately.
--
Anoop Saldanha
More information about the Oisf-devel
mailing list