CN117376037B - 一种网络资产分类扫描的方法、装置及存储介质 - Google Patents

一种网络资产分类扫描的方法、装置及存储介质 Download PDF

Info

Publication number
CN117376037B
CN117376037B CN202311679776.6A CN202311679776A CN117376037B CN 117376037 B CN117376037 B CN 117376037B CN 202311679776 A CN202311679776 A CN 202311679776A CN 117376037 B CN117376037 B CN 117376037B
Authority
CN
China
Prior art keywords
fingerprint
script
expression
asset
hierarchy
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202311679776.6A
Other languages
English (en)
Other versions
CN117376037A (zh
Inventor
赵子文
吕绪银
崔晓鑫
曹瑞
闫继文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Xingwei Jiuzhou Safety Technology Co ltd
Original Assignee
Shandong Xingwei Jiuzhou Safety Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shandong Xingwei Jiuzhou Safety Technology Co ltd filed Critical Shandong Xingwei Jiuzhou Safety Technology Co ltd
Priority to CN202311679776.6A priority Critical patent/CN117376037B/zh
Publication of CN117376037A publication Critical patent/CN117376037A/zh
Application granted granted Critical
Publication of CN117376037B publication Critical patent/CN117376037B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Collating Specific Patterns (AREA)

Abstract

本发明涉及一种网络资产分类扫描的方法、装置及存储介质。涉及网络资产的漏洞扫描领域。本发明利用网络资产的指纹属性信息构建相应的资产指纹表达式;获取漏洞扫描脚本中预置的脚本指纹表达式;利用自产品组件层到目的层级的资产指纹表达式和脚本指纹表达式的层级匹配进行网络资产与漏洞扫描脚本的匹配,若存在网络资产与漏洞扫描脚本的匹配成功,则调度相关的漏洞扫描脚本进行扫描,若网络资产与漏洞扫描脚本的匹配不成功,则继续进行指纹表达式下一层级的匹配,循环前述匹配过程,直到目的层级,完成网络资产扫描。在上述方式下,根据不同级别的匹配结果分类调度相关的漏洞扫描脚本进行后续扫描,从而提高整个安全测试过程的效率和覆盖度。

Description

一种网络资产分类扫描的方法、装置及存储介质
技术领域
本发明涉及网络资产的漏洞扫描技术领域,尤其涉及一种网络资产分类扫描的方法、装置及存储介质。
背景技术
在渗透测试或安全测试过程中,安全测试分析师对IP资产进行漏洞扫描或安全测试时,需要经过一些必要的步骤,包括但不限于,存活探测、端口扫描、服务识别、Web指纹识别、漏洞脚本扫描(PoC扫描)等。在漏洞脚本扫描阶段,主要有两种常规的扫描方式,第一种方式是不匹配前面的服务识别及Web指纹识别的资产指纹信息,或是不执行服务识别及Web指纹识别操作,直接对扫描出的所有可达端口进行全量的PoC扫描;第二种方式是利用关键词、Hash、正则等匹配待扫描(测试)资产的服务识别及Web指纹识别信息,根据匹配结果成功与否,决定是否对此资产执行当前漏洞脚本的扫描。
基于上述表述可知,第二种方式相比于第一种方式虽然可以减少无效扫描,提升效率,但是,单纯依靠关键词、Hash、正则等匹配资产指纹的方式,由于过度依赖指纹库,不可避免的存在匹配不全面、不准确,从而导致漏扫的情况;不仅如此,此种方式下的匹配结果过于绝对,还会导致无法对匹配结果进行多级处理。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本发明提供一种网络资产分类扫描的方法、装置及存储介质。
第一方面,本发明提供一种网络资产分类扫描的方法,包括:
利用网络资产的指纹属性信息构建相应的资产指纹表达式;
获取漏洞扫描脚本中预置的脚本指纹表达式,所述脚本指纹表达式指定了所在漏洞扫描脚本支持检测的网络资产的指纹属性;
所述资产指纹表达式和脚本指纹表达式属于指纹表达式,所述指纹表达式的层次依次包含:协议层、服务端口层、语言技术层和产品组件层;
利用自产品组件层到目的层级的资产指纹表达式和脚本指纹表达式的层级匹配进行网络资产与漏洞扫描脚本的匹配,若存在网络资产与漏洞扫描脚本的匹配成功,则调度相关的漏洞扫描脚本进行扫描,若网络资产与漏洞扫描脚本的匹配不成功,则继续进行指纹表达式下一层级的匹配,循环前述匹配过程,直到目的层级,完成网络资产分类扫描。
更进一步地,所述协议层用于表达传输层协议名称;所述服务端口层用于标段端口或识别到端口上的服务名称;所述语言技术层用于表达产品技术或产品的开发语言;产品组件层用于表达产品名称、业务系统组件、插件、CMS、框架、OA、中间件。
更进一步地,所述指纹表达式包括:分隔层级,分隔指纹,表示层级,表示层级间逻辑关系,表示指纹数据间逻辑关系,表示指纹数据、层级、指纹表达式匹配设置的设定符号。
更进一步地,所述符号包括:设置于层级间用于分隔各层指纹的层级分隔符;
表示所在指纹表达式层级的指纹为空的层级占位符;
表示所在指纹表达式层级的指纹为任意字符串的层级通配符;
将同层指纹分隔的指纹并列分隔符;
用于连接并分隔同一层级的相邻指纹的指纹逻辑或分隔符,层级匹配时,被指纹逻辑或分隔符分隔连接的两个指纹中,任一指纹匹配成功,即成功匹配;
用于连接并分隔同一层级的相邻指纹的指纹逻辑与分隔符,层级匹配时,被指纹逻辑与分隔符分隔连接的两个指纹均匹配成功,才成功匹配;
用于指纹表达式前或指纹表达式层级前或指纹表达式层级中指纹前,表示层级匹配结果取反的逻辑非修饰符;
用于指纹表达式前或指纹表达式层级前或指纹表达式层级中指纹前,表示内容必须完全相同才匹配成功的严格匹配模式修饰符;
将两个层级连接的层级连接符,按照被层级连接符所连接的层级同时层级匹配成功进行网络资产与漏洞扫描脚本的匹配。
更进一步地,利用自产品组件层到目的层级的资产指纹表达式和脚本指纹表达式的层级匹配进行网络资产与漏洞扫描脚本的匹配包括:
将漏洞扫描脚本按照各脚本指纹表达式各层级指纹分类成主题扫描脚本集;
资产指纹表达式进行层级分割提取指纹,
检测从自产品组件层到目的层级指纹存在,且存在匹配的主题扫描脚本集,则调用相应的主题扫描脚本集中漏洞扫描脚本进行扫描。
更进一步地,利用自产品组件层到目的层级的资产指纹表达式和脚本指纹表达式的层级匹配进行网络资产与漏洞扫描脚本的匹配包括:
分别对资产指纹表达式进行层级分割,对脚本指纹表达式进行层级分割并记录层级之间的层级连接符;
自产品组件层到目的层级的资产指纹表达式和脚本指纹表达式的层级匹配;
根据层级匹配结果和层级连接符确定是否网络资产与漏洞扫描脚本的匹配成功:未被层级连接符连接的层级,单层级匹配成功即网络资产与漏洞扫描脚本的匹配成功,被层级连接符连接的层级两层级均匹配成功即网络资产与漏洞扫描脚本的匹配成功。
更进一步地,资产指纹表达式和脚本指纹表达式的层级匹配包括:
提取资产指纹表达式各层级中的指纹字符串为资产指纹数组;
提取脚本指纹表达式各层级中的指纹字符串为脚本指纹数据;
对于资产指纹表达式和脚本指纹表达式的对应层级,判断脚本指纹表达式中的层级指纹是否为层级通配符,如果是则直接返回该层级匹配成功;
若对于资产指纹表达式和脚本指纹表达式的对应层级中,脚本指纹表达式中层级首位非逻辑非修饰符,且指纹之间无逻辑分隔符,则脚本指纹表达式中的层级指纹字符串是否包含资产指纹数组中的字符串或判断资产指纹表达式中的层级指纹字符串是否包含脚本指纹数组中的字符串,是则匹配成功;
若对于资产指纹表达式和脚本指纹表达式的对应层级中,脚本指纹表达式中层级首位非逻辑非修饰符,且指纹通过指纹逻辑或分隔符连接,则判断资产指纹表达式中的层级指纹字符串是否包含脚本指纹数组中的任一字符串,或者脚本指纹表达式中的层级指纹字符串是否包含资产指纹数组中的任一字符串,满足任何其中一个,则匹配成功,否则匹配失败;脚本指纹表达式中层级首位是逻辑非修饰符时,匹配结果相反;
若对于资产指纹表达式和脚本指纹表达式的对应层级中,脚本指纹表达式中层级首位非逻辑非修饰符,且指纹通过指纹逻辑与分隔符连接,则判断资产指纹表达式中的层级指纹字符串是否包含脚本指纹数组中的所有元素,如果是匹配成功,否则匹配失败;脚本指纹表达式中层级首位是逻辑非修饰符时,匹配结果相反。
更进一步地,配置严格匹配模式修饰符的指纹表达式或层级或指纹;脚本指纹表达式和资产指纹表达式的相应内容完全相同才匹配成功。
第二方面,本发明提供一种网络资产分类扫描装置,包括:至少一处理单元,所述处理单元通过总线单元连接存储单元,所述存储单元存储计算机程序,所述计算机程序被处理单元读取执行时,实现所述的网络资产分类扫描的方法。
第三方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序,所述计算机程序被处理器读取执行时,实现所述的网络资产分类扫描的方法。
本发明实施例提供的上述技术方案与现有技术相比具有如下优点:
本发明利用自产品组件层到目的层级的资产指纹表达式和脚本指纹表达式的层级匹配,实现了网络资产与漏洞扫描脚本的分级匹配。在网络资产与漏洞扫描脚本的分级匹配的分级匹配过程中,由于指纹表达式底层是协议层,保证了总是能成功匹配此协议层上的所有资产,保证了其全面性,由于层级匹配总是从产品组件层开始匹配,实现了了由精确到泛化的匹配过程,这种匹配模式下,根据不同级别的匹配结果分类调度相关的漏洞扫描脚本进行后续扫描,从而提高整个安全测试过程的效率和覆盖度。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种网络资产分类扫描的方法的流程图;
图2为本发明实施例提供的利用自产品组件层到目的层级的资产指纹表达式和脚本指纹表达式的层级匹配进行网络资产与漏洞扫描脚本的匹配的一种实施流程图;
图3为本发明实施例提供的利用自产品组件层到目的层级的资产指纹表达式和脚本指纹表达式的层级匹配进行网络资产与漏洞扫描脚本的匹配的另一种实施流程图;
图4为本发明实施例提供的一种网络资产分类扫描装置的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者装置中还存在另外的相同要素。
本发明提供用于分类扫描的分级匹配网络资产的指纹,指纹的内容包含:网络资产的传输层协议名称,网络资产端口或识别到端口上的服务名称,网络资产业务系统或产品的开发语言,网络资产产品名称、业务系统组件、插件,CMS、框架、OA、中间件。
在本申请中,为实现网络资产的分级匹配,将指纹构建为四层的指纹表达式,指纹表达式从底层到顶层依次包括:协议层、服务端口层、语言技术层和产品组件层,其中:协议层用于表达传输层协议名称,如TCP、UDP、SCTP;服务端口层用于表达端口或识别到端口上的服务名称,如FTP、RDP、SSH、HTTP(S);语言技术层用于表达产品技术或产品的开发语言,如Java、Go、Python、PHP、NET、Jsp、Asp、Aspx;产品组件层用于表达产品名称、业务系统组件、插件、CMS、框架、OA、中间件,如Struts、Shiro、ThinkPhp、Seeyon、Tomcat、Apache、Spring。
一种示例性的指纹表达式的层次结构如下:Level1.level2.level3.level4。其中,“.”表示分层,从左到右分为四个层级,Level1为协议层、Level2为服务端口层、Level3为语言技术层、Level4为产品组件层。示例1:tcp.http.java.struts2,示例2:tcp.http.php.thinkphp,示例3:tcp.8080.java.shiro。
所述指纹表达式各个层级中配置相应的指纹数据,除了分层的指纹数据外,所述指纹表达式包括:分隔层级,分隔指纹,表示层级,表示层级间逻辑关系,表示指纹数据间逻辑关系,表示指纹数据、层级、指纹表达式匹配设置的设定符号。在网络资产的指纹属性完整时,即包含每个层级的指纹属性时,指纹表达式每层都有指纹信息,但是当指纹属性信息不完整时,比如在服务、组件没有指纹信息,此时网络资产的指纹属性只有协议层信息和端口信息,那么指纹表达式中Level3和Level4是没有值的,此时就需要使用设定符号来填充Level3和Level4。如,一个层级的指纹属性设置有多个,多个指纹属性之间并列时,需要执行分隔符,以区分并列指纹属性。
所述符号包括:层级分隔符,层级占位符、层级通配符、层级连接符、指纹并列分隔符、指纹逻辑或分隔符、指纹逻辑与分隔符、逻辑非修饰、严格匹配模式修饰符。其中,一种示例性的层级分隔符采用“.”,设置于层级间用于分隔各层指纹。一种示例性的层级占位符采用“_”,表示所在指纹表达式层级的网络资产的指纹信息为空,如:指纹表达式tcp.http.java._中的占位符表示产品组件层级的内容为空。一种示例性的层级通配符采用“*”,配置“*”的层级可以为任意字符串,如指纹表达式tcp.http.java.*中,*表示产品组件层级的内容可以为任意值。一种示例性的层级连接符采用“+”,层级连接符用于改变匹配逻辑,通过层级连接符所连接的两个层级需要同时匹配成功。一种示例性的指纹并列分隔符采用“,”,用于分隔同一层级的多个指纹数据。一种示例性的指纹逻辑或分隔符采用“|”,用于连接并分隔同一层级的指纹数据,匹配时,被|分隔连接的两个指纹信息中,任一指纹匹配成功,即成功匹配。一种示例性的指纹逻辑与分隔符采用“&”,用于连接并分隔同一层级的指纹数据,匹配时,被&分隔连接的两个指纹信息均匹配成功,才成功匹配。一种示例性的逻辑非修饰采用“!”,用于指纹表达式前或指纹表达式层级前或指纹表达式层级中指纹信息前的逻辑非修饰符,表示层级匹配结果取反。一种示例性的严格匹配模式修饰符采用“=”,用于指纹表达式前或指纹表达式层级前或指纹表达式层级中指纹信息前,表示内容必须完全相同才匹配。默认情况下,匹配忽略大小写,且遵循包含即匹配。
本申请中所述指纹表达式包含:资产指纹表达式和脚本指纹表达式。其中,资产指纹表达式根据网络资产的指纹属性设置,脚本指纹表达式表示漏洞扫描脚本所支持的检测的网络资产。
如图1所示,本发明实施例提供一种网络资产分类扫描的方法的实现流程,包括:
获取网络资产的指纹属性信息,网络资产的指纹属性信息包括但不限于协议、端口、服务、开发语言、技术、中间件、产品、组件、框架、CMS、插件。获取网络资产的指纹属性信息的手段包括:通过Nmap扫描获取网络资产的指纹属性信息、通过Hunter资产测绘获取网络资产的指纹属性、通过Fofa资产测绘获取网络资产的指纹属性。
利用网络资产的指纹属性信息按照指纹表达式的格式,格式化为相应的资产指纹表达式。
获取在漏洞扫描脚本中预先配置脚本指纹表达式,所述脚本指纹表达式制定所在漏洞扫描脚本支持检测的网络资产的指纹属性。
利用自产品组件层到目的层级的资产指纹表达式和脚本指纹表达式的层级匹配进行网络资产与漏洞扫描脚本的匹配,若存在网络资产与漏洞扫描脚本的匹配成功,则调度相关的漏洞扫描脚本进行扫描,若网络资产与漏洞扫描脚本的匹配不成功,则继续进行指纹表达式下一层级的匹配,循环前述匹配过程,直到目的层级,完成网络资产分类扫描。
利用自产品组件层到目的层级的资产指纹表达式和脚本指纹表达式的层级匹配进行网络资产与漏洞扫描脚本的匹配时,资产指纹表达式和脚本指纹表达式相同层级的匹配并不一定表示网络资产与漏洞扫描脚本的匹配。需要结合层级连接符和层级匹配结果判断网络资产与漏洞扫描脚本是否匹配。
而对于配置严格匹配模式修饰符的指纹表达式或层级或指纹;脚本指纹表达式和资产指纹表达式的相应内容完全相同才匹配成功。
在一种实施方式中,利用自产品组件层到目的层级的资产指纹表达式和脚本指纹表达式的层级匹配进行网络资产与漏洞扫描脚本的匹配包括:
分别对资产指纹表达式进行层级分割,对脚本指纹表达式进行层级分割并记录层级之间的层级连接符;
自产品组件层到目的层级的资产指纹表达式和脚本指纹表达式的层级匹配;
根据层级匹配结果和层级连接符确定是否网络资产与漏洞扫描脚本的匹配成功:未被层级连接符连接的层级,单层级匹配成功即网络资产与漏洞扫描脚本的匹配成功,被层级连接符连接的层级两层级均匹配成功即网络资产与漏洞扫描脚本的匹配成功。
参阅图2所示,一种该实施方式的流程包括:
S1,确定目的层级。
S2,判断是否设定的目的层级小于等于Level4并且资产表达式Level4的指纹与脚本表达式的Level4指纹层级匹配成功,则进入到步骤S8,否则进入步骤S3;
S3,判断是否设定的目的层级小于等于Level3并且资产表达式Level3的指纹与脚本表达式的Level3指纹层级匹配成功,则进入到步骤S7,否则进入步骤S4;
S4,判断设定的目的层级小于等于Level2并且资产表达式Level2的指纹与脚本表达式的Level2指纹层级匹配成功,则进入到步骤S6,否则进入步骤S5;
S5,判断设定的目的层级小于等于Level1并且资产表达式Level1的指纹与脚本表达式的Level1指纹层级匹配成功,则进入到步骤S9,否则进入步骤S10;
S6,判断脚本表达式Level2和Level1之间是否有层级连接符,如果是进入到步骤S5,否则进入步骤S9;
S7,判断脚本表达式Level3和Level2之间是否为有层级连接符,如果是进入到步骤S4,否则进入步骤S9;
S8,判断脚本表达式Level4和Level3之间是否为有层级连接符,如果是进入到步骤S3,否则进入步骤S9;
S9,调度当前匹配到漏洞扫描脚本;
S10,返回退出。
在另一种实施方式中,利用自产品组件层到目的层级的资产指纹表达式和脚本指纹表达式的层级匹配进行网络资产与漏洞扫描脚本的匹配流程包括:
将漏洞扫描脚本按照各脚本指纹表达式各层级指纹分类成主题扫描脚本集;
资产指纹表达式进行层级分割提取指纹,
检测从自产品组件层到目的层级指纹存在,且存在匹配的主题扫描脚本集,则调用相应的主题扫描脚本集中漏洞扫描脚本进行扫描。
参阅图3所示,一种该实施方式的流程包括:
S100,将漏洞扫描脚本按照各脚本指纹表达式各层级指纹分类成主题扫描脚本集。
S200,确定目的层级。
S300,对资产指纹表达式进行层级分割,提取各层级的指纹。
S400,判断设定的目的层级是否等于Level4,如果是,进入步骤S500,否则进入步骤S700;
S500,判断资产表达式是否存在Level4指纹,如果存在,进入步骤S600,否则进入步骤S1600;
S600,判断是否存当前资产表达式Level4指纹对应的主题扫描脚本集,如果存在,进入步骤S1700,否则进入步骤S1600;
S700,判断设定的目的层级是否等于Level4,如果是,进入步骤S800,否则进入步骤S1000;
S800,判断资产表达式是否存在Level3指纹,如果存在,进入步骤S900,否则进入步骤S1600;
S900,判断是否存当前资产表达式Level3指纹对应的主题扫描脚本集,如果存在,进入步骤S1700,否则进入步骤S1600;
S1000,判断设定的目的层级是否等于Level2,如果是,进入步骤S1100,否则进入步骤S1300;
S1100,判断资产表达式是否存在Level2指纹,如果存在,进入步骤S1200,否则进入步骤S1600;
S1200,判断是否存当前资产表达式Level2指纹对应的主题扫描脚本集,如果存在,进入步骤S1700,否则进入步骤S1600;
S1300,判断设定的目的层级是否等于Level1,如果是,进入步骤S1400,否则进入步骤S1600;
S1400,判断资产表达式是否存在Level1指纹,如果存在,进入步骤S1500,否则进入步骤S1600;
S1500,判断是否存当前资产表达式Level1指纹对应的主题扫描脚本集,如果存在,进入步骤S1700,否则进入步骤S1600;
S1600返回退出;
S1700,调度当前指纹数据对应的主题扫描脚本集。
其中,具体的,资产指纹表达式和脚本指纹表达式的层级匹配包括:
提取资产指纹表达式各层级中的指纹字符串为资产指纹数组。
提取脚本指纹表达式各层级中的指纹字符串为脚本指纹数据;此过程需要删除指纹字符串周围的符号。
对于资产指纹表达式和脚本指纹表达式的对应层级,判断脚本指纹表达式中的层级指纹是否为层级通配符,如果是则直接返回该层级匹配成功。
若对于资产指纹表达式和脚本指纹表达式的对应层级中,脚本指纹表达式中层级首位非逻辑非修饰符,且指纹之间无逻辑分隔符,则判断脚本指纹表达式中的层级指纹字符串是否包含资产指纹数组中的字符串或判断资产指纹表达式中的层级指纹字符串是否包含脚本指纹数组中的字符串,是则匹配成功。其中分析包含关系时,忽略字符串大小写。
若对于资产指纹表达式和脚本指纹表达式的对应层级中,脚本指纹表达式中层级首位非逻辑非修饰符,且指纹通过指纹逻辑或分隔符连接,则判断资产指纹表达式中的层级指纹字符串是否包含脚本指纹数组中的任一字符串,或者脚本指纹表达式中的层级指纹字符串是否包含资产指纹数组中的任一字符串,满足任何其中一个,则匹配成功,否则匹配失败;脚本指纹表达式中层级首位是逻辑非修饰符时,匹配结果相反。其中分析包含关系时,忽略字符串大小写。
若对于资产指纹表达式和脚本指纹表达式的对应层级中,脚本指纹表达式中层级首位非逻辑非修饰符,且指纹通过指纹逻辑与分隔符连接,则判断资产指纹表达式中的层级指纹字符串是否包含脚本指纹数组中的所有元素,如果是匹配成功,否则匹配失败;脚本指纹表达式中层级首位是逻辑非修饰符时,匹配结果相反。其中分析包含关系时,忽略字符串大小写。
例如:资产指纹表达式为tcp.http.java.Apache Tomcat。利用提取漏洞扫描脚本中的脚本指纹表达式,如果提取的脚本指纹表达式为tcp.web|8080.java.tomcat。资产指纹表达式和脚本指纹表达式从Level4-Level1 都是可以层级匹配成功,即网络资产匹配对应的漏洞扫描脚本,则调用包含对应漏洞扫描脚本扫描,这种情况代表的意义比较明确和直接,即tomcat的扫描脚本扫描了tomcat的资产。
例如:资产指纹表达式为tcp.http.java.shiro,而提取到的脚本指纹表达式依旧是 tcp.web|8080.java.tomcat ,那么根据层级匹配逻辑,在Level4 是匹配失败,但是在Level3是能够匹配成功,所以按照目的层级为Level3,依然可以匹配成功,即当前资产会调用包含tcp.web|8080.java.tomcat指纹的漏洞扫描脚本进行扫描。实际上隐含的意义是含有shiro组件的资产是由java开发的,而java开发的系统很大一部分是会用tomcat中间件进行部署,所以包含tcp.web|8080.java.tomcat的漏洞扫描脚本可以扫描shiro资产。这种情况表示的意义稍微隐晦,但是却符合实际情况,也是采用指纹表达式进行分级匹配的优势之一。
本发明利用自产品组件层到目的层级的资产指纹表达式和脚本指纹表达式的层级匹配,实现了网络资产与漏洞扫描脚本的分级匹配。在网络资产与漏洞扫描脚本的分级匹配的分级匹配过程中,由于指纹表达式底层是协议层,保证了总是能成功匹配此协议层上的所有资产,保证了其全面性,由于层级匹配总是从产品组件层开始匹配,实现了了由精确到泛化的匹配过程,这种匹配模式下,根据不同级别的匹配结果分类调度相关的漏洞扫描脚本进行后续扫描,从而提高整个安全测试过程的效率和覆盖度。
实施例2
参阅图4所示,本发明实施例提供一种网络资产分类扫描装置,包括:至少一处理单元,所述处理单元通过总线单元连接存储单元,所述存储单元存储计算机程序,所述计算机程序被处理单元读取执行时,实现所述的网络资产分类扫描的方法,包括:利用网络资产的指纹属性信息构建相应的资产指纹表达式;
获取漏洞扫描脚本中预置的脚本指纹表达式,所述脚本指纹表达式指定了所在漏洞扫描脚本支持检测的网络资产的指纹属性;
所述资产指纹表达式和脚本指纹表达式属于指纹表达式,所述指纹表达式的层次依次包含:协议层、服务端口层、语言技术层和产品组件层;
利用自产品组件层到目的层级的资产指纹表达式和脚本指纹表达式的层级匹配进行网络资产与漏洞扫描脚本的匹配,若存在网络资产与漏洞扫描脚本的匹配成功,则调度相关的漏洞扫描脚本进行扫描,若网络资产与漏洞扫描脚本的匹配不成功,则继续进行指纹表达式下一层级的匹配,循环前述匹配过程,直到目的层级,完成网络资产分类扫描。
当然,本发明实施例所提供的一种网络资产分类扫描装置中存储单元,其存储的计算机程序不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的一种网络资产分类扫描方法中的相关操作。
实施例3
本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序,所述计算机程序被处理器读取执行时,实现所述的网络资产分类扫描的方法,包括:利用网络资产的指纹属性信息构建相应的资产指纹表达式;
获取漏洞扫描脚本中预置的脚本指纹表达式,所述脚本指纹表达式指定了所在漏洞扫描脚本支持检测的网络资产的指纹属性;
所述资产指纹表达式和脚本指纹表达式属于指纹表达式,所述指纹表达式的层次依次包含:协议层、服务端口层、语言技术层和产品组件层;
利用自产品组件层到目的层级的资产指纹表达式和脚本指纹表达式的层级匹配进行网络资产与漏洞扫描脚本的匹配,若存在网络资产与漏洞扫描脚本的匹配成功,则调度相关的漏洞扫描脚本进行扫描,若网络资产与漏洞扫描脚本的匹配不成功,则继续进行指纹表达式下一层级的匹配,循环前述匹配过程,直到目的层级,完成网络资产分类扫描。
在本发明所提供的实施例中,应该理解到,所揭露的结构和方法,可以通过其它的方式实现。例如,以上所描述的结构实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,结构或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。

Claims (9)

1.一种网络资产分类扫描的方法,其特征在于,包括:
利用网络资产的指纹属性信息构建相应的资产指纹表达式;
获取漏洞扫描脚本中预置的脚本指纹表达式,所述脚本指纹表达式指定了所在漏洞扫描脚本支持检测的网络资产的指纹属性;
所述资产指纹表达式和脚本指纹表达式属于指纹表达式,所述指纹表达式的层次依次包含:协议层、服务端口层、语言技术层和产品组件层;
利用自产品组件层到目的层级的资产指纹表达式和脚本指纹表达式的层级匹配进行网络资产与漏洞扫描脚本的匹配,包括:分别对资产指纹表达式进行层级分割,对脚本指纹表达式进行层级分割并记录层级之间的层级连接符,自产品组件层到目的层级的资产指纹表达式和脚本指纹表达式的层级匹配;根据层级匹配结果和层级连接符确定是否网络资产与漏洞扫描脚本的匹配成功:未被层级连接符连接的层级,单层级匹配成功即网络资产与漏洞扫描脚本的匹配成功,被层级连接符连接的层级两层级均匹配成功即网络资产与漏洞扫描脚本的匹配成功;若存在网络资产与漏洞扫描脚本的匹配成功,则调度相关的漏洞扫描脚本进行扫描,若网络资产与漏洞扫描脚本的匹配不成功,则继续进行指纹表达式下一层级的匹配,循环前述匹配过程,直到目的层级,完成网络资产分类扫描。
2.根据权利要求1所述的网络资产分类扫描的方法,其特征在于,所述协议层用于表达传输层协议名称;所述服务端口层用于标段端口或识别到端口上的服务名称;所述语言技术层用于表达产品技术或产品的开发语言;产品组件层用于表达产品名称、业务系统组件、插件、CMS、框架、OA、中间件。
3.根据权利要求1所述的网络资产分类扫描的方法,其特征在于,所述指纹表达式包括:分隔层级,分隔指纹,表示层级,表示层级间逻辑关系,表示指纹数据间逻辑关系,表示指纹数据、层级、指纹表达式匹配设置的设定符号。
4.根据权利要求3所述的网络资产分类扫描的方法,其特征在于,所述符号包括:设置于层级间用于分隔各层指纹的层级分隔符;
表示所在指纹表达式层级的指纹为空的层级占位符;
表示所在指纹表达式层级的指纹为任意字符串的层级通配符;
将同层指纹分隔的指纹并列分隔符;
用于连接并分隔同一层级的相邻指纹的指纹逻辑或分隔符,层级匹配时,被指纹逻辑或分隔符分隔连接的两个指纹中,任一指纹匹配成功,即成功匹配;
用于连接并分隔同一层级的相邻指纹的指纹逻辑与分隔符,层级匹配时,被指纹逻辑与分隔符分隔连接的两个指纹均匹配成功,才成功匹配;
用于指纹表达式前或指纹表达式层级前或指纹表达式层级中指纹前,表示层级匹配结果取反的逻辑非修饰符;
用于指纹表达式前或指纹表达式层级前或指纹表达式层级中指纹前,表示内容必须完全相同才匹配成功的严格匹配模式修饰符;
将两个层级连接的层级连接符,按照被层级连接符所连接的层级同时层级匹配成功进行网络资产与漏洞扫描脚本的匹配。
5.根据权利要求1所述的网络资产分类扫描的方法,其特征在于,利用自产品组件层到目的层级的资产指纹表达式和脚本指纹表达式的层级匹配进行网络资产与漏洞扫描脚本的匹配还可以包括:
将漏洞扫描脚本按照各脚本指纹表达式各层级指纹分类成主题扫描脚本集;
资产指纹表达式进行层级分割提取指纹,
检测从自产品组件层到目的层级指纹存在,且存在匹配的主题扫描脚本集,则调用相应的主题扫描脚本集中漏洞扫描脚本进行扫描。
6.根据权利要求1所述的网络资产分类扫描的方法,其特征在于,资产指纹表达式和脚本指纹表达式的层级匹配包括:
提取资产指纹表达式各层级中的指纹字符串为资产指纹数组;
提取脚本指纹表达式各层级中的指纹字符串为脚本指纹数据;
对于资产指纹表达式和脚本指纹表达式的对应层级,判断脚本指纹表达式中的层级指纹是否为层级通配符,如果是则直接返回该层级匹配成功;
若对于资产指纹表达式和脚本指纹表达式的对应层级中,脚本指纹表达式中层级首位非逻辑非修饰符,且指纹之间无逻辑分隔符,则脚本指纹表达式中的层级指纹字符串是否包含资产指纹数组中的字符串或判断资产指纹表达式中的层级指纹字符串是否包含脚本指纹数组中的字符串,是则匹配成功;
若对于资产指纹表达式和脚本指纹表达式的对应层级中,脚本指纹表达式中层级首位非逻辑非修饰符,且指纹通过指纹逻辑或分隔符连接,则判断资产指纹表达式中的层级指纹字符串是否包含脚本指纹数组中的任一字符串,或者脚本指纹表达式中的层级指纹字符串是否包含资产指纹数组中的任一字符串,满足任何其中一个,则匹配成功,否则匹配失败;脚本指纹表达式中层级首位是逻辑非修饰符时,匹配结果相反;
若对于资产指纹表达式和脚本指纹表达式的对应层级中,脚本指纹表达式中层级首位非逻辑非修饰符,且指纹通过指纹逻辑与分隔符连接,则判断资产指纹表达式中的层级指纹字符串是否包含脚本指纹数组中的所有元素,如果是匹配成功,否则匹配失败;脚本指纹表达式中层级首位是逻辑非修饰符时,匹配结果相反。
7.根据权利要求6所述的网络资产分类扫描的方法,其特征在于,配置严格匹配模式修饰符的指纹表达式或层级或指纹;脚本指纹表达式和资产指纹表达式的相应内容完全相同才匹配成功。
8.一种网络资产分类扫描装置,其特征在于,包括:至少一处理单元,所述处理单元通过总线单元连接存储单元,所述存储单元存储计算机程序,所述计算机程序被处理单元读取执行时,实现如权利要求1-7任一所述的网络资产分类扫描的方法。
9.一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序,其特征在于,所述计算机程序被处理器读取执行时,实现如权利要求1-7任一所述的网络资产分类扫描的方法。
CN202311679776.6A 2023-12-08 2023-12-08 一种网络资产分类扫描的方法、装置及存储介质 Active CN117376037B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311679776.6A CN117376037B (zh) 2023-12-08 2023-12-08 一种网络资产分类扫描的方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311679776.6A CN117376037B (zh) 2023-12-08 2023-12-08 一种网络资产分类扫描的方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN117376037A CN117376037A (zh) 2024-01-09
CN117376037B true CN117376037B (zh) 2024-02-23

Family

ID=89396981

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311679776.6A Active CN117376037B (zh) 2023-12-08 2023-12-08 一种网络资产分类扫描的方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN117376037B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103731429A (zh) * 2014-01-08 2014-04-16 深信服网络科技(深圳)有限公司 web应用漏洞检测方法及装置
CN110324310A (zh) * 2019-05-21 2019-10-11 国家工业信息安全发展研究中心 网络资产指纹识别方法、系统及设备
CN110381010A (zh) * 2018-04-17 2019-10-25 北京升鑫网络科技有限公司 自适应的webapp识别与漏洞管理方法
CN112468360A (zh) * 2020-11-13 2021-03-09 北京安信天行科技有限公司 一种基于指纹的资产发现识别和检测方法及系统
CN112491874A (zh) * 2020-11-26 2021-03-12 杭州安恒信息技术股份有限公司 一种网络资产管理方法、装置及相关设备
CN112995207A (zh) * 2021-04-16 2021-06-18 远江盛邦(北京)网络安全科技股份有限公司 网络资产的指纹识别及暴露面风险评估方法
CN116248381A (zh) * 2023-02-17 2023-06-09 杭州安恒信息技术股份有限公司 一种告警聚合方法、装置、电子设备及存储介质
CN116933265A (zh) * 2023-05-30 2023-10-24 中国通信服务股份有限公司 漏洞检测方法、装置、电子设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9141805B2 (en) * 2011-09-16 2015-09-22 Rapid7 LLC Methods and systems for improved risk scoring of vulnerabilities

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103731429A (zh) * 2014-01-08 2014-04-16 深信服网络科技(深圳)有限公司 web应用漏洞检测方法及装置
CN110381010A (zh) * 2018-04-17 2019-10-25 北京升鑫网络科技有限公司 自适应的webapp识别与漏洞管理方法
CN110324310A (zh) * 2019-05-21 2019-10-11 国家工业信息安全发展研究中心 网络资产指纹识别方法、系统及设备
CN112468360A (zh) * 2020-11-13 2021-03-09 北京安信天行科技有限公司 一种基于指纹的资产发现识别和检测方法及系统
CN112491874A (zh) * 2020-11-26 2021-03-12 杭州安恒信息技术股份有限公司 一种网络资产管理方法、装置及相关设备
CN112995207A (zh) * 2021-04-16 2021-06-18 远江盛邦(北京)网络安全科技股份有限公司 网络资产的指纹识别及暴露面风险评估方法
CN116248381A (zh) * 2023-02-17 2023-06-09 杭州安恒信息技术股份有限公司 一种告警聚合方法、装置、电子设备及存储介质
CN116933265A (zh) * 2023-05-30 2023-10-24 中国通信服务股份有限公司 漏洞检测方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN117376037A (zh) 2024-01-09

Similar Documents

Publication Publication Date Title
CN111460446B (zh) 基于模型的恶意文件检测方法及装置
US11212297B2 (en) Access classification device, access classification method, and recording medium
CN109543690A (zh) 用于提取信息的方法和装置
CN111737106A (zh) 测试场景生成装置、测试场景生成方法、测试场景生成程序
CN108804925A (zh) 用于检测恶意代码的方法和系统
CN111368289A (zh) 一种恶意软件检测方法和装置
CN109408555A (zh) 数据类型识别方法及装置、数据入库方法及装置
CN110427375B (zh) 字段类别的识别方法及装置
CN113469067A (zh) 一种文档解析方法、装置、计算机设备和存储介质
CN117376037B (zh) 一种网络资产分类扫描的方法、装置及存储介质
CN113255766A (zh) 一种图像分类方法、装置、设备和存储介质
CN114422271A (zh) 数据处理方法、装置、设备及可读存储介质
CN112822121A (zh) 流量识别方法、流量确定方法、知识图谱建立方法
CN108334778A (zh) 病毒检测方法、装置、存储介质及处理器
CN113935034A (zh) 基于图神经网络的恶意代码家族分类方法、装置和存储介质
CN107025233B (zh) 一种数据特征的处理方法及装置
CN106919837A (zh) 一种恶意代码未知自启动识别方法及系统
CN116071590A (zh) 模型训练方法、系统、计算机设备以及存储介质
US11557136B1 (en) Identity document verification based on barcode structure
CN115946999A (zh) 垃圾分类方法和装置、电子设备及存储介质
CN116226850A (zh) 应用程序的病毒检测方法、装置、设备、介质及程序产品
CN110162729A (zh) 建立浏览器指纹以及识别浏览器类型的方法、装置
CN109491900A (zh) 接口测试方法、装置、电子设备及计算机可读存储介质
CN111126503B (zh) 一种训练样本的生成方法和装置
US9443139B1 (en) Methods and apparatus for identifying labels and/or information associated with a label and/or using identified information

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant