CN112926061B - 插件处理方法及装置 - Google Patents
插件处理方法及装置 Download PDFInfo
- Publication number
- CN112926061B CN112926061B CN202110511727.6A CN202110511727A CN112926061B CN 112926061 B CN112926061 B CN 112926061B CN 202110511727 A CN202110511727 A CN 202110511727A CN 112926061 B CN112926061 B CN 112926061B
- Authority
- CN
- China
- Prior art keywords
- plug
- configuration
- data
- target
- scanning
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/73—Program documentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Library & Information Science (AREA)
- Stored Programmes (AREA)
Abstract
一种插件处理方法及装置,涉及计算机技术领域,该方法包括:获取目标插件的配置数据;利用多层结构表示语言对所述配置数据进行封装,得到所述目标插件对应的插件描述文件,所述插件描述文件用于描述所述目标插件的漏洞扫描逻辑;向扫描服务器发送所述插件描述文件,以使得所述扫描服务器根据所述插件描述文件对扫描对象进行漏洞扫描,可以利用多层结构表示语言生成具有丰富描述能力的插件描述文件,用以支持复杂的漏洞扫描场景,同时兼容性强,可用于云安全防护场景下的漏洞检测。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种插件处理方法及装置。
背景技术
漏洞是在硬件、软件、协议的具体实现或***安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏***。是受限制的计算机、组件、应用程序或其他联机资源的无意中留下的不受保护的入口点。漏洞扫描是指扫描器基于漏洞数据库,通过扫描等手段对指定的远程或者本地计算机***的安全脆弱性进行检测,发现可利用漏洞的一种安全检测行为。
目前,扫描器在基于漏洞数据库进行漏洞扫描时,常常由于漏洞数据库中的漏洞检测插件不能准确地描述漏洞的内容,使得扫描器无法适应比较复杂的漏洞扫描场景,同时如果扫描器无法对漏洞数据库中的漏洞检测插件进行兼容的话,也会使得扫描器无法获取漏洞检测插件描述的漏洞扫描逻辑。
发明内容
本申请实施例提供了一种插件处理方法及装置,可以利用多层结构表示语言生成具有丰富描述能力的插件描述文件,用以支持复杂的漏洞扫描场景,同时兼容性强。
一方面,本申请实施例提供了一种插件处理方法,所述方法包括:
获取目标插件的配置数据;
利用多层结构表示语言对所述配置数据进行封装,得到所述目标插件对应的插件描述文件,所述插件描述文件用于描述所述目标插件的漏洞扫描逻辑;
向扫描服务器发送所述插件描述文件,以使得所述扫描服务器根据所述插件描述文件对扫描对象进行漏洞扫描。
另一方面,本申请实施例提供了一种插件处理方法,所述方法包括:
获取插件描述文件,所述插件描述文件是通过利用多层结构表示语言对目标插件的配置数据进行封装得到的;
基于扫描器对应的目标语言对所述插件描述文件进行处理,得到所述目标插件的可执行文件;
当接收到扫描触发指令时,调用所述扫描器对扫描对象执行所述可执行文件指示的漏洞扫描逻辑。
另一方面,本申请实施例提供了一种插件处理装置,所述装置包括:
获取模块,用于获取目标插件的配置数据;
处理模块,用于利用多层结构表示语言对所述配置数据进行封装,得到所述目标插件对应的插件描述文件,所述插件描述文件用于描述所述目标插件的漏洞扫描逻辑;
获取模块,用于向扫描服务器发送所述插件描述文件,以使得所述扫描服务器根据所述插件描述文件对扫描对象进行漏洞扫描。
另一方面,本申请实施例提供了一种插件处理装置,所述装置包括:
获取模块,用于获取插件描述文件,所述插件描述文件是通过利用多层结构表示语言对目标插件的配置数据进行封装得到的;
处理模块,用于基于扫描器对应的目标语言对所述插件描述文件进行处理,得到所述目标插件的可执行文件;
所述处理模块,还用于当接收到扫描触发指令时,调用所述扫描器对扫描对象执行所述可执行文件指示的漏洞扫描逻辑。
另一方面,本申请实施例提供了一种计算机设备,该设备包括处理器、通信接口和存储器,所述处理器、所述通信接口和所述存储器相互连接,其中,所述存储器存储有可执行程序代码,所述处理器用于调用所述可执行程序代码,执行上述任一可能实现方式所述的插件处理方法。
另一方面,本申请实施例提供了一种计算机可读存储介质,存储有计算机程序,所述处理器执行上述任一可能实现方式所述的插件处理方法所涉及的程序。
另一方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任一可能实现方式所述的插件处理方法。
本申请实施例中,首先获取用户在用户终端输入的针对目标插件的配置数据,接着利用多层结构表示语言对配置数据进行封装,得到目标插件对应的插件描述文件,利用插件描述文件来描述目标插件的漏洞扫描逻辑,最后向扫描服务器发送插件描述文件,以使得扫描服务器根据插件描述文件对扫描对象进行漏洞扫描,由于多层结构表示语言具有强大的表达能力,因此可以利用多层结构表示语言生成具有丰富描述能力的插件描述文件,从而支持复杂的漏洞扫描场景,同时插件描述文件通用性强,可以解决扫描器的语言兼容性的问题。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种插件处理***的架构示意图;
图2为本申请实施例提供的一种插件处理方法的流程示意图;
图3为本申请实施例提供的另一种插件处理方法的流程示意图;
图4为本申请实施例提供的基本信息配置区域的界面示意图;
图5为本申请实施例提供的匹配规则配置区域的界面示意图;
图6为本申请实施例提供的匹配规则配置区域的界面示意图;
图7为本申请实施例提供的检测规则配置区域的界面示意图;
图8为本申请实施例提供的插件属性数据的示意图;
图9为本申请实施例提供的另一种插件处理方法的流程示意图;
图10为本申请实施例提供的一种插件处理装置的结构示意图;
图11是本申请实施例提供的另一种插件处理装置的结构示意图;
图12是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
云技术(Cloud technology)是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络***的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台***进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的***后盾支撑,只能通过云计算来实现。
云安全(Cloud Security)是指基于云计算商业模式应用的安全软件、硬件、用户、机构、安全云平台的总称。云安全融合了并行处理、网格计算、未知病毒行为判断等新兴技术和概念,通过网状的大量客户端对网络中软件行为的异常监测,获取互联网中木马、恶意程序的最新信息,并发送到服务端进行自动分析和处理,再把病毒和木马的解决方案分发到每一个客户端。
云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储***(以下简称存储***)是指通过集群应用、网格技术以及分布存储文件***等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储***。
随着云技术研究和进步,云技术在多个领域展开研究和应用,本申请实施例的插件处理方法涉及云技术中的云安全、云存储等技术,具体通过以下实施例进行说明。
为了更好的理解本申请实施例提供的插件处理方法及装置,下面先对本申请实施例适用的插件处理***的构架进行描述。请参阅图1,图1是本申请实施例提供的插件处理***的架构示意图。如图1所示,插件处理***可以包括用户终端101、配置服务器102、扫描服务器103以及扫描对象104,用户终端101、配置服务器102、扫描服务器103以及扫描对象104之间可以通过网络连接,比如通过无线网络连接等。用户终端101、配置服务器102、扫描服务器103以及扫描对象104均可以为一个或多个,本申请对此不作限定。其中,扫描器可以是以一种程序的形式安装在扫描服务器103上,以提供漏洞扫描。
用户终端101可以是智能电视、具有无线通信功能的手持设备(例如智能手机、平板电脑)、计算设备(例如个人电脑(personal computer, PC)、车载设备、可穿戴设备或者其他智能装置等,但并不局限于此。
配置服务器102和扫描服务器103可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(ContentDelivery Network, CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
扫描对象104可以是web服务、操作***、以及运行在操作***上的应用程序(例如Apache、Nginx、MySQL)、或网络服务等。
在一个实施例上,扫描器还可以运行在用户终端或其它计算机设备上。换句话说,扫描服务器103也可以是安装扫描器的用户终端或其它计算机设备,可以将安装扫描器的用户终端或其它计算机设备作为扫描服务器103,以提供漏洞扫描。
在一个实施例中,用户在用户终端101上的插件配置界面上输入目标插件的配置数据后,可以将配置数据发送给配置服务器102,配置服务器102利用多层结构表示语言对配置数据进行封装,得到目标插件对应的插件描述文件,进一步地,配置服务器102可以将插件描述文件发送给扫描服务器103,扫描服务器103上安装有扫描器,扫描器可以利用插件描述文件指示的漏洞扫描逻辑来对扫描对象104进行漏洞扫描,相对于使用JS对象简谱(JavaScript Object Notation, JSON)语言或者与扫描器框架本身相同的编程语言编写漏洞检测插件的方式容易出现无法准确地描述漏洞内容以及兼容性较差的问题,本申请可以基于多层结构表示语言具有的强大表达能力,利用多层结构表示语言对配置数据进行封装来生成具有丰富描述能力的插件描述文件,从而更准确地描述漏洞扫描逻辑,支持复杂的漏洞扫描场景,同时由于多层结构表示语言是一种通用语言,因此基于多层结构表示语言生成的插件描述文件是一种扫描器可以解析的文件,因此可以解决扫描器的语言兼容性的问题,通用性强。
在一个实施例中,配置服务器102和扫描服务器103可作为区块链上的节点,配置数据和插件描述文件可保存于区块链上。
可以理解的是,本申请实施例描述的***的架构示意图是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着***架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
请参见图2,图2提供了一种插件处理方法的流程示意图,以该方法应用于图1中的配置服务器102为例进行说明,包括以下步骤:
S201、获取目标插件的配置数据。
其中,目标插件是扫描器进行漏洞检测时所使用的漏洞检测插件。配置数据是用户在用户终端的插件配置界面上针对目标插件所描述的漏洞进行输入得到的,其包括了插件的基本信息、匹配规则和检测规则中的一个或多个。
在一个实施例中,基本信息包括:插件编号、插件名称、插件负责人、插件描述、风险等级、插件修复文档、插件状态中的一个或多个;匹配规则包括:待检测对象、待检测对象对应的匹配内容、匹配方式中的一个或多个;检测规则包括:规则编号、待添加的攻击向量、用于漏洞匹配的正则表达式、探测路径深度、待添加的攻击向量的统一资源定位符(Uniform Resource Locator, URL)编码次数、待添加的攻击向量与用户请求中的参数的关系、待检测的位置中的一个或多个。
S202、利用多层结构表示语言对所述配置数据进行封装,得到所述目标插件对应的插件描述文件,所述插件描述文件用于描述所述目标插件的漏洞扫描逻辑。
其中,插件数据结构是根据插件属性数据中包括的多个配置字段创建的,插件属性数据是基于多种类型的漏洞的特征确定出的可以描述漏洞扫描时通用特征的数据。
具体地,配置服务器在获取到配置数据后,利用多层结构表示语言建立的插件数据结构对配置数据中包括的字段数据进行封装,从而得到目标插件对应的插件描述文件。
其中,多层结构表示语言可以是数据序列化表示(YAML ain’t markup language,YAML)语言。YAML语言是一种标记语言,具有强大的表达能力,其具有以下优点:可以表示配置的层级关系;可以增加注释,方便目标插件的开发和使用;针对输入的配置数据可以不使用双引号,因此特殊字符无需转义;可以表示丰富的数据结构,例如数组,对象等;使用缩进取代多余的符号,具有更好的可读性,方便协同拓展。
S203、向扫描服务器发送所述插件描述文件,以使得所述扫描服务器根据所述插件描述文件对扫描对象进行漏洞扫描。
具体地,插件描述文件描述了目标插件的漏洞扫描逻辑,配置服务器将插件描述文件发送至扫描服务器,扫描服务器可以根据插件描述文件描述的漏洞扫描逻辑构建测试请求,通过向扫描对象发送该测试请求,得到针对该测试请求的响应信息,就可以利用响应信息来判断扫描对象是否存在漏洞。例如,当构建的测试请求中存在跨站脚本攻击(CrossSite Scripting, XSS)相应的代码,返回的响应信息中也会含有该XSS攻击相应的代码,当检测到响应信息中包含XSS攻击相应的代码时就可以判断扫描对象存在XSS漏洞。
其中,XSS攻击是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。
通过本申请实施例,获取用户在用户终端输入的针对目标插件的配置数据,利用多层结构表示语言对配置数据进行封装,得到目标插件对应的插件描述文件,利用插件描述文件来描述目标插件的漏洞扫描逻辑,向扫描服务器发送插件描述文件,以使得扫描服务器根据插件描述文件对扫描对象进行漏洞扫描,使得该方法可以基于多层结构表示语言具有的强大表达能力,利用多层结构表示语言生成具有丰富描述能力的插件描述文件,从而更准确地描述漏洞扫描逻辑,支持复杂的漏洞扫描场景,同时可以解决扫描器的语言兼容性的问题,通用性强。
请参见图3,图3提供了另一种插件处理方法的流程示意图,以该方法应用于图1中的配置服务器102为例进行说明,包括以下步骤:
S301、响应于用户终端发送的插件创建指令,向所述用户终端发送插件配置界面的页面数据,以使得所述用户终端根据所述页面数据展示所述插件配置界面。
其中,插件配置界面包括基本信息配置区域、匹配规则配置区域和检测规则配置区域中的一种或多种。页面数据是通过对多种类型的漏洞的特征进行抽象化,提取出插件属性数据,然后利用插件属性数据生成的用于展示插件配置界面的数据。插件属性数据中包括基本信息、匹配规则和检测规则中的一种或多种。
在一个实施例中,基于基本信息、匹配规则和检测规则中的一种或多种可以生成插件配置界面,如利用基本信息、匹配规则和检测规则分别创建基本信息配置区域、匹配规则配置区域、检测规则配置区域,当插件配置界面中包括基本信息配置区域、匹配规则配置区域、检测规则配置区域中的多种时,基本信息配置区域、匹配规则配置区域和检测规则配置区域中的多种可以在同一个主显示界面上,也可以在不同的子显示界面上,本申请对此不作限定。
在一个实施例中,基本信息中的基本信息配置字段包括:插件编号、插件名称、插件负责人、插件描述、风险等级、插件修复文档、插件状态中的一个多个,其中,插件名称包括插件英文名和插件中文名。基于基本信息生成的基本信息配置区域如图4所示。基本信息配置字段的格式和作用如下述表1所示:
表1
基本信息配置字段 | 配置格式&作用 |
插件编号 | 建议为6位数字,插件的唯一标识 |
插件英文名 | 建议为英文+数字+下划线组成 |
插件中文名 | 无特殊格式要求 |
插件负责人 | 编写插件的人 |
插件描述 | 描述该插件负责检测的漏洞名称、类型等 |
风险等级 | 高危、中危和低危三种级别,目标插件对应的漏洞的风险等级 |
修复文档链接 | 涉及漏洞修复的修复文档链接 |
插件状态 | 当前目标插件的状态,在此可以分为三个级别,测试(TEST)、已上线(RUNNING)、已下线(StopPED) |
在一个实施例中,匹配规则中的匹配规则配置字段包括一个或多个子配置字段。匹配规则的子配置字段包括:待检测对象、待检测对象对应的匹配内容和匹配方式。待检测对象可以设定为一个或多个,本申请对此不作限定。如图5所示,显示了基于匹配规则生成的匹配规则配置区域。该子配置字段的格式和作用如下述表2所示:
表2
匹配规则的子配置字段 | 配置格式&作用 |
待检测对象 | 一段字符串,例如限定web服务器类型 |
待检测对象对应的匹配内容 | 确定待检测对象时要匹配的内容 |
匹配方式 | 相等、前缀匹配、后缀匹配和正则表达式 |
在一个可行的实施例中,针对匹配规则配置区域可以设立两种匹配规则,一种是允许规则:当与待检测对象对应的匹配内容匹配时,则针对待检测对象进行检测;另一种是拒绝规则:当与待检测对象对应的匹配内容不匹配时,则不针对待检测对象进行检测。针对这两种匹配规则,可以建立如图6所示的匹配规则配置区域。
在一个实施例中,检测规则中的检测规则配置字段包括一个或多个子配置字段,检测规则的子配置字段包括:规则编号、待添加的攻击向量、用于漏洞匹配的正则表达式、探测路径深度、待添加的攻击向量的URL编码次数、待添加的攻击向量与用户请求中的参数的关系、待检测的位置。基于检测规则创建的检测规则配置区域如图7所示。该子配置字段的格式和作用如下述表3所示:
表3
检测规则的子配置字段 | 配置格式&作用 |
规则编号 | 4位数字,作为插件规则信息的唯一编号 |
待添加的攻击向量 | 攻击向量为漏洞的代码表现,用于生成测试请求 |
用于漏洞匹配的正则表达式 | 与响应信息进行匹配,检测漏洞是否存在 |
探测路径深度 | 1个数字,表示要探测的路径的深度,范围为1-15 |
待添加的攻击向量的URL编码次数 | 不编码、编码一次和编码两次 |
待添加的攻击向量与用户请求中的参数的关系 | 待添加的攻击向量在用户请求中的参数之前、之后或者替换 |
待检测的位置 | GET参数、POST参数、URI截断检测、Cookie参数、Referer参数、URI***检测、Host参数、User-Agent参数、X-Forwarded-For参数、文件名、from-data形式的文件名 |
其中,浏览器缓存(Cookie)参数是指服务端分配的用于辨别用户身份的标识,包含SessionID等。用户代理(User-Agent)参数为用户代理、客户端浏览器及操作***等参数。统一资源标识符(Uniform Resource Identifier, URI)参数可以包括但不限于:1)模块ID;2)正式域名;3)测试域名;4)URI对应文件名及路径;5)容器名/节点名;6)请求方式;7)获取(GET)参数;8)发送(POST)参数;9)其他参数;10)URI对文件的信息摘要算法;11)采集时间。URI截断检测是指截断处的参数,URI***检测是指***处的参数。主机(Host)参数是主机和端口对应的参数。引用(Referer)参数用于指示请求当前资源的客户端来源。X-Forwarded-For参数用于识别通过超文本传输协议(Hypertext Transfer Protocol,HTTP)代理或负载均衡方式连接到万维网(World WideWeb,Web)服务器的客户端最原始的网际互连协议(Internet Protocol,IP)地址的HTTP请求头字段。
在一个实施例中,在向用户终端发送页面数据之前,还包括以下步骤:
(1)基于多种类型的漏洞的特征确定插件属性数据,插件属性数据包括基本信息、匹配规则和检测规则中的一种或多种。
具体地,通过对OWASP TOP10的常规漏洞和公共漏洞和暴露(CommonVulnerabilities Exposures, CVE)漏洞进行分析,可以确定出漏洞扫描时通用的特征,如图8所示,基于该特征设定插件属性数据可以包括以下信息:插件编号、匹配规则、插件英文名、插件中文名、插件描述、插件负责人、插件状态、危险等级、修复链接、以及检测规则中的一种或多种。通过对插件属性数据进一步分析,可以将插件属性数据分为三大类:基本信息、匹配规则和检测规则。确定插件属性信息中用于描述基本信息的有:插件编号、插件英文名、插件中文名、插件负责人、插件描述、风险等级、插件修复文档、以及插件状态;其中,匹配规则有两种类型:允许规则和拒绝规则,用于描述匹配规则的有:待检测对象、待检测对象对应的匹配内容、以及匹配方式;用于描述检测规则的有:规则编号、待添加的攻击向量、用于漏洞匹配的正则表达式、探测路径深度、以及其他自定义字段(待添加的攻击向量的URL编码次数、待添加的攻击向量与用户请求中的参数的关系、以及待检测的位置)。
在一个实施例中,插件属性数据中可以同时包括基本信息、匹配规则和检测规则,使得目标插件能够包含更多漏洞的特征,具有更丰富的漏洞扫描逻辑。
(2)利用插件属性数据生成插件配置界面的页面数据,插件配置界面用于输入配置数据。
具体地,将插件属性数据中包括的信息作为属性标签,并针对属性标签创建输入框,使得用户可以在输入框中输入目标插件的配置数据。
在一个实施例中,利用插件属性数据生成插件配置界面的页面数据,包括以下步骤:
(1)将插件属性数据包括的基本信息、匹配规则和检测规则中的一种或多种分别作为网页的插件属性标签。
(2)根据每个插件属性标签的位置对应添加输入框标签。
(3)根据网页的插件属性标签以及对应的输入框标签生成插件配置界面的页面数据。
具体地,通过将基本信息、匹配规则和检测规则中的一种或多种作为网页的插件属性标签,并在插件属性标签之后建立相应的输入框标签来生成插件配置界面的页面数据。在建立插件属性标签和输入框标签可以通过HTML语言进行描述,以建立插件编号为例,将插件编号(leak_id)定义为label,再针对插件编号定义相应的输入框标签,例如为inputtype,具体实现代码如下所示:
<label for ="leak_id" class = "el-form-item_label" style ="width:150px">
::before
"插件编号"
</label>
<div class = "el-form-item_label" style ="margin-left: 150px">
::before
<div data-v-496e5610 class="el_input">
<input type = "text" autocomplete = "off" placeholder = "请输入插件编号,6位数字" class="el_input__inner">==$0
S302、接收所述用户终端发送的目标插件的配置数据,所述配置数据是由用户在所述插件配置界面中输入的。
在一个实施例中,当用户在用户终端的插件配置界面完成目标插件的配置后,可以将插件创建完成指令发送至配置服务器,配置服务器就获取目标插件的配置数据,也可以是用户在用户终端的插件配置界面上输入时,配置服务器就开始获取配置数据,本申请对此不作限定。
S303、利用多层结构表示语言和所述插件属性数据生成插件数据结构,所述插件数据结构包括多个配置字段。
其中,插件数据结构包括的多个配置字段可以是基本信息配置字段、匹配规则配置字段和检测规则配置字段中的一种或多种。
具体地,插件属性数据中包括基本信息配置字段、匹配规则配置字段和检测规则配置字段中的一种或多种,利用多层结构表示语言对插件属性数据进行表示就可以生成插件数据结构。
其中,基本信息配置字段、匹配规则配置字段和检测规则配置字段对应的英文名如下表4所示:
表4
配置字段 | 英文名 | 配置字段 | 英文名 |
插件编号 | leak_id | 待检测对象对应的匹配内容 | match_content |
插件英文名 | leak_name | 匹配方式 | match_type |
插件中文名 | leak_name_cn | 规则编号 | case_id |
插件负责人 | user | 待添加的攻击向量 | input |
插件描述 | leak_desc | 用于漏洞匹配的正则表达式 | target |
风险等级 | risk_level | 探测路径深度 | depth |
插件状态 | status | 待添加的攻击向量的URL编码次数 | arg_encode |
修复链接 | fix_link | 待添加的攻击向量与用户请求中的参数的关系 | arg_operate |
待检测对象 | match_target | 检测位置 | dect_pos |
以插件属性数据中包括基本信息配置字段、匹配规则配置字段和检测规则配置字段为例,则利用多层结构表示语言,例如数据序列化表示YAML语言生成插件属性数据的插件数据结构,如下所示:
leak_id:
leak_name:
leak_name_cn:
user:
leak_desc:
risk_level:
status:
fix_link:
attritute:
allow:
-match_target:
match_content:
match_type:
deny:{}
test_cases:
-case_id:
input:
target:
depth:
arg_encode:
arg_operate:
dect_pos:
其中,attritute对应的是匹配规则,test_cases对应的是检测规则,allow和deny对应的是S301中涉及的允许规则和拒绝规则。
S304、从所述配置数据中获取所述多个配置字段对应的字段数据。
具体地,当用户在插件配置界面的插件属性标签对应的输入框标签处输入字段数据后,可以获取用户输入的字段数据,以下表5所示为例:
表5
配置字段 | 字段数据 | 字段 | 字段数据 |
插件编号 | 178608 | 待检测对象对应的匹配内容 | Resp_header#Set-Cookie |
插件英文名 | structs2_057_detect | 匹配方式 | 正则匹配 |
插件中文名 | structs2_057漏洞 | 规则编号 | 120864844554 |
插件负责人 | Xiao Li | 待添加的攻击向量 | $%7B23333*23333%7D |
插件描述 | 在Struts 2.3 – 2.3.34 Struts 2.5 –2.5.16版本中,如果配置文件中namespace配置不当,当访问action类型为重定向(redirectaction,chain,postback)时,会根据url生成的namespace生成一个跳转地址location,location 会进行ognl计算,造成ognl注入。 | 用于漏洞匹配的正则表达式 | ‘$44428889’ |
风险等级 | 高危 | 探测路径深度 | 8 |
插件状态 | 已上线 | 待添加的攻击向量的URL编码次数 | 编码一次 |
修复链接 | 将structs更新到最新版本 | 待添加的攻击向量与用户请求中的参数的关系 | 在之前 |
待检测对象 | JSESSIONID | 检测位置 | HOST参数 |
S305、将所述字段数据添加到所述插件数据结构中的对应位置处,得到所述目标插件对应的插件描述文件。
具体地,从插件配置数据中获取到字段数据后,针对一些特定配置字段对应的字段数据需要转换为英文,如风险等级转换为high_risk、mid_risk、low_risk、插件状态转换为TEST、RUNNING、STOPPED;针对另一些特定配置字段需要进行二进制编码或十进制编码等从而转换为机器语言,如匹配方式、待添加的攻击向量的URL编码次数、待添加的攻击向量与用户请求中的参数的关系。以匹配方式为例,如匹配方式包括相等、前缀匹配、后缀匹配以及正则匹配式,令这四种匹配方式的二进制编码分别为0001、0010、0100、1000,该二进制编码对应的十进制编码分别为1、2、4、8。此处扫描器具体实现是针对二进制编码从右到左依次对应上述4种匹配方式,只要置为1就是以对应的匹配方式进行匹配,置为0就是不使用该匹配方式进行匹配,存在多个1就使用多个匹配方式进行匹配,直到匹配成功,例如当二进制编码为0011时,表示先利用相等进行匹配,如果匹配不成功,再利用前缀匹配进行匹配。以表5为基准,转换后的字段数据如下述表6所示:
表6
配置字段 | 字段数据 | 配置字段 | 字段数据 |
插件编号 | 178608 | 待检测对象对应的匹配内容 | Resp_header#Set-Cookie |
插件英文名 | structs2_057_detect | 匹配方式 | 8 |
插件中文名 | structs2_057漏洞 | 规则编号 | 120864844554 |
插件负责人 | Xiao Li | 待添加的攻击向量 | $%7B23333*23333%7D |
插件描述 | 在Struts 2.3 – 2.3.34 Struts 2.5 –2.5.16版本中,如果配置文件中namespace配置不当,当访问action类型为重定向(redirectaction,chain,postback)时,会根据url生成的namespace生成一个跳转地址location,location 会进行ognl计算,造成ognl注入。 | 用于漏洞匹配的正则表达式 | ‘$44428889’ |
风险等级 | high_risk | 探测路径深度 | 8 |
插件状态 | RUNNING | 待添加的攻击向量的URL编码次数 | 2 |
修复链接 | 将structs更新到最新版本 | 待添加的攻击向量与用户请求中的参数的关系 | 1 |
待检测对象 | JSESSIONID | 检测位置 | 64 |
进一步地,将表6中包括的多个配置字段的字段数据输入到插件数据结构的相应位置处,得到目标插件对应的插件描述文件。最终生成的插件描述文件如下所示:
leak_id:178608
leak_name:structs2_057_detect
leak_name_cn:structs2_057漏洞
user:Xiao Li
leak_desc:在Struts 2.3 –2.3.34 Struts 2.5 – 2.5.16版本中,如果配置文件中namespace配置不当,当访问action类型为重定向(redirect action,chain,postback)时,会根据url生成的namespace生成一个跳转地址location,location会进行ognl计算,造成ognl注入。
risk_level:high_risk
status:running
fix_link:将structs更新到最新版本
attritute:
allow:
-match_target:JSESSIONID
match_content:Resp_header#Set-Cookie
match_type:8
deny:{}
test_cases:
-case_id:120864844554
input:$%7B23333*23333%7D
target:‘$44428889’
depth:8
arg_encode:2
arg_operate:1
dect_pos:64
S306、向扫描服务器发送所述插件描述文件,以使得所述扫描服务器根据所述插件描述文件对扫描对象进行漏洞扫描。
其中,S306的具体实现可以参见前述实施例中S203的相关描述,此处不再赘述。
在本申请实施例中,可以对多种类型的漏洞进行抽象描述得到插件属性数据,并根据插件属性数据展示插件配置页面,通过获取用户在插件配置页面输入的针对目标插件的配置数据,并利用多层结构表示语言,如YAML语言对配置数据进行封装,得到目标插件对应的插件描述文件,向扫描服务器发送插件描述文件,以使得扫描服务器根据插件描述文件描述的目标插件的漏洞扫描逻辑来对扫描对象进行漏洞扫描,该方法可以利用多层结构表示语言对配置数据进行封装来生成具有丰富描述能力的插件描述文件,从而更准确地描述漏洞扫描逻辑,支持复杂的漏洞扫描场景,同时可以解决扫描器的语言兼容性的问题,通用性强。
请参见图9,图9提供了一种插件处理方法的流程示意图,以该方法应用于图1中的扫描服务器103进行说明,包括以下步骤:
S901、获取插件描述文件,所述插件描述文件是通过利用多层结构表示语言对目标插件的配置数据进行封装得到的。
S902、基于扫描器对应的目标语言对所述插件描述文件进行处理,得到所述目标插件的可执行文件。
在一个实施例中,在得到基于多层结构表示语言生成的插件描述文件后,可以将插件描述文件作为一个通用的漏洞检测插件给扫描器进行漏洞扫描。
具体地,对于扫描服务器上安装的扫描器,扫描服务器可以基于扫描器的目标语言对插件扫描文件进行解析处理,得到目标插件的可执行文件。
在一个实施例中,对插件描述文件进行解析处理,得到目标插件的配置数据,再利用扫描器对应的目标语言的数据结构,对目标插件的配置数据进行封装处理,得到目标插件的可执行文件。
具体地,首先将扫描器使用的语言或可兼容语言作为目标语言,基于目标语言建立目标语言对应的数据结构,并将插件描述文件中包括的多个字段数据输入到目标语言对应的数据结构相应位置处。在此以扫描器对应的目标语言为Lua语言为例,得到的可执行文件如下所示:
M.g_plugin_test_cases={
normal_scan={
{
allow={
{
match_target:JSESSIONID
match_content:Resp_header#Set-Cookie
match_type:8
}
}
leak_name:structs2_057_detect
test_cases:{
{
case_id:120864844554
input:$%7B23333*23333%7D
target:‘$44428889’
depth:8
arg_encode:2
arg_operate:1
detect_pose:64
}
}
deny={
}
plugin_id=178608
}
}
}
其中,目标语言对应的插件数据结构将插件编号定义为plugin_id。
在一个实施例中,也可以将基于多层结构表示语言生成的插件描述文件作为漏洞的模板文件,给插件的开发者使用,开发者可以根据插件描述文件中描述的漏洞的内容来开发更多通用插件,而不需要关注开发语言。
S903、当接收到扫描触发指令时,调用所述扫描器对扫描对象执行所述可执行文件指示的漏洞扫描逻辑。
具体地,漏洞扫描器可以获取向扫描对象发送的用户请求,通过可执行文件指示的漏洞扫描逻辑对用户请求进行处理,得到测试请求,例如漏洞扫描逻辑指示根据检测规则中配置的待添加的攻击向量和待添加的攻击向量与用户请求中的参数的关系确定用户请求时,可以将待添加的攻击向量添加到用户请求中响应位置处,得到测试请求,并发送给扫描对象,获取扫描对象针对该测试请求的响应信息,再利用响应信息确定扫描对象是否存在漏洞,如漏洞扫描逻辑指示利用正则表达式与响应信息进行匹配,当正则表达式与响应信息匹配时,则认为扫描对象中存在待添加的攻击向量对应的漏洞,可以生成漏洞扫描结果返回给发送扫描触发指令的用户终端。如果漏洞扫描逻辑指示进行URL编码,还可以对待添加的攻击向量进行URL编码处理。
通过本申请实施例,扫描服务器可以基于扫描器对应的目标语言对插件描述文件进行处理,得到目标插件的可执行文件,当接收到扫描触发指令时,调用扫描器对扫描对象执行可执行文件指示的漏洞扫描逻辑,可见,扫描器均可以将插件描述文件解析成自身支持的语言格式,并进行漏洞扫描,因此本申请提出的插件描述文件具有较强的通用性。
如图10所示,图10是本申请实施例提供的一种插件处理装置,所述装置10包括:
获取模块1001,用于获取目标插件的配置数据;
处理模块1002,用于利用多层结构表示语言对所述配置数据进行封装,得到所述目标插件对应的插件描述文件,所述插件描述文件用于描述所述目标插件的漏洞扫描逻辑;
发送模块1003,用于向扫描服务器发送所述插件描述文件,以使得所述扫描服务器根据所述插件描述文件对扫描对象进行漏洞扫描。
在一个实施例中,所述获取模块1001,具体用于:
基于多种类型的漏洞的特征确定插件属性数据,所述插件属性数据包括基本信息、匹配规则和检测规则中的一种或多种;
利用所述插件属性数据生成插件配置界面的页面数据,所述插件配置界面用于输入所述配置数据。
在一个实施例中,所述获取模块1001,具体用于:
响应于用户终端发送的插件创建指令,向所述用户终端发送插件配置界面的页面数据,以使得所述用户终端根据所述页面数据展示所述插件配置界面,所述插件配置界面包括基本信息配置区域、匹配规则配置区域和检测规则配置区域中的一种或多种;
接收所述用户终端发送的目标插件的配置数据,所述配置数据是由用户在所述插件配置界面中输入的。
在一个实施例中,所述处理模块1002,具体用于:
利用多层结构表示语言和所述插件属性数据生成插件数据结构,所述插件数据结构包括多个配置字段,所述多个配置字段包括基本信息配置字段、匹配规则配置字段和检测规则配置字段中的一种或多种;
从所述配置数据中获取所述多个配置字段对应的字段数据;
将所述字段数据添加到所述插件数据结构中的对应位置处,得到所述目标插件对应的插件描述文件。
在一个实施例中,所述处理模块1002,具体用于:
将所述插件属性数据包括的基本信息、匹配规则和检测规则中的一种或多种分别作为网页的插件属性标签;
根据每个所述插件属性标签的位置对应添加输入框标签;
根据所述网页的插件属性标签以及对应的输入框标签生成插件配置界面的页面数据。
通过本申请实施例,获取用户在用户终端输入的针对目标插件的配置数据,利用多层结构表示语言对配置数据进行封装,得到目标插件对应的插件描述文件,利用插件描述文件来描述目标插件的漏洞扫描逻辑,向扫描服务器发送插件描述文件,以使得扫描服务器根据插件描述文件对扫描对象进行漏洞扫描,可以利用多层结构表示语言生成具有丰富描述能力的插件描述文件,从而更准确地描述漏洞扫描逻辑,支持复杂的漏洞扫描场景,同时可以解决扫描器的语言兼容性的问题,通用性强。
如图11所示,图11是本申请实施例提供的另一种插件处理装置,所述装置11包括:
获取模块1101,用于获取插件描述文件,所述插件描述文件是通过利用多层结构表示语言对目标插件的配置数据进行封装得到的;
处理模块1102,用于基于扫描器对应的目标语言对所述插件描述文件进行处理,得到所述目标插件的可执行文件;
所述处理模块1102,还用于当接收到扫描触发指令时,调用所述扫描器对扫描对象执行所述可执行文件指示的漏洞扫描逻辑。
在一个实施例中,所述处理模块1102,具体用于:
对所述插件描述文件进行解析处理,得到所述目标插件的配置数据;
利用扫描器对应的目标语言的数据结构,对所述目标插件的配置数据进行封装处理,得到所述目标插件的可执行文件。
通过本申请实施例,扫描服务器可以基于扫描器对应的目标语言对插件描述文件进行处理,得到目标插件的可执行文件,当接收到扫描触发指令时,调用扫描器对扫描对象执行可执行文件指示的漏洞扫描逻辑,可见,扫描器可以将插件描述文件解析成自身支持的语言格式,并进行漏洞扫描,因此本申请提出的插件描述文件具有较强的通用性。
如图12所示,图12是本申请实施例提供的一种计算机设备的结构示意图,该计算机设备12可以对应于图1中的配置服务器102,该计算机设备12包括:一个或多个处理器1201、存储器1202、通信接口1203。上述处理器1201、存储器1202和通信接口1203可通过总线1204或其他方式连接,本申请实施例以通过总线1204连接为例。
其中,处理器1201(或称CPU(Central Processing Unit,中央处理器))是计算机设备12的计算核心以及控制核心,其可以解析计算机设备12内的各类指令以及处理计算机设备12的各类数据,例如:CPU可以用于解析用户向计算机设备12所发送的开关机指令,并控制计算机设备12进行开关机操作;再如:CPU可以在计算机设备12内部结构之间传输各类交互数据,等等。通信接口1203可选的可以包括标准的有线接口、无线接口(如Wi-Fi、移动通信接口等),受处理器1201的控制用于收发数据。存储器1202(Memory)是计算机设备12中的记忆设备,用于存放程序和数据。可以理解的是,此处的存储器1202既可以包括计算机设备12的内置存储器,当然也可以包括计算机设备12所支持的扩展存储器。存储器1202提供存储空间,该存储空间存储了计算机设备12的操作***,可包括但不限于:Windows***、Linux***等等,本申请对此并不作限定。
在一个实施例中,所述处理器1201,具体用于:
获取目标插件的配置数据;
利用多层结构表示语言对所述配置数据进行封装,得到所述目标插件对应的插件描述文件,所述插件描述文件用于描述所述目标插件的漏洞扫描逻辑;
向扫描服务器发送所述插件描述文件,以使得所述扫描服务器根据所述插件描述文件对扫描对象进行漏洞扫描。
在一个实施例中,所述处理器1201,具体用于:
响应于用户终端发送的插件创建指令,向所述用户终端发送插件配置界面的页面数据,以使得所述用户终端根据所述页面数据展示所述插件配置界面,所述插件配置界面包括基本信息配置区域、匹配规则配置区域和检测规则配置区域中的一种或多种;
接收所述用户终端发送的目标插件的配置数据,所述配置数据是由用户在所述插件配置界面中输入的。
在一个实施例中,所述处理器1201,具体用于:
基于多种类型的漏洞的特征确定插件属性数据,所述插件属性数据包括基本信息、匹配规则和检测规则中的一种或多种;
利用所述插件属性数据生成插件配置界面的页面数据,所述插件配置界面用于输入所述配置数据。
在一个实施例中,所述处理器1201,具体用于:
利用多层结构表示语言和所述插件属性数据生成插件数据结构,所述插件数据结构包括多个配置字段,所述多个配置字段包括基本信息配置字段、匹配规则配置字段和检测规则配置字段中的一种或多种;
从所述配置数据中获取所述多个配置字段对应的字段数据;
将所述字段数据添加到所述插件数据结构中的对应位置处,得到所述目标插件对应的插件描述文件。
在一个实施例中,所述处理器1201,具体用于:
将所述插件属性数据包括的基本信息、匹配规则和检测规则分别作为网页的插件属性标签中的一种或多种;
根据每个所述插件属性标签的位置对应添加输入框标签;
根据所述网页的插件属性标签以及对应的输入框标签生成插件配置界面的页面数据。
通过本申请实施例,获取用户在用户终端输入的针对目标插件的配置数据,利用多层结构表示语言对配置数据进行封装,得到目标插件对应的插件描述文件,利用插件描述文件来描述目标插件的漏洞扫描逻辑,向扫描服务器发送插件描述文件,以使得扫描服务器根据插件描述文件对扫描对象进行漏洞扫描,可以利用多层结构表示语言生成具有丰富描述能力的插件描述文件,从而更准确地描述漏洞扫描逻辑,支持复杂的漏洞扫描场景,同时可以解决扫描器的语言兼容性的问题,通用性强。
在可行的实施例中,本申请实施例中所描述的计算机设备12,可以对应于图1中的扫描服务器103,所述计算机设备12包括的处理器1201、存储器1202、通信接口1203可以用于实现上述方法实施例中的插件处理方法。
在一个实施例中,所述处理器1201,具体用于:
获取插件描述文件,所述插件描述文件是通过利用多层结构表示语言对目标插件的配置数据进行封装得到的;
基于扫描器对应的目标语言对所述插件描述文件进行处理,得到所述目标插件的可执行文件;
当接收到扫描触发指令时,调用所述扫描器对扫描对象执行所述可执行文件指示的漏洞扫描逻辑。
在一个实施例中,所述处理器1201,具体用于:
对所述插件描述文件进行解析处理,得到所述目标插件的配置数据;
利用扫描器对应的目标语言的数据结构,对所述目标插件的配置数据进行封装处理,得到所述目标插件的可执行文件。
通过本申请实施例,扫描服务器可以基于扫描器对应的目标语言对插件描述文件进行处理,得到目标插件的可执行文件,当接收到扫描触发指令时,调用扫描器对扫描对象执行可执行文件指示的漏洞扫描逻辑,可见,扫描器可以将插件描述文件解析成自身支持的语言格式,并进行漏洞扫描,因此本申请提出的插件描述文件具有较强的通用性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述插件处理方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(RandomAccess Memory, RAM)等。本申请一个或多个实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法的实施例中所执行的步骤。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (8)
1.一种插件处理方法,其特征在于,所述方法包括:
基于多种类型的漏洞确定出漏洞扫描时的通用特征,并基于所述通用特征确定所述多种类型的漏洞对应的插件属性数据,所述插件属性数据包括基本信息、匹配规则和检测规则,所述匹配规则包括待检测对象、所述待检测对象对应的匹配内容、以及匹配方式;
将所述插件属性数据包括的基本信息、匹配规则和检测规则分别作为网页的插件属性标签,并根据每个所述插件属性标签的位置对应添加输入框标签,以及根据所述网页的插件属性标签以及对应的输入框标签生成插件配置界面的页面数据,所述页面数据用于展示所述插件配置界面,所述插件配置界面包括基本信息配置区域、匹配规则配置区域和检测规则配置区域;
获取通过所述插件配置界面输入的目标插件的配置数据;
利用多层结构表示语言对所述配置数据进行封装,得到所述目标插件对应的插件描述文件,所述插件描述文件用于描述所述目标插件的漏洞扫描逻辑;
向扫描服务器发送所述插件描述文件,以使得所述扫描服务器根据所述插件描述文件对扫描对象进行漏洞扫描。
2.根据权利要求1所述的方法,其特征在于,所述获取目标插件的配置数据,包括:
响应于用户终端发送的插件创建指令,向所述用户终端发送插件配置界面的页面数据,以使得所述用户终端根据所述页面数据展示所述插件配置界面;
接收所述用户终端发送的目标插件的配置数据,所述配置数据是由用户在所述插件配置界面中输入的。
3.根据权利要求1或2所述的方法,其特征在于,所述利用多层结构表示语言对所述配置数据进行封装,得到所述目标插件对应的插件描述文件,包括:
利用多层结构表示语言和所述插件属性数据生成插件数据结构,所述插件数据结构包括多个配置字段,所述多个配置字段包括基本信息配置字段、匹配规则配置字段和检测规则配置字段中的一种或多种;
从所述配置数据中获取所述多个配置字段对应的字段数据;
将所述字段数据添加到所述插件数据结构中的对应位置处,得到所述目标插件对应的插件描述文件。
4.根据权利要求3所述的方法,其特征在于,所述匹配规则配置字段包括一个或多个子配置字段,所述检测规则配置字段包括一个或多个子配置字段。
5.一种插件处理方法,其特征在于,所述方法包括:
获取插件描述文件,所述插件描述文件是通过利用多层结构表示语言对目标插件的配置数据进行封装得到的,所述目标插件的配置数据是通过基于插件属性数据生成的插件配置界面输入的,所述插件属性数据是基于多种类型的漏洞在漏洞扫描时的通用特征确定的;
对所述插件描述文件进行解析处理,得到所述目标插件的配置数据;
利用扫描器对应的目标语言的数据结构,将所述目标插件的配置数据包括的多个字段数据输入到所述目标语言对应的数据结构相应位置处,得到所述目标插件的可执行文件;
当接收到扫描触发指令时,调用所述扫描器通过所述可执行文件指示的漏洞扫描逻辑对用户请求进行处理得到测试请求,并发送给扫描对象;
获取所述扫描对象针对所述测试请求的响应信息,并利用所述响应信息确定所述扫描对象是否存在漏洞。
6.一种插件处理装置,其特征在于,所述装置包括:
获取模块,用于基于多种类型的漏洞确定出漏洞扫描时的通用特征,并基于所述通用特征确定所述多种类型的漏洞对应的插件属性数据,所述插件属性数据包括基本信息、匹配规则和检测规则,所述匹配规则包括待检测对象、所述待检测对象对应的匹配内容、以及匹配方式;
获取模块,还用于将所述插件属性数据包括的基本信息、匹配规则和检测规则分别作为网页的插件属性标签,并根据每个所述插件属性标签的位置对应添加输入框标签,以及根据所述网页的插件属性标签以及对应的输入框标签生成插件配置界面的页面数据,所述页面数据用于展示所述插件配置界面,所述插件配置界面包括基本信息配置区域、匹配规则配置区域和检测规则配置区域;
获取模块,还用于获取通过所述插件配置界面输入的目标插件的配置数据;
处理模块,用于利用多层结构表示语言对所述配置数据进行封装,得到所述目标插件对应的插件描述文件,所述插件描述文件用于描述所述目标插件的漏洞扫描逻辑;
发送模块,用于向扫描服务器发送所述插件描述文件,以使得所述扫描服务器根据所述插件描述文件对扫描对象进行漏洞扫描。
7.一种插件处理装置,其特征在于,所述装置包括:
获取模块,用于获取插件描述文件,所述插件描述文件是通过利用多层结构表示语言对目标插件的配置数据进行封装得到的,所述目标插件的配置数据是通过基于插件属性数据生成的插件配置界面输入的,所述插件属性数据是基于多种类型的漏洞在漏洞扫描时的通用特征确定的;
处理模块,还用于对所述插件描述文件进行解析处理,得到所述目标插件的配置数据;
所述处理模块,还用于利用扫描器对应的目标语言的数据结构,将所述目标插件的配置数据包括的多个字段数据输入到所述目标语言对应的数据结构相应位置处,得到所述目标插件的可执行文件;
所述处理模块,还用于当接收到扫描触发指令时,调用所述扫描器通过所述可执行文件指示的漏洞扫描逻辑对用户请求进行处理得到测试请求,并发送给扫描对象;
获取所述扫描对象针对所述测试请求的响应信息,并利用所述响应信息确定所述扫描对象是否存在漏洞。
8.一种计算机可读存储介质,其特征在于,存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1~5任一项所述的插件处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110511727.6A CN112926061B (zh) | 2021-05-11 | 2021-05-11 | 插件处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110511727.6A CN112926061B (zh) | 2021-05-11 | 2021-05-11 | 插件处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112926061A CN112926061A (zh) | 2021-06-08 |
CN112926061B true CN112926061B (zh) | 2021-08-06 |
Family
ID=76174831
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110511727.6A Active CN112926061B (zh) | 2021-05-11 | 2021-05-11 | 插件处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112926061B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312631A (zh) * | 2021-06-11 | 2021-08-27 | 杭州安恒信息安全技术有限公司 | 一种漏洞检测方法及相关装置 |
CN115529146A (zh) * | 2021-06-25 | 2022-12-27 | ***通信集团设计院有限公司 | 网络安全漏洞处理***及方法 |
CN113672934A (zh) * | 2021-08-09 | 2021-11-19 | 中汽创智科技有限公司 | 一种安全漏洞扫描***及方法、终端、存储介质 |
CN116611077A (zh) * | 2023-07-20 | 2023-08-18 | 北京升鑫网络科技有限公司 | 基于主机网络包捕获和分析的虚拟补丁防护方法及*** |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106657159A (zh) * | 2017-02-27 | 2017-05-10 | 杭州迪普科技股份有限公司 | 安全策略的生成方法及装置 |
CN107273748B (zh) * | 2017-05-23 | 2020-12-11 | 成都联宇云安科技有限公司 | 一种基于漏洞poc实现安卓***漏洞检测的方法 |
CN109428878B (zh) * | 2017-09-01 | 2021-11-23 | 阿里巴巴集团控股有限公司 | 漏洞检测方法、检测装置和检测*** |
CN108537042A (zh) * | 2018-04-04 | 2018-09-14 | 上海有云信息技术有限公司 | 自定义插件生成方法、装置、设备及存储介质 |
CN110263542A (zh) * | 2019-05-10 | 2019-09-20 | 西安交大捷普网络科技有限公司 | 一种基于插件技术的漏洞扫描方法与*** |
CN111291384B (zh) * | 2020-04-28 | 2020-09-08 | 杭州海康威视数字技术股份有限公司 | 漏洞扫描方法、装置及电子设备 |
-
2021
- 2021-05-11 CN CN202110511727.6A patent/CN112926061B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112926061A (zh) | 2021-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112926061B (zh) | 插件处理方法及装置 | |
US11050778B2 (en) | Complex application attack quantification, testing, detection and prevention | |
US9544318B2 (en) | HTML security gateway | |
CN111400722B (zh) | 扫描小程序的方法、装置、计算机设备和存储介质 | |
US10325097B2 (en) | Static detection of context-sensitive cross-site scripting vulnerabilities | |
CN104461491B (zh) | 一种Hybrid组件的运行方法和*** | |
CN102833258B (zh) | 网址访问方法及*** | |
US20150347756A1 (en) | Automatic library detection | |
CN108494762A (zh) | 网页访问方法、装置及计算机可读存储介质、终端 | |
CN110704816B (zh) | 接口破解的识别方法、装置、设备及存储介质 | |
CN111625837B (zh) | 识别***漏洞的方法、装置和服务器 | |
CN113660250B (zh) | 基于web应用防火墙的防御方法、装置、***和电子装置 | |
CN107547524A (zh) | 一种网页检测方法、装置和设备 | |
CN111835777A (zh) | 一种异常流量检测方法、装置、设备及介质 | |
JP2018041442A (ja) | Webページの異常要素を検出するためのシステム及び方法 | |
US20220272127A1 (en) | Automatic insertion of security policies for web applications | |
CN114091031A (zh) | 基于白规则的类加载防护方法及装置 | |
CN113312633A (zh) | 一种网站漏洞扫描方法、装置、设备及存储介质 | |
CN115221525A (zh) | 漏洞扫描方法、装置、设备及存储介质 | |
CN116361793A (zh) | 代码检测方法、装置、电子设备及存储介质 | |
US11568130B1 (en) | Discovering contextualized placeholder variables in template code | |
CN111783006B (zh) | 页面的生成方法、装置、电子设备及计算机可读介质 | |
Gupta et al. | POND: polishing the execution of nested context-familiar runtime dynamic parsing and sanitisation of XSS worms on online edge servers of fog computing | |
CN113300915A (zh) | 设备识别方法、***、电子装置和存储介质 | |
CN110209959B (zh) | 信息处理方法和装置 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40047321 Country of ref document: HK |