一种基于物联网设备指纹的漏洞挖掘方法与流程

文档序号:29236069发布日期:2022-03-12 14:19阅读:323来源:国知局
一种基于物联网设备指纹的漏洞挖掘方法与流程

1.本发明涉及物联网设备漏洞检测技术领域,具体的说,是一种基于物联网设备指纹的漏洞挖掘方法。


背景技术:

2.随着智慧城市的兴起,各式各样的物联网设备迅速发展和广泛应用,攻防双方的持续性对抗升级,安全设备的漏洞大量存在于广泛使用的物联网设备中。常规单点的漏洞挖掘技术不再完全适用于数量庞大的物联网设备的漏洞发现和批量化挖掘工作。目前,现有的物联网设备的漏洞扫描挖掘方式通过编写好的漏洞利用载荷在小范围按照ip地址验证物联网设备是否存在漏洞,存在扫描速度慢,无法适应百万、千万级设备的批量化扫描验证管理。


技术实现要素:

3.本发明的目的在于提供一种基于物联网设备指纹的漏洞挖掘方法,用于解决现有技术中漏洞挖掘方法已经不适应数量庞大的物联网设备的批量化扫描验证的问题。
4.本发明通过下述技术方案解决上述问题:
5.一种基于物联网设备指纹的漏洞挖掘方法,包括:
6.步骤s100、收集物联网设备清单,按照归属权特征建立物联网产品样本库,并通过创建字段与国家漏洞库、数据库建立关联;归属权特征为厂商名称、拥有者或使用者;
7.步骤s200、获取全国各个省份的ip网段,利用端口扫描技术扫描65535个端口,根据扫描结果选定物联网设备的指纹特征,指纹特征包括基本特征和关键特征;基本特征包括ip地址、在线状态、开放端口、服务协议、超文本传输协议、应用程序名、版本号、主机名、设备类型、厂商名称和设备型号;关键特征为开放了多种服务的物联网设备中的协议报文头部、协议报文返回标志和标题;
8.步骤s300、将获取的ip网段按照ip地址排序,从各个端口爬取物联网设备的基本特征和关键特征,经过预处理和规范化后,构建设备指纹训练集,将设备指纹训练集导入分类算法模块,训练得到分类模型;
9.步骤s400、使用分类模型进行目标分类,加载对应的公开或者半公开的poc(漏洞验证代码)或者exploit(漏洞利用代码)验证程序发出漏洞利用请求,根据返回值标注目标分类下的所有物联网设备的安全状态,并将基本特征和关键特征入库,对于安全状态为否的物联网上传国家漏洞库并存入数据库。
10.选取有效的物联网终端指纹训练得到分类模型,实现高速的大批量的物联网终端指纹识别,通过识别出的物联网设备型号加载对应的漏洞利用代码实现高效的安全状态验证,不浪费服务器网络资源,避免大量无效的请求。
11.所述分类算法模块采用决策树分类算法。
12.本发明与现有技术相比,具有以下优点及有益效果:
13.(1)本发明提高了对千万级甚至亿级别物联网设备安全状态的检测和管理效率,既能满足对全国物联网终端的资产管理,也可以实时知晓目前哪些厂商、哪些ip段的物联网设备存在的安全问题。
14.(2)本发明以设备指纹为多维度标识的物联网终端智能识别系统,利用github、物联网设备厂商、各大安全公司半公开和公开渠道的poc或exp漏洞攻击代码实现千万级主机的安全状态监控。
附图说明
15.图1为本发明的流程图。
具体实施方式
16.下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。
17.实施例:
18.结合附图1所示,一种基于物联网设备指纹的漏洞挖掘方法,包括:
19.1、收集国内外开源社区所有分享出的物联网设备清单,选取具有一定归属权的特征指纹,建立物联网产品样本库;
20.2、搭建大规模扫描程序所需软件环境,从亚太互联网络信息中心提取全国各个省份的ip网段,利用nmap的指纹识别模块、masscan的无状态高速扫描技术进行65535个端口的扫描,选定特征指纹:终端ip地址、在线状态、开放端口、服务协议(如域名服务器(domain name server,dns),超文本传输协议(hypertext transfer protocol,http),telnet)、应用程序名(如isc bind,apache httpd,solaris telnetd)、版本号、主机名、设备类型、厂商、产品型号等基本特征,对于开放了多种服务的可直接提取协议报文头部和返回的banner标语、title和产品型号等参数作为关键特征,实现精准识别。
21.3、完成全国各个省份的ip网段扫描后,需编写程序提取masscan和nmap扫描的json格式数据,将ip地址作为排序依据,利用chrome webdriver爬取各个端口的特征数据,通过对程序提取的特征数据进行选取及预处理,将规范化后的特征指纹作为设备指纹训练集导入分类算法模块。本方案分类算法模块选用决策树分类算法进行实现,并通过实验验证其在物联网终端指纹识别上的效能,具体实现简述如下:
22.决策树分类算法使用树形结构来制定决策与结果的序列,其结构由测试点和分支点组成,其中分支表示做出的决策,没有下一级分支的节点叫做叶子节点,叶子节点返回的是分类结果。在某些实现中,叶子节点返回每种分类的概率值。最终获得的决策树能够用一组决策规则来表示。决策树算法核心就是信息增益,首先计算各个节点的信息增益的大小,通过信息增益的大小考虑各节点上用什么特征,最后用信息增益最大的特征来建立决策树的当前节点。
23.具体步骤如下:
24.1)在pythonsklearn模块导入sklearn.datasets类,加载设备指纹作为数据集;
25.2)将设备指纹分为特征数据与分类数据;
26.3)导入model_selection.train_test_split函数,将数据集细分为训练集特征、测试集特征、训练集目标值和特征值目标值;
27.4)导入sklearn.tree.decisiontreeclassifier函数,将决策树分类器导入;
28.5)使用训练集训练模型;
29.6)导入sklearn.metrics.accuracy_score评估计算方法来查看预测结果的准确度;
30.7)导入sklearn.externals.joblib类用于导出训练模型。
31.4、安全状态验证:使用训练好的分类模型,将目标分类,加载对应的公开或者半公开的poc(漏洞验证代码)或者exploit(漏洞利用代码)验证程序发出漏洞利用请求,根据返回值标注该目标分类下设备安全状态并将物联网设备的基本特征和关键特征编码入物联网产品样本库,对于安全状态为否的首先上传国家漏洞库,再存入数据库。
32.与传统漏洞扫描方法相比,本发明针对海量物联网终端智能识别和漏洞评估问题,先期建立了以设备指纹为特征标识的物联网产品样本库,基本特征包括终端ip地址、在线状态、开放端口、服务协议(如域名服务器(domain name server,dns),超文本传输协议(hypertext transfer protocol,http),telnet)、应用程序名(如isc bind,apache httpd,solaris telnetd)、版本号、主机名、设备类型以及协议报文头部和返回的banner标语关键特征,通过组合基本特征和关键特征,定义设备指纹,实现唯一的识别具体终端,例如:将banner信息设备类型、操作系统或开放端口、操作系统进行组合均可以较好地识别设备。我们挖掘到某一类型的物联网设备或者国家信息安全漏洞库公开了特定某种物联网设备漏洞的时候,我们即可利用我们的物联网产品样本库提取我们需要的某一类型物联网设备终端,使用漏洞扫描模块批量化快速扫描,准确导出现在入库的物联网终端中存在漏洞的终端。
33.尽管这里参照本发明的解释性实施例对本发明进行了描述,上述实施例仅为本发明较佳的实施方式,本发明的实施方式并不受上述实施例的限制,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本技术公开的原则范围和精神之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1