人工智能引擎
AIEngine是下一代交互式/可编程Python/Ruby/Java/Lua和Go网络入侵检测系统引擎,具有学习能力无需任何人工干预、DNS域分类、垃圾邮件检测、网络收集器、网络取证等等。
AIEngine还帮助网络/安全专业人员识别流量并开发用于在NIDS、防火墙、流量分类器等上使用它们的签名。
(我们的blackarch直接给他集成好了)
AIEngine的主要功能有:
支持在引擎运行时与用户交互/编程。
支持PCREJIT进行正则表达式匹配。
支持正则表达式图(复杂的检测模式)。
支持六种类型的NetworkStacks(lan、mobile、lan6、virtual、oflow和mobile6)。
用于IP搜索的支持集和布隆过滤器。
在Linux、FreeBSD和MacOS等操作系统上支持x86_64、ARM和MIPS架构。
支持HTTP、DNS和SSL域匹配。
支持HTTP、DNS、SMTP和SSL的禁止域和主机。
未知流量的频率分析和自动正则表达式生成。
Yara签名的生成。
与数据库(MySQL、Redis、Cassandra、Hadoop等)轻松集成以进行数据关联。
与其他数据包引擎(Netfilter)轻松集成。
支持内存清理缓存,用于刷新存储的内存信息。
支持在网络/应用层检测DDoS。
支持拒绝TCP/UDP连接。
支持实时网络取证。
支持SSL上的JA3TLS签名。
支持比特币、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;
集成HTTPServer,用于实时检索和配置系统。
检查docs文件夹以获取更多信息
使用人工智能引擎要使用AIEngine(reduceversion)只需执行二进制aiengine或使用python/ruby/java/lua绑定。
aiengine2.0.0Mandatoryarguments:-I[--input]argSetsthenetworkinterface,pcapfileordirectorywithpcapfiles.LinkLayeroptionalarguments:-q[--tag]argSelectsthetagtypeoftheethernetlayer(vlan,mpls).TCPoptionalarguments:-t[--tcp-flows]arg(=32768)SetsthenumberofTCPflowsonthepool.UDPoptionalarguments:-u[--udp-flows]arg(=16384)SetsthenumberofUDPflowsonthepool.Regexoptionalarguments:-R[--enable-signatures]EnablestheSignatureengine.-r[--regex]arg(=.*)Setstheregexforevaluateagainstheflows.-c[--flow-class]arg(=all)Usestcp,udporallformatchesthesignatureontheflows.-m[--matched-flows]Showstheflowsthatmatchswiththeregex.-M[--matched-packet]Showsthepacketpayloadthatmatchswiththeregex.-C[--continue]ContinueevaluatingtheregexwiththenextpacketsoftheFlow.-j[--reject-flows]Rejectstheflowsthatmatchswiththeregex.-w[--evidence]Generatesapcapfilewiththematchingregexforforensicanalysis.Frequenciesoptionalarguments:-F[--enable-frequencies]EnablestheFrequencyengine.-g[--group-by]arg(=dst-port)Groupsfrequenciesbysrc-ip,dst-ip,src-portanddst-port.-f[--flow-type]arg(=tcp)Usestcporudpflows.-L[--enable-learner]EnablestheLearnerengine.-k[--key-learner]arg(=80)SetsthekeyfortheLearnerengine.-b[--buffer-size]arg(=64)Setsthesizeoftheinternalbufferforgeneratetheregex.-Q[--byte-quality]arg(=80)Setstheminimumqualityforthebytesofthegeneratedregex.-y[--enable-yara]Generatesayarasignature.Optionalarguments:-n[--stack]arg(=lan)Setsthenetworkstack(lan,mobile,lan6,virtual,oflow).-d[--dumpflows]Dumptheflowstostdout.-s[--statistics]arg(=0)Showstatisticsofthenetworkstack(5levels).-T[--timeout]arg(=180)Setstheflowstimeout.-P[--protocol]argShowstatisticsofaspecificprotocolofthenetworkstack.-a[--port]arg(=0)SetstheHTTPlistentingport.-e[--release]Releasethecaches.-l[--release-cache]argReleaseaspecificcache.-p[--pstatistics]Showstatisticsoftheprocess.-o[--summary]Showprotocolsummmarystatistics(bytes,packets,%bytes,cachemiss,memory).-h[--help]Showhelp.-v[--version]Showversionstring.网络堆栈类型AIEngine支持六种类型的网络堆栈,具体取决于网络拓扑。
StackLan(lan)基于IPv4的局域网。
StackLanIPv6(lan6)支持IPv6的局域网。
用于IPv4的StackMobile(移动)网络移动(Gn接口)。
StackVirtual(virtual)VxLan和GRETransparent适用于虚拟/云环境的堆栈。
StackOpenFlow(oflow)用于开放流环境的堆栈。
StackMobileIPv6(mobile6)用于IPv6的网络移动(Gn接口)。
将AIEngine与其他系统集成/编程AIEngine是一个python/ruby/java/lua模块,它也允许在与其他系统和功能的集成方面更加灵活。python模块提供导出的主要对象如下。
BitcoinInfoCacheCoAPInfoDCERCPInfoDHCPInfoDHCPv6InfoDNSInfoDTLSInfoDatabaseAdaptorDomainNameDomainNameManagerFlowFlowManagerFrequenciesFrequencyGroupHTTPInfoHTTPUriSetIMAPInfoIPAbstractSetIPRadixTreeIPSetIPSetManagerLearnerEngineMQTTInfoNetbiosInfoNetworkStackStackLanStackLanIPv6StackMobileStackMobileIPv6StackOpenFlowStackVirtualPOPInfoPacketDispatcherPacketFrequenciesQuicInfoRegexRegexManagerSIPInfoSMBInfoSMTPInfoSSDPInfoSSHInfoSSLInfoTCPInfo有关Python中类方法的完整说明
importpyaienginehelp(pyaiengine)检查目录示例以获得有用的用例,并检查/docs以获取文档
编译AIEngine二进制文件你应该已经在你的系统中安装了pcre-devel、libpcap-devel和boost-devel作为minimun。
$gitclonehttps://bitbucket.com/camp0/aiengine$./autogen.sh$./configure$make可选功能系统根据您的要求提供以下启用/禁用功能。
--enable-tcpqos启用TCPQoSMetrics支持以测量连接的QoS。
--enable-bloomfilter为IP查找启用布隆过滤器支持。此选项应具有正确的库。
--enable-reject为StackLans和StackLanIPv6对象上的中断建立连接启用TCP/UDP拒绝连接支持。
--enable-pythongil为多线程应用程序启用PythonGil支持。
--enable-static-memory为内存需求低的系统启用静态/固定内存支持(256字节插槽)。
--enable-code-coverage启用代码覆盖支持(开发)。
--enable-sanatizer启用sanatizer测试支持(开发)。
--enable-ja3启用在JA3格式上生成TLS指纹。
此选项只能在配置脚本的编译时启用/禁用。
编译AIEnginePython库对于编译Python库也推荐boost-python3-devel或boost-python-devel和python-devel。
编译库的第一个选项是使用O3编译优化,这将生成一个小库
$gitclonehttps://bitbucket.com/camp0/aiengine$./autogen.sh$./configure$cdsrc$makepython$pythonpyai_test.py第二个选项将使用setup.py使用标准的pythonic方式编译库,这将生成如果与前一个相比,一个更大的库大小。
$gitclonehttps://bitbucket.com/camp0/aiengine$./autogen.sh$./configure$cdsrc$pythonsetup.pybuild_ext-i$pythonpyai_test.py$python3.6setup.pybuild_ext-i$python3.6pyai_test.pypython库包含引擎提供的所有功能。
编译AIEngineRuby库为了在Ruby上编译,需要swig和ruby-devel。
$gitclonehttps://bitbucket.com/camp0/aiengine$./autogen.sh$./configure$cdsrc$makeruby$rubyruai_tests.rbruby库不提供引擎的所有功能。
编译AIEngineJava库为了在Java上编译,需要javadevel包。
$gitclonehttps://bitbucket.com/camp0/aiengine$./autogen.sh$./configure$cdsrc$makejava$java-cp".:/usr/share/java/junit.jar:/usr/share/java/hamcrest/core.jar:./buildjava"org.junit.runner.JUnitCoreJunitTestSuitejavalib提供了引擎的一些功能,但有一些例外。
编译AIEngineLua库为了在Luaswig上编译,需要lua-devel包。
$gitclonehttps://bitbucket.com/camp0/aiengine$./autogen.sh$./configure$cdsrc$makelua$lualuai_tests.lualua库提供了引擎的大部分功能。
编译AIEngineGo库用于在Goswig上编译。
$gitclonehttps://bitbucket.com/camp0/aiengine$./autogen.sh$./configure$cdsrc$makego$./goai_test由于语言的性质,Go库有一些功能限制。
拓展https://aiengine.readthedocs.io/en/latest/aiengine.html
好了今天就到这里,希望今天的内容对你有帮助,再见~
人工智能引擎(2)
外围设备应该是什么样子的?
现在我是个完全行为能力的人,会学习,会做会做的,会摸索做不会做的,会说话,会听话,会走路等等。所有的这一切都是我学习到的。如果让我这一切我学来的能力全部去掉,这样就相当于让我回到刚出生。那个时候我是什么样子的?眼睛,耳朵,皮肤,舌头这些数据采集器全部正常运作;手,脚,腰部,头都不会动,之所以这么说,是因为我总是想起出生的婴儿手和脚的状态与在子宫中的状态一样。刚来到这个世界,婴儿会做什么?各种信号的输入,却什么也不懂(什么叫做懂)。我觉得应该做的事情有两件:
其一,大量去记忆传来的数据(如何去记忆是一个问题,但我想绝对不是SAVE那么简单);其二,试图去控制所有的肢体(执行器);后者比前者快(为什么快);婴儿在很快的时间就会控制自己的手和脚,比如他会咬手指,会踢腿,这是学会了控制肢体的体现。我对出生的婴儿不了解,不知道笑容是遗传的,还是学会对。通常控制脸部肌肉也是一种能力,而且是人最早展现的能力,还有哭。小孩刚来世界是会哭的,这样来说,这种被动的哭应该是比较底层的反应,生物学上叫条件反射。(记得梳理下条件反射,先天能力之类的东西)。如果哭是先天性的,那么笑了?这不好定论(这是个问题)。在之后就是学习站立和行走。总的说,就是通过多次尝试达到预期的行为目的并保存控制数据,以便再次利用。(如何学习?如何建立数据?这是个问题。)
图解注释:1.上层推理机属高级推理,比如人脑的主动思考。
2.下层推理机类似条件反射,平衡行走,相当于小脑的功能,做一些不需要复杂运算的事情。