一种基于机器学习的应用防火墙系统的制作方法

专利检索2022-05-11  8



1.本发明涉及应用防火墙技术领域,尤其涉及一种基于机器学习的应用防火墙系统。


背景技术:

2.应用防火墙是一种用于防止和缓解常见网络攻击的安全技术,通常部署于需要保护的网络应用程序之前,过滤网络请求中的非法语句,保护网络应用程序。
3.传统的应用防火墙大多基于攻击特征进行分析,无法检测出新型网络攻击,其较高的误报率也极易阻挡正常的业务访问流量,由于采用传统的规则匹配模式进行网络请求过滤,正常的业务访问请求也存在匹配攻击规则后被阻断的可能性,且当新型网络攻击的请求和命令无法在现有的攻击规则库中进行匹配时,应用防火墙会默认其为安全请求从而放行。


技术实现要素:

4.针对现有技术中存在的问题,本发明提供一种基于机器学习的应用防火墙系统,包括:
5.至少一客户端,用于发送至少一超文本传输协议请求;
6.一攻击规则模块,分别连接各所述客户端,用于接收所述超文本传输协议请求并根据一内置攻击规则库对所述超文本传输协议请求进行变量拆分,得到多个变量并发送;
7.一调用模块,连接所述攻击规则模块,用于接收各所述变量并调用预先训练得到的机器学习模型对各所述变量进行处理,得到对应的所述超文本传输协议请求的威胁类型,并在所述威胁类型表示所述超文本传输协议请求为正常业务访问请求时放行所述超文本传输协议请求,以及在所述威胁类型表示所述超文本传输协议请求为异常业务请求时阻断所述超文本传输协议请求;
8.一样本数据库模块,分别连接所述攻击规则模块和所述调用模块,用于记录所述超文本传输协议请求对应的处理过程形成一超文本传输协议日志,并将各所述超文本传输协议请求按照所述威胁类型分别存储,以提供所述机器学习模型的学习样本。优选的,还包括至少一应用服务器,分别连接luaapi模块,用于在luaapi模块放行http请求时,接收http请求。
9.优选的,还包括至少一应用服务器,连接所述调用模块,用于在所述调用模块放行所述超文本传输协议请求时,接收所述超文本传输协议请求。
10.优选的,还包括一数据库可视化模块,分别连接所述样本数据库模块和所述客户端,用于供所述客户端对所述样本数据库模块存储的所述学习样本和所述超文本传输协议日志进行可视化管理。
11.优选的,所述调用模块提供有一规则定义端口,以供用户配置对应于一新型网络攻击请求的一自定义规则并存储至所述内置攻击规则库,对所述内置攻击规则库进行更
新。
12.优选的,所述异常业务请求包括已知网络攻击请求和新型网络攻击请求;
13.则所述样本数据库模块根据所述超文本传输协议请求进行变量拆分采用的规则类型将所述异常业务请求按照所述已知网络攻击请求和所述新型网络攻击请求分别存储。
14.优选的,所述样本数据库模块包括:
15.记录单元,用于记录所述超文本传输协议请求对应的处理过程形成所述超文本传输协议日志;
16.第一分类单元,连接所述记录单元,用于在所述超文本传输协议日志中记录的所述处理过程表示所述威胁类型为正常业务访问请求时将对应的所述超文本传输协议请求按照正常业务访问请求进行存储,在所述威胁类型为异常业务访问请求时由所述超文本传输协议日志中提取对应的变量拆分记录;
17.第二分类单元,连接所述第一分类单元,用于在所述变量拆分记录表示所述规则类型是采用所述自定义规则进行变量拆分时,将对应的超文本传输协议请求按照所述新型网络攻击请求进行存储,以及在所述变量拆分记录表示所述规则类型不是采用所述自定义规则进行变量拆分时,将对应的超文本传输协议请求按照所述已知网络攻击请求进行存储。
18.优选的,还包括一机器学习模块,连接所述样本数据库模块,用于根据所述学习样本对所述机器学习模型进行完善训练,以对所述机器学习模型进行更新。
19.优选的,所述机器学习模型以各所述变量为输入,以所述威胁类型为输出,且采用决策树和随机森林算法实现。
20.优选的,所述规则定义端口提供lua c语言编写环境,以供用户采用lua c语言配置所述自定义规则。
21.上述技术方案具有如下优点或有益效果:本系统能够降低误报率,充分放行正常业务访问请求,最大程度限制异常业务访问请求,通过编写自定义规则对新型网络攻击请求进行检测,并以此作为学习样本进行机器学习,减少人工维护成本。
附图说明
22.图1为本发明的较佳的实施例中,本系统的结构原理图。
具体实施方式
23.下面结合附图和具体实施例对本发明进行详细说明。本发明并不限定于该实施方式,只要符合本发明的主旨,则其他实施方式也可以属于本发明的范畴。
24.本发明的较佳的实施例中,基于现有技术中存在的上述问题,现提供一种基于机器学习的应用防火墙系统,如图1所示,包括:
25.至少一客户端1,用于发送至少一超文本传输协议请求;
26.一攻击规则模块2,分别连接各客户端1,用于接收超文本传输协议请求并根据一内置攻击规则库21对超文本传输协议请求进行变量拆分,得到多个变量并发送;
27.一调用模块3,连接攻击规则模块2,用于接收各变量并调用预先训练得到的机器学习模型对各变量进行处理,得到对应的超文本传输协议请求的威胁类型,并在威胁类型
表示超文本传输协议请求为正常业务访问请求时放行超文本传输协议请求,以及在威胁类型表示超文本传输协议请求为异常业务请求时阻断超文本传输协议请求;
28.一样本数据库模块4,分别连接攻击规则模块2和调用模块3,用于记录超文本传输协议请求对应的处理过程形成一超文本传输协议日志,并将各超文本传输协议请求按照威胁类型分别存储,以提供机器学习模型的学习样本。
29.具体地,本实施例中,传统的应用防火墙在分析网络请求时大多基于攻击特征,对网络请求中的大范围攻击请求进行过滤,导致产生较高的误报率,也极易阻挡正常的业务访问请求,且传统的应用防火墙智能识别出普通的攻击请求,无法识别出新型网络攻击请求,虽然能够过滤网络请求中的部分攻击请求,但是存在较大的安全隐患,因此,本系统通过采用modsecurity引擎进行实现,超文本传输协议请求即为http请求,为网络应用提供了强大的保护,并对http请求的流量进行监测和实时分析,当客户端1发出http请求时,modsecurity检查http请求的所有部分,如果请求是带有攻击性的,它会被阻止并记录,并且加入机器学习模型,以大幅降低应用防火墙的误报率,在保证应用程序安全性的同时提高了业务连续性,降低了处理不必要误报信息的人工成本。
30.具体地,本实施例中,内置攻击规则库21对http请求进行变量拆分,分成请求头、url、版本号和请求方法,调用模块3调用机器学习模型分别对请求头、url、版本号和请求方法进行规则匹配,匹配第一规则且请求方法表示为get时,放行http请求,不匹配第一规则但匹配第二规则且请求方法表示为get时,阻断http请求。
31.本发明的较佳的实施例中,还包括至少一应用服务器5,连接调用模块3,用于在调用模块3放行超文本传输协议请求时,接收超文本传输协议请求。
32.本发明的较佳的实施例中,还包括一数据库可视化模块6,分别连接样本数据库模块4和客户端1,用于供客户端对样本数据库模块4存储的学习样本和超文本传输协议日志进行可视化管理。
33.具体地,本实施例中,用户可以通过数据库可视化模块6随时查看http请求日志,以便核对http请求的威胁类型,提高检测的正确率。
34.本发明的较佳的实施例中,调用模块3提供有一规则定义端口31,以供用户配置对应于一新型网络攻击请求的一自定义规则并存储至内置攻击规则库21,对内置攻击规则库21进行更新。
35.具体地,本实施例中,考虑到传统的应用防火墙无法检测新型网络攻击,因此在调用模块3中设置规则定义端口31,可根据实际编写自定义规则,利用自定义规则检测新型网络攻击请求。
36.本发明的较佳的实施例中,异常业务请求包括已知网络攻击请求和新型网络攻击请求;
37.则样本数据库模块4根据超文本传输协议请求进行变量拆分采用的规则类型将异常业务请求按照已知网络攻击请求和新型网络攻击请求分别存储。
38.本发明的较佳的实施例中,样本数据库模块4包括:
39.记录单元41,用于记录超文本传输协议请求对应的处理过程形成超文本传输协议日志;
40.第一分类单元42,连接记录单元41,用于在超文本传输协议日志中记录的处理过
程表示威胁类型为正常业务访问请求时将对应的超文本传输协议请求按照正常业务访问请求进行存储,在威胁类型为异常业务访问请求时由超文本传输协议日志中提取对应的变量拆分记录;
41.第二分类单元43,连接第一分类单元42,用于在变量拆分记录表示规则类型是采用自定义规则进行变量拆分时,将对应的超文本传输协议请求按照新型网络攻击请求进行存储,以及在变量拆分记录表示规则类型不是采用自定义规则进行变量拆分时,将对应的超文本传输协议请求按照已知网络攻击请求进行存储。
42.具体地,本实施例中,考虑到http请求分为正常业务访问请求、已知网络攻击请求和新型网络攻击请求,因此设置第一分类单元42来存储正常业务访问请求,设置第二分类单元43来分别存储已知网络攻击请求和新型网络攻击请求,且已知网络攻击请求和新型网络攻击请求的分类依据为是否采用自定义规则进行变量拆分。
43.本发明的较佳的实施例中,还包括一机器学习模块7,连接样本数据库模块4,用于根据学习样本对机器学习模型进行完善训练,以对机器学习模型进行更新。
44.本发明的较佳的实施例中,机器学习模型以各变量为输入,以威胁类型为输出,且采用决策树和随机森林算法实现。
45.具体地,本实施例中,通过决策树和随机森林的算法以及大量可构造的不同类型的http请求,使得机器学习模型能够更精准的识别正常业务访问请求和已知网络攻击请求,并且随着学习样本和学习时间的增加,准确率逐步提升,机器学习模型的不断完善,使误报率逐步降低,并通过变更防护模式、临时放宽策略等操作大幅降低放行正常业务访问请求所需要的人工维护成本。
46.本发明的较佳的实施例中,规则定义端口31提供lua c语言编写环境,以供用户采用lua c语言配置所述自定义规则。
47.具体地,本实施例中,正常业务访问请求的流程为:
48.步骤a1,客户端1向应用服务器5发送http请求,攻击规则模块2接收对应的请求包并利用内置攻击规则库21对请求包进行变量拆分并输出;
49.步骤a2,调用模块3调用机器学习模型对已拆分的变量进行初步匹配,并将初步匹配结果应用到随机森林算法的计算节点中;
50.步骤a3,机器学习模型进行决策分析并输出包含威胁类型的响应结果,该威胁类型表示为正常业务访问请求,调用模块3根据响应结果进行放行,应用服务器5顺利接收到该http请求;
51.步骤a4,样本数据库模块4全程对http请求的处理过程进行实时记录,并将其归类为正常业务访问请求进行存储。
52.具体地,本实施例中,已知网络攻击请求的流程为:
53.步骤b1,客户端1向应用服务器5发送http请求,攻击规则模块2接收对应的请求包并利用内置攻击规则库21对请求包进行变量拆分并输出;
54.步骤b2,调用模块3调用机器学习模型对已拆分的变量进行初步匹配,并将初步匹配结果应用到随机森林算法的计算节点中;
55.步骤b3,机器学习模型进行决策分析并输出包含威胁类型的响应结果,该威胁类型表示为已知网络攻击请求,调用模块根据响应结果进行阻断,应用服务器5无法接受到该
http请求;
56.步骤b4,样本数据库模块4全程对http请求的处理过程进行实时记录,并将其归类为已知网络攻击请求进行存储。
57.具体地,本实施例中,新型网络攻击请求的流程为:
58.步骤c1,客户端1向应用服务器5发送http请求,攻击规则模块2接收对应的请求包并利用内置攻击规则库21内已编写好的自定义规则对请求包进行变量拆分并输出;
59.步骤c2,调用模块3调用机器学习模型对已拆分的变量进行初步匹配,并将初步匹配结果应用到随机森林算法的计算节点中;
60.步骤c3,机器学习模型进行决策分析并输出包含威胁类型的响应结果,该威胁类型表示为新型网络攻击请求,调用模块根据响应结果进行阻断,应用服务器5无法接受到该http请求;
61.步骤c4,样本数据库模块4全程对http请求的处理过程进行实时记录,并将其归类为新型网络攻击请求进行存储。
62.以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。
转载请注明原文地址:https://win.8miu.com/read-950040.html

最新回复(0)