用于web应用的动态检测漏洞攻击的方法及系统技术方案

技术编号:24457029 阅读:27 留言:0更新日期:2020-06-10 15:51
本发明专利技术公开了一种用于web应用的动态检测漏洞攻击的方法及系统,其中该方法包括:通过插桩工具插桩待检测web应用程序代码中的输入函数、变异函数和执行函数;通过插桩工具跟踪并获取请求数据在web应用中的整个执行过程的数据流;提取当前执行函数的执行参数,判断执行参数中是否存在漏洞攻击代码,如果是,判断当前请求数据对应的数据流是否经过输入阶段,如果是,则对执行函数的执行流程进行拦截处理,并可视化展示出数据流经过变异函数的过程;采用上述方法,既可准确地判断威胁数据来自于请求数据还是应用程序的本身数据,避免产生误报,还可对漏洞攻击的完整函数流进行检测,而且有效降低了对服务器的性能和存储空间的消耗。

The method and system of dynamic detection vulnerability attack for web application

【技术实现步骤摘要】
用于web应用的动态检测漏洞攻击的方法及系统
本专利技术涉及web应用的漏掉检测
,尤其涉及一种用于web应用的动态检测漏洞攻击的方法及系统。
技术介绍
随着网络技术的发展,web应用的数据也有着快速的增长,同时应用的接口数量也越来越多,为了保证应用程序正常运行,不仅需要产品在上线前对其有着充分的测试,在产品上线运行过程中也要实施进行漏洞检测,动态防御实时的漏洞攻击。但是目前实时防御安全漏洞攻击的方法存在以下问题:1、基于漏洞攻击的执行函数进行检测,无法准确的判断威胁数据来自于请求数据还是应用程序的本身数据,容易产生误报;2、基于漏洞攻击的完整流程函数进行检测,消耗性能与存储空间。因此,有必要对现有的web应用防御安全漏洞攻击的方法进行改进。
技术实现思路
本专利技术的目的是为解决上述技术问题的不足而提供一种用于web应用的动态检测漏洞攻击的方法,既保证了对漏洞检测的准确性,降低误报几率,又不会过多消耗服务器的性能和存储空间。本专利技术的另一目的是公开一种用于web应用的动态检测漏洞攻击的系统,既保证了对漏洞检测的准确性,降低误报几率,又不会过多消耗服务器的性能和存储空间。为了实现上述目的,本专利技术公开了一种用于web应用的动态检测漏洞攻击的方法,其包括:通过插桩工具插桩待检测web应用程序代码中的输入函数、变异函数和执行函数,所述输入函数为所述web应用在输入阶段接收消息的关键函数,所述执行函数为所述web应用在执行阶段执行关键动作的关键函数,所述变异函数为所述web应用在传播阶段将接收到的参数对象转换为其他不同的对象类型进行表达的传播函数;通过插桩工具跟踪并获取请求数据在web应用中的整个执行过程的数据流;提取当前所述执行函数的执行参数,判断所述执行参数中是否存在漏洞攻击代码,如果是,判断当前请求数据对应的数据流是否经过所述输入阶段,如果是,则对所述执行函数的执行流程进行拦截处理,并可视化展示出所述数据流经过所述变异函数的过程。与现有技术相比,本专利技术用于web应用的动态检测漏洞攻击的方法,当检测到执行函数的执行参数中存在漏洞攻击代码时,并不直接将其判断为漏洞,还要根据请求数据的数据流判断该执行参数是否经过输入阶段和传播阶段,如果是,得出当前执行参数存在攻击漏洞的结论,并进行相应的拦截处理,由此可知,通过上述判断过程,可过滤掉由于系统内置参数(如定时器任务等)造成的干扰,降低误判几率;另外,在上述判断过程中,虽然需要对请求数据的整个执行过程的数据流进行跟踪,但是在传播阶段仅仅跟踪变异函数,而对其它传播函数不进行跟踪,即对请求数据进行有选择性的精准跟踪,从而提高服务器的检测性能,降低了漏洞攻击检测工作对web应用服务器的存储空间的需求;再者,通过对数据流经过变异函数的过程的可视化展示,可帮助开发人员更清晰的了解攻击过程在web应用中的传播走向,以便即时添加修复补丁。较佳地,当判断出所述执行参数中存在漏洞攻击代码时,进一步判断所述执行参数是否来源于传播阶段,如果否,则定义本次漏洞攻击为误触发。较佳地,所述变异函数包括属于开发框架所具有的常规变异函数和用户自定义的自定义变异函数,所述自定义变异函数的获取方法包括:通过IAST测试平台运行所述web应用的攻击测试实例,以对所述web应用进行漏洞攻击测试,并通过插桩方式跟踪请求数据从输入阶段到传播阶段,再到执行阶段的整个过程的函数流;当发现攻击漏洞时,如果请求数据的参数类型发生变化,且如果通过所述常规变异函数不能得到请求数据在传播阶段的完整的操作过程,通过执行阶段的关键函数的参数对象逆向推演到请求数据对象,从而推导出导致所述请求数据对象发生变异的变异函数,即为自定义变异函数,然后以所述web应用为键值对的关键字,以推演出的所述自定义变异函数为键值对的值构成键值对存储在数据库中,以供插桩工具调用。较佳地,还包括对得到的所述自定义变异函数进行优化的方法:得到所述自定义变异函数后,取消所述IAST测试平台对所述传播阶段的除所述变异函数外的其他传播函数的跟踪;对所述攻击测试实例进行请求重发,检测攻击测试实例中的所有攻击漏洞是否被检出,如果否,取未被检出攻击漏洞的带有漏洞攻击代码的请求实例所对应的原始函数流进行二次分析,以找到遗漏的自定义变异函数。本专利技术还公开一种用于web应用的动态检测漏洞攻击的系统,其包括插桩模块、数据流跟踪模块、第一判断判断模块、第二判断模块、处理模块和展示模块;所述插桩模块,用于通过插桩工具插桩待检测web应用程序代码中的输入函数、变异函数和执行函数;所述输入函数为所述web应用在输入阶段接收消息的关键函数;所述执行函数为所述web应用在执行阶段执行关键动作的的关键函数;所述变异函数为所述web应用在传播阶段将接收到的参数对象转换为其他不同的对象类型进行表达的传播函数;所述数据流跟踪模块,用于通过所述插桩模块跟踪并获取请求数据在web应用中的整个执行过程的数据流;所述第一判断模块,用于判断执行函数的执行参数中是否存在漏洞攻击代码;所述第二判断模块,用于判断存在漏洞攻击代码的请求数据的数据流是否经过所述输入阶段;所述处理模块,用于根据所述第一判断模块和所述第二判断模块的输出结果,对攻击漏洞进行拦截处理;所述展示模块,用于根据所述第一判断模块和所述第二判断模块的输出结果,可视化展示出具有攻击漏洞的请求数据对应的数据流经过所述变异函数的过程。较佳地,还包括第三判断模块,所述第三判断模块用于根据所述第二判断模块的输出结果进一步判断所述执行阶段的执行参数是否来源于于传播阶段,以定义本次漏洞攻击是否为误触发。较佳地,所述变异函数包括属于开发框架所具有的常规变异函数和用户自定义的自定义变异函数,所述系统还包括自定义变异函数获取模块,所述自定义变异函数获取模块包括功能测试模块、第四判断模块、第五判断模块、推导模块和存储模块;所述功能测试模块,用于通过IAST测试平台运行所述web应用的攻击测试实例,以对所述web应用进行漏洞攻击测试,并通过插桩方式跟踪请求数据从输入阶段到传播阶段,再到执行阶段的整个过程的函数流;所述第四判断模块,用于根据功能测试模块的输出,判断带有攻击漏洞的请求数据的参数类型是否发生变化;所述第五判断模块,用于根据所述第四判断模块的输出,判断通过所述常规变异函数是否可得到请求数据在传播阶段的完整的操作过程;所述推导模块,用于根据所述第五判断模块的输出,通过执行阶段的关键函数的参数对象逆向推演到请求数据对象,从而推导出导致所述请求数据对象发生变异的变异函数,即为自定义变异函数;所述存储模块,用于以所述web应用为键值对的关键字、以推演出的所述自定义变异函数为键值对的值构成键值对将所述自定义变异函数存储在数据库中。较佳地,还包括用于对得到的所述自定义变异函数进行优化的优化模块,所述优化本文档来自技高网...

【技术保护点】
1.一种用于web应用的动态检测漏洞攻击的方法,其特征在于,包括:/n通过插桩工具插桩待检测web应用程序代码中的输入函数、变异函数和执行函数,/n所述输入函数为所述web应用在输入阶段接收消息的关键函数,/n所述执行函数为所述web应用在执行阶段执行关键动作的的关键函数,/n所述变异函数为所述web应用在传播阶段将接收到的参数对象转换为其他不同的对象类型进行表达的传播函数;/n通过插桩工具跟踪并获取请求数据在web应用中的整个执行过程的数据流;/n提取当前所述执行函数的执行参数,判断所述执行参数中是否存在漏洞攻击代码,如果是,/n判断当前请求数据对应的数据流是否经过所述输入阶段,如果是,则对所述执行函数的执行流程进行拦截处理,并可视化展示出所述数据流经过所述变异函数的过程。/n

【技术特征摘要】
1.一种用于web应用的动态检测漏洞攻击的方法,其特征在于,包括:
通过插桩工具插桩待检测web应用程序代码中的输入函数、变异函数和执行函数,
所述输入函数为所述web应用在输入阶段接收消息的关键函数,
所述执行函数为所述web应用在执行阶段执行关键动作的的关键函数,
所述变异函数为所述web应用在传播阶段将接收到的参数对象转换为其他不同的对象类型进行表达的传播函数;
通过插桩工具跟踪并获取请求数据在web应用中的整个执行过程的数据流;
提取当前所述执行函数的执行参数,判断所述执行参数中是否存在漏洞攻击代码,如果是,
判断当前请求数据对应的数据流是否经过所述输入阶段,如果是,则对所述执行函数的执行流程进行拦截处理,并可视化展示出所述数据流经过所述变异函数的过程。


2.根据权利要求1所述的用于web应用的动态检测漏洞攻击的方法,其特征在于,当判断出所述执行参数中存在漏洞攻击代码时,进一步判断所述执行参数是否来源于传播阶段,如果否,则定义本次漏洞攻击为误触发。


3.根据权利要求1所述的用于web应用的动态检测漏洞攻击的方法,其特征在于,所述变异函数包括属于开发框架所具有的常规变异函数和用户自定义的自定义变异函数,所述自定义变异函数的获取方法包括:
通过IAST测试平台运行所述web应用的攻击测试实例,以对所述web应用进行漏洞攻击测试,并通过插桩方式跟踪请求数据从输入阶段到传播阶段,再到执行阶段的整个过程的函数流;
当发现攻击漏洞时,如果请求数据的参数类型发生变化,且如果通过所述常规变异函数不能得到请求数据在传播阶段的完整的操作过程,通过执行阶段的关键函数的参数对象逆向推演到请求数据对象,从而推导出导致所述请求数据对象发生变异的变异函数,即为自定义变异函数,然后以所述web应用为键值对的关键字,以推演出的所述自定义变异函数为键值对的值构成键值对存储在数据库中,以供插桩工具调用。


4.根据权利要求3所述的用于web应用的动态检测漏洞攻击的方法,其特征在于,还包括对得到的所述自定义变异函数进行优化的方法:
得到所述自定义变异函数后,取消所述IAST测试平台对所述传播阶段的除所述变异函数外的其他传播函数的跟踪;
对所述攻击测试实例进行请求重发,检测攻击测试实例中的所有攻击漏洞是否被检出,如果否,取未被检出攻击漏洞的带有漏洞攻击代码的请求实例所对应的原始函数流进行二次分析,以找到遗漏的自定义变异函数。


5.一种用于web应用的动态检测漏洞攻击的系统,其特征在于,包括插桩模块、数据流跟踪模块、第一判断判断模块、第二判断模块、处理模块和展示模块;
所述插桩模块,用于通过插桩工具插桩待检测web应用程序代码中的输入函数、变异函数和执行函数;
所述输入函数为所述web应用在输入阶段接收消息的关键函数;
所述执行函数为所述web应用在执行阶段执行关键动作的的关键函数;
所述变异函数为所述web应用在传播阶段将接收到的参数对象转换为其他不同的对象类型进行表达的传播函数;
所述数据流跟踪模块,用于通过所述插桩模块跟踪并获取请求数据在web应用中的整个执行过程的数据流;
所述第一判断模块,用于判断执行函数的执行参数中是否存在漏洞攻...

【专利技术属性】
技术研发人员:刘海涛万振华王颉李华董燕
申请(专利权)人:深圳开源互联网安全技术有限公司
类型:发明
国别省市:广东;44

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

1