一种应用软件安全漏洞检测方法技术

技术编号:25308968 阅读:21 留言:0更新日期:2020-08-18 22:27
本发明专利技术公开了一种应用软件安全漏洞检测方法,包括以下步骤:S1、利用钩子技术对应用软件进行的方法或者函数进行挂载;S2、当被挂载的方法或者函数被调用时,触发漏洞检测程序;S3、漏洞检测程序对用户输入数据的传递过程进行分析并检测应用软件的安全漏洞。本发明专利技术的一种应用软件安全漏洞检测方法的实现程序始终处于运行时非执行态,可以对应用软件进行无感知的测试,不会生成脏数据。本技术不依赖于payload,测试能力稳定,漏报率低,且可以对数据加密和数据验签的应用软件进行测试。

【技术实现步骤摘要】
一种应用软件安全漏洞检测方法
本专利技术涉及网络服务器的安全防护
,尤其是涉及一种应用软件安全漏洞检测方法。
技术介绍
如今,计算机已经进入千家万户,成为了人们生活中不可或缺的一部分,同时软件系统安全性也成为了一个备受关注的技术问题。目前,应用软件安全漏洞检测包括人工渗透、传统的黑盒检测等,这些测试方法都是通过一定的手段来检测用户输入的数据能不能传到漏洞执行的代码位置,人工渗透是通过人工生成payload进行输入测试,而黑盒检测则是模拟人工进行payload测试。目前应用软件安全漏洞检测中的人工渗透、传统的黑盒检测等的测试方法存在以下缺陷:一、对于有数据加密和验签的环境无法测试,当应用软件存在数据加密解密和验证签名的情况,人工和黑盒将无法发送payload进入系统,无法对系统进行测试;二、漏洞的检测能力受探测的payload的质量和数量影响,测试能力不稳定;三、会给应用软件带入很多测试的脏数据。
技术实现思路
本专利技术的目的在于解决现有技术的不足,提供一种应用软件安全漏洞检测方法。本专利技术解决上述技术问题采用的技术方案是:一种应用软件安全漏洞检测方法,包括以下步骤:S1、利用钩子技术对应用软件进行的方法或者函数进行挂载;S2、当被挂载的方法或者函数被调用时,触发漏洞检测程序;S3、漏洞检测程序对用户输入数据的传递过程进行分析并检测应用软件的安全漏洞。以上技术方案中,钩子技术是一种在内存中修改方法或函数的方法的技术,钩子技术允许本专利技术的实现程序拦截并处理方法或函数的执行逻辑,当指定的方法或函数被调用后,钩子技术就可以在方法或函数的原始代码被执行之前将其捕获,从而得到对方法或函数的控制权,进而可以对该方法或函数进行处理或修改,加入所需的功能。通过钩子技术对应用软件进行的方法或者函数进行挂载,当被挂载的方法或函数被调用时,即可触发漏洞检测程序。具体地,在一个方法或者函数被挂载时,在该方法或函数的中间语言层或者汇编层插入一个回调指令,这时候如果该方法被调用,则通过执行回调指令触发漏洞检测程序。漏洞检测程序的主要流程分为信息收集、信息聚合、漏洞判断三个过程,信息收集即拿到被挂载的方法或函数收集到的信息,信息聚合即在信息聚合点汇总信息,漏洞判断即在信息汇总后,判断是否存在漏洞存在的必要信息、是否存在漏洞不存在的信息等。该方法的实现程序始终处于运行时非执行态,可以对应用软件进行无感知的测试,不会生成脏数据。以上技术不依赖于payload,测试能力稳定,漏报率低,且可以对数据加密和数据验签的应用软件进行测试。作为优选,步骤S3中,将漏洞检测程序的入参值与用户输入数据进行比较,若相同则认为其入参值为用户输入数据,且将应用软件的上下文信息保存,然后进行检测应用软件的安全漏洞;若漏洞检测程序的入参值与用户输入数据不相同,则将漏洞检测程序的入参值与下一个用户输入数据进行比较,重复运行。作为优选,漏洞检测程序检测应用软件的安全漏洞时,漏洞检测程序判断应用软件的方法或函数是否具有漏洞执行特性,若是,则认为应用软件存在漏洞;若否,则重新返回至将漏洞检测程序的入参值与下一个用户输入数据进行比较。以上技术方案中,当触发漏洞检测程序时,在漏洞执行特性方法或函数集合中查找当前应用软件的方法或者函数,若查找成功,则认为当前应用软件存在漏洞,否则认为当前应用软件无漏洞,然后将漏洞检测程序的入参值与下一个用户输入数据进行比较,重复运行。作为优选,漏洞检测程序检测应用软件的安全漏洞时,漏洞检测程序还判断应用软件的方法或函数是否具有数据传播特性,若是,则认为其输出数据也为用户输入的数据;若否,则重新返回至将漏洞检测程序的入参值与下一个用户输入数据进行比较。以上技术方案中,当触发漏洞检测程序时,在数据传播特性方法或函数集合中查找当前应用软件的方法或者函数,若查找成功,则认为当前应用软件存在数据传播特性,否则认为当前应用软件不存在数据传播特性,然后将漏洞检测程序的入参值与下一个用户输入数据进行比较,重复运行。本专利技术具有的有益效果是:本专利技术的一种应用软件安全漏洞检测方法的实现程序始终处于运行时非执行态,可以对应用软件进行无感知的测试,不会生成脏数据。本技术不依赖于payload,测试能力稳定,漏报率低,且可以对数据加密和数据验签的应用软件进行测试。附图说明图1是本专利技术的应用软件安全漏洞检测方法的流程示意框图。具体实施方式以下结合附图和实施方式对本专利技术作进一步的说明。如图1所示,本实施例的一种应用软件安全漏洞检测方法,包括以下步骤:S1、利用钩子技术对应用软件进行的方法或者函数进行挂载;S2、当被挂载的方法或者函数被调用时,触发漏洞检测程序;S3、漏洞检测程序对用户输入数据的传递过程进行分析并检测应用软件的安全漏洞。本实施例中,步骤S3中,将漏洞检测程序的入参值与用户输入数据进行比较,若相同则认为其入参值为用户输入数据,且将应用软件的上下文信息保存,然后进行检测应用软件的安全漏洞;若漏洞检测程序的入参值与用户输入数据不相同,则将漏洞检测程序的入参值与下一个用户输入数据进行比较,重复运行。本实施例中,漏洞检测程序检测应用软件的安全漏洞时,漏洞检测程序判断应用软件的方法或函数是否具有漏洞执行特性,若是,则认为应用软件存在漏洞;若否,则重新返回至将漏洞检测程序的入参值与下一个用户输入数据进行比较。本实施例中,漏洞检测程序检测应用软件的安全漏洞时,漏洞检测程序还判断应用软件的方法或函数是否具有数据传播特性,若是,则认为其输出数据也为用户输入的数据;若否,则重新返回至将漏洞检测程序的入参值与下一个用户输入数据进行比较。在本专利技术的描述中,需要说明的是,如出现术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等,其所指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本专利技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本专利技术的限制。此外,如出现术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。在本专利技术的描述中,需要说明的是,除非另有明确的规定和限定,如出现术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本专利技术中的具体含义。在不改变本专利技术的创造内容下进行简单的置换均视为相同的创造。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本专利技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义本文档来自技高网...

【技术保护点】
1.一种应用软件安全漏洞检测方法,其特征在于,包括以下步骤:/nS1、利用钩子技术对应用软件进行的方法或者函数进行挂载;/nS2、当被挂载的方法或者函数被调用时,触发漏洞检测程序;/nS3、漏洞检测程序对用户输入数据的传递过程进行分析并检测应用软件的安全漏洞。/n

【技术特征摘要】
1.一种应用软件安全漏洞检测方法,其特征在于,包括以下步骤:
S1、利用钩子技术对应用软件进行的方法或者函数进行挂载;
S2、当被挂载的方法或者函数被调用时,触发漏洞检测程序;
S3、漏洞检测程序对用户输入数据的传递过程进行分析并检测应用软件的安全漏洞。


2.根据权利要求1所述的一种应用软件安全漏洞检测方法,其特征在于,步骤S3中,将漏洞检测程序的入参值与用户输入数据进行比较,若相同则认为其入参值为用户输入数据,且将应用软件的上下文信息保存,然后进行检测应用软件的安全漏洞;若漏洞检测程序的入参值与用户输入数据不相同,则将漏洞检测程序的入参值与下一个用户输入数据进...

【专利技术属性】
技术研发人员:徐锋熊奎
申请(专利权)人:杭州孝道科技有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1