Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
aiengine — AIEngine es un NIDS (sistema de detección de intrusiones en red) interactivo/programable de próxima generación para Python/Ruby/Java/Lua y Go. | Kitploit
Herramientas/BitbucketBitbucket/camp0/aiengine
Herramientas DefensivasForensia de RedSeguridad de RedesInteligencia de AmenazasAprendizaje AutomáticoDetección de IntrusionesAnálisis de DNSDetección de Anomalías
Bitbucketcamp0/aiengine

aiengine

AIEngine es un NIDS (sistema de detección de intrusiones en red) interactivo/programable de próxima generación para Python/Ruby/Java/Lua y Go.

Ver Repositorio
10hace 3 añosAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

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 (Motor de Inteligencia Artificial)

AIEngine es un motor de sistema de detección de intrusiones en red de nueva generación, interactivo/programable en Python/Ruby/Java/Lua y Go, con capacidades de aprendizaje sin intervención humana, clasificación de dominios DNS, detección de spam, recolector de red, análisis forense de red y muchas otras.

AIEngine también ayuda a los profesionales de redes/seguridad a identificar el tráfico y desarrollar firmas para usarlas en NIDS, cortafuegos, clasificadores de tráfico, etc.

Las principales funcionalidades de AIEngine son:

  • Soporte para interactuar/programar con el usuario mientras el motor está en ejecución.
  • Soporte para PCRE JIT para la coincidencia de expresiones regulares.
  • Soporte para grafos de expresiones regulares (patrones complejos de detección).
  • Soporte para seis tipos de NetworkStacks (lan, mobile, lan6, virtual, oflow y mobile6).
  • Soporte para conjuntos (Sets) y filtros Bloom para búsquedas de IP.
  • Soporta arquitecturas x86_64, ARM y MIPS en sistemas operativos como Linux, FreeBSD y MacOS.
  • Soporte para coincidencia de dominios HTTP, DNS y SSL.
  • Soporte para dominios y hosts prohibidos para HTTP, DNS, SMTP y SSL.
  • Análisis de frecuencias para tráfico desconocido y generación automática de expresiones regulares.
  • Generación de firmas Yara.
  • Fácil integración con bases de datos (MySQL, Redis, Cassandra, Hadoop, etc...) para correlación de datos.
  • Fácil integración con otros motores de paquetes (Netfilter).
  • Soporte para limpiar cachés de memoria para actualizar la información almacenada en memoria.
  • Soporte para detectar DDoS en la capa de red/aplicación.
  • Soporte para rechazar conexiones TCP/UDP.
  • Soporte para análisis forense de red en tiempo real.
  • Soporte para firmas TLS JA3 en SSL.
  • Soporta protocolos como 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.
  • Integración de un servidor HTTP para recuperar y configurar el sistema en tiempo real.

Consulta la carpeta docs para más información

Usando AIEngine

Para usar AIEngine (versión reducida) solo ejecuta el binario aiengine o usa el binding de 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.

Tipos de NetworkStack

AIEngine soporta seis tipos de stacks de red dependiendo de la topología de red.

  • StackLan (lan) Red de área local basada en IPv4.

  • StackLanIPv6 (lan6) Red de área local con soporte IPv6.

  • StackMobile (mobile) Red móvil (interfaz Gn) para IPv4.

  • StackVirtual (virtual) Stack para entornos virtuales/nube con VxLan y GRE Transparente.

  • StackOpenFlow (oflow) Stack para entornos OpenFlow.

  • StackMobileIPv6 (mobile6) Red móvil (interfaz Gn) para IPv6.

Integrar/Programar AIEngine con otros sistemas

AIEngine es también un módulo de python/ruby/java/lua que permite ser más flexible en cuanto a la integración con otros sistemas y funcionalidades. Los principales objetos que el módulo python proporciona/exporta son los siguientes.

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

Para una descripción completa de los métodos de las clases en Python

root@kitploit:~
import pyaiengine
help(pyaiengine)

Consulta el directorio examples para tener casos de uso útiles y revisa /docs para la documentación

Compilar el binario de AIEngine

Debes tener instalados pcre-devel, libpcap-devel y boost-devel en tu sistema como mínimo.

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

Características opcionales

El sistema proporciona las siguientes funcionalidades para habilitar/deshabilitar según tus requisitos.

  • --enable-tcpqos Habilita el soporte de métricas TCP QoS para medir la QoS de las conexiones.
  • --enable-bloomfilter Habilita el soporte de filtros Bloom para búsquedas de IP. Esta opción requiere las bibliotecas correctas.
  • --enable-reject Habilita el soporte de rechazo de conexiones TCP/UDP para interrumpir conexiones establecidas en objetos StackLan y StackLanIPv6.
  • --enable-pythongil Habilita el soporte de Python GIL para aplicaciones multihilo.
  • --enable-static-memory Habilita el soporte de memoria estática/fija para sistemas con requisitos de memoria bajos (slot de 256 bytes).
  • --enable-code-coverage Habilita el soporte de cobertura de código (desarrollo).
  • --enable-sanatizer Habilita el soporte de pruebas de sanatizer (desarrollo).
  • --enable-ja3 Habilita la generación de huellas TLS en formato JA3.
  • --enable-pcaptimers Habilita temporizadores pcap en los bindings.
  • --enable-alerts Habilita el soporte de alertas en colas IPCS.

Estas opciones solo se pueden habilitar/deshabilitar en tiempo de compilación en el script configure.

Compilar la biblioteca Python de AIEngine

Para compilar la biblioteca Python también se recomienda boost-python3-devel o boost-python-devel y python-devel.

La primera opción para compilar la biblioteca es usar la optimización de compilación O3; esto generará una biblioteca pequeña.

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

La segunda opción compila la biblioteca usando la forma estándar de Python mediante setup.py; esto generará una biblioteca de mayor tamaño en comparación con la anterior.

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 biblioteca Python contiene toda la funcionalidad que proporciona el motor.

Compilar la biblioteca Ruby de AIEngine

Para compilar en Ruby se necesitan swig y ruby-devel.

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

La biblioteca Ruby no proporciona toda la funcionalidad del motor.

Compilar la biblioteca Java de AIEngine

Para compilar en Java se necesita el paquete de desarrollo de Java.

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 biblioteca Java proporciona parte de la funcionalidad del motor, con algunas excepciones.

Compilar la biblioteca Lua de AIEngine

Para compilar en Lua se necesitan swig y el paquete lua-devel.

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

La biblioteca Lua proporciona la mayor parte de la funcionalidad del motor.

Compilar la biblioteca Go de AIEngine

Para compilar en Go se necesita swig.

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

La biblioteca Go tiene algunas restricciones funcionales debido a la naturaleza del lenguaje.

Comparación con otros sistemas

Puedes encontrar una descripción completa de diferentes casos de uso con los NIDS más comunes en http://aiengine.readthedocs.io/en/latest/aiengine.html#performance-with-other-engines

Contribuyendo a AIEngine

AIEngine está desarrollado con el estándar c++11/14/17 y está bajo los términos de GPLv2.

Echa un vistazo al código fuente de AIEngine con

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

Si estás interesado en una funcionalidad específica, quieres promocionar el proyecto o simplemente necesitas ayuda, envíame un correo electrónico. Las contribuciones siempre son útiles.

Desarrollar nueva funcionalidad

AIEngine ha sido desarrollado utilizando desarrollo dirigido por pruebas. Por lo tanto, para mantener el mismo ciclo de vida, la nueva funcionalidad debe tener pruebas unitarias en el directorio creado para la nueva funcionalidad y, para integrarse con todo el sistema, integrarse posteriormente con el archivo principal tests.cc en el directorio /src.

Si tienes un caso de uso que no está cubierto con los ejemplos proporcionados, no dudes en contactarme.

Donación

Si te gusta el proyecto, puedes invitarme a unas cervezas con bitcoin :)

root@kitploit:~
3DG7FhkFUuKq7VhfXdP9QpsUzfWPXu49ng
Descargar herramienta