GLOBAL
¶Notice
¶This is the notice framework which enables Bro to “notice” things which are odd or potentially bad. Decisions of the meaning of various notices need to be done per site because Bro does not ship with assumptions about what is bad activity for sites. More extensive documentation about using the notice framework can be found in Notice Framework.
Namespaces: | GLOBAL, Notice |
---|---|
Imports: | base/frameworks/cluster |
Source File: | /scripts/base/frameworks/notice/main.bro |
Notice::alarmed_types : set &redef |
Alarmed notice types. |
Notice::default_suppression_interval : interval &redef |
The notice framework is able to do automatic notice suppression by
utilizing the identifier field in Notice::Info records. |
Notice::emailed_types : set &redef |
Emailed notice types. |
Notice::ignored_types : set &redef |
Ignored notice types. |
Notice::mail_from : string &redef |
Address that emails will be from. |
Notice::mail_subject_prefix : string &redef |
Text string prefixed to the subject of all emails sent out. |
Notice::not_suppressed_types : set &redef |
Types that should be suppressed for the default suppression interval. |
Notice::reply_to : string &redef |
Reply-to address used in outbound email. |
Notice::sendmail : string &redef |
Local system sendmail program. |
Notice::mail_dest : string &redef |
Email address to send notices with the
Notice::ACTION_EMAIL action or to send bulk alarm logs
on rotation with Notice::ACTION_ALARM . |
Notice::max_email_delay : interval &redef |
The maximum amount of time a plugin can delay email from being sent. |
Notice::type_suppression_intervals : table &redef |
This table can be used as a shorthand way to modify suppression intervals for entire notice types. |
Notice::Action : enum |
These are values representing actions that can be taken with notices. |
Notice::ActionSet : set |
Type that represents a set of actions. |
Notice::FileInfo : record |
Contains a portion of fa_file that’s also contained in
Notice::Info . |
Notice::Info : record |
The record type that is used for representing and logging notices. |
Notice::Type : enum |
Scripts creating new notices need to redef this enum to add their
own specific notice types which would then get used when they call
the NOTICE function. |
Notice::begin_suppression : event |
This event is generated when a notice begins to be suppressed. |
Notice::cluster_notice : event |
This is the event used to transport notices on the cluster. |
Notice::log_notice : event |
This event can be handled to access the Notice::Info
record as it is sent on to the logging framework. |
Notice::suppressed : event |
This event is generated on each occurrence of an event being suppressed. |
Notice::notice : hook |
This is the event that is called as the entry point to the
notice framework by the global NOTICE function. |
Notice::policy : hook |
The hook to modify notice handling. |
NOTICE : function |
|
Notice::create_file_info : function |
Creates a record containing a subset of a full fa_file record. |
Notice::email_headers : function |
Constructs mail headers to which an email body can be appended for sending with sendmail. |
Notice::email_notice_to : function |
Call this function to send a notice in an email. |
Notice::internal_NOTICE : function |
This is an internal wrapper for the global NOTICE
function; disregard. |
Notice::is_being_suppressed : function |
A function to determine if an event is supposed to be suppressed. |
Notice::log_mailing_postprocessor : function |
A log postprocessing function that implements emailing the contents
of a log upon rotation to any configured Notice::mail_dest . |
Notice::populate_file_info : function |
Populates file-related fields in a notice info record. |
Notice::populate_file_info2 : function |
Populates file-related fields in a notice info record. |
Notice::alarmed_types
¶Type: | set [Notice::Type ] |
---|---|
Attributes: | &redef |
Default: | {} |
Alarmed notice types.
Notice::default_suppression_interval
¶Type: | interval |
---|---|
Attributes: | &redef |
Default: | 1.0 hr |
The notice framework is able to do automatic notice suppression by
utilizing the identifier field in Notice::Info
records.
Set this to “0secs” to completely disable automated notice
suppression.
Notice::emailed_types
¶Type: | set [Notice::Type ] |
---|---|
Attributes: | &redef |
Default: | {} |
Emailed notice types.
Notice::ignored_types
¶Type: | set [Notice::Type ] |
---|---|
Attributes: | &redef |
Default: | {} |
Ignored notice types.
Notice::mail_from
¶Type: | string |
---|---|
Attributes: | &redef |
Default: | "Big Brother <bro@localhost>" |
Address that emails will be from.
Note that this is overridden by the BroControl MailFrom option.
Notice::mail_subject_prefix
¶Type: | string |
---|---|
Attributes: | &redef |
Default: | "[Bro]" |
Text string prefixed to the subject of all emails sent out.
Note that this is overridden by the BroControl MailSubjectPrefix option.
Notice::not_suppressed_types
¶Type: | set [Notice::Type ] |
---|---|
Attributes: | &redef |
Default: | {} |
Types that should be suppressed for the default suppression interval.
Notice::mail_dest
¶Type: | string |
---|---|
Attributes: | &redef |
Default: | "" |
Email address to send notices with the
Notice::ACTION_EMAIL
action or to send bulk alarm logs
on rotation with Notice::ACTION_ALARM
.
Note that this is overridden by the BroControl MailTo option.
Notice::max_email_delay
¶Type: | interval |
---|---|
Attributes: | &redef |
Default: | 15.0 secs |
The maximum amount of time a plugin can delay email from being sent.
Notice::type_suppression_intervals
¶Type: | table [Notice::Type ] of interval |
---|---|
Attributes: | &redef |
Default: | {} |
This table can be used as a shorthand way to modify suppression intervals for entire notice types.
Notice::Action
¶Type: |
|
---|
These are values representing actions that can be taken with notices.
Notice::ActionSet
¶Type: | set [Notice::Action ] |
---|
Type that represents a set of actions.
Notice::FileInfo
¶Type: |
---|
Contains a portion of fa_file
that’s also contained in
Notice::Info
.
Notice::Info
¶Type: |
|
---|
The record type that is used for representing and logging notices.
Notice::Type
¶Type: |
|
---|
Scripts creating new notices need to redef this enum to add their
own specific notice types which would then get used when they call
the NOTICE
function. The convention is to give a general
category along with the specific notice separating words with
underscores and using leading capitals on each word except for
abbreviations which are kept in all capitals. For example,
SSH::Password_Guessing is for hosts that have crossed a threshold of
failed SSH logins.
Notice::begin_suppression
¶Type: | event (ts: time , suppress_for: interval , note: Notice::Type , identifier: string ) |
---|
This event is generated when a notice begins to be suppressed.
Ts: | time indicating then when the notice to be suppressed occured. |
---|---|
Suppress_for: | length of time that this notice should be suppressed. |
Note: | The Notice::Type of the notice. |
Identifier: | The identifier string of the notice that should be suppressed. |
Notice::cluster_notice
¶Type: | event (n: Notice::Info ) |
---|
This is the event used to transport notices on the cluster.
N: | The notice information to be sent to the cluster manager for further processing. |
---|
Notice::log_notice
¶Type: | event (rec: Notice::Info ) |
---|
This event can be handled to access the Notice::Info
record as it is sent on to the logging framework.
Rec: | The record containing notice data before it is logged. |
---|
Notice::suppressed
¶Type: | event (n: Notice::Info ) |
---|
This event is generated on each occurrence of an event being suppressed.
N: | The record containing notice data regarding the notice type being suppressed. |
---|
Notice::notice
¶Type: | hook (n: Notice::Info ) : bool |
---|
This is the event that is called as the entry point to the
notice framework by the global NOTICE
function. By the
time this event is generated, default values have already been
filled out in the Notice::Info
record and the notice
policy has also been applied.
N: | The record containing notice data. |
---|
Notice::policy
¶Type: | hook (n: Notice::Info ) : bool |
---|
The hook to modify notice handling.
NOTICE
¶Type: | function (n: Notice::Info ) : void |
---|
Notice::create_file_info
¶Type: | function (f: fa_file ) : Notice::FileInfo |
---|
Creates a record containing a subset of a full fa_file
record.
F: | record containing metadata about a file. |
---|---|
Returns: | record containing a subset of fields copied from f. |
Notice::email_headers
¶Type: | function (subject_desc: string , dest: string ) : string |
---|
Constructs mail headers to which an email body can be appended for sending with sendmail.
Subject_desc: | a subject string to use for the mail. |
---|---|
Dest: | recipient string to use for the mail. |
Returns: | a string of mail headers to which an email body can be appended. |
Notice::email_notice_to
¶Type: | function (n: Notice::Info , dest: string , extend: bool ) : void |
---|
Call this function to send a notice in an email. It is already used
by default with the built in Notice::ACTION_EMAIL
and
Notice::ACTION_PAGE
actions.
N: | The record of notice data to email. |
---|---|
Dest: | The intended recipient of the notice email. |
Extend: | Whether to extend the email using the
email_body_sections field of n. |
Notice::internal_NOTICE
¶Type: | function (n: Notice::Info ) : void |
---|
This is an internal wrapper for the global NOTICE
function; disregard.
N: | The record of notice data. |
---|
Notice::is_being_suppressed
¶Type: | function (n: Notice::Info ) : bool |
---|
A function to determine if an event is supposed to be suppressed.
N: | The record containing the notice in question. |
---|
Notice::log_mailing_postprocessor
¶Type: | function (info: Log::RotationInfo ) : bool |
---|
A log postprocessing function that implements emailing the contents
of a log upon rotation to any configured Notice::mail_dest
.
The rotated log is removed upon being sent.
Info: | A record containing the rotated log file information. |
---|---|
Returns: | True. |
Notice::populate_file_info
¶Type: | function (f: fa_file , n: Notice::Info ) : void |
---|
Populates file-related fields in a notice info record.
F: | record containing metadata about a file. |
---|---|
N: | a notice record that needs file-related fields populated. |
Notice::populate_file_info2
¶Type: | function (fi: Notice::FileInfo , n: Notice::Info ) : void |
---|
Populates file-related fields in a notice info record.
Fi: | record containing metadata about a file. |
---|---|
N: | a notice record that needs file-related fields populated. |