CN114048480A - 漏洞检测方法、装置、设备及存储介质 - Google Patents
漏洞检测方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114048480A CN114048480A CN202111277713.9A CN202111277713A CN114048480A CN 114048480 A CN114048480 A CN 114048480A CN 202111277713 A CN202111277713 A CN 202111277713A CN 114048480 A CN114048480 A CN 114048480A
- Authority
- CN
- China
- Prior art keywords
- vulnerability
- field
- detected
- detection
- feature vector
- 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.)
- Pending
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
- 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/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Virology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供一种漏洞检测方法、装置、设备及存储介质。该方法包括:在接收目标应用返回的待检测字段后,对待检测字段进行特征提取,获取待检测字段的特征向量,将该特征向量输入预先训练好的漏洞检测模型,获取待检测字段的检测结果,检测结果用于指示待检测字段中是否有漏洞和/或漏洞位置。通过采用有监督的机器学习模型对待检测字段进行漏洞检测,检测准确率高。另外,上述检测过程可以辅助测试人员进行字段初筛,提高漏洞检测效率。
Description
技术领域
本申请涉及网络技术领域,尤其涉及一种漏洞检测方法、装置、设备及存储介质。
背景技术
跨站脚本攻击(cross site scripting,XSS)是指恶意攻击者往网页(即web页面)里插入恶意script代码,当用户浏览该网页之时,嵌入其中web页面的script代码会被执行,从而达到恶意攻击用户的目的。
XSS漏洞作为典型漏洞,对web应用着重要影响。fuzz测试作为web应用安全测试中的一项重要检测手段,能够快速验证大量潜在的安全威胁。Fuzz测试也称为“模糊测试”,是一种挖掘应用安全漏洞、检测应用健壮性的黑盒测试,主要通过向应用输入非法字段,观测被测应用是否异常。测试人员基于现有的各类漏洞检测产品获取漏洞位置,基于自身专业知识进行fuzz测试。
然而,由于现有的各类漏洞检测产品普遍存在误报,漏洞检测的准确率不高,影响测试人员对应用性能的测试效率。
发明内容
本申请实施例提供一种漏洞检测方法、装置、设备及存储介质,提高漏洞检测的准确率,进而可提升应用漏洞测试的效率。
本申请实施例的第一方面提供一种漏洞检测方法,包括:
接收待检测字段,所述待检测字段包括目标应用响应于测试请求的各项参数的返回值;
获取所述待检测字段的特征向量;
将所述待检测字段的特征向量输入预设的漏洞检测模型中,得到所述待检测字段的检测结果,所述漏洞检测模型是采用有监督的机器学习模型对样本字段进行训练得到的,所述检测结果用于指示所述待检测字段是否存在漏洞和/或漏洞位置。
在本申请第一方面的一个可选实施例中,所述获取所述待检测字段的特征向量,包括:
对所述待检测字段中各项参数的返回值进行矢量化处理,得到所述待检测字段的特征向量。
在本申请第一方面的一个可选实施例中,所述对所述待检测字段中各项参数的返回值进行矢量化处理,得到所述待检测字段的特征向量,包括:
通过预定义的转化表,获取所述各项参数的返回值对应的数字化序列,所述转化表包括每项参数的输出位置对应的第一数字,可用符号对应的第二数字以及函数对应的第三数字;
将所述各项参数的返回值对应的数字化序列作为所述待检测字段的特征向量。
在本申请第一方面的一个可选实施例中,所述漏洞检测模型是采用如下方式训练得到的:
获取样本字段的特征向量,以及所述样本字段对应的标注结果,所述标注结果包括所述样本字段是否存在漏洞和/或漏洞位置;
将所述样本字段的特征向量作为初始漏洞检测模型的输入项,将所述样本字段对应的标注结果作为所述初始漏洞检测模型的输出项,对所述漏洞检测模型进行训练;
当所述漏洞检测模型对应的损失函数收敛时,得到训练好的所述漏洞检测模型。
在本申请第一方面的一个可选实施例中,所述漏洞检测模型的检测结果还用于指示所述待检测字段存在漏洞的漏洞类型;
其中,所述漏洞类型包括反射型跨站脚本攻击XSS漏洞,存储型XSS漏洞以及文件对象模型DOM型XSS漏洞;
相应的,所述样本字段对应的标注结果还包括所述样本字段存在漏洞的漏洞类型。
在本申请第一方面的一个可选实施例中,所述方法还包括:
若所述检测结果用于指示所述待检测字段存在漏洞以及漏洞类型,根据所述漏洞类型获取与所述漏洞类型对应的漏洞注入代码;
输出所述漏洞注入代码,所述漏洞注入代码用于测试人员对所述目标应用进行漏洞验证。
在本申请第一方面的一个可选实施例中,若输出的所述漏洞注入代码包括多组漏洞注入代码,所述输出所述漏洞注入代码,包括:
按照漏洞注入代码的检测成功率从高到低的顺序,输出所述多组漏洞注入代码。
本申请实施例的第二方面提供一种漏洞检测装置,包括:
接收模块,用于接收待检测字段,所述待检测字段包括目标应用响应于测试请求的各项参数的返回值;
获取模块,用于获取所述待检测字段的特征向量;
处理模块,用于将所述待检测字段的特征向量输入预设的漏洞检测模型中,得到所述待检测字段的检测结果,所述漏洞检测模型是采用有监督的机器学习模型对样本字段进行训练得到的,所述检测结果用于指示所述待检测字段是否存在漏洞和/或漏洞位置。
在本申请第二方面的一个可选实施例中,所述获取模块,用于:
对所述待检测字段中各项参数的返回值进行矢量化处理,得到所述待检测字段的特征向量。
在本申请第二方面的一个可选实施例中,所述获取模块,用于:
通过预定义的转化表,获取所述各项参数的返回值对应的数字化序列,所述转化表包括每项参数的输出位置对应的第一数字,可用符号对应的第二数字以及函数对应的第三数字;
将所述各项参数的返回值对应的数字化序列作为所述待检测字段的特征向量。
在本申请第二方面的一个可选实施例中,所述获取模块,还用于:
获取样本字段的特征向量,以及所述样本字段对应的标注结果,所述标注结果包括所述样本字段是否存在漏洞和/或漏洞位置;
所述处理模块,用于将所述样本字段的特征向量作为初始漏洞检测模型的输入项,将所述样本字段对应的标注结果作为所述初始漏洞检测模型的输出项,对所述漏洞检测模型进行训练;
当所述漏洞检测模型对应的损失函数收敛时,得到训练好的所述漏洞检测模型。
在本申请第二方面的一个可选实施例中,所述漏洞检测模型的检测结果还用于指示所述待检测字段存在漏洞的漏洞类型;
其中,所述漏洞类型包括反射型跨站脚本攻击XSS漏洞,存储型XSS漏洞以及文件对象模型DOM型XSS漏洞;
相应的,所述样本字段对应的标注结果还包括所述样本字段存在漏洞的漏洞类型。
在本申请第二方面的一个可选实施例中,所述获取模块,还用于:
若所述检测结果用于指示所述待检测字段存在漏洞以及漏洞类型,根据所述漏洞类型获取与所述漏洞类型对应的漏洞注入代码;
所述装置还包括:发送模块;
所述发送模块,用于输出所述漏洞注入代码,所述漏洞注入代码用于测试人员对所述目标应用进行漏洞验证。
在本申请第二方面的一个可选实施例中,若输出的所述漏洞注入代码包括多组漏洞注入代码,所述发送模块,用于:
按照漏洞注入代码的检测成功率从高到低的顺序,输出所述多组漏洞注入代码。
本申请实施例的第三方面提供一种电子设备,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如第一方面中任一项所述的方法。
本申请实施例的第四方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现如第一方面中任一项所述的方法。
本申请实施例的第五方面提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现第一方面中任一项所述的方法。
本申请实施例提供一种漏洞检测方法、装置、设备及存储介质。该方法包括:在接收目标应用返回的待检测字段后,对待检测字段进行特征提取,获取待检测字段的特征向量,将该特征向量输入预先训练好的漏洞检测模型,获取待检测字段的检测结果,检测结果用于指示待检测字段中是否有漏洞和/或漏洞位置。通过采用有监督的机器学习模型对待检测字段进行漏洞检测,检测准确率高。另外,上述检测过程可以辅助测试人员进行字段初筛,提高漏洞检测效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的漏洞检测方法的场景示意图;
图2为本申请实施例提供的漏洞检测方法的流程示意图一;
图3为本申请实施例提供的漏洞检测模型的训练示意图;
图4为本申请实施例提供的漏洞检测方法的流程示意图二;
图5为本申请实施例提供的漏洞检测装置的结构示意图;
图6为本申请实施例提供的电子设备的硬件结构图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例的说明书、权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述之外的顺序实施。
应当理解,本文中使用的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本申请实施例的描述中,术语“对应”可表示两者之间具有直接对应或间接对应的关系,也可以表示两者之间具有关联关系,也可以是指示与被指示、配置与被配置等关系。
为了便于理解本申请技术方案,下面对本申请实施例涉及到的专业术语进行简要说明。
机器学习,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。
有监督的机器学习,是通过已有的训练样本去训练得到一个最优模型,再利用这个最优模型将所有的输入映射为相应的输出,对输出进行简单的判断从而实现预测和分类的目的,也就是具有了对未知数据进行预测和分类的能力。
多层感知器(multi-layer perceptron,MLP),是一种前向结构的人工神经网络ANN,映射一组输入向量到一组输出向量。MLP可以看作是一个有向图,由多个节点层组成,每一层全连接到下一层。除了输入节点,每个节点都是一个带有非线性激活函数的神经元。可使用反向传播(back propagation,BP)算法的监督学习方法来训练MLP。
XSS,是指恶意攻击者往web页面里插入恶意script代码,当用户浏览该页面时,嵌入web里面的script代码会被执行,从而达到恶意攻击用户的目的。XSS攻击针对的是用户层面的攻击。XSS分为:反射型、存储型、文档对象模型(document object model,DOM)型。
反射型XSS:非持久化,需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面。反射型XSS大多数是用来盗取用户的cookie信息。其中cookie信息属于小型文本文件,是某些网站为了辨别用户身份,进行会话控制(session)追踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息。
存储型XSS:持久化,代码是存储在服务器中的,如在个人信息或发表文章等地方,插入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,用户访问该页面的时候触发代码执行。这种XSS比较危险,容易造成蠕虫,盗窃cookie。
DOM型XSS:不经过后端,是通过统一资源定位器(uniform resource locator,URL)传入参数去控制触发的,本质上也属于反射型XSS。
通常的漏洞检测产品存在误报且扫描时对生产环境压力较大,为了更加精准而全面的找到所有的漏洞,降低测试过程对环境的影响,亟需对漏洞检测产品的检测性能进行改进。
本申请实施例提供一种漏洞检测方法,引入机器学习算法来构建漏洞检测模型,采用机器学习算法对大量漏洞实例进行训练。基于训练好的漏洞检测模型,通过对目标应用返回的待检测字段进行特征提取,获取待检测字段的特征向量,将待检测字段的特征向量输入到漏洞检测模型,得到待检测字段的检测结果,从而实现更加高效和准确的漏洞检测。更进一步的,若检测结果指示存在漏洞以及漏洞类型,还可以向测试人员所在的终端设备返回检测结果中漏洞类型对应的漏洞注入代码,漏洞注入代码用于测试人员对目标应用进行漏洞验证,确保漏洞检测结果的准确率。
在介绍本申请提供的漏洞检测方法之前,首先对漏洞检测方法的应用场景进行简要介绍。
图1为本申请实施例提供的漏洞检测方法的场景示意图。如图1所示,该场景包括终端设备11、漏洞检测装置12以及应用服务器13。其中漏洞检测装置12分别与终端设备11以及应用服务器13通信连接。漏洞检测装置12用于检测应用服务器13是否存在安全漏洞、漏洞位置以及漏洞类型等。作为一种示例,漏洞检测装置12接收终端设备11发起的测试请求,访问应用服务器13。应用服务器13响应于测试请求,向漏洞检测装置12返回测试响应。漏洞检测装置12对应用服务器13返回的测试响应进行数据分析,生成检测结果,检测结果至少用于指示应用服务器12是否存在安全漏洞。漏洞检测装置12将检测结果发送至终端设备11,以协助测试人员进行安全漏洞的复核检测,提高漏洞检测的准确率和效率。
可选的,在一些实施例中,漏洞检测装置12可集成于终端设备11上,终端设备11直接访问应用服务器13,并基于应用服务器13返回的测试响应进行数据分析,将检测结果展示于终端设备11的显示器上,以便测试人员进行安全漏洞的复核检测。
下面通过具体实施例对本申请实施例提供的技术方案进行详细说明。需要说明的是,本申请实施例提供的技术方案可以包括以下内容中的部分或全部,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
图2为本申请实施例提供的漏洞检测方法的流程示意图一。本实施例提供的漏洞检测方法可应用于图1所示的漏洞检测装置,或者集成了漏洞检测装置的任意电子设备,对此本实施例不作任何限制。
为了方便理解,下文以漏洞检测装置作为执行主体进行方案说明。如图2所示,本实施例提供的漏洞检测方法,包括:
步骤201、目标应用向漏洞检测装置发送待检测字段。
待检测字段包括目标应用响应于测试请求的各项参数的返回值。本实施例中,目标应用即被测应用。
作为一种示例,漏洞检测装置向目标应用发送测试请求,目标应用响应于测试请求,向漏洞检测装置返回待检测字段,待检测字段包括各项参数的返回值。
可选的,测试请求为超文本传输协议(hyper text transfer protocol,HTTP)请求。
示例性的,测试请求为:GET/?x=test"'`<>alert();prompt();confirm();alert``;<script>Msgbox();HTTP/1.1,测试响应为<div class=test`<>alert();prompt();confirm();alert``;Msgbox();>123</div>,即待检测字段。
步骤202、漏洞检测装置获取待检测字段的特征向量。
在本实施例的一个可选实施例中,通过如下方式获取待检测字段的特征向量:对待检测字段中各项参数的返回值进行矢量化处理,得到待检测字段的特征向量。
其中,矢量化处理是将各项参数的返回值转化为数字化序列,相应的,特征向量中包括多项参数的数字化序列。
在本实施例的一个可选实施例中,通过预定义的转化表,获取待检测字段中各项参数的返回值对应的数字化序列;将各项参数的返回值对应的数字化序列作为待检测字段的特征向量。
可选的,转化表包括每项参数的输出位置对应的第一数字,每项参数中符号对应的第二数字以及每项参数中函数对应的第三数字。
作为一种示例,根据各项参数的返回值确定各项参数的输出位置、符号和函数,通过转化表确定每项参数的输出位置对应的第一数字,每项参数中符号对应的第二数字,每项参数中函数对应的第三数字,得到每项参数的返回值对应的数字化序列。
示例性的,表1为本申请实施例提供的一种转化表。
表1示出了各项参数的返回值中可能存在的特征(例如参数的输出位置、符号、函数)以及每一种特征所对应的数字,例如“prompt()”对应数字0,confirm()对应数字0,<script>对应数字1。基于表1可确定待检测字段对应的数字化序列。
步骤203、漏洞检测装置将待检测字段的特征向量输入预设的漏洞检测模型中,得到待检测字段的检测结果,检测结果用于指示待检测字段是否存在漏洞和/或漏洞位置。
本实施例中,漏洞检测模型是采用有监督的机器学习模型对样本字段进行训练得到的。
下面结合图3对漏洞检测模型的训练过程进行说明。
图3为本申请实施例提供的漏洞检测模型的训练示意图。如图3所示,本实施例提供的漏洞检测模型的训练方法,包括:
步骤301、获取样本字段的特征向量,以及样本字段对应的标注结果,标注结果包括样本字段是否存在漏洞和/或漏洞位置。
在本实施例的一个可选实施例中,通过如下方式获取样本字段的特征向量:对样本字段中各项参数的返回值进行矢量化处理,得到样本字段的特征向量。关于矢量化处理的相关描述可参见上述实施例,此处不再描述。
在本实施例的一个可选实施例中,通过预定义的转化表,获取样本字段中各项参数的返回值对应的数字化序列;将各项参数的返回值对应的数字化序列作为样本字段的特征向量。关于转化表可参见上文实施例,此处不再赘述。
步骤302、将样本字段的特征向量作为初始漏洞检测模型的输入项,将样本字段对应的标注结果作为初始漏洞检测模型的输出项,对漏洞检测模型进行训练。
步骤303、当漏洞检测模型对应的损失函数收敛时,得到训练好的漏洞检测模型。
本实施例的一个可选实施例中,漏洞检测模型采用有监督的机器学习模型,例如MLP。具体的,MLP包括一个输入层、至少一个隐藏层以及一个输出层,相邻层的连接都配有权重(即模型参数)。通过输入特征向量至输入层,基于相邻层之间的权重,最终计算得到输出层的输出向量。
在监督学习中,训练样本是已标注的,因此对应一些给定的输入特征向量,能够获知期望的输出向量,期望的输出向量对应训练样本的标注结果,通过对大量训练样本的学习,不断更新相邻层之间的权重,直至模型对应的损失函数收敛,结束漏洞检测模型的训练。
可选的,在一些实施例中,漏洞检测模型的检测结果还用于指示待检测字段存在漏洞的漏洞类型。其中,所述漏洞类型包括反射型跨站脚本攻击XSS漏洞,存储型XSS漏洞以及文件对象模型DOM型XSS漏洞。
相应的,在模型训练过程中,样本字段对应的标注结果还包括样本字段存在漏洞的漏洞类型。
上述实施例示出了漏洞检测模型的训练过程,使用上述训练得到的漏洞检测模型,对输入模型的待检测字段的特征向量进行数据处理,确定待检测字段中是否有漏洞、漏洞类型、位置等,可提高漏洞检测的准确率,以辅助测试人员进行后续的漏洞验证。
本申请实施例示出的漏洞检测方法,在接收目标应用返回的待检测字段后,对待检测字段进行特征提取,获取待检测字段的特征向量,将该特征向量输入预先训练好的漏洞检测模型,获取待检测字段的检测结果,检测结果用于指示待检测字段中是否有漏洞和/或漏洞位置。本实施例采用有监督的机器学习模型对待检测字段进行漏洞检测,检测准确率高。另外,上述检测过程可以辅助测试人员进行字段初筛,提高漏洞检测效率。
图4为本申请实施例提供的漏洞检测方法的流程示意图二。如图4所示,在上述实施例的基础上,若检测结果用于指示待检测字段存在漏洞以及漏洞类型,还包括如下处理步骤:
步骤401、目标应用向漏洞检测装置发送待检测字段。
步骤402、漏洞检测装置获取待检测字段的特征向量。
步骤403、漏洞检测装置将待检测字段的特征向量输入预设的漏洞检测模型中,得到待检测字段的检测结果,检测结果用于指示待检测字段存在漏洞以及漏洞类型。
本实施例中,步骤401至步骤403与上述实施例的步骤201至步骤203类似,具体可参见上文,此处不再赘述。
步骤404、漏洞检测装置根据漏洞类型,获取与漏洞类型对应的漏洞注入代码。
需要说明的是,漏洞检测装置中预先存储有不同漏洞类型对应的漏洞注入代码,以便在确定待检测字段漏洞类型时,能够直接向测试人员的终端设备推荐漏洞注入代码,从而辅助测试人员对目标应用作进一步漏洞验证,确保漏洞检测的准确率。
步骤405、漏洞检测装置向终端设备输出漏洞注入代码。
其中,终端设备为测试人员使用的终端设备。漏洞注入代码用于测试人员对目标应用进行漏洞验证。
本实施例的一个可选实施例中,若输出的漏洞注入代码包括多组漏洞注入代码,输出漏洞注入代码,包括:按照漏洞注入代码的检测成功率从高到低的顺序,输出多组漏洞注入代码。
示例性的,假设待检测字段对应的特征向量为[3,2,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0],将该特征向量输入漏洞检测模型,漏洞检测模型输出的检测结果指示该待检测字段存在漏洞,且漏洞类型例如为存储型XSS,该漏洞类型对应多组漏洞注入代码,例如:
第一组:0.99562198:"></iframe><script>alert();</script>
第二组:0.00195420:"><script>alert();</script>
第三组:0.00151912:'javascript:alert();
上述多组漏洞注入代码按照其检测成功率从高到低的顺序,在测试人员终端设备的显示器进行展示。测试人员采用漏洞检测装置推荐的多组漏洞注入代码,对目标应用作进一步的漏洞验证,提高漏洞检测的准确率。
上文描述了本申请实施例提供的漏洞检测方法,下面将描述本申请实施例提供的漏洞检测装置。
本申请实施例可以根据上述方法实施例对漏洞检测装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以使用硬件的形式实现,也可以使用软件功能模块的形式实现。
需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。下面以使用对应各个功能划分各个功能模块为例进行说明。
图5为本申请实施例提供的漏洞检测装置的结构示意图。如图5所示,本实施例提供的漏洞检测装置500,包括:接收模块501,获取模块502,处理模块503。
接收模块501,用于接收待检测字段,所述待检测字段包括目标应用响应于测试请求的各项参数的返回值;
获取模块502,用于获取所述待检测字段的特征向量;
处理模块503,用于将所述待检测字段的特征向量输入预设的漏洞检测模型中,得到所述待检测字段的检测结果,所述漏洞检测模型是采用有监督的机器学习模型对样本字段进行训练得到的,所述检测结果用于指示所述待检测字段是否存在漏洞和/或漏洞位置。
在本实施例的一个可选实施例中,所述获取模块502,用于:
对所述待检测字段中各项参数的返回值进行矢量化处理,得到所述待检测字段的特征向量。
在本实施例的一个可选实施例中,所述获取模块502,用于:
通过预定义的转化表,获取所述各项参数的返回值对应的数字化序列,所述转化表包括每项参数的输出位置对应的第一数字,可用符号对应的第二数字以及函数对应的第三数字;
将所述各项参数的返回值对应的数字化序列作为所述待检测字段的特征向量。
在本实施例的一个可选实施例中,所述获取模块502,还用于:
获取样本字段的特征向量,以及所述样本字段对应的标注结果,所述标注结果包括所述样本字段是否存在漏洞和/或漏洞位置;
所述处理模块503,用于将所述样本字段的特征向量作为初始漏洞检测模型的输入项,将所述样本字段对应的标注结果作为所述初始漏洞检测模型的输出项,对所述漏洞检测模型进行训练;
当所述漏洞检测模型对应的损失函数收敛时,得到训练好的所述漏洞检测模型。
在本实施例的一个可选实施例中,所述漏洞检测模型的检测结果还用于指示所述待检测字段存在漏洞的漏洞类型;
其中,所述漏洞类型包括反射型跨站脚本攻击XSS漏洞,存储型XSS漏洞以及文件对象模型DOM型XSS漏洞;
相应的,所述样本字段对应的标注结果还包括所述样本字段存在漏洞的漏洞类型。
在本实施例的一个可选实施例中,所述获取模块502,还用于:
若所述检测结果用于指示所述待检测字段存在漏洞以及漏洞类型,根据所述漏洞类型获取与所述漏洞类型对应的漏洞注入代码;
所述漏洞检测装置500还包括:发送模块504;
所述发送模块504,用于输出所述漏洞注入代码,所述漏洞注入代码用于测试人员对所述目标应用进行漏洞验证。
在本实施例的一个可选实施例中,若输出的所述漏洞注入代码包括多组漏洞注入代码,所述发送模块504,用于:
按照漏洞注入代码的检测成功率从高到低的顺序,输出所述多组漏洞注入代码。
本实施例提供的漏洞检测装置,可以执行上述任一方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图6为本申请实施例提供的电子设备的硬件结构图,如图6所示,本实施例提供的电子设备600,包括:
存储器601;
处理器602;以及
计算机程序;
其中,计算机程序存储在存储器601中,并被配置为由处理器602执行以实现上述任一方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
可选的,存储器601既可以是独立的,也可以跟处理器602集成在一起。当存储器601是独立于处理器602之外的器件时,电子设备600还包括:总线603,用于连接存储器601和处理器602。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器602执行以实现如前述任一方法实施例的技术方案。
本申请实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如前述任一方法实施例的技术方案。
本申请实施例还提供了一种芯片,包括:处理模块与通信接口,该处理模块能执行前述任一方法实施例的技术方案。
进一步地,该芯片还包括存储模块(如,存储器),存储模块用于存储指令,处理模块用于执行存储模块存储的指令,并且对存储模块中存储的指令的执行使得处理模块执行前述任一方法实施例的技术方案。
应理解,上述处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(Application Specific Integrated Circuits,简称:ASIC)中。当然,处理器和存储介质也可以作为分立组件存在于电子设备中。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例的技术方案的范围。
Claims (11)
1.一种漏洞检测方法,其特征在于,包括:
接收待检测字段,所述待检测字段包括目标应用响应于测试请求的各项参数的返回值;
获取所述待检测字段的特征向量;
将所述待检测字段的特征向量输入预设的漏洞检测模型中,得到所述待检测字段的检测结果,所述漏洞检测模型是采用有监督的机器学习模型对样本字段进行训练得到的,所述检测结果用于指示所述待检测字段是否存在漏洞和/或漏洞位置。
2.根据权利要求1所述的方法,其特征在于,所述获取所述待检测字段的特征向量,包括:
对所述待检测字段中各项参数的返回值进行矢量化处理,得到所述待检测字段的特征向量。
3.根据权利要求2所述的方法,其特征在于,所述对所述待检测字段中各项参数的返回值进行矢量化处理,得到所述待检测字段的特征向量,包括:
通过预定义的转化表,获取所述各项参数的返回值对应的数字化序列,所述转化表包括每项参数的输出位置对应的第一数字,可用符号对应的第二数字以及函数对应的第三数字;
将所述各项参数的返回值对应的数字化序列作为所述待检测字段的特征向量。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述漏洞检测模型是采用如下方式训练得到的:
获取样本字段的特征向量,以及所述样本字段对应的标注结果,所述标注结果包括所述样本字段是否存在漏洞和/或漏洞位置;
将所述样本字段的特征向量作为初始漏洞检测模型的输入项,将所述样本字段对应的标注结果作为所述初始漏洞检测模型的输出项,对所述漏洞检测模型进行训练;
当所述漏洞检测模型对应的损失函数收敛时,得到训练好的所述漏洞检测模型。
5.根据权利要求1所述的方法,其特征在于,所述漏洞检测模型的检测结果还用于指示所述待检测字段存在漏洞的漏洞类型;
其中,所述漏洞类型包括反射型跨站脚本攻击XSS漏洞,存储型XSS漏洞以及文件对象模型DOM型XSS漏洞;
相应的,所述样本字段对应的标注结果还包括所述样本字段存在漏洞的漏洞类型。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若所述检测结果用于指示所述待检测字段存在漏洞以及漏洞类型,根据所述漏洞类型获取与所述漏洞类型对应的漏洞注入代码;
输出所述漏洞注入代码,所述漏洞注入代码用于测试人员对所述目标应用进行漏洞验证。
7.根据权利要求6所述的方法,其特征在于,若输出的所述漏洞注入代码包括多组漏洞注入代码,所述输出所述漏洞注入代码,包括:
按照漏洞注入代码的检测成功率从高到低的顺序,输出所述多组漏洞注入代码。
8.一种漏洞检测装置,其特征在于,包括:
接收模块,用于接收待检测字段,所述待检测字段包括目标应用响应于测试请求的各项参数的返回值;
获取模块,用于获取所述待检测字段的特征向量;
处理模块,用于将所述待检测字段的特征向量输入预设的漏洞检测模型中,得到所述待检测字段的检测结果,所述漏洞检测模型是采用有监督的机器学习模型对样本字段进行训练得到的,所述检测结果用于指示所述待检测字段是否存在漏洞和/或漏洞位置。
9.一种电子设备,其特征在于,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器执行以实现如权利要求1-7中任一项所述的方法。
11.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序被处理器执行时实现权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111277713.9A CN114048480A (zh) | 2021-10-29 | 2021-10-29 | 漏洞检测方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111277713.9A CN114048480A (zh) | 2021-10-29 | 2021-10-29 | 漏洞检测方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114048480A true CN114048480A (zh) | 2022-02-15 |
Family
ID=80206498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111277713.9A Pending CN114048480A (zh) | 2021-10-29 | 2021-10-29 | 漏洞检测方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114048480A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115277198A (zh) * | 2022-07-27 | 2022-11-01 | 西安热工研究院有限公司 | 一种工控系统网络的漏洞检测方法、装置及存储介质 |
CN115314267A (zh) * | 2022-07-28 | 2022-11-08 | 深圳市汇深网信息科技有限公司 | 一种用于应对网页故障、网页漏洞的监测方法 |
-
2021
- 2021-10-29 CN CN202111277713.9A patent/CN114048480A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115277198A (zh) * | 2022-07-27 | 2022-11-01 | 西安热工研究院有限公司 | 一种工控系统网络的漏洞检测方法、装置及存储介质 |
CN115314267A (zh) * | 2022-07-28 | 2022-11-08 | 深圳市汇深网信息科技有限公司 | 一种用于应对网页故障、网页漏洞的监测方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200358799A1 (en) | Malicious site detection for a cyber threat response system | |
CN107659570A (zh) | 基于机器学习与动静态分析的Webshell检测方法及系统 | |
CN110324311A (zh) | 漏洞检测的方法、装置、计算机设备和存储介质 | |
Khan et al. | Detecting malicious URLs using binary classification through ada boost algorithm. | |
US11212297B2 (en) | Access classification device, access classification method, and recording medium | |
CN104143008B (zh) | 基于图片匹配检测钓鱼网页的方法及装置 | |
CN114048480A (zh) | 漏洞检测方法、装置、设备及存储介质 | |
CN103685307A (zh) | 基于特征库检测钓鱼欺诈网页的方法及系统、客户端、服务器 | |
CN107957872A (zh) | 一种完整网站源码获取方法及非法网站检测方法、系统 | |
CN104158828B (zh) | 基于云端内容规则库识别可疑钓鱼网页的方法及系统 | |
EP3703329B1 (en) | Webpage request identification | |
CN107908959A (zh) | 网站信息检测方法、装置、电子设备及存储介质 | |
CN113098887A (zh) | 一种基于网站联合特征的钓鱼网站检测方法 | |
CN110868378A (zh) | 钓鱼邮件检测方法、装置、电子设备及存储介质 | |
CN108156165A (zh) | 一种误报检测的方法以及系统 | |
US20070234415A1 (en) | Component-oriented system and method for web application security analysis | |
CN114448664B (zh) | 钓鱼网页的识别方法、装置、计算机设备及存储介质 | |
CN111783159A (zh) | 网页篡改的验证方法、装置、计算机设备和存储介质 | |
CN110958244A (zh) | 一种基于深度学习的仿冒域名检测方法及装置 | |
CN110855635B (zh) | Url识别方法、装置及数据处理设备 | |
CN112380537A (zh) | 一种检测恶意软件的方法、装置、存储介质和电子设备 | |
CN108734011A (zh) | 软件链接检测方法及装置 | |
CN115643044A (zh) | 数据处理方法、装置、服务器及存储介质 | |
CN114169432B (zh) | 一种基于深度学习的跨站脚本攻击识别方法 | |
CN111131223B (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 |