AIEngine (Artificial Intelligent Engine)

AIEngine is a next generation interactive/programmable Python/Ruby/Java/Lua and Go network intrusion detection system engine with capabilities of learning
without any human intervention, DNS domain classification, Spam detection, network collector, network forensics and many others.

AIEngine also helps network/security professionals to identify traffic and develop
signatures for use them on NIDS, Firewalls, Traffic classifiers and so on.

The main functionalities of AIEngine are:

Support for interacting/programing with the user while the engine is running.

Support for PCRE JIT for regex matching.

Support for regex graphs (complex detection patterns).

Support five types of NetworkStacks (lan,mobile,lan6,virtual and oflow).

Support Sets and Bloom filters for IP searches.

Supports x86_64, ARM and MIPS architecture over operating systems such as Linux, FreeBSD and MacOS.

Integrating/Program AIEngine with other systems

AIEngine is a python/ruby/java/lua module also that allows to be more flexible in terms of integration with other systems and functionalities.
The main objects that the python module provide export are the following ones.

Compile AIEngine Go library

The Go lib have some functional restrictions due to the nature of the language.

Contributing to AIEngine

AIEngine is develop with c++11/14 standard and is under the terms of GPLv2.

Check out the AIEngine source with

$ git clone https://bitbucket.com/camp0/aiengine

If you are interested in a specific functionality, promote the project or just need some help just drop me an email. Contributions are always helpful.

Develop new functionality

AIEngine have been develop using test driven development. So in order to maintain the same life cycle, the new functionatly
should have unit test on the directory created of the new functionality and for integrate with all the system, later integrate
with the main tests.cc file on the /src directory