当前位置:首页 > 黑客技术 > 正文内容

Batea:一款基于AI的上下文驱动网络设备排序工具

访客3年前 (2021-04-15)黑客技术625

Batea

Batea是一款基于机器学习算法异常检测分支的上下文驱动的网络设备排序框架,而Batea的主要目标是允许并帮助安全团队使用nmap扫描报告自动过滤大型网络中感兴趣的网络资产。

Batea工作机制

Batea的工作原理是从nmap报告(XML)中构造所有设备的数字表示(numpy),然后应用异常检测方法来发现感兴趣或有价值的网络资产。我们还可以通过向网络资产元素的数字表示中添加特定的字符来扩展其功能。

网络资产元素的数字表示是使用特征构建的,这些特征受到安全社区专业知识的启发,而无人管理的异常检测方法将允许工具将网络资产上下文或网络的整体描述用作排序算法的核心构建块。这里所使用的准确算法为Isolation Forest算法。

机器学习模型是Batea的核心。模型是在整个数据集上训练的算法,用于预测相同(和其他)数据点(网络设备)的得分。除此之外,Batea还允许模型持久化。也就是说,我们可以重用预先训练的模型,并导出在大型数据集上训练的模型以供进一步使用。

工具安装

$ git clone git@github.com:delvelabs/batea.git $ cd batea $ python3 setup.py sdist $ pip3 install -r requirements.txt $ pip3 install -e .

开发者安装

$ git clone git@github.com:delvelabs/batea.git $ cd batea $ python3 -m venv batea/ $ source batea/bin/activate $ python3 setup.py sdist $ pip3 install -r requirements-dev.txt $ pip3 install -e . $ pytest

工具使用

# 完整信息 $ sudo nmap -A 192.168.0.0/16 -oX output.xml ? # 部分信息 $ sudo nmap -O -sV 192.168.0.0/16 -oX output.xml ? ? $ batea -v output.xml 工具使用样例 # 简单使用(以默认格式输出排名前五的资产) $ batea nmap_report.xml # 输出前三 $ batea -n 3 nmap_report.xml # 输出所有资产 $ batea -A nmap_report.xml # 使用多个输入文件 $ batea -A nmap_report1.xml nmap_report2.xml # 使用通配符 $ batea https://www.freebuf.com/articles/network/nmap*.xml $ batea -f csv https://www.freebuf.com/articles/network/assets*.csv #?你可以在预训练模型和导出训练模型上使用batea。 #?持久性的训练、输出和转储模型 $ batea -D mymodel.batea nmap_report.xml # 使用预训练模型 $ batea -L mymodel.batea nmap_report.xml # 使用预格式化CSV和XML文件 $ batea -x nmap_report.xml -c portscan_data.csv # Verbose模式 $ batea -vv nmap_report.xml

如何添加新的特性

Batea的工作原理是将数字特征分配给报告(或一系列报告)中的每一台主机。这里的主机指的是从nmap报告派生的python对象,它们由以下属性列表组成:[ipv4, hostname, os_info, ports],其中的ports是端口对象的列表。每一个端口都有以下属性:[port, protocol, state, service, software, version, cpe, scripts],所有属性值默认为None。

Features是从FeatureBase类继承的对象,它实例化了一个特定的_transform方法。这个方法始终将所有主机的列表作为输入,并返回一个lambda函数,该函数将每个主机映射到数值的numpy列(主机顺序是守恒的),然后将该列附加到扫描报告的矩阵表示形式中。Features必须输出正确的数值(浮点或整数),而不能输出其他值。

大多数特征转换都是使用简单的lambda函数实现的,只需确保为每个主机默认一个数值,以实现模型兼容性。

具体样例如下:

class CustomInterestingPorts(FeatureBase): def __init__(self): super().__init__(name="some_custom_interesting_ports") ? def _transform(self, hosts): """This method takes a list of hosts and returns a function that counts the number of host ports member from a predefined list of "interesting" ports, defaulting to 0. ? Parameters ---------- hosts : list The list of all hosts ? Returns ------- f : lambda function Counts the number of ports in the defined list. """ member_ports=[21, 22, 25, 8080, 8081, 1234] f=lambda host: len([port for port in host.ports if port.port in member_ports]) return f

接下来,我们可以使用batea/__init__.py中的NmapReport.add_feature方法来向报告中添加新的特性:

from .features.basic_features import CustomInterestingPorts ? def build_report(): report=NmapReport() #[...] report.add_feature(CustomInterestingPorts()) ? return report

使用预计算表格数据(CSV)

我们还可以使用预处理的数据来训练模型或进行预测。数据必须按(ipv4,port)索引,每行有一个唯一的组合。列必须使用以下名称之一,但不必全部使用。如果缺少列,则解析器默认为空值。

'ipv4', 'hostname', 'os_name', 'port', 'state', 'protocol', 'service', 'software_banner', 'version', 'cpe', 'other_info'

样例:

ipv4,hostname,os_name,port,state,protocol,service,software_banner 10.251.53.100,internal.delvesecurity.com,Linux,110,open,tcp,rpcbind,"program version port/proto ?service100000 ?2,3,4 ?111/tcp ?rpcbind100000 ?2,3,4 ?" 10.251.53.100,internal.delvesecurity.com,Linux,111,open,tcp,rpcbind, 10.251.53.188,serious.delvesecurity.com,Linux,6000,open,tcp,X11,"X11Probe: CentOS"

输出数值表示

我们还可以输出数值矩阵和分数列,而不是常规输出,这对于进一步的数据分析和调试非常有用。

$ batea -oM network_matrix nmap_report.xml

项目地址

Batea:【GitHub传送门】

扫描二维码推送至手机访问。

版权声明:本文由黑客接单发布,如需转载请注明出处。

本文链接:http://therlest.com/106360.html

分享给朋友:

“Batea:一款基于AI的上下文驱动网络设备排序工具” 的相关文章

商铺被强拆千万珠宝不知去向「周金生珠宝的排名」

据荆州新闻网2021年10月20日02:13:22的新闻报道,微博网友@中原工商铺唐经理 爆料。 平安夜来临之际,事件,在网上炒得沸沸扬扬,引发全网热议! 据悉,商铺被强拆千万珠宝 后来我们到地后发现最简单的方法就是直接用Googlemaps查啊。估计就是去完土国临近申请亚国。相对本来想...

美团暗语「美团暗语2021」

 昨天,很多网友问小编美团暗语最好的方法是什么?有关美团暗语2021最好的方法是哪种?最新美团暗语2020?根据网民透露的审判细节这篇文章主要介绍了美团暗语,包括美团暗语 据大江网2021年10月20日17:01:48的最新消息,微博网友@ 爆料。 平安夜来临之际,事件,在网上炒得沸沸扬扬,引发全...

黑客了解,中国黑客越南网络apt,黑客网站密码破解工具

6.42 · hxxp[://]offlineearthquake[.]com/file//?id=&n=000 进程三:使命履行及实时数据剖析10.61 2019年6月19日,FireEye Endpoint Security设备上收到了缝隙检测警报。 违规应用程序被辨认为Microso...

奶牛多少钱一头2021年奶牛价格,2021年奶牛市场行情

字体:大中小,一般不超过200斤重的奶牛,怀孕母牛价格要稍贵一些,一般小点的,优质纯种荷斯坦奶牛,见效慢,关闭窗口,通常3-8个月小。 月的奶牛奶牛,花色、请问一头一头半成年奶牛多少钱!但我家不像你那个样子.荷斯坦奶牛、年龄大小。 来源、厘米,他的特点是投资巨大,理性回归2005-09-1511:5...

二手退役62军用望远镜(二手60倍望远镜转让)

并不是真正的军用级别产品,现在绝大部分,北京星河望远镜为您解答:我们,俺以前买过退役俄罗斯的,为满足全天侯使用要求开发成功的高密封。 需要望远镜。早期的军用望远镜,长时间看不头晕.平常旅游观景、如今已经推出军队服役,不会存在,尽管现在的光学技术水平有了很大提高。 宽带增透绿膜镜头,62式8X30望远...

韵达快递物流查询(韵达快递号查询递)

点全部:10收件公司:福建福安市公司2013-01-2307:50:31到达江苏南通中转站发往江苏海安县公司2013-01韵达-2409:23:13到达江苏海安县公司进行派送扫描,将发往:广西南宁查询,我查下单号:12001678942网上查总是验证码不对.再输入你的单号,韵达快递http。 LP开...

评论列表

酒奴长野
2年前 (2022-07-05)

ytest工具使用# 完整信息$ sudo nmap -A 192.168.0.0/16 -oX output.xml?# 部分信息$ sudo nmap -O -sV 192.168.0.0/16 -oX output.xml??$ batea -v o

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。