mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00

These functions are now deprecated in favor of alternative versions that return a vector of strings rather than a table of strings. Deprecated functions: - split: use split_string instead. - split1: use split_string1 instead. - split_all: use split_string_all instead. - split_n: use split_string_n instead. - cat_string_array: see join_string_vec instead. - cat_string_array_n: see join_string_vec instead. - join_string_array: see join_string_vec instead. - sort_string_array: use sort instead instead. - find_ip_addresses: use extract_ip_addresses instead. Changed functions: - has_valid_octets: uses a string_vec parameter instead of string_array. Addresses BIT-924, BIT-757.
53 lines
1.3 KiB
Text
53 lines
1.3 KiB
Text
@load base/frameworks/intel
|
|
@load ./where-locations
|
|
@load base/utils/addrs
|
|
|
|
event http_header(c: connection, is_orig: bool, name: string, value: string)
|
|
{
|
|
if ( is_orig )
|
|
{
|
|
switch ( name )
|
|
{
|
|
case "HOST":
|
|
if ( is_valid_ip(value) )
|
|
Intel::seen([$host=to_addr(value),
|
|
$indicator_type=Intel::ADDR,
|
|
$conn=c,
|
|
$where=HTTP::IN_HOST_HEADER]);
|
|
else
|
|
Intel::seen([$indicator=value,
|
|
$indicator_type=Intel::DOMAIN,
|
|
$conn=c,
|
|
$where=HTTP::IN_HOST_HEADER]);
|
|
break;
|
|
|
|
case "REFERER":
|
|
Intel::seen([$indicator=sub(value, /^.*:\/\//, ""),
|
|
$indicator_type=Intel::URL,
|
|
$conn=c,
|
|
$where=HTTP::IN_REFERRER_HEADER]);
|
|
break;
|
|
|
|
case "X-FORWARDED-FOR":
|
|
if ( is_valid_ip(value) )
|
|
{
|
|
local addrs = extract_ip_addresses(value);
|
|
for ( i in addrs )
|
|
{
|
|
Intel::seen([$host=to_addr(addrs[i]),
|
|
$indicator_type=Intel::ADDR,
|
|
$conn=c,
|
|
$where=HTTP::IN_X_FORWARDED_FOR_HEADER]);
|
|
}
|
|
}
|
|
break;
|
|
|
|
case "USER-AGENT":
|
|
Intel::seen([$indicator=value,
|
|
$indicator_type=Intel::SOFTWARE,
|
|
$conn=c,
|
|
$where=HTTP::IN_USER_AGENT_HEADER]);
|
|
break;
|
|
}
|
|
}
|
|
}
|