OUI
This module adds an OUI lookup to Bro IDS. Additionally, it comes with a script to maintain a Bro input file containing OUI data pulled from IEEE.
Performing an OUI Lookup
##! This script extends dhcp.log to include the manufacturer that a
##! mac address is associated with as the client_vendor field.
module OUI;
export {
## DHCP::Info is owned by the DHCP module and is the record that
## is logged when the DHCP module logs
redef record DHCP::Info += {
## client_vendor is the manufacturer identified by the OUI
client_vendor: string &log &optional;
};
}
# DHCP::aggregate_msgs is used to distribute data around clusters.
# In this case, this event is used to extend the DHCP logs.
event DHCP::aggregate_msgs(ts: time, id: conn_id, uid: string,
is_orig: bool, msg: DHCP::Msg, options: DHCP::Options)
{
local vendor = lookup_oui(msg$chaddr);
DHCP::log_info$client_vendor = vendor;
}
Updating the OUI Data File
To update the OUI data file, run the included oui.py script and specify the path of the existing oui.dat file.
usage: oui.py [-h] path
Download and parse a listing of Organizationally unique identifiers, then
export the listing as a Bro input file. This can then be used with the OUI
module to allow for OUI lookups in Bro.
positional arguments:
path Where to place the exported input file.
optional arguments:
-h, --help show this help message and exit
A Note on oui.dat
Local modifications to oui.dat will be overwritten by updates of this plugin. Additionally, by running oui.py, the entire oui.dat file will be overwritten. This file is not meant to contain local modifications.