Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
aiengine — AIEngineは、Python/Ruby/Java/LuaおよびGoに対応した、次世代の対話型かつプログラム可能なNIDS(ネットワーク侵入検知システム)です。 | Kitploit
ツール/BitbucketBitbucket/camp0/aiengine
防御ツールネットワークフォレンジックネットワークセキュリティ脅威インテリジェンス機械学習侵入検知DNS分析異常検知
Bitbucketcamp0/aiengine

aiengine

AIEngineは、Python/Ruby/Java/LuaおよびGoに対応した、次世代の対話型かつプログラム可能なNIDS(ネットワーク侵入検知システム)です。

リポジトリを見る
103年前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Documentation Status codecov coverity CII Best Practices Python 2.7|3.5|3.6|3.7|3.8|3.9 Lua 5.1|5.2|5.4 Go 1.15 License LGTM Grade LGTM Grade

AIEngine(人工知能エンジン)

AIEngineは、人間の介入なしに学習する機能、DNSドメイン分類、スパム検出、ネットワークコレクタ、ネットワークフォレンジックなどを備えた、次世代の対話型/プログラマブルなPython/Ruby/Java/LuaおよびGoネットワーク侵入検知システムエンジンです。

AIEngineはまた、ネットワーク/セキュリティ専門家がトラフィックを識別し、NIDS、ファイアウォール、トラフィック分類器などで使用するシグネチャを開発するのに役立ちます。

AIEngineの主な機能は次のとおりです。

  • エンジン実行中にユーザーと対話/プログラミングするためのサポート。
  • 正規表現マッチングのためのPCRE JITのサポート。
  • 正規表現グラフ(複雑な検出パターン)のサポート。
  • 6種類のNetworkStack(lan、mobile、lan6、virtual、oflow、mobile6)のサポート。
  • IP検索のためのSets(セット)およびブルームフィルタのサポート。
  • Linux、FreeBSD、MacOSなどのオペレーティングシステム上でのx86_64、ARM、MIPSアーキテクチャのサポート。
  • HTTP、DNS、SSLドメインのマッチングのサポート。
  • HTTP、DNS、SMTP、SSL向けの禁止ドメインおよびホストのサポート。
  • 未知のトラフィックに対する頻度分析と自動正規表現生成。
  • Yaraシグネチャの生成。
  • データ相関のためのデータベース(MySQL、Redis、Cassandra、Hadoopなど)との簡単な統合。
  • 他のパケットエンジン(Netfilter)との簡単な統合。
  • 保存されたメモリ情報を更新するためのメモリクリーンキャッシュのサポート。
  • ネットワーク/アプリケーション層でのDDoS検出のサポート。
  • TCP/UDP接続の拒否のサポート。
  • リアルタイムのネットワークフォレンジックのサポート。
  • SSLにおけるJA3 TLSシグネチャのサポート。
  • Bitcoin、CoAP、DHCPv4/DHCPv6、DNS、DTLS、GPRS、GRE、HTTP、ICMPv4/ICMPv6、IMAP、IPv4/v6、Modbus、MPLS、MQTT、Netbios、NTP、OpenFlow、PPPoE、POP、Quic、RTP、SIP、SMB、SMTP、SSDP、SSH、SSL、TCP、UDP、VLAN、VXLANなどのプロトコルをサポート。
  • システムをリアルタイムに取得および設定するためのHTTPサーバーの統合。

詳細についてはdocsフォルダを確認してください

AIEngineの使用

AIEngine(縮小版)を使用するには、バイナリaiengineを実行するか、python/ruby/java/luaバインディングを使用します。

root@kitploit:~
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.

NetworkStackの種類

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と他のシステムとの統合/プログラミング

AIEngineはpython/ruby/java/luaモジュールでもあり、他のシステムや機能との統合に関してより柔軟にすることができます。 pythonモジュールが提供するエクスポート用の主要なオブジェクトは以下のとおりです。

root@kitploit:~
    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のクラスメソッドの完全な説明については

root@kitploit:~
import pyaiengine
help(pyaiengine)

有用なユースケースを得るにはexamplesディレクトリを確認し、ドキュメントについては/docsを確認してください。

AIEngineバイナリのコンパイル

システムには、最低限pcre-devel、libpcap-devel、boost-develがインストールされている必要があります。

root@kitploit:~
$ git clone https://bitbucket.com/camp0/aiengine
$ ./autogen.sh
$ ./configure
$ make

オプション機能

システムは、要件に応じて以下の有効化/無効化機能を提供します。

  • --enable-tcpqos 接続のQoSを測定するためのTCP QoSメトリクスサポートを有効にします。
  • --enable-bloomfilter IPルックアップ用のブルームフィルタサポートを有効にします。このオプションには適切なライブラリが必要です。
  • --enable-reject StackLansおよびStackLanIPv6オブジェクト上で確立済み接続を切断するためのTCP/UDP接続拒否サポートを有効にします。
  • --enable-pythongil マルチスレッドアプリケーション向けのPython GILサポートを有効にします。
  • --enable-static-memory 低メモリ要件のシステム向けに静的/固定メモリサポートを有効にします(256バイトスロット)。
  • --enable-code-coverage コードカバレッジサポートを有効にします(開発用)。
  • --enable-sanatizer サニタイザーテストのサポートを有効にします(開発用)。
  • --enable-ja3 JA3形式でのTLSフィンガープリント生成を有効にします。
  • --enable-pcaptimers バインディングでのpcapタイマーを有効にします。
  • --enable-alerts IPCSキューでのアラートサポートを有効にします。

これらのオプションは、configureスクリプトでコンパイル時にのみ有効/無効にできます。

AIEngine Pythonライブラリのコンパイル

Pythonライブラリをコンパイルするには、boost-python3-develまたはboost-python-develとpython-develも推奨されます。

ライブラリをコンパイルする最初のオプションはO3コンパイル最適化を使用する方法で、小さなライブラリが生成されます。

root@kitploit:~
$ git clone https://bitbucket.com/camp0/aiengine
$ ./autogen.sh
$ ./configure
$ cd src
$ make python
$ python pyai_test.py

2番目のオプションは、setup.pyを使用する標準的なPython流の方法でライブラリをコンパイルします。これにより、前の方法と比較してライブラリサイズが大きくなります。

root@kitploit:~
$ git clone https://bitbucket.com/camp0/aiengine
$ ./autogen.sh
$ ./configure
$ cd src
$ python setup.py build_ext -i 
$ python pyai_test.py
$ python3.6 setup.py build_ext -i 
$ python3.6 pyai_test.py

Pythonライブラリには、エンジンが提供するすべての機能が含まれています。

AIEngine Rubyライブラリのコンパイル

Rubyでコンパイルするには、swigとruby-develが必要です。

root@kitploit:~
$ git clone https://bitbucket.com/camp0/aiengine
$ ./autogen.sh
$ ./configure
$ cd src
$ make ruby
$ ruby ruai_tests.rb

Rubyライブラリは、エンジンのすべての機能を提供するわけではありません。

AIEngine Javaライブラリのコンパイル

Javaでコンパイルするには、java develパッケージが必要です。

root@kitploit:~
$ git clone https://bitbucket.com/camp0/aiengine
$ ./autogen.sh
$ ./configure
$ cd src
$ make java
$ java -cp ".:/usr/share/java/junit.jar:/usr/share/java/hamcrest/core.jar:./buildjava" org.junit.runner.JUnitCore JunitTestSuite

Javaライブラリは、いくつかの例外を除いて、エンジンの一部の機能を提供します。

AIEngine Luaライブラリのコンパイル

Luaでコンパイルするには、swigとlua-develパッケージが必要です。

root@kitploit:~
$ git clone https://bitbucket.com/camp0/aiengine
$ ./autogen.sh
$ ./configure
$ cd src
$ make lua
$ lua luai_tests.lua

Luaライブラリは、エンジンの機能の大部分を提供します。

AIEngine Goライブラリのコンパイル

Goでコンパイルするにはswigが必要です。

root@kitploit:~
$ git clone https://bitbucket.com/camp0/aiengine
$ ./autogen.sh
$ ./configure
$ cd src
$ make go 
$ ./goai_test

Goライブラリは、言語の性質上、いくつかの機能的制限があります。

他のシステムとの比較

最も一般的なNIDSを使用したさまざまなユースケースの完全な説明は、http://aiengine.readthedocs.io/en/latest/aiengine.html#performance-with-other-engines にあります。

AIEngineへの貢献

AIEngineはc++11/14/17標準で開発されており、GPLv2の条件の下で提供されています。

AIEngineソースをチェックアウトしてください:

root@kitploit:~
$ git clone https://bitbucket.com/camp0/aiengine

特定の機能に興味がある場合、プロジェクトを宣伝したい場合、または単に助けが必要な場合は、メールを送ってください。貢献は常に役立ちます。

新機能の開発

AIEngineはテスト駆動開発を使用して開発されています。同じライフサイクルを維持するために、新機能には新機能用に作成されたディレクトリに単体テストが必要であり、システム全体と統合するために、後で/srcディレクトリのメインのtests.ccファイルと統合する必要があります。

提供されている例ではカバーされていないユースケースがある場合は、遠慮なくご連絡ください。

寄付

このプロジェクトが気に入ったら、ビットコインでビールを買ってください:)

root@kitploit:~
3DG7FhkFUuKq7VhfXdP9QpsUzfWPXu49ng
ツールをダウンロード