CN116192524A - 一种基于串接流量的应用防火墙 - Google Patents
一种基于串接流量的应用防火墙 Download PDFInfo
- Publication number
- CN116192524A CN116192524A CN202310204352.8A CN202310204352A CN116192524A CN 116192524 A CN116192524 A CN 116192524A CN 202310204352 A CN202310204352 A CN 202310204352A CN 116192524 A CN116192524 A CN 116192524A
- Authority
- CN
- China
- Prior art keywords
- data
- processing
- module
- session
- protocol
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012545 processing Methods 0.000 claims abstract description 187
- 238000000034 method Methods 0.000 claims abstract description 24
- 230000008569 process Effects 0.000 claims abstract description 18
- 238000013461 design Methods 0.000 claims abstract description 4
- 238000013507 mapping Methods 0.000 claims description 13
- 230000009471 action Effects 0.000 claims description 12
- 230000002159 abnormal effect Effects 0.000 claims description 8
- 238000004891 communication Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 claims description 3
- 230000006378 damage Effects 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 claims description 3
- 230000011664 signaling Effects 0.000 claims description 3
- 230000001360 synchronised effect Effects 0.000 claims description 3
- 238000000926 separation method Methods 0.000 abstract description 6
- 238000005516 engineering process Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 10
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于串接流量的应用防火墙,包括基于多进程设计且采用背靠背代理模式的框架,框架包括与进程一一对应的数据处理通道;数据处理通道由根据功能拆分而成的网桥、流量控制、会话管理、协议栈、事件处理、应用协议管理以及业务处理模块组成;当接入或外发数据时,由网桥或所述业务处理模块自前而后或自后而前依次流经所述数据处理通道的各个模块进行处理。本发明实现了串接大数据流量下,应用防火墙对系统资源的高效利用;由于采用二次分流技术,可保障数据处理按照需要实现完整关联;对受控流量和非受控流量进行线程分离处理,最大程度降低了对非受控流量的影响;在应用层数据处理上,能保持受控流量的畅通,且总体时延较低可控。
Description
技术领域
本发明涉及网络安全技术领域,尤其涉及一种基于串接流量的应用防火墙。
背景技术
近年来,有关数据泄露、数据窃听、数据滥用等安全事件屡见不鲜,保护数据资产已被高度重视。传统旁路产品,存在无法提供可靠阻断、数据篡改功能,且存在无法有效进行加密流量的内容解析与识别等功能缺项,故在流量管控上无法满足全场景需求;基于应用防火墙的串路网络安全产品,很好的补充了这方面的不足,如网络数据泄露防护、数据库运维等串路产品在实际网安场景中得到了较宽广的应用。
应用防火墙由于其串接部署特点,故对自身程序可靠性、处理性能要求较高。一旦软件自身存在问题、或数据处理实时性较差,容易对用户的业务系统造成影响。
发明内容
基于现有的技术问题,本发明提出了一种基于串接流量的应用防火墙。
本发明提出的一种基于串接流量的应用防火墙,包括基于多进程设计且采用背靠背代理模式的框架,所述框架包括与所述进程一一对应的数据处理通道。
所述数据处理通道由根据功能拆分而成的网桥、流量控制、会话管理、协议栈、事件处理、应用协议管理以及业务处理模块组成。
当接入或外发数据时,由所述网桥或所述业务处理模块自前而后或自后而前依次流经所述数据处理通道的各个模块进行处理。
优选地,每个所述网桥模块由成对的网卡A以及网卡B组成,串入路由/交换设备后对网卡数据实现收发的动作。
所述网卡A以及所述网卡B开启按会话完整性分流的功能,所述网卡A以及所述网卡B会将收到的数据均衡的散列到自己的多个rx队列,之后每个所述网卡A以及网卡B都被会分配一对rx、tx队列用于所述网桥模块从对应网卡接收、外发数据的动作。
所述数据处理通道内的网桥模块在收到网卡A对应rx队列的接入数据后,会根据配置规则进行流量的二次分发以实现流量按需在应用防火墙多个数据处理通道的负载均衡动作。
对于属于本通道应该处理的流量,会进入流量控制模块,以判断当前流量是否需要受控,对于需要受控的流量,交由会话管理模块处理,经由协议栈传导至后端业务处理模块,非受控流量直接回传至网桥,从网卡B对外转发。
通过上述技术方案,实现对系统资源的高效利用,同时采用二次分流技术,可保障数据处理按照需要实现完整关联。
优选地,所述会话管理模块收到数据后,判断当前数据是否为TCP握手的第一个SYN包,如果是,则按配置建立当前TCP会话的本地代理映射记录,如果不是则查询本地会话记录表,得到原始会话与背靠背代理会话的映射关系后,将原数据中目的IP/PORT转换为提供服务的代理IP/PORT,提交给协议栈模块进行处理。
优选地,所述协议栈模块将接收到的原始数据剥离应用层以下的协议栈,并通知事件处理模块进行应用数据处理。
数据处理通道内为事件处理模块启动独立线程监控处理各种TCP会话事件,实现与下层模块解耦异步运行的动作。
优选地,所述事件处理模块接到协议栈模块的事件通知后,做出相应的响应,所述响应包括:
a.对于新创建TCP会话的事件,完成客户端与代理、代理与服务端的背靠背代理的建立。
b.对于数据读取事件,模块内设置两级收包缓存buf1、buf2,在上层应用协议管理等模块运行正常时,使用buf1进行收包,否则使用buf2进行收包,在收包完成后同步将收包缓存提交给应用协议管理模块处理。
c.对于TCP会话异常/销毁等事件,关闭客户端与代理、代理与服务端的背靠背代理连接,并通知会话管理模块清理当前TCP会话的本地代理映射记录。
优选地,所述应用协议管理模块在基于多线程进行拆分后,根据逻辑复杂程度、运算量或影响网络通信质量的标准进行判断,判断后再决定是与底层模块解耦脱离,放到二级应用协议管理线程处理,还是放到一级线程与事件处理核心逻辑同步运行。
一级主线程对二级处理线程进行状态机监测管理,实时查询当前二级处理线程的运行状态,同时一二级线程通过无锁队列进行交互,实现数据及控制信令的传输。
优选地,从背靠背代理的A侧收到的应用数据由栈底进入协议对象的应用协议栈,经过逐层向上的处理到达栈顶,完成接收A侧的处理,之后再由栈顶依次向下遍历每一层协议,到达栈底后从B侧发出,完成发送B侧的处理;在每一层的协议处理上可嵌入业务处理模块。
通过上述技术方案,在应用层数据处理上,对复杂的业务处理部分也进行了线程分离,确保在业务处理出现耗时过高、甚至死循环、假死等异常情况时,能保持受控流量的畅通,且总体时延较低可控。
优选地,从背靠背代理的B侧发出的应用数据进入事件处理模块,在当前侧代理会话可写入数据时,将应用数据发往协议栈模块;
所述协议栈模块将应用层外发的数据逐层封装,形成原始报文,并通知会话管理模块有外发数据到达。
优选地,所述会话管理模块查询本地会话记录表,得到原始会话与背靠背代理会话的映射关系,将当前数据中的代理IP/PORT还原为原始会话中的IP/PORT,提交给所述网桥模块进行外发动作。
优选地,所述网桥模块在收到上层模块的外发数据时,将从网卡B的对应tx队列实现数据外发动作。
本发明中的有益效果为:
本发明实现了串接大数据流量下,应用防火墙对系统资源的高效利用;由于采用二次分流技术,可保障数据处理按照需要实现完整关联;对受控流量和非受控流量进行线程分离处理,最大程度降低了对非受控流量的影响;在应用层数据处理上,对复杂的业务处理部分也进行了线程分离,确保在业务处理出现耗时过高、甚至死循环、假死等异常情况时,能保持受控流量的畅通,且总体时延较低可控。
附图说明
图1为本发明提出的一种基于串接流量的应用防火墙的数据处理通道模块组件图;
图2为本发明提出的一种基于串接流量的应用防火墙的数据处理流向图;
图3为本发明提出的一种基于串接流量的应用防火墙的TCP原始会话与背靠背代理的转换图;
图4为本发明提出的一种基于串接流量的应用防火墙的数据处理通道内部线程结构图;
图5为本发明提出的一种基于串接流量的应用防火墙的应用协议管理模块内部结构图;
图6为本发明提出的一种基于串接流量的应用防火墙的应用协议管理模块数据处理逻辑图;
图7为本发明提出的一种基于串接流量的应用防火墙的图6中流程A逻辑图;
图8为本发明提出的一种基于串接流量的应用防火墙的图6中流程B逻辑图;
图9为本发明提出的一种基于串接流量的应用防火墙的图6中流程C逻辑图;
图10为本发明提出的一种基于串接流量的应用防火墙的图6中流程D逻辑图;
图11为本发明提出的一种基于串接流量的应用防火墙的图6中流程E逻辑图;
图12为本发明提出的一种基于串接流量的应用防火墙的图6中流程F逻辑图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
参照图1-12,一种基于串接流量的应用防火墙,如图1所示,本应用防火墙大框架基于多进程设计,采用背靠背代理的模式,每个进程对应一个数据处理通道;每个数据处理通道,根据功能拆分,大致包含网桥、流量控制、会话管理、协议栈、事件处理、应用协议管理、业务处理等模块组件。
接入数据,由网桥自下而上依次流经数据处理通道的各个模块进行处理,外发数据则反之,由业务处理模块自上而下,最终到达网桥,实现外发。
图1中模块主要功能在于:
网桥模块负责对接网卡数据的收发,是应用防火墙对外的门户,每个网桥由成对网卡组成,串入交换设备;流量控制模块负责数据流向管控;
会话管理模块负责记录背靠背代理的会话映射关系,完成将“客户端<-->服务器”的原始会话转换为“客户端<-->代理<-->服务器”的背靠背代理会话;
协议栈模块可基于内核协议栈或用户态协议栈实现,负责TCP/IP四层应用数据的剥离与封装;
事件处理模块负责对接协议栈模块的事件通知,并做出相应的响应,实现基于socket的背靠背代理的建立、管理和TCP应用数据收发;
应用协议管理模块负责识别并管理TCP/IP四层应用数据协议,提供具体协议的解码能力;
业务处理模块负责具体的应用内容解析、识别,如文档、图片等,并根据策略规则实现相应的风险扫描及处置动作;业务处理模块作为一个子组件嵌入到应用协议管理模块中运行。
每个模块的功能具体是这样实现的:
首先,如图2所示,为了对每个数据处理通道内的数据实现完整性分流,应用防火墙绑定成对网卡A、B作为数据网卡,串入路由/交换环境;数据网卡开启按会话完整性分流的功能,网卡会将收到的数据均衡的散列到自己的多个rx队列;应用防火墙开辟多个进程,每个进程对应一个数据处理通道,每个数据处理通道的网桥对于每块网卡都被会分配一对rx、tx队列用于从对应网卡接收、外发数据。
应用防火墙从网卡A收到的数据,将从网卡B对外发送,反之,从网卡B收到的数据将从网卡A对外发送;以下以网卡A收到数据的场景表述方案,从网卡B收到数据的场景处理逻辑雷同。数据处理通道内的网桥模块在收到网卡A对应rx队列的接入数据后,会根据配置规则进行流量的二次分发(如保证单通道内的流量用户完整性等),实现流量按需在应用防火墙多个数据处理通道的负载均衡。
对于属于本通道应该处理的流量,会进入流量控制模块,以判断当前流量是否需要受控,对于需要受控的流量,交由会话管理模块处理,进一步经由协议栈传导至后端业务处理模块,非受控流量直接回传至网桥,从网卡B对外转发。
然后,如图3所示,会话管理模块收到数据后,判断当前数据是否为TCP握手的第一个SYN包,如果是,则按配置建立当前TCP会话的本地代理映射记录,如果不是则查询本地会话记录表,得到原始会话与背靠背代理会话的映射关系后,将原数据中目的IP/PORT转换为提供服务的代理IP/PORT,提交给协议栈模块进行处理。
协议栈模块将接收到的原始数据剥离应用层以下的协议栈,并通知事件处理模块进行应用数据处理;数据处理通道内为事件处理模块启动独立线程监控处理各种TCP会话事件,实现与下层模块解耦异步运行。
事件处理模块接到协议栈模块的事件通知后,做出相应的响应:
a.对于新创建TCP会话的事件,完成客户端与代理、代理与服务端的背靠背代理的建立;
b.对于数据读取事件,模块内设置两级收包缓存buf1、buf2,在上层应用协议管理等模块运行正常时,使用buf1进行收包,否则使用buf2进行收包,在收包完成后同步将收包缓存提交给应用协议管理模块处理;
c.对于TCP会话异常/销毁等事件,关闭客户端与代理、代理与服务端的背靠背代理连接,并通知会话管理模块清理当前TCP会话的本地代理映射记录。
其次,如图4-5所示,应用协议管理模块是数据处理主要集中、复杂的部分,故本方案将该模块基于多线程进行拆分,将逻辑复杂、运算量较大、或可能对网络通信质量影响较大的部分与底层模块解耦脱离,放到二级应用协议管理线程处理,而逻辑较为简单、或与底层模块联系较为紧密的部分放到一级线程与事件处理核心逻辑同步运行;一级主线程对二级处理线程进行状态机监测管理,实时查询当前二级处理线程的运行状态,同时一二级线程通过无锁队列进行交互,实现数据及控制信令的传输;
应用协议管理模块按TCP会话服务端口区分不同业务,建立与原始TCP会话一一对应的应用协议对象,为支持应用数据进行多层协议处理的需求,协议对象内部按照协议栈的方式加载各层协议,形成应用协议栈,如基于443端口通信的HTTPs数据,应用协议栈可对应加载SSL和HTTP两层协议;由于应用协议管理模块采用两级线程的方式运行,故应用协议栈分为主线程处理的一级应用协议栈,和二级线程处理的二级应用协议栈;对一级应用协议栈来说,二级应用协议栈被当成一个整体,作为嵌入到一级应用协议栈中的一层协议,标识为2ndprotocol;
接着,如图6-12所示,从背靠背代理的A侧收到的应用数据由栈底进入协议对象的应用协议栈,经过逐层向上的处理到达栈顶,完成接收A侧的处理,之后再由栈顶依次向下遍历每一层协议,到达栈底后从B侧发出,完成发送B侧的处理;在每一层的协议处理上可嵌入业务处理模块,从而实现精细化的业务管控。
具体的为:
流程A:在收到事件处理模块上来的数据时,如果二级处理线程状态机置异常位,判断当前协议对象是否为新建连接,如果是则打上标志③,该连接的所有数据在之后的流程中一、二级协议栈均不处理,直接转发,同时一级主线程检查二级处理线程是否有返回结果,如果有返回结果,结果数据不进行外发,只将二级处理线程状态机复位去除异常状态,同时清除返回的协议对象(非当前数据的协议对象)上的标志②,后续事件处理模块接收数据缓存使用buf1。
流程B:接着进行代理A侧的协议处理,一级主线程查询当前数据对应的协议对象是否打上了标志③,如果是,则整体跳过代理A、B两侧的应用协议栈处理流程,转至流程F,否则进入一级协议栈,由栈底逐层向上处理代理A侧的一级协议。
流程C:如果一级协议栈中包含2ndprotocol,则在处理到2nd protocol时,查询当前协议对象是否打上了标志①,如果是,跳过2ndprotocol的处理,直接进行上一层协议的处理,否则根据当前二级处理线程运行状态,进入不同的处理逻辑:
如果二级处理线程正常运行,按如下逻辑处理:
1)、将协议对象和一级协议栈处理后的应用数据转至二级处理线程,由二级协议栈栈底逐层向上继续处理代理A侧的二级协议;
2)、数据转至二级处理线程后,一级主线程启动对二级线程的超时检测,在超时时间内轮训接收二级处理线程的处理结果及控制命令,同步等待二级处理线程处理当前数据结束;
3)、二级处理线程在超时时间内处理完代理A侧的协议,并返回处理结束内容,一级主线程收到后,继续走完代理A侧剩余的一级协议栈处理流程;
4)、二级处理线程在超时时间内未处理完数据,则一级主线程先将二级处理线程状态机置异常位,后续事件处理模块收数据缓存使用buf2,并对当前协议对象打上标志①和标志②,继续走完代理A侧剩余的一级协议栈处理流程。
如果二级处理线程状态机置异常位,为确保串接网络流量正常连通,按以下逻辑处理:
1)、当前事件处理模块收数据缓存使用buf2,以避免与二级处理线程尚未结束的数据处理流程产生冲突;
2)、碰到需要处理2ndprotocol的协议对象均打上标志①,在后续的数据流中有标志①的协议对象也不再处理2ndprotocol,以避免二级处理线程数据缓存不完整造成的程序问题(比如业务处理模块处理文件的逻辑);
3)、跳过2ndprotocol的处理,继续走完代理A侧剩余的一级协议栈处理流程。
流程D:代理A侧的应用协议栈处理完成后,开始进行代理B侧的协议处理,首先进入一级协议栈,由栈顶逐层向下处理代理B侧的一级协议。
流程E:如果一级协议栈中包含2ndprotocol,则在处理到2nd protocol时,查询当前协议对象是否打上了标志①,如果是,跳过2ndprotocol的处理,直接进行下一层协议的处理,否则根据当前二级处理线程运行状态,进入不同的处理逻辑:
如果二级处理线程正常运行,按如下逻辑处理:
1)、将协议对象和一级协议栈处理后的应用数据转至二级处理线程,由二级协议栈栈顶逐层向下继续处理代理B侧的二级协议;
2)、数据转至二级处理线程后,一级主线程启动对二级线程的超时检测,在超时时间内轮训接收二级处理线程的处理结果及控制命令,同步等待二级处理线程处理当前数据结束;
3)、二级处理线程在超时时间内处理完代理B侧的协议,并返回处理结束内容,一级主线程收到后,继续走完代理B侧剩余的一级协议栈处理流程;
4)、二级处理线程在超时时间内未处理完数据,则一级主线程先将二级处理线程状态机置异常位,后续事件处理模块收数据缓存使用buf2,并对当前协议对象打上标志①和标志②,继续走完代理B侧剩余的一级协议栈处理流程。
如果二级处理线程状态机置异常位,为确保串接网络流量正常连通,按以下逻辑处理:
1)、当前事件处理模块收数据缓存使用buf2,以避免与二级处理线程尚未结束的数据处理流程产生冲突;
2)、碰到需要处理2ndprotocol的协议对象均打上标志①,在后续的数据流中有标志①的协议对象也不再处理2ndprotocol,以避免二级处理线程数据缓存不完整造成的程序问题(比如业务处理模块处理文件的逻辑);
3)、跳过2ndprotocol的处理,继续走完代理B侧剩余的一级协议栈处理流程。
代理A、B两侧的应用协议栈都处理完成后,在代理B侧对外转发数据。
另外,需要注意的是:标志①的作用主要是为了标识只需要进行一级协议栈处理,而不需要进行二级协议栈处理的连接数据;标志②的作用主要是区分被二级处理线程异常时占用的协议对象,这种协议对象在标志②未被清除时,说明二级处理线程一直没有处理结束,那么在一级主线程对协议对象关闭时,只能先关闭socket,协议栈信息不能清理,需要单独的异常list维护;标志③的作用主要是为了标识同时不需要进行一、二级协议栈处理的连接数据。
最后,从背靠背代理的B侧发出的应用数据进入事件处理模块,在当前侧代理会话可写入数据时,将应用数据发往协议栈模块;协议栈模块将应用层外发的数据逐层封装,形成原始报文,并通知会话管理模块有外发数据到达;会话管理模块查询本地会话记录表,得到原始会话与背靠背代理会话的映射关系,将当前数据中的代理IP/PORT(源端)还原为原始会话中的IP/PORT,提交给网桥模块进行外发;网桥模块在收到上层模块的外发数据时,将从网卡B的对应tx队列实现数据外发。
本发明实现了串接大数据流量下,应用防火墙对系统资源的高效利用;由于采用二次分流技术,可保障数据处理按照需要实现完整关联;对受控流量和非受控流量进行线程分离处理,最大程度降低了对非受控流量的影响;在应用层数据处理上,对复杂的业务处理部分也进行了线程分离,确保在业务处理出现耗时过高、甚至死循环、假死等异常情况时,能保持受控流量的畅通,且总体时延较低可控。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种基于串接流量的应用防火墙,其特征在于:包括基于多进程设计且采用背靠背代理模式的框架,所述框架包括与所述进程一一对应的数据处理通道;
所述数据处理通道由根据功能拆分而成的网桥、流量控制、会话管理、协议栈、事件处理、应用协议管理以及业务处理模块组成;
当接入或外发数据时,由所述网桥或所述业务处理模块自前而后或自后而前依次流经所述数据处理通道的各个模块进行处理。
2.根据权利要求1所述的一种基于串接流量的应用防火墙,其特征在于:每个所述网桥模块由成对的网卡A以及网卡B组成,串入路由/交换设备后对网卡数据实现收发的动作;
所述网卡A以及所述网卡B开启按会话完整性分流的功能,所述网卡A以及所述网卡B会将收到的数据均衡的散列到自己的多个rx队列,之后每个所述网卡A以及网卡B都被会分配一对rx、tx队列用于所述网桥模块从对应网卡接收、外发数据的动作;
所述数据处理通道内的网桥模块在收到网卡A对应rx队列的接入数据后,会根据配置规则进行流量的二次分发以实现流量按需在应用防火墙多个数据处理通道的负载均衡动作;
对于属于本通道应该处理的流量,会进入流量控制模块,以判断当前流量是否需要受控,对于需要受控的流量,交由会话管理模块处理,经由协议栈传导至后端业务处理模块,非受控流量直接回传至网桥,从网卡B对外转发。
3.根据权利要求2所述的一种基于串接流量的应用防火墙,其特征在于:所述会话管理模块收到数据后,判断当前数据是否为TCP握手的第一个SYN包,如果是,则按配置建立当前TCP会话的本地代理映射记录,如果不是则查询本地会话记录表,得到原始会话与背靠背代理会话的映射关系后,将原数据中目的IP/PORT转换为提供服务的代理IP/PORT,提交给协议栈模块进行处理。
4.根据权利要求3所述的一种基于串接流量的应用防火墙,其特征在于:所述协议栈模块将接收到的原始数据剥离应用层以下的协议栈,并通知事件处理模块进行应用数据处理;
数据处理通道内为事件处理模块启动独立线程监控处理各种TCP会话事件,实现与下层模块解耦异步运行的动作。
5.根据权利要求4所述的一种基于串接流量的应用防火墙,其特征在于:所述事件处理模块接到协议栈模块的事件通知后,做出相应的响应,所述响应包括:
a.对于新创建TCP会话的事件,完成客户端与代理、代理与服务端的背靠背代理的建立;
b.对于数据读取事件,模块内设置两级收包缓存buf1、buf2,在上层应用协议管理等模块运行正常时,使用buf1进行收包,否则使用buf2进行收包,在收包完成后同步将收包缓存提交给应用协议管理模块处理;
c.对于TCP会话异常/销毁等事件,关闭客户端与代理、代理与服务端的背靠背代理连接,并通知会话管理模块清理当前TCP会话的本地代理映射记录。
6.根据权利要求5所述的一种基于串接流量的应用防火墙,其特征在于:所述应用协议管理模块在基于多线程进行拆分后,根据逻辑复杂程度、运算量或影响网络通信质量的标准进行判断,判断后再决定是与底层模块解耦脱离,放到二级应用协议管理线程处理,还是放到一级线程与事件处理核心逻辑同步运行;
一级主线程对二级处理线程进行状态机监测管理,实时查询当前二级处理线程的运行状态,同时一二级线程通过无锁队列进行交互,实现数据及控制信令的传输。
7.根据权利要求6所述的一种基于串接流量的应用防火墙,其特征在于:从背靠背代理的A侧收到的应用数据由栈底进入协议对象的应用协议栈,经过逐层向上的处理到达栈顶,完成接收A侧的处理,之后再由栈顶依次向下遍历每一层协议,到达栈底后从B侧发出,完成发送B侧的处理;在每一层的协议处理上可嵌入业务处理模块。
8.根据权利要求7所述的一种基于串接流量的应用防火墙,其特征在于:从背靠背代理的B侧发出的应用数据进入事件处理模块,在当前侧代理会话可写入数据时,将应用数据发往协议栈模块;
所述协议栈模块将应用层外发的数据逐层封装,形成原始报文,并通知会话管理模块有外发数据到达。
9.根据权利要求8所述的一种基于串接流量的应用防火墙,其特征在于:所述会话管理模块查询本地会话记录表,得到原始会话与背靠背代理会话的映射关系,将当前数据中的代理IP/PORT还原为原始会话中的IP/PORT,提交给所述网桥模块进行外发动作。
10.根据权利要求9所述的一种基于串接流量的应用防火墙,其特征在于:所述网桥模块在收到上层模块的外发数据时,将从网卡B的对应tx队列实现数据外发动作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310204352.8A CN116192524B (zh) | 2023-03-06 | 2023-03-06 | 一种基于串接流量的应用防火墙 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310204352.8A CN116192524B (zh) | 2023-03-06 | 2023-03-06 | 一种基于串接流量的应用防火墙 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116192524A true CN116192524A (zh) | 2023-05-30 |
CN116192524B CN116192524B (zh) | 2024-03-12 |
Family
ID=86436395
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310204352.8A Active CN116192524B (zh) | 2023-03-06 | 2023-03-06 | 一种基于串接流量的应用防火墙 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116192524B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140201838A1 (en) * | 2012-01-31 | 2014-07-17 | Db Networks, Inc. | Systems and methods for detecting and mitigating threats to a structured data storage system |
CN104639578A (zh) * | 2013-11-08 | 2015-05-20 | 华为技术有限公司 | 多协议栈负载均衡方法及装置 |
CN114172695A (zh) * | 2021-11-22 | 2022-03-11 | 闪捷信息科技有限公司 | 串行防火墙报文转发方法、装置、设备及存储介质 |
CN114401149A (zh) * | 2022-01-30 | 2022-04-26 | 杭州立思辰安科科技有限公司 | 防火墙网卡负载均衡机制中协议动态端口处理方法和系统 |
-
2023
- 2023-03-06 CN CN202310204352.8A patent/CN116192524B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140201838A1 (en) * | 2012-01-31 | 2014-07-17 | Db Networks, Inc. | Systems and methods for detecting and mitigating threats to a structured data storage system |
CN104639578A (zh) * | 2013-11-08 | 2015-05-20 | 华为技术有限公司 | 多协议栈负载均衡方法及装置 |
CN114172695A (zh) * | 2021-11-22 | 2022-03-11 | 闪捷信息科技有限公司 | 串行防火墙报文转发方法、装置、设备及存储介质 |
CN114401149A (zh) * | 2022-01-30 | 2022-04-26 | 杭州立思辰安科科技有限公司 | 防火墙网卡负载均衡机制中协议动态端口处理方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN116192524B (zh) | 2024-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6131163A (en) | Network gateway mechanism having a protocol stack proxy | |
JP5544006B2 (ja) | 情報通信処理システム | |
US8149705B2 (en) | Packet communications unit | |
US9674240B2 (en) | Systems and computer program products and methods and media for operating a scalable, private practice tele-consultation service | |
CN102685177B (zh) | 资源的透明代理缓存方法、网络设备及系统 | |
Liu et al. | FL-GUARD: A detection and defense system for DDoS attack in SDN | |
US20050080890A1 (en) | Server load balancing apparatus and method using MPLS session | |
CN106972985B (zh) | 加速dpi设备数据处理与转发的方法和dpi设备 | |
US11146641B2 (en) | Internet of things information system | |
CN105579990A (zh) | 应用感知网络管理 | |
CN105681462A (zh) | 一种基于消息路由的集群系统及数据通信中转方法 | |
CN107769992B (zh) | 一种报文解析分流方法及装置 | |
CN102201990B (zh) | 一种用于自治网络的业务控制方法及系统 | |
CN110226155A (zh) | 在主机上收集和处理上下文属性 | |
CN113259355A (zh) | 一种基于sdn的工业互联网标识切片管理系统 | |
CN116233256A (zh) | 调度路径配置方法、装置、设备及存储介质 | |
CN112751936A (zh) | 联盟链系统及联盟链系统部署方法 | |
CN109981596B (zh) | 一种主机外联检测方法及装置 | |
CN104883362A (zh) | 异常访问行为控制方法及装置 | |
CN116192524B (zh) | 一种基于串接流量的应用防火墙 | |
CN101321097A (zh) | 基于净荷深度检测的腾讯网络直播业务识别方法 | |
CN101686170A (zh) | 基于多出口用户路由的分级传输品质保障系统 | |
US10506021B2 (en) | Method and device for providing communication connection for a plurality of candidate applications in a mobile device | |
CN107181929A (zh) | 用于视频监控的方法和装置 | |
CN109039806A (zh) | 一种基于sdn的报文镜像及网络监控的性能优化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |