Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
aiengine — AIEngine — это NIDS (система обнаружения сетевых вторжений) следующего поколения, интерактивная/программируемая на Python/Ruby/Java/Lua и Go. | Kitploit
Инструменты/BitbucketBitbucket/camp0/aiengine
Оборонительные ИнструментыСетевая криминалистикаСетевая безопасностьРазведка угрозМашинное ОбучениеОбнаружение ВторженийАнализ DNSОбнаружение Аномалий
Bitbucketcamp0/aiengine

aiengine

AIEngine — это NIDS (система обнаружения сетевых вторжений) следующего поколения, интерактивная/программируемая на Python/Ruby/Java/Lua и Go.

Репозиторий
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 — это движок системы обнаружения сетевых вторжений нового поколения с возможностью интерактивного/программируемого управления на Python/Ruby/Java/Lua и Go, обладающий способностью к обучению без вмешательства человека, классификации доменов DNS, обнаружению спама, сбору сетевых данных, сетевой криминалистике и многим другим функциям.

AIEngine также помогает специалистам по сетям и безопасности идентифицировать трафик и разрабатывать сигнатуры для использования в NIDS, межсетевых экранах, классификаторах трафика и т.д.

Основные возможности AIEngine:

  • Поддержка интерактивного взаимодействия/программирования с пользователем во время работы движка.
  • Поддержка PCRE JIT для сопоставления регулярных выражений.
  • Поддержка графов регулярных выражений (сложных шаблонов обнаружения).
  • Поддержка шести типов сетевых стеков (lan, mobile, lan6, virtual, oflow и mobile6).
  • Поддержка множеств и фильтров Блума для поиска IP-адресов.
  • Поддержка архитектур x86_64, ARM и MIPS в операционных системах, таких как Linux, FreeBSD и MacOS.
  • Поддержка сопоставления доменов HTTP, DNS и SSL.
  • Поддержка запрещённых доменов и хостов для HTTP, DNS, SMTP и SSL.
  • Частотный анализ неизвестного трафика и автоматическая генерация регулярных выражений.
  • Генерация сигнатур Yara.
  • Лёгкая интеграция с базами данных (MySQL, Redis, Cassandra, Hadoop и т.д.) для корреляции данных.
  • Лёгкая интеграция с другими пакетными движками (Netfilter).
  • Поддержка очистки кэшей памяти для обновления информации, хранящейся в памяти.
  • Поддержка обнаружения DDoS на сетевом/прикладном уровне.
  • Поддержка отклонения TCP/UDP-соединений.
  • Поддержка сетевой криминалистики в реальном времени.
  • Поддержка сигнатур JA3 TLS в SSL.
  • Поддержка протоколов, таких как 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 поддерживает шесть типов сетевых стеков в зависимости от топологии сети.

  • StackLan (lan) — локальная сеть на основе IPv4.

  • StackLanIPv6 (lan6) — локальная сеть с поддержкой IPv6.

  • StackMobile (mobile) — мобильная сеть (интерфейс Gn) для IPv4.

  • StackVirtual (virtual) — стек для виртуальных/облачных сред с VxLan и GRE Transparent.

  • StackOpenFlow (oflow) — стек для сред OpenFlow.

  • StackMobileIPv6 (mobile6) — мобильная сеть (интерфейс Gn) для IPv6.

Интеграция/программирование 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 Включение поддержки метрик TCP QoS для измерения качества соединений.
  • --enable-bloomfilter Включение поддержки фильтра Блума для поиска IP-адресов. Для этой опции необходимы соответствующие библиотеки.
  • --enable-reject Включение поддержки отклонения TCP/UDP-соединений для разрыва установленных соединений на объектах StackLan и StackLanIPv6.
  • --enable-pythongil Включение поддержки GIL Python для многопоточных приложений.
  • --enable-static-memory Включение поддержки статической/фиксированной памяти для систем с низкими требованиями к памяти (слот 256 байт).
  • --enable-code-coverage Включение поддержки покрытия кода (для разработки).
  • --enable-sanatizer Включение поддержки тестов санитайзера (для разработки).
  • --enable-ja3 Включение генерации TLS-отпечатков в формате JA3.
  • --enable-pcaptimers Включение таймеров pcap в привязках.
  • --enable-alerts Включение поддержки оповещений в очередях IPC.

Эти опции можно включить/отключить только на этапе компиляции в скрипте configure.

Компиляция библиотеки Python для AIEngine

Для компиляции библиотеки 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

Второй вариант компилирует библиотеку стандартным для Python способом с помощью setup.py; в результате будет создана библиотека большего размера по сравнению с предыдущим вариантом.

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 содержит всю функциональность, которую предоставляет движок.

Компиляция библиотеки Ruby для AIEngine

Для компиляции на 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 предоставляет не всю функциональность движка.

Компиляция библиотеки Java для AIEngine

Для компиляции на 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 предоставляет часть функциональности движка, за некоторыми исключениями.

Компиляция библиотеки Lua для AIEngine

Для компиляции на 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 предоставляет большую часть функциональности движка.

Компиляция библиотеки Go для AIEngine

Для компиляции на 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 разрабатывается с использованием разработки через тестирование (TDD). Чтобы сохранить тот же жизненный цикл, новая функциональность должна иметь модульные тесты в созданном для неё каталоге, а для интеграции со всей системой в дальнейшем интегрироваться с основным файлом tests.cc в каталоге /src

Если у вас есть вариант использования, не охваченный приведёнными примерами, пожалуйста, не стесняйтесь связаться со мной.

Пожертвования

Если вам нравится проект, вы можете купить мне пиво за биткоины :)

root@kitploit:~
3DG7FhkFUuKq7VhfXdP9QpsUzfWPXu49ng
Скачать инструмент