bro-oui

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.

Package Version :