Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
aiengine — AIEngine est un NIDS (système de détection d'intrusion réseau) interactif/programmable de nouvelle génération en Python/Ruby/Java/Lua et Go. | Kitploit
Outils/BitbucketBitbucket/camp0/aiengine
Outils DéfensifsCriminalistique RéseauSécurité RéseauRenseignement sur les MenacesApprentissage AutomatiqueDétection d'IntrusionAnalyse DNSDétection d'Anomalies
Bitbucketcamp0/aiengine

aiengine

AIEngine est un NIDS (système de détection d'intrusion réseau) interactif/programmable de nouvelle génération en Python/Ruby/Java/Lua et Go.

Voir le dépôt
10il y a 3 ansPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

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 (Moteur d'intelligence artificielle)

AIEngine est un moteur de système de détection d'intrusion réseau de nouvelle génération, interactif/programmable en Python/Ruby/Java/Lua et Go, doté de capacités d'apprentissage sans intervention humaine, de classification de domaines DNS, de détection de spam, de collecte réseau, de criminalistique réseau et bien d'autres.

AIEngine aide également les professionnels du réseau et de la sécurité à identifier le trafic et à développer des signatures pour les utiliser sur les NIDS, les pare-feu, les classificateurs de trafic, etc.

Les principales fonctionnalités d'AIEngine sont :

  • Prise en charge de l'interaction/de la programmation avec l'utilisateur pendant que le moteur est en cours d'exécution.
  • Prise en charge de PCRE JIT pour la correspondance des expressions régulières.
  • Prise en charge de graphes d'expressions régulières (modèles de détection complexes).
  • Prise en charge de six types de NetworkStacks (lan, mobile, lan6, virtual, oflow et mobile6).
  • Prise en charge des ensembles (Sets) et des filtres de Bloom pour les recherches d'adresses IP.
  • Prise en charge des architectures x86_64, ARM et MIPS sur des systèmes d'exploitation tels que Linux, FreeBSD et MacOS.
  • Prise en charge de la correspondance des domaines HTTP, DNS et SSL.
  • Prise en charge des domaines et hôtes bannis pour HTTP, DNS, SMTP et SSL.
  • Analyse de fréquence pour le trafic inconnu et génération automatique d'expressions régulières.
  • Génération de signatures Yara.
  • Intégration facile avec les bases de données (MySQL, Redis, Cassandra, Hadoop, etc.) pour la corrélation des données.
  • Intégration facile avec d'autres moteurs de paquets (Netfilter).
  • Prise en charge de caches de nettoyage mémoire pour actualiser les informations mémoire stockées.
  • Prise en charge de la détection des DDoS au niveau réseau/application.
  • Prise en charge du rejet des connexions TCP/UDP.
  • Prise en charge de la criminalistique réseau en temps réel.
  • Prise en charge des signatures TLS JA3 sur SSL.
  • Prise en charge de protocoles tels que 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.
  • Intégration d'un serveur HTTP pour récupérer et configurer le système en temps réel.

Consultez le dossier docs pour plus d'informations

Utilisation d'AIEngine

Pour utiliser AIEngine (version réduite), exécutez simplement le binaire aiengine ou utilisez la liaison 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.

Types de NetworkStack

AIEngine prend en charge six types de piles réseau (Network stacks) selon la topologie du réseau.

  • StackLan (lan) réseau local basé sur IPv4.

  • StackLanIPv6 (lan6) réseau local avec prise en charge IPv6.

  • StackMobile (mobile) réseau mobile (interface Gn) pour IPv4.

  • StackVirtual (virtual) pile pour environnements virtuels/cloud avec VxLan et GRE transparent.

  • StackOpenFlow (oflow) pile pour environnements OpenFlow.

  • StackMobileIPv6 (mobile6) réseau mobile (interface Gn) pour IPv6.

Intégration/Programmation d'AIEngine avec d'autres systèmes

AIEngine est également un module python/ruby/java/lua qui permet d'être plus flexible en termes d'intégration avec d'autres systèmes et fonctionnalités. Les principaux objets que le module python exporte sont les suivants.

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

Pour une description complète des méthodes de classe en Python

root@kitploit:~
import pyaiengine
help(pyaiengine)

Consultez le répertoire examples pour des cas d'utilisation utiles et /docs pour la documentation.

Compiler le binaire AIEngine

Vous devez avoir installé pcre-devel, libpcap-devel et boost-devel sur votre système, au minimum.

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

Fonctionnalités optionnelles

Le système fournit les fonctionnalités d'activation/désactivation suivantes selon vos besoins.

  • --enable-tcpqos Activer la prise en charge des métriques de QoS TCP pour mesurer la QoS des connexions.
  • --enable-bloomfilter Activer la prise en charge du filtre de Bloom pour les recherches d'adresses IP. Cette option nécessite les bibliothèques appropriées.
  • --enable-reject Activer la prise en charge du rejet des connexions TCP/UDP pour interrompre les connexions établies sur les objets StackLans et StackLanIPv6.
  • --enable-pythongil Activer la prise en charge du GIL Python pour les applications multithreadées.
  • --enable-static-memory Activer la prise en charge de la mémoire statique/fixe pour les systèmes à faibles besoins mémoire (emplacement de 256 octets).
  • --enable-code-coverage Activer la prise en charge de la couverture de code (développement).
  • --enable-sanatizer Activer la prise en charge des tests sanitizer (développement).
  • --enable-ja3 Activer la génération d'empreintes TLS au format JA3.
  • --enable-pcaptimers Activer les minuteurs pcap sur les liaisons (bindings).
  • --enable-alerts Activer la prise en charge des alertes sur les files IPC.

Ces options ne peuvent être activées/désactivées qu'au moment de la compilation, dans le script configure.

Compiler la bibliothèque Python d'AIEngine

Pour compiler la bibliothèque Python, il est également recommandé d'installer boost-python3-devel ou boost-python-devel et python-devel.

La première option pour compiler la bibliothèque consiste à utiliser l'optimisation de compilation O3 ; cela générera une bibliothèque de petite taille.

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

La deuxième option compile la bibliothèque en utilisant la méthode pythonique standard via setup.py ; cela générera une bibliothèque de plus grande taille par rapport à la précédente.

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

La bibliothèque python contient toutes les fonctionnalités que le moteur fournit.

Compiler la bibliothèque Ruby d'AIEngine

Pour compiler sous Ruby, swig et ruby-devel sont nécessaires.

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

La bibliothèque Ruby ne fournit pas toutes les fonctionnalités du moteur.

Compiler la bibliothèque Java d'AIEngine

Pour compiler sous Java, le paquet de développement java est nécessaire.

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

La bibliothèque Java fournit une partie des fonctionnalités du moteur, avec quelques exceptions.

Compiler la bibliothèque Lua d'AIEngine

Pour compiler sous Lua, swig et le paquet lua-devel sont nécessaires.

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

La bibliothèque Lua fournit la majorité des fonctionnalités du moteur.

Compiler la bibliothèque Go d'AIEngine

Pour compiler sous Go, swig est nécessaire.

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

La bibliothèque Go présente certaines restrictions fonctionnelles en raison de la nature du langage.

Comparaison avec d'autres systèmes

Vous trouverez une description complète de différents cas d'utilisation avec les NIDS les plus courants sur http://aiengine.readthedocs.io/en/latest/aiengine.html#performance-with-other-engines

Contribuer à AIEngine

AIEngine est développé avec le standard c++11/14/17 et est soumis aux termes de la GPLv2.

Consultez le code source d'AIEngine avec

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

Si vous êtes intéressé par une fonctionnalité spécifique, si vous voulez promouvoir le projet ou si vous avez simplement besoin d'aide, envoyez-moi un e-mail. Les contributions sont toujours utiles.

Développer de nouvelles fonctionnalités

AIEngine a été développé en utilisant le développement piloté par les tests (TDD). Afin de maintenir le même cycle de vie, la nouvelle fonctionnalité doit avoir des tests unitaires dans le répertoire créé pour celle-ci et, pour s'intégrer à l'ensemble du système, être ensuite intégrée au fichier principal tests.cc du répertoire /src.

Si vous avez un cas d'utilisation qui n'est pas couvert par les exemples fournis, n'hésitez pas à me contacter.

Don

Si vous aimez le projet, vous pouvez m'offrir des bières en bitcoin :)

root@kitploit:~
3DG7FhkFUuKq7VhfXdP9QpsUzfWPXu49ng
Télécharger l’outil