
AIEngineは、Python/Ruby/Java/LuaおよびGoに対応した、次世代の対話型かつプログラム可能なNIDS(ネットワーク侵入検知システム)です。
AIEngineは、人間の介入なしに学習する機能、DNSドメイン分類、スパム検出、ネットワークコレクタ、ネットワークフォレンジックなどを備えた、次世代の対話型/プログラマブルなPython/Ruby/Java/LuaおよびGoネットワーク侵入検知システムエンジンです。
AIEngineはまた、ネットワーク/セキュリティ専門家がトラフィックを識別し、NIDS、ファイアウォール、トラフィック分類器などで使用するシグネチャを開発するのに役立ちます。
AIEngineの主な機能は次のとおりです。
詳細についてはdocsフォルダを確認してください
AIEngine(縮小版)を使用するには、バイナリaiengineを実行するか、python/ruby/java/luaバインディングを使用します。
luis@luis-xps:~/c++/aiengine/src$ ./aiengine -h
aiengine 2.1.0
Mandatory arguments:
-I [ --input ] arg Sets the network interface ,pcap file or
directory with pcap files.
Link Layer optional arguments:
-q [ --tag ] arg Selects the tag type of the ethernet layer (vlan,mpls).
TCP optional arguments:
-t [ --tcp-flows ] arg (=32768) Sets the number of TCP flows on the pool.
UDP optional arguments:
-u [ --udp-flows ] arg (=16384) Sets the number of UDP flows on the pool.
Domain optional arguments:
-D [ --domain-file ] arg Reads domain names from file.
-B [ --domain-protocol ] arg (=dns) Protocol to plug the domain-file (dns,
ssl, http).
-S [ --matched-domain ] Shows only the domains that matches.
Regex optional arguments:
-R [ --enable-signatures ] Enables the Signature engine.
-r [ --regex ] arg (=.*) Sets the regex for evaluate agains the flows.
-c [ --flow-class ] arg (=all) Uses tcp, udp or all for matches the signature
on the flows.
-m [ --matched-flows ] Shows the flows that matchs with the regex.
-M [ --matched-packet ] Shows the packet payload that matchs with
the regex.
-C [ --continue ] Continue evaluating the regex with the
next packets of the Flow.
-j [ --reject-flows ] Rejects the flows that matchs with the
regex.
-w [ --evidence ] Generates a pcap file with the matching
regex for forensic analysis.
Frequencies optional arguments:
-F [ --enable-frequencies ] Enables the Frequency engine.
-g [ --group-by ] arg (=dst-port) Groups frequencies by src-ip,dst-ip,src-por
t and dst-port.
-f [ --flow-type ] arg (=tcp) Uses tcp or udp flows.
-L [ --enable-learner ] Enables the Learner engine.
-k [ --key-learner ] arg (=80) Sets the key for the Learner engine.
-b [ --buffer-size ] arg (=64) Sets the size of the internal buffer for
generate the regex.
-Q [ --byte-quality ] arg (=80) Sets the minimum quality for the bytes of
the generated regex.
-y [ --enable-yara ] Generates a yara signature.
Optional arguments:
-n [ --stack ] arg (=lan) Sets the network stack (lan,mobile,lan6,virtual,
oflow).
-d [ --dumpflows ] Dump the flows to stdout.
-s [ --statistics ] arg (=0) Show statistics of the network stack (5 levels).
-T [ --timeout ] arg (=180) Sets the flows timeout.
-P [ --protocol ] arg Show statistics of a specific protocol of the
network stack.
-a [ --port ] arg (=0) Sets the HTTP listenting port.
-e [ --release ] Release the caches.
-l [ --release-cache ] arg Release a specific cache.
-p [ --pstatistics ] Show statistics of the process.
-o [ --summary ] Show protocol summmary statistics
(bytes,packets,% bytes,cache miss,memory).
-h [ --help ] Show help.
-v [ --version ] Show version string.
AIEngineは、ネットワークトポロジに応じて6種類のNetworkスタックをサポートしています。
StackLan (lan) IPv4ベースのローカルエリアネットワーク。
StackLanIPv6 (lan6) IPv6対応のローカルエリアネットワーク。
StackMobile (mobile) IPv4用のネットワークモバイル(Gnインターフェース)。
StackVirtual (virtual) VxLanおよびGRE Transparentを使用した仮想/クラウド環境用のスタック。
StackOpenFlow (oflow) OpenFlow環境用のスタック。
StackMobileIPv6 (mobile6) IPv6用のネットワークモバイル(Gnインターフェース)。
AIEngineはpython/ruby/java/luaモジュールでもあり、他のシステムや機能との統合に関してより柔軟にすることができます。 pythonモジュールが提供するエクスポート用の主要なオブジェクトは以下のとおりです。
BitcoinInfo
Cache
CoAPInfo
DCERCPInfo
DHCPInfo
DHCPv6Info
DNSInfo
DTLSInfo
DatabaseAdaptor
DomainName
DomainNameManager
Flow
FlowManager
Frequencies
FrequencyGroup
HTTPInfo
HTTPUriSet
IMAPInfo
IPAbstractSet
IPRadixTree
IPSet
IPSetManager
LearnerEngine
MQTTInfo
NetbiosInfo
NetworkStack
StackLan
StackLanIPv6
StackMobile
StackMobileIPv6
StackOpenFlow
StackVirtual
POPInfo
PacketDispatcher
PacketFrequencies
QuicInfo
Regex
RegexManager
SIPInfo
SMBInfo
SMTPInfo
SSDPInfo
SSHInfo
SSLInfo
TCPInfo
Pythonのクラスメソッドの完全な説明については
import pyaiengine
help(pyaiengine)
有用なユースケースを得るにはexamplesディレクトリを確認し、ドキュメントについては/docsを確認してください。
システムには、最低限pcre-devel、libpcap-devel、boost-develがインストールされている必要があります。
$ git clone https://bitbucket.com/camp0/aiengine
$ ./autogen.sh
$ ./configure
$ make
システムは、要件に応じて以下の有効化/無効化機能を提供します。