mirror of
https://github.com/zeek/zeek.git
synced 2025-10-09 18:18:19 +00:00

- policy/ renamed to scripts/ - By default BROPATH now contains: - scripts/ - scripts/policy - scripts/site - *Nearly* all tests pass. - All of scripts/base/ is loaded by main.cc - Can be disabled by setting $BRO_NO_BASE_SCRIPTS - Scripts in scripts/base/ don't use relative path loading to ease use of BRO_NO_BASE_SCRIPTS (to copy and paste that script). - The scripts in scripts/base/protocols/ only (or soon will only) do logging and state building. - The scripts in scripts/base/frameworks/ add functionality without causing any additional overhead. - All "detection" activity happens through scripts in scripts/policy/. - Communications framework modified temporarily to need an environment variable to actually enable (ENABLE_COMMUNICATION=1) - This is so the communications framework can be loaded as part of the base without causing trouble when it's not needed. - This will be removed once a resolution to ticket #540 is reached.
34 lines
No EOL
861 B
Text
34 lines
No EOL
861 B
Text
##! This script extends the built in notice code to implement the IP address
|
|
##! dropping functionality.
|
|
|
|
module Notice;
|
|
|
|
export {
|
|
redef enum Action += {
|
|
## Drops the address via Drop::drop_address, and generates an alarm.
|
|
ACTION_DROP
|
|
};
|
|
|
|
redef record Info += {
|
|
## Indicate if the $src IP address was dropped and denied network access.
|
|
dropped: bool &log &default=F;
|
|
};
|
|
}
|
|
|
|
# This is a little awkward because we want to inject drop along with the
|
|
# synchronous functions.
|
|
event bro_init()
|
|
{
|
|
local drop_func = function(n: Notice::Info)
|
|
{
|
|
if ( ACTION_DROP in n$actions )
|
|
{
|
|
#local drop = React::drop_address(n$src, "");
|
|
#local addl = drop?$sub ? fmt(" %s", drop$sub) : "";
|
|
#n$dropped = drop$note != Drop::AddressDropIgnored;
|
|
#n$msg += fmt(" [%s%s]", drop$note, addl);
|
|
}
|
|
};
|
|
|
|
add Notice::sync_functions[drop_func];
|
|
} |