一种基于倒排索引的互联网资产指纹识别方法与系统与流程

文档序号:26919076发布日期:2021-10-09 16:26阅读:263来源:国知局
一种基于倒排索引的互联网资产指纹识别方法与系统与流程

1.本发明涉及网络资产探测技术领域,特别是一种基于倒排索引的互联网资产指纹识别方法与系统。


背景技术:

2.国内网络安全专用搜索引擎的相关研究以知道创宇公司开发的zoomeye搜索引擎和白帽汇的fofa为代表。zoomeye搜索引擎在nmap的基础上,开发了web指纹识别引擎wmap,并依托其后台的大数据存储处理平台,为用户提供了设备指纹、web服务等的搜索功能。zoomeye的核心作用是针对全球网络空间基础设施、网络设备进行指纹的扫描和存储,输出检索功能。
3.而现有的zoomeye搜索引擎和白帽汇的fofa都是基于搜索引擎,对互联网指纹强调扫描、收集、存储和查找、统计、排序等,不进行加工识别。


技术实现要素:

4.本发明的目的是提供一种基于倒排索引的互联网资产指纹识别方法与系统,旨在解决现有技术中无法识别种类繁多的应用版本的问题,实现提高互联网资产的识别效率和速度。
5.为达到上述技术目的,本发明提供了一种基于倒排索引的互联网资产指纹识别方法,所述方法包括以下操作:
6.对互联网资产指纹进行响应头提取,对响应头中字段进行拆解,以倒排索引形式,排序键名,合并相同键名,靠拢相似键名,提取资产指纹的特征;
7.根据资产指纹特征,进行三元组、负载大小、协议特征、内容字符多模匹配、pcre正则匹配、优先级累加、匹配分值累加匹配核对,标记和分类获取的指纹资产,形成资产匹配识别规则。
8.优选地,所述倒排索引形式为将key

value的形式转变为value

key的倒排形式。
9.优选地,所述资产匹配识别规则为json格式,规则库中一行书写一条规则,注释行首书写一个或多个#。
10.优选地,所述资产匹配识别规则中多条规则可匹配同一条资产指纹,如任一输出字段没有匹配到,则不论优先级会先填空值,然后同一优先级、同一类型复合相加。
11.本发明还提供了一种基于倒排索引的互联网资产指纹识别系统,所述系统包括:
12.倒排索引模块,用于对互联网资产指纹进行响应头提取,对响应头中字段进行拆解,以倒排索引形式,排序键名,合并相同键名,靠拢相似键名,提取资产指纹的特征;
13.资产匹配模块,用于根据资产指纹特征,进行三元组、负载大小、协议特征、内容字符多模匹配、pcre正则匹配、优先级累加、匹配分值累加匹配核对,标记和分类获取的指纹资产,形成资产匹配识别规则。
14.优选地,所述倒排索引形式为将key

value的形式转变为value

key的倒排形式。
15.优选地,所述资产匹配识别规则为json格式,规则库中一行书写一条规则,注释行首书写一个或多个#。
16.优选地,所述资产匹配识别规则中多条规则可匹配同一条资产指纹,如任一输出字段没有匹配到,则不论优先级会先填空值,然后同一优先级、同一类型复合相加。
17.发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:
18.与现有技术相比,本发明通过倒排索引对互联网资产指纹进行识别,将key

value的形式转变为value

key的倒排形式,然后排序value键名,合并相同键名,靠拢相似键名,以提取资产指纹的共性和个性特征,并依据特征,进行三元组、负载大小、协议特征、内容字符多模匹配、pcre正则匹配、优先级累加、匹配分值累加等匹配核对,以标记和分类获取的指纹资产,形成资产匹配识别规则,方便提取互联网资产的属性特征,简洁高效,采用引擎匹配规则的方式灵活方便,有效提高识别效率和速度。
附图说明
19.图1为本发明实施例中所提供的一种基于倒排索引的互联网资产指纹识别方法流程图;
20.图2为本发明实施例中所提供的一种基于倒排索引的互联网资产指纹识别系统结构框图。
具体实施方式
21.为了能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
22.下面结合附图对本发明实施例所提供的一种基于倒排索引的互联网资产指纹识别方法与系统进行详细说明。
23.如图1所示,本发明实施例公开了一种基于倒排索引的互联网资产指纹识别方法,所述方法包括以下操作:
24.对互联网资产指纹进行响应头提取,对响应头中字段进行拆解,以倒排索引形式,排序键名,合并相同键名,靠拢相似键名,提取资产指纹的特征;
25.根据资产指纹特征,进行三元组、负载大小、协议特征、内容字符多模匹配、pcre正则匹配、优先级累加、匹配分值累加匹配核对,标记和分类获取的指纹资产,形成资产匹配识别规则。
26.本发明实施例采用倒排索引对互联网资产指纹进行识别,尤其http指纹,进行http响应头提取,然后对响应头中各个字段进行拆解,将key

value的形式转变为value

key的倒排形式,然后排序value键名,合并相同键名,靠拢相似键名,以提取资产指纹的共性和个性特征,并依据特征,进行三元组、负载大小、协议特征、内容字符多模匹配、pcre正
则匹配、优先级累加、匹配分值累加等匹配核对,以标记和分类获取的指纹资产。
27.http类原始资产指纹中,server为http协议响应关键字,可视为键名,tengine为server键值,键名在此识别方法中只起到提取和定位资源头中各属性字段的作用,因此将server转变为键值并舍弃或只做定位参考,将tengine转变为键名作为应用名或应用近似名,并对键名重点分析、合并或靠拢。
28.本发明实施例中将资产匹配识别规则设计为json格式,规则库中一行书写一条规则,注释行首书写一个或多个#,例如针对tengine资产指纹,规则设计格式如下:
29.{"jid":1,"dsize":65535,"pcre":["/tengine/([0

9.])+/",0],"priority":7,"score:":50,"out":{"protocol7":"http","app":"tengine","manufacturer":"阿里云","industry":"云提供厂商"}}
[0030]
多条规则可匹配同一条资产指纹,如任一输出字段没有匹配到,则不论优先级会先填空值,然后同一优先级同一类型,会复合相加,例如模块为mod_ssl,mod_perl,mod_ssl,mod_perl这几个模块,存在于http的header中的server字段,如果后续识别了页面如body中又有模块,例如apache容器,php子容器,wordpres框架(或应用),wordpress中又有ckeditor模块,则如果ckeditor模块对应的规则,优先级低,则不覆盖不叠加;优先级高,会覆盖;优先级相同,会叠加到mod_ssl,mod_perl,mod_ssl,mod_perl后面。
[0031]
提取资产指纹的共性和个性特征,并依据特征,进行三元组、负载大小、协议特征、内容字符多模匹配、pcre正则匹配、优先级累加、匹配分值累加等匹配核对,根据资产匹配识别规则识别承载种类繁多的应用及应用版本。
[0032]
本发明实施例通过倒排索引对互联网资产指纹进行识别,将key

value的形式转变为value

key的倒排形式,然后排序value键名,合并相同键名,靠拢相似键名,以提取资产指纹的共性和个性特征,并依据特征,进行三元组、负载大小、协议特征、内容字符多模匹配、pcre正则匹配、优先级累加、匹配分值累加等匹配核对,以标记和分类获取的指纹资产,形成资产匹配识别规则,方便提取互联网资产的属性特征,简洁高效,采用引擎匹配规则的方式灵活方便,有效提高识别效率和速度。
[0033]
如图2所示,本发明实施例还公开了一种基于倒排索引的互联网资产指纹识别系统,所述系统包括:
[0034]
倒排索引模块,用于对互联网资产指纹进行响应头提取,对响应头中字段进行拆解,以倒排索引形式,排序键名,合并相同键名,靠拢相似键名,提取资产指纹的特征;
[0035]
资产匹配模块,用于根据资产指纹特征,进行三元组、负载大小、协议特征、内容字符多模匹配、pcre正则匹配、优先级累加、匹配分值累加匹配核对,标记和分类获取的指纹资产,形成资产匹配识别规则。
[0036]
在本系统中采用倒排索引对互联网资产指纹进行识别,尤其http指纹,进行http响应头提取,然后对响应头中各个字段进行拆解,将key

value的形式转变为value

key的倒排形式,然后排序value键名,合并相同键名,靠拢相似键名,以提取资产指纹的共性和个性特征,并依据特征,进行三元组、负载大小、协议特征、内容字符多模匹配、pcre正则匹配、优先级累加、匹配分值累加等匹配核对,以标记和分类获取的指纹资产。
[0037]
http类原始资产指纹中,server为http协议响应关键字,可视为键名,tengine为server键值,键名在此识别方法中只起到提取和定位资源头中各属性字段的作用,因此将
server转变为键值并舍弃或只做定位参考,将tengine转变为键名作为应用名或应用近似名,并对键名重点分析、合并或靠拢。
[0038]
本发明实施例中将资产匹配识别规则设计为json格式,规则库中一行书写一条规则,注释行首书写一个或多个#,例如针对tengine资产指纹,规则设计格式如下:
[0039]
{"jid":1,"dsize":65535,"pcre":["/tengine/([0

9.])+/",0],"priority":7,"score:":50,"out":{"protocol7":"http","app":"tengine","manufacturer":"阿里云","industry":"云提供厂商"}}
[0040]
多条规则可匹配同一条资产指纹,如任一输出字段没有匹配到,则不论优先级会先填空值,然后同一优先级同一类型,会复合相加,例如模块为mod_ssl,mod_perl,mod_ssl,mod_perl这几个模块,存在于http的header中的server字段,如果后续识别了页面如body中又有模块,例如apache容器,php子容器,wordpres框架(或应用),wordpress中又有ckeditor模块,则如果ckeditor模块对应的规则,优先级低,则不覆盖不叠加;优先级高,会覆盖;优先级相同,会叠加到mod_ssl,mod_perl,mod_ssl,mod_perl后面。
[0041]
提取资产指纹的共性和个性特征,并依据特征,进行三元组、负载大小、协议特征、内容字符多模匹配、pcre正则匹配、优先级累加、匹配分值累加等匹配核对,根据资产匹配识别规则识别承载种类繁多的应用及应用版本。
[0042]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1