I've discussed changing the Notice::policy notice handling mechanism with a few 
people and I think that generally everyone agrees that the current mechanism, 
while very powerful, sucks from a usability perspective.  This is a good thing 
to address now since we're either on the precipice of repeating a mistake to 
more frameworks or adapting to a style that is easier to understand.  I'm going 
to give an example of how I think it could work in an evented model now.  
Please shoot holes. :)

These implement the decidedly silly case of sending a notice to an email if the 
SSH connection originated locally.

event Notice::policy(n: Notice::Info) 
        {
        if ( n$note == SSH::Login &&
             Site::is_local_host(n$id$orig_h) )
                {
                add n$actions[Notice::ACTION_EMAIL];
                }
        }

That would be replacement to the current model of this:

redef Notice::policy += {
        [$pred(n: Notice::Info) = { 
                return ( n$note == SSH::Login && 
Site::is_local_host(n$id$orig_h) );
         },
         $action = Notice::ACTION_EMAIL],
};

Here are some random thoughts about these two approaches in no particular order:

 - The evented model (top one) is more Bro-y and easier which is a BIG plus.

 - The PolicyItem model (bottom one) has the ability to halt further processing 
with the $halt attribute of PolicyItems.  I don't think I'm convinced that this 
is a huge issue.

 - The evented model has latency from the event queue, but I don't think this 
is a huge issue.  The latency is normally ok.  Jon, is it an issue for the file 
analysis framework?  I don't remember.  The actions being applied would be 
processed through an event queue too so they will be processed after the policy 
events anyway.

 - Code block prioritization is built into the evented model using the 
&priority attribute.  It's specifically implemented for PolicyItem model.

Any thoughts?

  .Seth

--
Seth Hall
International Computer Science Institute
(Bro) because everyone has a network
http://www.bro-ids.org/


_______________________________________________
bro-dev mailing list
[email protected]
http://mailman.icsi.berkeley.edu/mailman/listinfo/bro-dev

Reply via email to