Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/BitbucketBitbucket/camp0/aiengine
أدوات دفاعيةتحليل الشبكة الجنائيأمن الشبكاتاستخبارات التهديداتتعلم الآلةكشف التسللتحليل DNSكشف الشذوذ
Bitbucketcamp0/aiengine

aiengine

AIEngine هو نظام كشف التسلل عبر الشبكة (NIDS) من الجيل التالي، تفاعلي/قابل للبرمجة بلغات Python/Ruby/Java/Lua وGo.

عرض المستودع
10منذ 3 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

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 لمطابقة التعبيرات النمطية.
  • دعم الرسوم البيانية للتعبيرات النمطية (أنماط كشف معقدة).
  • دعم ستة أنواع من NetworkStacks (lan, mobile, lan6, virtual, oflow وmobile6).
  • دعم المجموعات (Sets) ومرشحات Bloom لعمليات البحث عن 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 ستة أنواع من حزم الشبكة (Network stacks) اعتماداً على طوبولوجيا الشبكة.

  • StackLan (lan) شبكة محلية (LAN) قائمة على IPv4.

  • StackLanIPv6 (lan6) شبكة محلية مع دعم IPv6.

  • StackMobile (mobile) شبكة الجوال (واجهة Gn) لـ IPv4.

  • StackVirtual (virtual) حزمة للبيئات الافتراضية/السحابية مع VxLan وGRE الشفاف.

  • 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

للحصول على وصف كامل لأساليب الفئات (Class methods) في بايثون

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 تفعيل دعم مرشحات bloom لعمليات البحث عن IP. يتطلب هذا الخيار المكتبات الصحيحة.
  • --enable-reject تفعيل دعم رفض اتصالات TCP/UDP لكسر الاتصالات القائمة على كائنات StackLans وStackLanIPv6.
  • --enable-pythongil تفعيل دعم Python Gil للتطبيقات متعددة الخيوط.
  • --enable-static-memory تفعيل دعم الذاكرة الثابتة/المحددة للأنظمة ذات متطلبات الذاكرة المنخفضة (فتحة 256 بايت).
  • --enable-code-coverage تفعيل دعم تغطية الكود (للتطوير).
  • --enable-sanatizer تفعيل دعم اختبارات sanatizer (للتطوير).
  • --enable-ja3 تفعيل توليد بصمات TLS بتنسيق JA3.
  • --enable-pcaptimers تفعيل مؤقتات pcap في الواجهات البرمجية (bindings).
  • --enable-alerts تفعيل دعم التنبيهات على قوائم IPCS.

لا يمكن تفعيل/تعطيل هذه الخيارات إلا في وقت التجميع عبر سكربت configure.

تجميع مكتبة AIEngine لبايثون

لتجميع مكتبة بايثون يُنصح أيضاً بتثبيت 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

الخيار الثاني سيجمّع المكتبة بالطريقة البايثونية القياسية باستخدام 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 على جميع الوظائف التي يوفرها المحرك.

تجميع مكتبة 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 جميع وظائف المحرك.

تجميع مكتبة 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 بعض وظائف المحرك، مع بعض الاستثناءات.

تجميع مكتبة 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 معظم وظائف المحرك.

تجميع مكتبة 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
تنزيل الأداة