py-idstools is a collection of Python libraries for working with IDS systems (typically Snort and Suricata).
- Snort/Suricata unified2 log file reading.
- Continuous unified2 directory spool reading with bookmarking.
- Parser and mapping for classification.config.
- Parser and mapping for gen-msg.map and sid-msg.map.
- Useful utility programs.
- rulecat - Basic Suricata rule management tool.
- eve2pcap - Convert packets and payloads in eve logs to pcap.
- u2json - Convert unified2 files or spool directories to JSON.
- gensidmsgmap - Easily create a sid-msg.map file from rule files, directories or a rule tarball.
- dumpdynamicrules - Helper for dumping Snort SO dynamic rule stubs.
- u2eve - Convert unified2 files to EVE compatible JSON.
- Python 2.7 or newer.
- Currently only tested on Linux.
pip install idstools
pip install https://github.com/jasonish/py-idstools/archive/master.zip
The tools do not require installation to be used, from a .tar.gz or .zip archive the tools can be run directly from the bin directory. Or to install:
python setup.py install
The following code snippet will "tail" a unified log directory aggregating records into events:
from idstools import unified2 reader = unified2.SpoolEventReader("/var/log/snort", "unified2.log", follow=True) for event in reader: print(event)
Further documentation is located at http://idstools.readthedocs.org.
- idstools: handle rules with no msg in rule parser
- idstools-rulecat: support a drop.conf for setting rules to drop
- idstools-eve2pcap: allow link type to be set on command line
- unified2: handle large appid buffer in newer versions of Snort.
- idstools-rulecat: better documentation
- idstools-rulecat: use ET Pro https URL
- idstools-u2json: fix --delete
- idstools-u2json: add --verbose flag for debug logging
- idstools-rulecat: allow multiple urls
- New tool: eve2pcap. Converts packets and payloads found in Suricata EVE logs to pcap files.
- Rule parser: handle multi-line rules.
- New tool: idstools-dumpdynamicrules. A wrapper around Snort to dump dynamic rule stubs and optionally repack the tarball with the new stubs.
- New tool: idstools-u2eve. Basically a copy of the current u2json, but will aim to keep a compatible eve output style. idstools-u2json will probably become more of a basic example program.
- A basic packet decoding module.
- New tool: rulecat. A basic Suricata rule management tool.
- Fix reading of growing file on OS X.
- Fix error in parsing decoder rules introduced in 0.4.3.
- Make the rule direction an accessible field of the rule object.
- Fix issue loading signature map files (GitHub issue #2).
- Fix IPv6 address unpacking.
- In u2json, if the protocol number can't be converted to a string, encode the number as a string for a consistent JSON data type.
- New tool, u2json to convert unified2 files to JSON.
- Support the new appid unified2 event types introduced in Snort 2.9.7.0.alpha.