[Oisf-users] Is there a guide how to add a new application layer protocol plugin

Jason Ish lists at ish.cx
Mon Apr 10 00:11:14 EDT 2017


On 09/04/17 08:55 PM, tidy at holonetsecurity.com wrote:
> I would like to add application protocol parsing to suricata engine,
> example: DHCP protocol. what main framework code we need to change ?
> Thanks.

There is not much of a guide right now, but there are some templates and 
generation scripts designed to help you get started.

For the actual parsing of the protocol and handling protocol state, see:
src/app-layer-template.[ch]

For logging application events (ie: dns, tls, etc) see:
src/output-json-template.c

For performaning content inspection on buffers extracted as part of the 
app-layer see:
src/detect-template-buffer.c

There are some scripts to handle some of the boilerplate, such as:

- To stub the initial app-layer for your protocol:
   ./scripts/setup-app-layer.sh DHCP
(sorry, there is a typo in this script...  edx instead of ed, so just 
fix that up before running)

- To stub out the application logging:
   ./scripts/setup-app-layer-logger.sh DHCP

- And to stub out detection:
   ./scripts/setup-app-layer-detect-detect.sh DHCP

Please note that I think the scripts may be do for some updating, so 
please let me know if you run into any issues.

As for DHCP, please note than an implementation is already under review 
and should show up soon.

Jason


More information about the Oisf-users mailing list