Web应用访问方法、装置、电子设备及存储介质与流程

文档序号:26847173发布日期:2021-10-09 00:47阅读:100来源:国知局
Web应用访问方法、装置、电子设备及存储介质与流程
web应用访问方法、装置、电子设备及存储介质
技术领域
1.本技术涉及互联网技术领域,尤其涉及一种web应用访问方法方法、装置、电子设备及存储介质。


背景技术:

2.web(world wide web,全球广域网)的应用防火墙(web application firewall,简称waf)是常用web应用防护手段,基于流量分析技术分析常见的web攻击并进行防御,虽然已经能够防御大部分的web攻击,但是由于该技术依赖于流量分析及规则匹配,无法与web应用紧密结合,web应用防护仍存在以下挑战:
3.无法精准的解析http/https协议,可能导致漏报或误报的问题;cdn(content delivery network,即内容分发网络)类型的防御,在获知用户真实ip(internet protocol,网际互连协议)的情况下,即绕过防御;无法结合应用程序运行时的环境分析黑客攻击,如,无法监控文件系统,无法精准的获取数据库最终执行的sql(structured query language,结构化查询语言)语句以及无法识别本地命令执行等问题;硬件盒子类无法及时更新规则,防御能力交底;不支持请求参数值清理,只支持请求拦截,误报率高,对应用户业务系统影响较大;waf所有的检测只能针对请求参数,多基于正则来实现,这种防御较易被绕过;通常waf规则只能应对已经公开的通用漏洞;不支持或难以支持比较复杂的业务系统或框架,如:ssrf(server

side request forgery,服务端请求伪造)、java反序列化以及ajp(apache jserv protocol,定向包协议)的攻击等。


技术实现要素:

4.有鉴于此,本技术一个或多个实施例提供了一种web应用访问方法、装置、电子设备及存储介质,可有效防御web攻击。
5.本技术一个或多个实施例提供了一种web应用访问方法,包括:获取web应用的访问请求;根据所述访问请求调用运行时应用程序自我保护代理rasp agent,以使rasp agent对所述web应用的访问进行监控;加载所述rasp agent返回的类字节码。
6.可选的,根据所述访问请求调用rasp agent,以使rasp agent根据所述访问请求对当前web应用访问进行监控,包括:将所述rasp agent的调用请求发送给预先加载的rasp agent,以使所述rasp根据所述访问请求确定待加载的类是否为预先设置的目标类,若待加载的类为所述目标类,所述rasp agent修改该待加载的类对应的字节码,并在修改后的字节码中插入预设防御代码,得到修改后的类字节码,其中,所述预设防御代码用于拦截基于所述web应用的攻击访问;加载所述rasp agent返回的类字节码,包括:加载修改后的类字节码。
7.可选的,所述目标类包括以下至少一种:文件读写api、命令执行api以及结构化查询语言sql注入api。
8.可选的,所述方法还包括:在加载修改后的类字节码之后,接收所述rasp agent返
回的web应用访问请求被拦截的提示消息。
9.可选的,所述rasp agent中包括预先设置的目标类的信息。
10.本技术一个或多个实施例还提供了一种web应用访问装置,包括:获取模块,被配置为获取web应用的访问请求;调用模块,被配置为根据所述访问请求调用运行时应用程序自我保护代理rasp agent,以使rasp agent对所述web应用的访问进行监控;加载模块,被配置为加载所述rasp agent返回的类字节码。
11.可选的,所述调用模块具体被配置为:将所述rasp agent的调用请求发送给预先加载的rasp agent,以使所述rasp根据所述访问请求确定待加载的类是否为预先设置的目标类,若待加载的类为所述目标类,所述rasp agent修改该待加载的类对应的字节码,并在修改后的字节码中插入预设防御代码,得到修改后的类字节码,其中,所述预设防御代码用于拦截基于所述web应用的攻击访问;所述加载模块具体被配置为:加载修改后的类字节码。
12.可选的,所述目标类包括以下至少一种:文件读写api、命令执行api以及结构化查询语言sql注入api。
13.可选的,所述装置还包括:接收模块,被配置为在加载修改后的类字节码之后,接收所述rasp agent返回的web应用访问请求被拦截的提示消息。
14.可选的,所述rasp agent中可包括预先设置的目标类的信息。
15.本技术一个或多个实施例还提供了一种电子设备,包括:处理器;和存储器,其上存储有计算机可执行指令,所述指令在被处理器执行时用于实现上述任意一种web应用访问方法。
16.本技术一个或多个实施例还提供了一种计算机可读存储介质,其上存储有计算机可执行指令,所述指令在被处理器执行时用于实现如上述任意一种web应用访问方法。
17.本技术一个或多个实施例提供的web应用访问方法、装置、电子设备及存储介质,在获取到web应用访问请求后,调用rasp agent,以通过rasp agent对当前的web应用访问进行监控,借助rasp agent识别攻击访问者所发出的web攻击访问请求,对该web攻击访问进行拦截,从而有效防御web攻击。
附图说明
18.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
19.图1是根据本技术一个或多个实施例示出的一种web应用访问方法的流程图;
20.图2是根据本技术一个或多个实施例示出的另一种web应用访问方法的流程图;
21.图3是根据本技术一个或多个实施例示出的一种web应用访问装置的结构示意图;
22.图4是根据本技术一个或多个实施例示出的一种电子设备的结构示意图。
具体实施方式
23.下面结合附图对本技术实施例进行详细描述。
24.应当明确,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
25.图1是根据本技术一个或多个实施例示出的一种web应用访问方法的流程图,如图1所示,该方法包括:
26.步骤101:获取web应用的访问请求;
27.其中,web应用即web应用程序的简称。
28.步骤102:根据所述访问请求调用rasp(runtime application self

protection,运行时应用程序自我保护)agent(代理),以使rasp agent对所述web应用的访问进行监控;
29.例如,基于用户发起的web应用的访问请求,生成java api调用请求,以请求调用java api,在进行java api的类加载时会调用rasp agent,rasp agent对该web应用的访问请求进行检测,以对web应用的访问进行监控。
30.步骤103:加载所述rasp agent返回的类字节码。
31.在一个例子中,若rasp agent确定步骤101中获取到的web应用的访问请求所需加载的类并不涉及预先设定的关键java api,则rasp agent可返回与上述web应用的访问请求所对应的类,在步骤103中,会加载该类;若通过rasp agent的判断,确定步骤101中获取到的web应用的访问请求所需加载的类是预先设定的关键java api的类,则rasp agent会对该待加载的类对应的字节码进行修改,并在修改后的字节码中插入预设防御代码,得到修改后的类字节码,返回修改后的类字节码,则在步骤103中,会加载该改后的类字节码。
32.本技术一个或多个实施例提供的web应用访问方法,在获取到web应用访问请求后,调用rasp agent,以通过rasp agent对当前的web应用访问进行监控,借助rasp agent识别攻击访问者所发出的web攻击访问请求,对该web攻击访问进行拦截,从而有效防御web攻击。
33.在本技术的一个或多个实施例中,根据所述访问请求调用rasp agent,以使rasp agent根据所述访问请求对当前web应用访问进行监控,可包括:
34.将所述rasp agent的调用请求发送给预先加载的rasp agent,以使所述rasp agent根据所述访问请求确定待加载的类是否为预先设置的目标类,若待加载的类为所述目标类,所述rasp agent修改该待加载的类对应的字节码,并在修改后的字节码中插入预设防御代码,得到修改后的类字节码,其中,所述预设防御代码用于拦截基于所述web应用的攻击访问;例如,可预先将一些安全等级要求较高的api的类设置为目标类,可使rasp agent记录/存储这些类的信息,以使得rasp agent被调用时,可根据web应用的访问请求所需加载的类是否是预先设置的目标类。
35.加载所述rasp agent返回的类字节码,可包括:
36.加载修改后的类字节码。
37.在本技术的一个或多个实施例中,可通过在rasp agent中内置hook(钩子函数)条件,以实现rasp agent根据web应用的访问请求,确定web应用的访问请求所需加载的类是否是预先设置的目标类的处理。例如,rasp agent与上述web应用均运行于同一jvm(java virtual machine,java虚拟机)中,以使得rasp agent可监控jvm对类文件的加载行为,从而使得如果被jvm加载的类符合rasp agent中内置的hook条件,rasp agent会修改该类对
应的方法的字节码,并插入rasp防御代码(为上述预设防御代码的一个示例),以使得jvm会加载修改后的类字节码,在该目标类的方法被调用时,会调rasp防御代码,从而对web攻击进行防御。
38.在本技术的一个或多个实施例中,所述目标类可包括以下至少一种:
39.文件读写api、命令执行api以及sql(structured query language,结构化查询语言)注入api。需要说明的是,其中,目标类的设定可支持用户自定义的方式来实现,例如,可提供自定义接口供用户编辑或选择需要进行安全防御的类作为目标类。以实现对用户期望进行安全防御的api进行安全防御。
40.在本技术的一个或多个实施例中,上述web应用访问方法还可包括:
41.在加载修改后的类字节码之后,接收所述rasp agent返回的web应用访问请求被拦截的提示消息。例如,rasp agent在确定待加载的类为预先设置的目标类后,可对当前web应用访问进行拦截并发出当前web应用的访问请求被拦截的提示消息。
42.在本技术的一个或多个实施例中,所述rasp agent中可包括预先设置的目标类的信息,例如,rasp agent中可保存预先设置的目标类的信息,例如可保存有预先设置的目标类的标识,预先设置的目标类的信息可以是在加载rasp agent时获取的。
43.在本技术的一个或多个实施例中,以图2为例,以web应用的访问是攻击访问为例对本技术的web应用访问方法进行示例性说明。如图2所示,该web访问流程可包括:步骤201:黑客攻击web容器/应用;步骤202:调用java api;步骤203:进行类加载时会调用rasp agent;步骤204:jvm调用rasp agent;步骤205:rasp agent编辑并返回修改后的类字节码;步骤206:返回修改后的类字节码;步骤207:调用rasp agent防御代码,阻止恶意访问(即web攻击访问)。
44.图3是根据本技术一个或多个实施例示出的一种web应用访问装置的结构示意图,如图3所示,该装置30包括:
45.获取模块31,被配置为获取web应用的访问请求;
46.调用模块32,被配置为根据所述访问请求调用运行时应用程序自我保护代理rasp agent,以使rasp agent对所述web应用的访问进行监控;
47.加载模块33,被配置为加载所述rasp agent返回的类字节码。
48.在本技术的一个或多个实施例中,所述调用模块具体可被配置为:将所述rasp agent的调用请求发送给预先加载的rasp agent,以使所述rasp根据所述访问请求确定待加载的类是否为预先设置的目标类,若待加载的类为所述目标类,所述rasp agent修改该待加载的类对应的字节码,并在修改后的字节码中插入预设防御代码,得到修改后的类字节码,其中,所述预设防御代码用于拦截基于所述web应用的攻击访问;所述加载模块具体被配置为:加载修改后的类字节码。
49.在本技术的一个或多个实施例中,所述目标类包括以下至少一种:文件读写api、命令执行api以及结构化查询语言sql注入api。
50.在本技术的一个或多个实施例中,上述web应用访问装置还可包括:接收模块,被配置为在加载修改后的类字节码之后,接收所述rasp agent返回的web应用访问请求被拦截的提示消息。
51.在本技术的一个或多个实施例中,所述rasp agent中可包括预先设置的目标类的
信息。
52.图4示出了根据本技术一个或多个实施例示出的一种电子设备的结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
53.处理器1010可以采用通用的cpu(central processing unit,中央处理器)、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
54.存储器1020可以采用rom(read only memory,只读存储器)、ram(random access memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
55.输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
56.通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。
57.总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
58.需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。
59.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
60.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
61.尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
62.为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。
63.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以
通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read

only memory,rom)或随机存储记忆体(random access memory,ram)等。
64.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1