一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种Web应用程序的检测方法、装置及存储介质与流程

2021-12-07 21:12:00 来源:中国专利 TAG:

一种web应用程序的检测方法、装置及存储介质
技术领域
1.本发明涉及web应用程序分析技术领域,尤其涉及一种web应用程序的检测方法、装置及存储介质。


背景技术:

2.随着互联网信息化的不断发展,web应用得到了迅速发展,为互联网的发展发挥着非常重要的作用。同时,安全问题也随之而来,因此,为了确保web应用安全,进行不断尝试新的安全防护措施。
3.现有的web应用安全防护技术基本上都是基于应用安全测试,具体包括动态应用程序安全测试、静态应用程序安全测试以及交互式应用程序安全测试。但是这些安全防护技术存在一些缺点,如:只能应用在web应用的测试和开发阶段,没法在产线上进行应用实时防护;其中,静态应用程序安全测试需要产品的源码进行分析,这在隐私保护和code机密泄露上面存在隐患。
4.因此,迫切需要一种方法对产线上的应用进行实时的保护,在发现漏洞时进行及时阻断及修护。


技术实现要素:

5.本发明提供了一种web应用程序的检测方法、装置及存储介质,以解决现有的web应用程序检测方法无法对产线上的应用进行实时防护的问题。
6.为了解决上述技术问题,本技术第一方面提供一种web应用程序的检测方法,所述方法包括:
7.对web应用程序中的目标函数进行动态跟踪,得到插桩函数;
8.通过拦截器对所述插桩函数对应的入参请求进行分析,得到攻击特征;
9.将所述攻击特征与漏洞库进行关联,判断所述web应用程序是否存在安全漏洞。
10.本技术第二方面提供一种web应用程序的检测装置,所述装置包括:
11.获取模块,用于对web应用程序中的目标函数进行动态跟踪,得到插桩函数;
12.分析模块,用于通过拦截器对所述插桩函数对应的入参请求进行分析,得到攻击特征;
13.判断模块,用于将所述攻击特征与漏洞库进行关联,判断所述web应用程序是否存在安全漏洞。
14.本技术第三方面提供一种电子设备,所述电子设备包括处理器、存储器及通信总线;
15.所述通信总线用于实现所述存储器、处理器之间的连接通信;所述处理器用于执行所述存储器中存储的计算机程序,以使得所述设备执行第一方面中的web应用程序的检测方法。
16.本技术第四方面提供一种计算机可读存储介质,用于存储计算机程序,包括指令,
所述计算机程序被执行时,实现第一方面中的web应用程序的检测方法。
17.本发明的有益效果在于:通过对web应用程序中的目标函数进行动态跟踪,得到插桩函数;通过拦截器对所述插桩函数对应的入参请求进行分析,得到攻击特征;将所述攻击特征与漏洞库进行关联,判断所述web应用程序是否存在安全漏洞。由此,在web应用程序中插桩函数来进行攻击特征分析,以实时对web应用程序进行安全漏洞检测,实现对产线上的应用及时防护,提高了应用程序安全防护的有效性。
附图说明
18.图1为本发明的第一实施例的web应用程序的检测方法的整体流程图。
19.图2为本发明的第一实施例的web应用程序中插桩函数获取方法的流程图。
20.图3为本发明的第二实施例的web应用程序的检测装置的程序模块框图。
21.图4为本发明的第三实施例的电子装置的结构示意图。
具体实施方式
22.为使得本技术的发明目的、特征、优点能够更加的明显和易懂,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而非全部实施例。基于本技术中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
23.在相关技术中,web应用的安全防护只是应用于测试和开发阶段,无法在产线上进行应用实时防护,其中,静态应用程序安全测试需要产品的源码进行分析,这在隐私保护和code机密泄露上面存在安全隐患。之后便引入rasp防护,而目前的基于rasp防护的基本都是使用waf(web application fire ware,网站应用级入侵防御系统或web应用防护系统)的规则匹配和硬件相结合,如基于rasp的防火墙。这些技术大部分是基于硬件相结合,从分析网络流量的角度出发,没有真正的深入到应用的代码级别,会存在无法准确定位到具体的代码位置,没法进行污点的动态跟踪、误报率高也是这类技术的硬伤及没法定位代码的行数、方法和参数,不利于开发人员对漏洞进行分析修护的缺陷。为此本发明提供一种web应用程序的检测方法。
24.请参阅图1,图1为本发明实施例提供的web应用程序的检测方法的流程示意图。
25.如图1所示,本发明实施例提供一种web应用程序的检测方法,该web应用程序的检测方法包括如下步骤s101至s103。
26.步骤s101、对web应用程序中的目标函数进行动态跟踪,得到插桩函数;
27.在本发明实施例中,通过插桩函数对web应用程序进行检测,所谓插桩函数即在目标函数中插入或修改代码,从而在目标函数运行过程中获取目标函数的运行状态,进而分析web应用程序的运行状态。
28.在一可选地实施方式中,需要考虑对web应用程序中的目标函数进行动态追踪,得到插桩函数的具体步骤。具体请参考图2,图2为本发明的第一实施例提供的插桩函数获取方法的流程图,则步骤s101包括如下流程:
29.s1011、将web应用程序中的函数与知识库进行匹配,确定目标函数;
30.在本实施例中,在web应用程序中涉及m个函数(其中,m大于等于1),首先要确定对
这m个函数中的哪些函数进行分析,即需要确定进行插桩的函数类别。此时,便可以查询知识库来确定需要插桩的函数,其中,知识库是指对漏洞识别的知识库,类似一个字典,知识库中包括多个函数的列表。最终,将与知识库进行匹配成功的m个函数中的f个函数确定为目标函数(其中,f≤m)。
31.s1012、获取探针埋点;
32.在本实施例中,探针类似一个检测工具,可以将探针与web应用程序放在一起,在虚拟机进行加载时,可以将探针插入,对web应用程序的请求都需要经过探针。在确定目标函数之后,通过获取探针对目标函数进行跟踪。
33.s1013、将探针埋点埋设于目标函数进行函数插桩,得到插桩函数。
34.在本实施例中,将探针的代码段进行埋设于目标函数中,通过探针的执行获得web应用程序的控制流和数据流信息,以此实现对web应用程序检测的目的。
35.在一可选地实施方式中,上述探针埋点埋设于目标函数进行函数插桩,得到插桩函数的步骤具体包括:对目标函数相对应的第一参数埋设第一探针点,第一参数为目标函数相对应的输入参数;根据第一参数计算得到第二参数,对第二参数埋设第二探针点,第二参数为目标函数相对应的输出参数。
36.在本实施例中,可以对目标函数的输入参数进行埋点探针插桩检测,在攻击特征刚进来时就可以进行及时防护,避免攻击特征对程序的进一步攻击。另外,由输入参数计算得到的输出参数处再次进行埋设探针点插桩检测,避免输入参数处的检测出现漏检测或者检测不及时,在输出参数处再次检测,可以起到双重防护的目的。
37.相对应的,上述判断web应用程序是否存在安全漏洞的步骤,包括:根据第一探针点和第二探针点的执行结果,判断web应用程序是否存在安全漏洞。
38.在本实施例中,在web应用程序中存在多个函数,可以采用第一探针点对第一函数进行埋点,第二探针对第二函数进行埋点,当第一函数的执行完成,将执行结果传输至第二函数,第一函数的执行结果便是第二函数的输入参数,会对第二函数产生影响,因此在输入参数和输出参数均进行埋点检测,提升对web应用程序的双重保护效果。
39.步骤s102、通过拦截器对插桩函数对应的入参请求进行分析,得到攻击特征。
40.需要了解的是,入参中含有一些攻击脚本,即可以表示含有污点数据,该入参请求中可以包括但不限于污点数据,该污点数据为用户在待测web应用程序的前端输入的数据。
41.在本实施例中涉及的拦截器可以采用权限控制拦截器编辑自定义拦截器、实现权限控制拦截器及配置权限控制拦截器中的任意一种,但不限于上述几种拦截器,根据需要进行适应性选择。
42.应当说明的是,拦截器主要完成请求参数的解析、将页面表单参数赋给值栈中相应属性、执行功能检验、程序异常调试等工作。在本实施例中首先是确定入参请求是存在攻击行为的,攻击行为中存在攻击事件中的估计特征,即入参请求中存在攻击代码,拦截器对其进行拦截,再通过与国际组织中的特征进行对比,便可确定攻击特征。
43.在一可选地实施方式中,上述通过拦截器对插桩函数对应的入参请求进行分析,得到攻击特征的步骤之后,还包括:将攻击特征所形成的攻击路径进行记录,得到攻击日志;将攻击特征所形成的攻击事件发送于前端进行展示。
44.需要了解的是,攻击路径是指攻击特征从入侵web应用程序以及在web应用程序中
的各种活动均进行记录,形成完整攻击链信息,记录在攻击日志中,便于服务器到前端展示以及收集证据,用户询问攻击时可以说明攻击来源及数据流。
45.在本实施例中,不同的攻击特征会形成不同的攻击事件,将多个攻击事件进行记录及上报至后台服务器,在前端进行展示。
46.在一可选地实施方式中,上述将攻击特征所形成的攻击事件发送于前端进行展示的步骤,具体包括:将攻击事件关联攻击事件的应用;将攻击事件的应用关联容器;将容器关联服务器;根据攻击事件、攻击事件的应用、容器及服务器生成全链路跟踪路径,并将全链路跟踪路径展示于前端。
47.在本实施例中,通过以攻击事件为主线,关联攻击事件的应用,应用关联容器,容器关联服务器,形成的一个全链路的跟踪路径,能够清晰的展示攻击事件的生命周期,并将该全链路的跟踪路径展示于前端,便于用户更加直观的查看到攻击事件的攻击全过程。
48.步骤s103、将攻击特征与漏洞库进行关联,判断web应用程序是否存在安全漏洞。
49.需要了解的是,该漏洞库可以为cve(common vulnerabilities&exposures,通用漏洞披露)和cnvd(国家信息安全漏洞共享平台)等漏洞库。漏洞库内收集有最新的安全漏洞,通过漏洞库对当前的web应用程序进行扫描即可得到该应用程序存在漏洞库中的哪个漏洞,进行上报,并给出对相关漏洞的修复建议。
50.在本实施例中,如果web应用程序存在安全问题,会进行提示,此时提示出的问题不具备权威性,那么再将该安全问题与漏洞库进行关联,得到具体的漏洞。即在确定攻击特征之后,便将该攻击特征与漏洞库进行关联匹配,即可得到该攻击特征是否属于该漏洞库中的漏洞,进而得到web应用程序是否存在安全漏洞。
51.在一可选地实施方式中,上述对将攻击特征与漏洞库进行关联,判断web应用程序是否存在安全漏洞的步骤之后,还包括:若web应用程序存在安全漏洞,根据预设防护规则判断是否对安全漏洞进行防护;预设防护规则为根据客户需求进行选择性防护,形成自定义防护列表,自定义防护列表包括n种防护规则,与n种防护规则对应有n种攻击特征;当第n 1种攻击特征发送入参请求时,预设防护规则中的预警组织发出预警信号,将第n 1种攻击特征进行拦截和保存,并将第n 1种攻击特征的信息发送至探针。
52.在本实施例中,在确定web应用程序存在安全漏洞之后,还涉及自定义防护规则,即根据用户的业务需求(每个客户具备不同的业务特点,对应不同的业务需求),可以将需要防护掉的漏洞进行列表表示,也即若web应用程序存在的安全漏洞是自定义列表中的漏洞,便将其进行拦截,还可以理解为如果web应用程序存在的安全漏洞是平常所遇到的安全漏洞,但是未出现在自定义列表中,可以让其直接通过,不必拦截。
53.本实施例以一个具体的示例对上述实现方式进行说明,假设n=10,即预设防护规则中存在10种防护规则,那么就对应10种需要防护掉的安全漏洞,也即10种攻击特征。当一种新的攻击特征发送入参请求时,即当第11种攻击特征发送入参请求时,为了避免发生这种情况时无法进行及时处理,在预设防护规则模块中设置预警组织,发现这个新的攻击特征时第一时间进行预警,应用程序收到预警信号,便得知有新的特征进入,预设防护规则模块便将新的特征输入进去进行防护掉,并将该特征的攻击信息发送于探针,以便位于产线上的探针遇到这种类型的特征时直接进行防护掉。
54.在一可选地实施方式中,该方法还包括:通过逻辑接口对攻击事件的逻辑链路进
行分析;根据攻击事件的逻辑链路信息,确定攻击事件类型。
55.在本实施例中,不同的攻击特征会形成不同的攻击事件,通过分析引擎对逻辑链路进行分析,进一步的,通过逻辑接口对攻击事件进行检测,最终确定多个攻击事件具体的类型。
56.在一可选地实施方式中,该方法还可以用于第三库的检测,即获取第三方库列表,并获取各个第三方库的信息,对第三方库的信息进行安全漏洞检测。web应用程序使用到第三方开源库中的大量数据,因此,对第三库的检测也是很必要的。
57.第二实施例
58.请参考图3,为本发明的第二实施例的web应用程序的检测装置的程序模块框图。本实施例提供一种web应用程序的检测装置,该装置包括获取模块301、分析模块302和判断模块303。
59.获取模块301,用于对web应用程序中的目标函数进行动态跟踪,得到插桩函数;
60.分析模块302,用于通过拦截器对插桩函数对应的入参请求进行分析,得到攻击特征;
61.判断模块303,用于将攻击特征与漏洞库进行关联,判断web应用程序是否存在安全漏洞。
62.在本实施例一种实施方式中,上述获取模块301,具体用于:将web应用程序中的函数与知识库进行匹配,确定目标函数;获取探针埋点;将探针埋点埋设于目标函数进行函数插桩,得到插桩函数。
63.进一步的,本实施例一种实施方式中,获取模块301在执行将探针埋点埋设于目标函数进行函数插桩,得到插桩函数的功能时,具体用于:对目标函数相对应的第一参数埋设第一探针点,第一参数为目标函数相对应的输入参数;根据第一参数计算得到第二参数,对第二参数埋设第二探针点,第二参数为目标函数相对应的输出参数;
64.本实施例一种实施方式中,上述判断模块303在执行判断web应用程序是否存在安全漏洞的功能时,具体用于:根据第一探针点和第二探针点的执行结果,判断web应用程序是否存在安全漏洞。
65.在本实施例一种实施方式中,web应用程序的检测装置还包括:记录模块,用于将攻击特征所形成的攻击路径进行记录,得到攻击日志;展示模块,用于将攻击特征所形成的攻击事件发送于前端进行展示。
66.在本实施例一种实施方式中,上述展示模块,在执行用于将攻击特征所形成的攻击事件发送于前端进行展示的功能时,具体用于:将攻击事件关联攻击事件的应用;将攻击事件的应用关联容器;将容器关联服务器;根据攻击事件、攻击事件的应用、容器及服务器生成全链路跟踪路径,并将全链路跟踪路径展示于前端。
67.在本实施例一种实施方式中,web应用程序的检测装置还包括:防护模块,用于若web应用程序存在安全漏洞,根据预设防护规则判断是否对安全漏洞进行防护;预设防护规则为根据客户需求进行选择性防护,形成自定义防护列表,自定义防护列表包括n种防护规则,与n种防护规则对应有n种攻击特征;当第n 1种攻击特征发送入参请求时,预设防护规则中的预警组织发出预警信号,将第n 1种攻击特征进行拦截和保存,并将第n 1种攻击特征的信息发送至探针。
68.在本实施例一种实施方式中,web应用程序的检测装置还包括:确定模块,用于通过逻辑接口对攻击事件的逻辑链路进行分析;根据攻击事件的逻辑链路信息,确定攻击事件类型。
69.第三实施例
70.本实施例提供了一种电子设备,参见图4所示,其包括处理器401、存储器402及通信总线403,其中:通信总线403用于实现处理器401和存储器402之间的连接通信;处理器401用于执行存储器402中存储的一个或者多个计算机程序,以实现上述实施例一中的web应用程序的检测方法中的至少一个步骤。
71.本实施例还提供了一种计算机可读存储介质,该计算机可读存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、计算机程序模块或其他数据)的任何方法或技术中实施的易失性或非易失性、可移除或不可移除的介质。计算机可读存储介质包括但不限于ram(random access memory,随机存取存储器),rom(read

only memory,只读存储器),eeprom(electrically erasable programmable read only memory,带电可擦可编程只读存储器)、闪存或其他存储器技术、cd

rom(compact disc read

only memory,光盘只读存储器),数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。
72.本实施例中的计算机可读存储介质可用于存储一个或者多个计算机程序,其存储的一个或者多个计算机程序可被处理器执行,以实现上述实施例一中的方法的至少一个步骤。
73.本实施例还提供了一种计算机程序,该计算机程序可以分布在计算机可读介质上,由可计算装置来执行,以实现上述实施例一中的方法的至少一个步骤;并且在某些情况下,可以采用不同于上述实施例所描述的顺序执行所示出或描述的至少一个步骤。
74.本实施例还提供了一种计算机程序产品,包括计算机可读装置,该计算机可读装置上存储有如上所示的计算机程序。本实施例中该计算机可读装置可包括如上所示的计算机可读存储介质。
75.可见,本领域的技术人员应该明白,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件(可以用计算装置可执行的计算机程序代码来实现)、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。
76.此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、计算机程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。所以,本发明不限制于任何特定的硬件和软件结合。
77.为了实现上述实施例,本技术实施例还提出一种电子设备。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。
78.以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献