logo好方法网

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


技术摘要:
本发明公开了一种应用软件安全漏洞检测方法,包括以下步骤:S1、利用钩子技术对应用软件进行的方法或者函数进行挂载;S2、当被挂载的方法或者函数被调用时,触发漏洞检测程序;S3、漏洞检测程序对用户输入数据的传递过程进行分析并检测应用软件的安全漏洞。本发明的一  全部
背景技术:
如今,计算机已经进入千家万户,成为了人们生活中不可或缺的一部分,同时软件 系统安全性也成为了一个备受关注的技术问题。目前,应用软件安全漏洞检测包括人工渗 透、传统的黑盒检测等,这些测试方法都是通过一定的手段来检测用户输入的数据能不能 传到漏洞执行的代码位置,人工渗透是通过人工生成payload进行输入测试,而黑盒检测则 是模拟人工进行payload测试。 目前应用软件安全漏洞检测中的人工渗透、传统的黑盒检测等的测试方法存在以 下缺陷:一、对于有数据加密和验签的环境无法测试,当应用软件存在数据加密解密和验证 签名的情况,人工和黑盒将无法发送payload进入系统,无法对系统进行测试;二、漏洞的检 测能力受探测的payload的质量和数量影响,测试能力不稳定;三、会给应用软件带入很多 测试的脏数据。
技术实现要素:
本发明的目的在于解决现有技术的不足,提供一种应用软件安全漏洞检测方法。 本发明解决上述技术问题采用的技术方案是:一种应用软件安全漏洞检测方法, 包括以下步骤: S1、利用钩子技术对应用软件进行的方法或者函数进行挂载; S2、当被挂载的方法或者函数被调用时,触发漏洞检测程序; S3、漏洞检测程序对用户输入数据的传递过程进行分析并检测应用软件的安全漏 洞。 以上技术方案中,钩子技术是一种在内存中修改方法或函数的方法的技术,钩子 技术允许本发明的实现程序拦截并处理方法或函数的执行逻辑,当指定的方法或函数被调 用后,钩子技术就可以在方法或函数的原始代码被执行之前将其捕获,从而得到对方法或 函数的控制权,进而可以对该方法或函数进行处理或修改,加入所需的功能。通过钩子技术 对应用软件进行的方法或者函数进行挂载,当被挂载的方法或函数被调用时,即可触发漏 洞检测程序。具体地,在一个方法或者函数被挂载时,在该方法或函数的中间语言层或者汇 编层插入一个回调指令,这时候如果该方法被调用,则通过执行回调指令触发漏洞检测程 序。漏洞检测程序的主要流程分为信息收集、信息聚合、漏洞判断三个过程,信息收集即拿 到被挂载的方法或函数收集到的信息,信息聚合即在信息聚合点汇总信息,漏洞判断即在 信息汇总后,判断是否存在漏洞存在的必要信息、是否存在漏洞不存在的信息等。该方法的 实现程序始终处于运行时非执行态,可以对应用软件进行无感知的测试,不会生成脏数据。 以上技术不依赖于payload,测试能力稳定,漏报率低,且可以对数据加密和数据验签的应 3 CN 111552967 A 说 明 书 2/3 页 用软件进行测试。 作为优选,步骤S3中,将漏洞检测程序的入参值与用户输入数据进行比较,若相同 则认为其入参值为用户输入数据,且将应用软件的上下文信息保存,然后进行检测应用软 件的安全漏洞;若漏洞检测程序的入参值与用户输入数据不相同,则将漏洞检测程序的入 参值与下一个用户输入数据进行比较,重复运行。 作为优选,漏洞检测程序检测应用软件的安全漏洞时,漏洞检测程序判断应用软 件的方法或函数是否具有漏洞执行特性,若是,则认为应用软件存在漏洞;若否,则重新返 回至将漏洞检测程序的入参值与下一个用户输入数据进行比较。以上技术方案中,当触发 漏洞检测程序时,在漏洞执行特性方法或函数集合中查找当前应用软件的方法或者函数, 若查找成功,则认为当前应用软件存在漏洞,否则认为当前应用软件无漏洞,然后将漏洞检 测程序的入参值与下一个用户输入数据进行比较,重复运行。 作为优选,漏洞检测程序检测应用软件的安全漏洞时,漏洞检测程序还判断应用 软件的方法或函数是否具有数据传播特性,若是,则认为其输出数据也为用户输入的数据; 若否,则重新返回至将漏洞检测程序的入参值与下一个用户输入数据进行比较。以上技术 方案中,当触发漏洞检测程序时,在数据传播特性方法或函数集合中查找当前应用软件的 方法或者函数,若查找成功,则认为当前应用软件存在数据传播特性,否则认为当前应用软 件不存在数据传播特性,然后将漏洞检测程序的入参值与下一个用户输入数据进行比较, 重复运行。 本发明具有的有益效果是: 本发明的一种应用软件安全漏洞检测方法的实现程序始终处于运行时非执行态, 可以对应用软件进行无感知的测试,不会生成脏数据。本技术不依赖于payload,测试能力 稳定,漏报率低,且可以对数据加密和数据验签的应用软件进行测试。 附图说明 图1是本发明的应用软件安全漏洞检测方法的流程示意框图。
下载此资料需消耗2积分,
分享到:
收藏