本发明涉及网络安全,具体而言,涉及一种访问请求拦截方法、装置、电子设备及存储介质。
背景技术:
1、api(application programming interface,应用程序编程接口)白名单防火墙是一种用于保护网络应用程序和api的安全措施。它的主要目的是限制某些ip(internetprotocol,国际互联协议)地址以及用户在特定时间段可以访问系统的哪些api,以及能够提交的请求参数范围及格式等,从而增强应用程序的安全性,减少潜在的恶意访问和数据泄露风险。现有的api白名单防火墙一般为自学习api白名单防火墙。
2、然而,经发明人研究发现,自学习api白名单防火墙由于在其学习期间可能将某些攻击流量的规则一并学习到白名单中。因此当开启拦截功能后,这些攻击流量也会被自学习api白名单防火墙放行。
技术实现思路
1、本发明的目的包括,例如,提供了一种访问请求拦截方法、装置、电子设备及存储介质,其能够至少部分解决上述技术问题。
2、本发明的实施例可以这样实现:
3、第一方面,本发明实施例提供了一种访问请求拦截方法,应用于控制器,所述控制器包括第一防火墙模块以及第二防火墙模块;所述方法包括:
4、所述第一防火墙模块获取客户端发送的访问请求,并检测所述访问请求是否满足预设白名单规则;
5、若满足,则所述第二防火墙模块对所述访问请求进行攻击检测;
6、若所述访问请求未通过所述攻击检测,则所述第二防火墙模块生成与所述访问请求对应的攻击告警发送给所述第一防火墙模块;
7、所述第一防火墙模块基于所述攻击告警更新所述预设白名单规则,并丢弃所述访问请求。
8、可选地,所述访问请求包括请求地址、请求参数以及请求体;所述检测所述访问请求是否满足预设白名单规则,包括:
9、提取所述访问请求的请求地址、请求参数以及请求体;
10、调用白名单库,判断所述请求地址是否存在于所述白名单库中;
11、若是,则基于所述白名单库中与所述请求地址对应的目标白名单规则,对所述请求参数以及所述请求体进行检测。
12、可选地,所述预设白名单规则包括字段长度限制规则;所述基于所述攻击告警更新所述预设白名单规则,包括:
13、基于所述攻击告警确定目标攻击请求体;
14、确定所述目标攻击请求体的字段长度;
15、判断预设字段长度是否小于所述攻击请求体的字段长度;
16、若是,则基于第一更新策略,根据所述目标攻击请求体的字段长度以及所述预设字段长度,更新所述字段长度限制规则。
17、可选地,所述对所述访问请求进行攻击检测,包括:
18、提取所述访问请求的请求参数;
19、判断所述请求参数中是否存在攻击字段;
20、若否,则判定所述访问请求通过所述攻击检测;
21、若是,则判定所述访问请求未通过所述攻击检测。
22、可选地,所述预设白名单规则包括请求参数限制规则;所述基于所述攻击告警更新所述预设白名单规则,包括:
23、基于所述攻击告警,提取所述攻击字段;
24、判断所述请求参数限制规则中是否包括所述攻击字段所对应的数据库表达关键字;
25、若否,则将所述攻击字段所对应的数据库表达关键字更新至所述请求参数限制规则。
26、可选地,所述方法还包括:
27、若所述请求参数限制规则中包括所述攻击字段所对应的数据库表达关键字,则调用历史学习样本,所述历史学习样本为所述第一防火墙模块自学习时采用的预设样本;
28、从所述历史学习样本中学习出所有数据库的表名,并基于学习出的所述表名更新所述请求参数限制规则。
29、可选地,所述方法还包括:
30、若所述访问请求通过所述攻击检测,则所述第二防火墙模块将所述访问请求发送至服务器;
31、所述第二防火墙模块接收所述服务器响应的信息,并将所述信息反馈给所述第一防火墙模块,以使所述客户端从所述第一防火墙模块接收所述信息。
32、第二方面,本发明实施例提供了一种访问请求拦截装置,所述访问请求拦截装置包括:
33、第一防火墙模块,用于获取客户端发送的访问请求,并检测所述访问请求是否满足预设白名单规则;基于与所述访问请求对应的攻击告警更新所述预设白名单规则,并丢弃所述访问请求;
34、第二防火墙模块,用于在所述访问请求是否满足预设白名单规则时,对所述访问请求进行攻击检测;若所述访问请求未通过所述攻击检测,则所述第二防火墙模块生成所述攻击告警发送给所述第一防火墙模块。
35、第三方面,本发明实施例提供了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一项所述方法的步骤。
36、第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,所述计算机程序运行时控制所述计算机可读存储介质所在服务器实现上述任一项所述方法的步骤。
37、本发明实施例的有益效果包括,例如:
38、通过设置可以自动更新预设白名单规则的第一防火墙模块,以及设置第二防火墙模块的联合检测,并通过第二防火墙模块生成的攻击告警进一步更新第一防火墙模块的预设白名单规则。提高了第一防火墙模块的拦截准确率,避免了出现攻击流量被错误放行的情况。
1.一种访问请求拦截方法,其特征在于,应用于控制器,所述控制器包括第一防火墙模块以及第二防火墙模块;所述方法包括:
2.如权利要求1所述的访问请求拦截方法,其特征在于,所述访问请求包括请求地址、请求参数以及请求体;所述检测所述访问请求是否满足预设白名单规则,包括:
3.如权利要求2所述的访问请求拦截方法,其特征在于,所述预设白名单规则包括字段长度限制规则;所述基于所述攻击告警更新所述预设白名单规则,包括:
4.如权利要求2所述的访问请求拦截方法,其特征在于,所述对所述访问请求进行攻击检测,包括:
5.如权利要求4所述的访问请求拦截方法,其特征在于,所述预设白名单规则包括请求参数限制规则;所述基于所述攻击告警更新所述预设白名单规则,包括:
6.如权利要求5所述的访问请求拦截方法,其特征在于,所述方法还包括:
7.如权利要求1所述的访问请求拦截方法,其特征在于,所述方法还包括:
8.一种访问请求拦截装置,其特征在于,所述访问请求拦截装置包括:
9.一种电子设备,其特征在于,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1~7任一项所述方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机程序,所述计算机程序运行时控制所述计算机可读存储介质所在服务器实现权利要求1~7任一项所述方法的步骤。