Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
aiengine — AIEngine ist ein interaktives/programmierbares NIDS (Netzwerk-Intrusion-Detection-System) der nächsten Generation für Python/Ruby/Java/Lua und Go. | Kitploit
Tools/BitbucketBitbucket/camp0/aiengine
DefensivwerkzeugeNetzwerkforensikNetzwerksicherheitBedrohungsanalyseMaschinelles LernenEinbruchserkennungDNS-AnalyseAnomalieerkennung
Bitbucketcamp0/aiengine

aiengine

AIEngine ist ein interaktives/programmierbares NIDS (Netzwerk-Intrusion-Detection-System) der nächsten Generation für Python/Ruby/Java/Lua und Go.

Repository anzeigen
10vor 3 JahrenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

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 (Engine für künstliche Intelligenz)

AIEngine ist eine interaktive/programmierbare Netzwerk-Intrusion-Detection-Engine der nächsten Generation mit Python/Ruby/Java/Lua- und Go-Anbindung. Sie kann ohne menschliches Eingreifen lernen und bietet DNS-Domain-Klassifizierung, Spam-Erkennung, Netzwerk-Collector, Netzwerk-Forensik und viele weitere Funktionen.

AIEngine hilft Netzwerk-/Sicherheitsexperten außerdem dabei, Datenverkehr zu identifizieren und Signaturen zu entwickeln, die in NIDS, Firewalls, Traffic-Klassifikatoren usw. eingesetzt werden können.

Die Hauptfunktionen von AIEngine sind:

  • Unterstützung für Interaktion/Programmierung mit dem Benutzer, während die Engine läuft.
  • Unterstützung für PCRE JIT für Regex-Abgleich.
  • Unterstützung für Regex-Graphen (komplexe Erkennungsmuster).
  • Unterstützung für sechs Arten von NetworkStacks (lan, mobile, lan6, virtual, oflow und mobile6).
  • Unterstützung von Sets und Bloom-Filtern für IP-Suchen.
  • Unterstützt x86_64-, ARM- und MIPS-Architekturen auf Betriebssystemen wie Linux, FreeBSD und MacOS.
  • Unterstützung für HTTP-, DNS- und SSL-Domain-Abgleich.
  • Unterstützung für gesperrte Domains und Hosts für HTTP, DNS, SMTP und SSL.
  • Frequenzanalyse für unbekannten Datenverkehr und automatische Regex-Generierung.
  • Generierung von Yara-Signaturen.
  • Einfache Integration mit Datenbanken (MySQL, Redis, Cassandra, Hadoop usw.) für Datenkorrelation.
  • Einfache Integration mit anderen Paket-Engines (Netfilter).
  • Unterstützung für das Bereinigen von Caches, um gespeicherte Speicherinformationen aufzufrischen.
  • Unterstützung zur Erkennung von DDoS auf Netzwerk-/Anwendungsebene.
  • Unterstützung zum Ablehnen von TCP/UDP-Verbindungen.
  • Unterstützung für Netzwerk-Forensik in Echtzeit.
  • Unterstützung für JA3-TLS-Signaturen bei SSL.
  • Unterstützt Protokolle wie 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.
  • Integration eines HTTP-Servers zur Abfrage und Konfiguration des Systems in Echtzeit.

Weitere Informationen findest du im Ordner docs.

Verwendung von AIEngine

Um AIEngine (reduzierte Version) zu verwenden, führe einfach die Binärdatei aiengine aus oder verwende das Python/Ruby/Java/Lua-Binding.

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-Typen

AIEngine unterstützt sechs Arten von Network-Stacks, abhängig von der Netzwerktopologie.

  • StackLan (lan) Lokales Netzwerk basierend auf IPv4.

  • StackLanIPv6 (lan6) Lokales Netzwerk mit IPv6-Unterstützung.

  • StackMobile (mobile) Mobilfunknetzwerk (Gn-Schnittstelle) für IPv4.

  • StackVirtual (virtual) Stack für virtuelle/Cloud-Umgebungen mit VxLan und transparentem GRE.

  • StackOpenFlow (oflow) Stack für OpenFlow-Umgebungen.

  • StackMobileIPv6 (mobile6) Mobilfunknetzwerk (Gn-Schnittstelle) für IPv6.

AIEngine mit anderen Systemen integrieren/programmieren

AIEngine ist außerdem ein Python/Ruby/Java/Lua-Modul, das mehr Flexibilität bei der Integration mit anderen Systemen und Funktionalitäten ermöglicht. Die wichtigsten Objekte, die das Python-Modul exportiert, sind die folgenden:

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

Für eine vollständige Beschreibung der Klassenmethoden in Python:

root@kitploit:~
import pyaiengine
help(pyaiengine)

Schau dir das Verzeichnis examples an, um nützliche Anwendungsfälle zu sehen, und wirf einen Blick in /docs für die Dokumentation.

AIEngine-Binary kompilieren

Du solltest mindestens pcre-devel, libpcap-devel und boost-devel auf deinem System installiert haben.

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

Optionale Funktionen

Das System bietet die folgenden Aktivierungs-/Deaktivierungsfunktionen, je nach deinen Anforderungen.

  • --enable-tcpqos Aktiviert die TCP-QoS-Metriken-Unterstützung zur Messung der QoS von Verbindungen.
  • --enable-bloomfilter Aktiviert Bloom-Filter-Unterstützung für IP-Lookups. Diese Option benötigt die entsprechenden Bibliotheken.
  • --enable-reject Aktiviert TCP/UDP-Reject-Verbindungsunterstützung, um bestehende Verbindungen auf StackLan- und StackLanIPv6-Objekten zu unterbrechen.
  • --enable-pythongil Aktiviert Python-GIL-Unterstützung für Multithreading-Anwendungen.
  • --enable-static-memory Aktiviert Unterstützung für statischen/festen Speicher für Systeme mit geringem Speicherbedarf (256-Byte-Slot).
  • --enable-code-coverage Aktiviert Code-Coverage-Unterstützung (Entwicklung).
  • --enable-sanatizer Aktiviert Sanitizer-Testunterstützung (Entwicklung).
  • --enable-ja3 Aktiviert die Generierung von TLS-Fingerprints im JA3-Format.
  • --enable-pcaptimers Aktiviert pcap-Timer in den Bindings.
  • --enable-alerts Aktiviert Alarmierung über IPCS-Warteschlangen.

Diese Optionen können nur zur Kompilierzeit im configure-Skript aktiviert/deaktiviert werden.

AIEngine-Python-Bibliothek kompilieren

Für das Kompilieren der Python-Bibliothek werden außerdem boost-python3-devel oder boost-python-devel und python-devel empfohlen.

Die erste Option zum Kompilieren der Bibliothek ist die Verwendung der O3-Kompilierungsoptimierung; dadurch wird eine kleine Bibliothek erzeugt.

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

Die zweite Option kompiliert die Bibliothek auf dem üblichen Python-Weg über setup.py. Dabei ist die Bibliothek im Vergleich zur vorherigen Option größer.

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

Die Python-Bibliothek enthält die gesamte Funktionalität der Engine.

AIEngine-Ruby-Bibliothek kompilieren

Zum Kompilieren unter Ruby werden swig und ruby-devel benötigt.

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

Die Ruby-Bibliothek bietet nicht die gesamte Funktionalität der Engine.

AIEngine-Java-Bibliothek kompilieren

Zum Kompilieren unter Java wird das Java-Entwicklungspaket benötigt.

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

Die Java-Bibliothek bietet einen Teil der Funktionalität der Engine, mit einigen Ausnahmen.

AIEngine-Lua-Bibliothek kompilieren

Zum Kompilieren unter Lua werden swig und das lua-devel-Paket benötigt.

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

Die Lua-Bibliothek bietet den Großteil der Funktionalität der Engine.

AIEngine-Go-Bibliothek kompilieren

Zum Kompilieren unter Go wird swig benötigt.

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

Die Go-Bibliothek weist aufgrund der Natur der Sprache einige funktionale Einschränkungen auf.

Vergleich mit anderen Systemen

Eine vollständige Beschreibung verschiedener Anwendungsfälle mit den gängigsten NIDS findest du unter http://aiengine.readthedocs.io/en/latest/aiengine.html#performance-with-other-engines

Mitwirken an AIEngine

AIEngine wird mit dem Standard c++11/14/17 entwickelt und steht unter den Bedingungen der GPLv2.

Hole dir den AIEngine-Quellcode mit:

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

Wenn du an einer bestimmten Funktionalität interessiert bist, das Projekt fördern möchtest oder einfach Hilfe brauchst, schreib mir einfach eine E-Mail. Beiträge sind immer willkommen.

Neue Funktionalität entwickeln

AIEngine wurde mit testgetriebener Entwicklung (Test Driven Development) erstellt. Um denselben Lebenszyklus beizubehalten, sollte die neue Funktionalität Unit-Tests im Verzeichnis der neuen Funktionalität enthalten und später zur Integration mit dem gesamten System in die Hauptdatei tests.cc im Verzeichnis /src eingebunden werden.

Wenn du einen Anwendungsfall hast, der durch die bereitgestellten Beispiele nicht abgedeckt ist, kannst du mich gerne kontaktieren.

Spende

Wenn dir das Projekt gefällt, kannst du mir mit Bitcoin ein Bier ausgeben :)

root@kitploit:~
3DG7FhkFUuKq7VhfXdP9QpsUzfWPXu49ng
Tool herunterladen