CN111277509A - 针对ips引擎的流量引导方法及装置 - Google Patents
针对ips引擎的流量引导方法及装置 Download PDFInfo
- Publication number
- CN111277509A CN111277509A CN202010034035.2A CN202010034035A CN111277509A CN 111277509 A CN111277509 A CN 111277509A CN 202010034035 A CN202010034035 A CN 202010034035A CN 111277509 A CN111277509 A CN 111277509A
- Authority
- CN
- China
- Prior art keywords
- information
- user
- message
- target message
- target
- 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
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000005516 engineering process Methods 0.000 claims abstract description 16
- 238000001514 detection method Methods 0.000 claims description 18
- 238000013507 mapping Methods 0.000 claims description 18
- 238000010992 reflux Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 12
- 238000004891 communication Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000000903 blocking effect Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000035515 penetration Effects 0.000 description 1
- 238000013468 resource allocation 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
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- 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 Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供一种针对IPS引擎的流量引导方法及装置,包括:通过hook回调,接收netfilter框架发送的目标报文;判断当前hook回调是否满足bypass条件;若当前hook回调不满足bypass条件,则利用零拷贝技术,将所述目标报文的信息投递到用户态接收队列,以使用户态流量引导库从所述用户态接收队列获取所述目标报文的信息,以供IPS引擎通过调用所述用户态流量引导库获取所述目标报文的信息。本发明实施例可最大限度降低对网络流量的性能的影响,有效降低对整个虚拟化平台CPU资源的占用率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种针对IPS引擎的流量引导方法及装置。
背景技术
现有入侵检测(IPS,intrusion prevention system)***具备这些功能:实时监控网络中的通信流量,对流量进行深度的分析,抽取其中的详细信息(网际互连协议IP、端口、协议类型、应用类型、应用的详细元数据等),检测流量中是否含有潜在的威胁攻击(拒绝服务攻击DOS、分布式拒绝服务攻击DDOS、各种渗透攻击、蠕虫、病毒等),根据检测结果对通信流量采取放行、阻断、告警等处理。
现有的kvm(内核虚拟机)平台上针对IPS引擎的流量引导方法为:采用导流组件和虚拟化平台的网络设备(vswitch、内核bridge等)串联,基于netfilter框架,在forwardhook点上注册过滤回调,将报文通过netlink的模式发送到netfilter queue,发送的时候进行了1次拷贝,用户态的IPS引擎使用netfilter queue的应用库,通过捕包接口(基于netlink接收消息)接收报文,并进行第2次拷贝,拷贝后的报文做IPS检测,并根据检测结果对流量进行放行、阻断、告警,IPS引擎以同样的方式将检测后放行的流量报文回流给内核态,可参考图1。
但是,经过测试,现有的kvm平台上针对IPS引擎的流量引导方法将网络性能降低了多达50%;而且,现有的kvm平台上针对IPS引擎的流量引导方法缺乏对用户业务的保护机制,IPS引擎基于复杂的规则对流量进行检测,消耗CPU资源很高,经过测试,在500Mbps-1Gbps的流量下,IPS引擎能占用整个***CPU的50%-60%,严重影响到用户业务的正常运行,不能平衡IPS安全和用户业务之间的资源分配,且如果用户态IPS引擎过载,hook的报文来不及处理,netfilter queue就会将报文丢弃,导致用户业务通信中断。
发明内容
针对现有技术存在的问题,本发明实施例提供一种针对IPS引擎的流量引导方法及装置。
本发明实施例提供一种针对IPS引擎的流量引导方法,应用于内核态的零拷贝流量引导模块,包括:
通过hook回调,接收netfilter框架发送的目标报文;
判断当前hook回调是否满足bypass条件;
若当前hook回调不满足bypass条件,则利用零拷贝技术,将所述目标报文的信息投递到用户态接收队列,以使用户态流量引导库从所述用户态接收队列获取所述目标报文的信息,以供IPS引擎通过调用所述用户态流量引导库获取所述目标报文的信息。
可选地,在判断当前hook回调是否满足bypass条件之后,所述方法还包括:
若当前hook回调满足bypass条件,则将netfilter框架发送的目标报文回流给netfilter框架。
可选地,所述判断当前hook回调是否满足bypass条件,包括:
判断当前hook回调中的最大并发是否超过预设最大并发数、以及判断当前hook回调中的流量是否超过预设流量阈值;
若当前hook回调中的最大并发超过预设最大并发数、或者当前hook回调中的流量超过预设流量阈值,则确定当前hook回调满足bypass条件,否则确定当前hook回调不满足bypass条件。
可选地,所述利用零拷贝技术,将所述目标报文的信息投递到用户态接收队列,以使用户态流量引导库从所述用户态接收队列获取所述目标报文的信息,以供IPS引擎通过调用所述用户态流量引导库获取所述目标报文的信息,包括:
通过内存映射的方式,从预先创建的预分配报文池中获取报文skb信息,并将包含报文skb信息的源报文信息填充到所述目标报文的信息中,将所述目标报文的信息中的skb指针映射转换为用户态可访问的指针后,将所述目标报文的信息投递到用户态接收队列,以使用户态流量引导库从所述用户态接收队列获取所述目标报文的信息,以供IPS引擎通过调用所述用户态流量引导库获取所述目标报文的信息。
可选地,所述方法还包括:
从用户态回流队列中获取经过IPS引擎检测后放行的目标报文的信息,所述经过IPS引擎检测后放行的目标报文的信息是IPS引擎对所述目标报文的信息进行检查放行后,通过用户态流量引导库投递到用户态回流队列中的;
在内核态中,将经过IPS引擎检测后放行的目标报文的信息中的skb报文回流到netfilter框架中;
在用户态中,将经过IPS引擎检测后放行的目标报文的信息归还给所述预分配报文池;
若经过IPS引擎检测后放行的目标报文的信息是被检测为阻断的,在内核态中直接释放报文skb信息。
可选地,所述通过hook回调,接收netfilter框架发送的目标报文,包括:
通过在netfilter框架的forward点注册的hook回调,接收netfilter框架发送的目标报文。
可选地,在通过hook回调,接收netfilter框架发送的目标报文之前,所述方法还包括:
获取用户态流量引导库设置的初始化接口参数和bypass的阈值,根据所述初始化接口参数,预先创建预分配报文池,所述报文池中的元素包含报文skb信息,所述bypass的阈值包括最大并发数和流量阈值;
预先创建用户态接收队列和用户态回流队列,并将用户态接收队列的信息和用户态回流队列的信息通过内存映射的方式写到目标设备中,以使用户态流量引导库的捕包接口,通过读取所述目标设备中的用户态接收队列的信息实现报文捕获,用户态流量引导库的回流接口通过读取所述目标设备中的用户态回流队列的信息实现报文回流;
向netfilter框架的forward点注册hook回调。
本发明实施例提供一种针对IPS引擎的流量引导装置,应用于内核态的零拷贝流量引导模块,包括:
接收模块,用于通过hook回调,接收netfilter框架发送的目标报文;
判断模块,用于判断当前hook回调是否满足bypass条件;
投递模块,用于若当前hook回调不满足bypass条件,则利用零拷贝技术,将所述目标报文的信息投递到用户态接收队列,以使用户态流量引导库从所述用户态接收队列获取所述目标报文的信息,以供IPS引擎通过调用所述用户态流量引导库获取所述目标报文的信息。
本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述方法的步骤。
本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述方法的步骤。
本发明实施例提供一种计算机程序产品,所述计算机程序产品包括计算机可执行指令,所述指令在被执行时用于实现如上述方法的步骤。
本发明实施例提供的针对IPS引擎的流量引导方法及装置,通过hook回调,接收netfilter框架发送的目标报文,判断当前hook回调是否满足bypass条件,若不满足,则利用零拷贝技术,将所述目标报文的信息投递到用户态接收队列,以使用户态流量引导库从所述用户态接收队列获取所述目标报文的信息,以供IPS引擎通过调用所述用户态流量引导库获取所述目标报文的信息,由此,能够实现kvm平台上针对IPS引擎的流量引导,与现有技术相比,本实施例可最大限度降低对网络流量的性能的影响,且能够有效降低对整个虚拟化平台的CPU资源的占用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术提供的内核虚拟机平台上针对IPS引擎的流量引导的原理示意图;
图2为本发明一实施例提供的一种针对IPS引擎的流量引导方法的流程示意图;
图3为本发明实施例提供的针对IPS引擎的流量引导的原理示意图;
图4为本发明一实施例提供的一种针对IPS引擎的流量引导装置的结构示意图;
图5为本发明一实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图2示出了本发明一实施例提供的一种针对IPS引擎的流量引导方法的流程示意图,参见图2,本实施例的针对IPS引擎的流量引导方法,包括:
S1、通过hook回调,接收netfilter框架发送的目标报文。
需要说明的是,本实施例所述针对IPS引擎的流量引导方法应用于内核虚拟机kvm平台上内核态的零拷贝流量引导模块,所述内核态的零拷贝流量引导模块是本实施例新增加的,所述内核态的零拷贝流量引导模块可以作为IPS***中的导流组件。
可以理解的是,hook即钩子,本实施例中,hook回调是指通过hook中的回调函数来捕获netfilter框架发送的目标报文。
在具体应用中,本实施例可以通过在netfilter框架的forward点注册的hook回调,接收netfilter框架发送的目标报文。
可以理解的是,forward点是网络报文在内核态的netfilter框架里面做转发的功能匹配点,即netfilter框架需在forward点对外接收报文及发送报文。本实施例可以预先在netfilter框架的forward点注册hook回调,然后利用在netfilter框架的forward点注册的hook回调,接收netfilter框架的forward点发送的目标报文。
可以理解的是,本实施例的内核态的零拷贝流量引导模块需要先通过hook回调,接收netfilter框架发送的目标报文,以便后续基于接收到的目标报文,实现kvm平台上针对IPS引擎的流量引导。
S2、判断当前hook回调是否满足bypass条件。
可以理解的是,本实施例的bypass是指超过IPS引擎检测能力的流量,直接放过不做检测。本实施例中,bypass的实现原理是:根据虚拟化平台的整体资源数量(如中央处理器CPU、内存)及部署时的流量估计,设置bypass的阈值(即IPS引擎的预设最大并发数和预设流量阈值),判断处理中的并发连接、流量如果超过阈值就对流量做bypass。
因此,在具体应用中,本实施例可以判断当前hook回调中的最大并发是否超过预设最大并发数、以及判断当前hook回调中的流量是否超过预设流量阈值;若当前hook回调中的最大并发超过预设最大并发数、或者当前hook回调中的流量超过预设流量阈值,则确定当前hook回调满足bypass条件,否则确定当前hook回调不满足bypass条件。
可以理解的是,本实施例的内核态的零拷贝流量引导模块在通过hook回调,接收netfilter框架发送的目标报文之后,需要判断当前hook回调是否满足bypass条件,以便后续根据判断结果进行相应处理,实现kvm平台上针对IPS引擎的流量引导。
S3、若当前hook回调不满足bypass条件,则利用零拷贝技术,将所述目标报文的信息投递到用户态接收队列,以使用户态流量引导库从所述用户态接收队列获取所述目标报文的信息,以供IPS引擎通过调用所述用户态流量引导库获取所述目标报文的信息
可以理解的是,在计算机领域,零拷贝技术描述的是CPU(中央处理器)不执行拷贝数据从一个存储区域到另一个存储区域的任务,这通常可用于通过网络传输一个文件时以减少CPU周期和内存带宽。本实施例中,所述目标报文在内核态和用户态检测引擎之间采用零拷贝的形式传递,网络性能损耗能够降低到5%。
可以理解的是,所述用户态流量引导库是本实施例在用户态新增加的,用于作为用户态的共享库(shared library),IPS引擎可以通过调用所述用户态流量引导库,获取所述目标报文的信息。
可以理解的是,本实施例中,在判断当前hook回调是否满足bypass条件之后,若当前hook回调满足bypass条件,则将netfilter框架发送的目标报文回流给netfilter框架(实际上就是回流给netfilter框架的forward点)。本实施例采用bypass机制,在IPS引擎过载的情况下,能够将过载流量快速bypass到通信链路中,使得IPS引擎对整个虚拟化平台的CPU资源的占用率小于20%,不影响正常业务。
本发明实施例提供的针对IPS引擎的流量引导方法,通过hook回调,接收netfilter框架发送的目标报文,判断当前hook回调是否满足bypass条件,若不满足,则利用零拷贝技术,将所述目标报文的信息投递到用户态接收队列,以使用户态流量引导库从所述用户态接收队列获取所述目标报文的信息,以供IPS引擎通过调用所述用户态流量引导库获取所述目标报文的信息,由此,能够实现kvm平台上针对IPS引擎的流量引导,与现有技术相比,本实施例可最大限度降低对网络流量的性能的影响(本实施例仅降低5%,而现有技术降低50%),且能够有效降低对整个虚拟化平台的CPU资源的占用率(本实施例占用整个虚拟化平台的CPU资源仅占20%,现有技术是占50%)。
基于上述实施例的内容,在本实施例中,所述利用零拷贝技术,将所述目标报文的信息投递到用户态接收队列,以使用户态流量引导库从所述用户态接收队列获取所述目标报文的信息,以供IPS引擎通过调用所述用户态流量引导库获取所述目标报文的信息,包括:
通过内存映射的方式,从预先创建的预分配报文池中获取报文skb信息,并将包含报文skb信息的源报文信息填充到所述目标报文的信息中,将所述目标报文的信息中的skb指针映射转换为用户态可访问的指针后,将所述目标报文的信息投递到用户态接收队列,以使用户态流量引导库从所述用户态接收队列获取所述目标报文的信息,以供IPS引擎通过调用所述用户态流量引导库获取所述目标报文的信息。
可以理解的是,skb(socket buffer)是Linux***中的套接字缓存,是Linux内核态内存存储网络报文的格式。本实施例获取报文skb信息并将包含报文skb信息的源报文信息填充到所述目标报文的信息中,是为了可以通过对skb指针的映射转换,使用户态能够对skb指针进行访问,并实现以零拷贝的方式,将所述目标报文的信息投递到用户态接收队列。由于网络报文的报文指针(即本实施例中的skb指针)在内核态和用户态不是同一个指针,必须做映射转换(即将skb指针映射转换为用户态可访问的指针)后,用户态的IPS引擎才可以访问。
可以理解的是,本实施例中,在判断当前hook回调是否满足bypass条件之后,若当前hook回调不满足bypass条件,通过内存映射的方式,从预先创建的预分配报文池中获取报文skb信息,并将包含报文skb信息的源报文信息填充到所述目标报文的信息中,将所述目标报文的信息中的skb指针映射转换为用户态可访问的指针后,能够实现以零拷贝的方式,将所述目标报文的信息投递到用户态接收队列,用户态流量引导库可以作为用户态共享库从所述用户态接收队列获取所述目标报文的信息,将所述目标报文的信息中所述目标报文的指针转换为用户态可访问的指针,以供IPS引擎调用所述用户态流量引导库时、通过所述用户态流量引导库中所述用户态可访问的指针,获取所述目标报文的信息。
基于上述实施例的内容,在本实施例中,在通过hook回调,接收netfilter框架发送的目标报文之前,本实施例所述方法还可包括初始化步骤,即:
获取用户态流量引导库设置的初始化接口参数和bypass的阈值,根据所述初始化接口参数,预先创建预分配报文池,所述报文池中的元素包含报文skb信息,所述bypass的阈值包括最大并发数和流量阈值;
预先创建用户态接收队列和用户态回流队列,并将用户态接收队列的信息和用户态回流队列的信息通过内存映射的方式写到目标设备(例如图3中的/dev/filterstat设备)中,以使用户态流量引导库的捕包接口,通过读取所述目标设备中的用户态接收队列的信息实现报文捕获,用户态流量引导库的回流接口通过读取所述目标设备中的用户态回流队列的信息实现报文回流;
向netfilter框架的forward点注册hook回调。
可以理解的是,所述bypass的阈值是用户态流量引导库根据内核虚拟机平台的资源而计算确定后,发送给内核态的零拷贝流量引导模块的。
可以理解的是,本实施例中,内核态的零拷贝流量引导模块需要先进行初始化,以便于后续在初始化的基础上,实现kvm平台上针对IPS引擎的流量引导。
需要说明的是,本实施例中,用户态流量引导库实现成shared library(共享库),由IPS引擎调用。主要功能包括:初始化、捕包接口、回流接口、调试统计接口。其中,初始化:根据虚拟化平台的资源,计算确定bypass阈值;将bypass阈值等参数通知给内核态的零拷贝流量引导模块进行资源的初始化。捕包接口:IPS引擎通过轮询的方式调用;从用户态接收队列中获取目标报文信息;将目标报文信息中的skb指针等转化为用户态可访问的指针。回流接口:回流接口的参数包含了报文信息、报文检查结果;将报文信息投递到对应的回流队列。调试统计接口:提供内核态运行状态查看功能;提供内核态负载情况包括:队列状态、处理流量、处理并发连接数等。
基于上述实施例的内容,在本实施例中,本实施例所述针对IPS引擎的流量引导方法还可以包括:
从用户态回流队列中获取经过IPS引擎检测后放行的目标报文的信息,所述经过IPS引擎检测后放行的目标报文的信息是IPS引擎对所述目标报文的信息进行检查放行后,通过用户态流量引导库投递到用户态回流队列中的;
在内核态中,将经过IPS引擎检测后放行的目标报文的信息中的skb报文回流到netfilter框架的forward点中;
在用户态中,将经过IPS引擎检测后放行的目标报文的信息归还给所述预分配报文池;
若经过IPS引擎检测后放行的目标报文的信息是被检测为阻断的,在内核态中直接释放报文skb信息,从而达到阻断通信的目标。
这样,本实施例能够实现从用户态回流队列中获取经过IPS引擎检测后放行的目标报文的信息,回流给netfilter框架。
可以理解的是,本实施例中,用户态流量引导库(API),作为shared library(共享库)给用户态IPS引擎调用,实现流量报文的捕获、回流。内核态的零拷贝流量引导模块,作为内核态LKM(Loadable Kernel Module,可加载内核模块)注册到netfilter的forward点,hook报文后通过内存映射的方式将报文指针传递到用户态接收队列,从用户态回流队列获取报文并将其回流给netfilter框架,可参考图3,图3为本实施例的kvm平台上针对IPS引擎的流量引导的原理示意图。
本发明实施例提供的针对IPS引擎的流量引导方法,应用于新增加的内核态的零拷贝流量引导模块,能够实现kvm平台上针对IPS引擎的流量引导,与现有技术相比,本实施例可最大限度降低对网络流量的性能的影响,且能够有效降低对整个虚拟化平台的CPU资源的占用率。
基于相同的发明构思,本发明另一实施例提供了一种针对IPS引擎的流量引导装置,参见图4,本实施例的针对IPS引擎的流量引导装置,包括:接收模块41、判断模块42和投递模块43;其中:
所述接收模块41,用于通过hook回调,接收netfilter框架发送的目标报文;
所述判断模块42,用于判断当前hook回调是否满足bypass条件;
所述投递模块43,用于若当前hook回调不满足bypass条件,则利用零拷贝技术,将所述目标报文的信息投递到用户态接收队列,以使用户态流量引导库从所述用户态接收队列获取所述目标报文的信息,以供IPS引擎通过调用所述用户态流量引导库获取所述目标报文的信息。
具体地,所述接收模块41通过hook回调,接收netfilter框架发送的目标报文;所述判断模块42判断当前hook回调是否满足bypass条件;所述投递模块43若当前hook回调不满足bypass条件,则利用零拷贝技术,将所述目标报文的信息投递到用户态接收队列,以使用户态流量引导库从所述用户态接收队列获取所述目标报文的信息,以供IPS引擎通过调用所述用户态流量引导库获取所述目标报文的信息。
需要说明的是,本实施例所述针对IPS引擎的流量引导装置应用于内核态的零拷贝流量引导模块,所述内核态的零拷贝流量引导模块是本实施例新增加的,所述内核态的零拷贝流量引导模块可以作为IPS***中的导流组件。
基于上述实施例的内容,在本实施例中,所述针对IPS引擎的流量引导装置还可以包括图中未示出的:
第一回流模块,用于若当前hook回调满足bypass条件,则将netfilter框架发送的目标报文回流给netfilter框架。
基于上述实施例的内容,在本实施例中,所述判断模块42,可具体用于
判断当前hook回调中的最大并发是否超过预设最大并发数、以及判断当前hook回调中的流量是否超过预设流量阈值;
若当前hook回调中的最大并发超过预设最大并发数、或者当前hook回调中的流量超过预设流量阈值,则确定当前hook回调满足bypass条件,否则确定当前hook回调不满足bypass条件。
基于上述实施例的内容,在本实施例中,所述投递模块43,可具体用于
若当前hook回调不满足bypass条件,则通过内存映射的方式,从预先创建的预分配报文池中获取报文skb信息,并将包含报文skb信息的源报文信息填充到所述目标报文的信息中,将所述目标报文的信息中的skb指针映射转换为用户态可访问的值后,将所述目标报文的信息投递到用户态接收队列,提供给用户态流量引导库供IPS引擎调用获取所述目标报文的信息。
基于上述实施例的内容,在本实施例中,所述针对IPS引擎的流量引导装置还可以包括图中未示出的:
获取模块,用于从用户态回流队列中获取经过IPS引擎检测后放行的目标报文的信息,所述经过IPS引擎检测后放行的目标报文的信息是IPS引擎对所述目标报文的信息进行检查放行后,通过用户态流量引导库投递到用户态回流队列中的;
第二回流模块,用于在内核态中,将经过IPS引擎检测后放行的目标报文的信息中的skb报文回流到netfilter框架中;
归还模块,用于在用户态中,将经过IPS引擎检测后放行的目标报文的信息归还给所述预分配报文池;
释放模块,用于若经过IPS引擎检测后放行的目标报文的信息是被检测为阻断的,在内核态中直接释放报文skb信息,从而达到阻断通信的目标。
基于上述实施例的内容,在本实施例中,所述接收模块41,可具体用于
通过在netfilter框架的forward点注册的hook回调,接收netfilter框架发送的目标报文。
基于上述实施例的内容,在本实施例中,所述针对IPS引擎的流量引导装置还可以包括图中未示出的:
初始化模块,用于获取用户态流量引导库设置的初始化接口参数和bypass的阈值,根据所述初始化接口参数,预先创建预分配报文池,所述报文池中的元素包含报文skb信息,所述bypass的阈值包括最大并发数和流量阈值;
创建模块,用于预先创建用户态接收队列和用户态回流队列,并将用户态接收队列的信息和用户态回流队列的信息通过内存映射的方式写到目标设备中,以使用户态流量引导库的捕包接口,通过读取所述目标设备中的用户态接收队列的信息实现报文捕获,用户态流量引导库的回流接口通过读取所述目标设备中的用户态回流队列的信息实现报文回流;
注册模块,用于向netfilter框架的forward点注册hook回调。
由于本实施例提供的针对IPS引擎的流量引导装置可以用于执行上述实施例所述的针对IPS引擎的流量引导方法,其工作原理和有益效果类似,故此处不再详述,具体内容可参见上述实施例的介绍。
本发明实施例提供的针对IPS引擎的流量引导装置,应用于新增加的内核态的零拷贝流量引导模块,能够实现kvm平台上针对IPS引擎的流量引导,与现有技术相比,本实施例可最大限度降低对网络流量的性能的影响,且能够有效降低对整个虚拟化平台的CPU资源的占用率。
基于相同的发明构思,本发明又一实施例提供了一种电子设备,参见图5,该电子设备可以包括存储器502、处理器501、总线503及存储在存储器502上并可在处理器501上运行的计算机程序,其中,处理器501,存储器502通过总线503完成相互间的通信。所述处理器501执行所述计算机程序时实现上述方法的步骤,例如包括:通过hook回调,接收netfilter框架发送的目标报文;判断当前hook回调是否满足bypass条件;若当前hook回调不满足bypass条件,则利用零拷贝技术,将所述目标报文的信息投递到用户态接收队列,以使用户态流量引导库从所述用户态接收队列获取所述目标报文的信息,以供IPS引擎通过调用所述用户态流量引导库获取所述目标报文的信息。
基于相同的发明构思,本发明又一实施例提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤,例如包括:通过hook回调,接收netfilter框架发送的目标报文;判断当前hook回调是否满足bypass条件;若当前hook回调不满足bypass条件,则利用零拷贝技术,将所述目标报文的信息投递到用户态接收队列,以使用户态流量引导库从所述用户态接收队列获取所述目标报文的信息,以供IPS引擎通过调用所述用户态流量引导库获取所述目标报文的信息。
基于相同的发明构思,本发明又一实施例提供了一种计算机程序产品,所述计算机程序产品包括计算机可执行指令,所述指令在被执行时用于实现上述方法的步骤,例如包括:通过hook回调,接收netfilter框架发送的目标报文;判断当前hook回调是否满足bypass条件;若当前hook回调不满足bypass条件,则利用零拷贝技术,将所述目标报文的信息投递到用户态接收队列,以使用户态流量引导库从所述用户态接收队列获取所述目标报文的信息,以供IPS引擎通过调用所述用户态流量引导库获取所述目标报文的信息。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (11)
1.一种针对IPS引擎的流量引导方法,其特征在于,应用于内核态的零拷贝流量引导模块,包括:
通过hook回调,接收netfilter框架发送的目标报文;
判断当前hook回调是否满足bypass条件;
若当前hook回调不满足bypass条件,则利用零拷贝技术,将所述目标报文的信息投递到用户态接收队列,以使用户态流量引导库从所述用户态接收队列获取所述目标报文的信息,以供IPS引擎通过调用所述用户态流量引导库获取所述目标报文的信息。
2.根据权利要求1所述的针对IPS引擎的流量引导方法,其特征在于,在判断当前hook回调是否满足bypass条件之后,所述方法还包括:
若当前hook回调满足bypass条件,则将netfilter框架发送的目标报文回流给netfilter框架。
3.根据权利要求1所述的针对IPS引擎的流量引导方法,其特征在于,所述判断当前hook回调是否满足bypass条件,包括:
判断当前hook回调中的最大并发是否超过预设最大并发数、以及判断当前hook回调中的流量是否超过预设流量阈值;
若当前hook回调中的最大并发超过预设最大并发数、或者当前hook回调中的流量超过预设流量阈值,则确定当前hook回调满足bypass条件,否则确定当前hook回调不满足bypass条件。
4.根据权利要求1所述的针对IPS引擎的流量引导方法,其特征在于,所述利用零拷贝技术,将所述目标报文的信息投递到用户态接收队列,以使用户态流量引导库从所述用户态接收队列获取所述目标报文的信息,以供IPS引擎通过调用所述用户态流量引导库获取所述目标报文的信息,包括:
通过内存映射的方式,从预先创建的预分配报文池中获取报文skb信息,并将包含报文skb信息的源报文信息填充到所述目标报文的信息中,将所述目标报文的信息中的skb指针映射转换为用户态可访问的指针后,将所述目标报文的信息投递到用户态接收队列,以使用户态流量引导库从所述用户态接收队列获取所述目标报文的信息,以供IPS引擎通过调用所述用户态流量引导库获取所述目标报文的信息。
5.根据权利要求1所述的针对IPS引擎的流量引导方法,其特征在于,所述方法还包括:
从用户态回流队列中获取经过IPS引擎检测后放行的目标报文的信息,所述经过IPS引擎检测后放行的目标报文的信息是IPS引擎对所述目标报文的信息进行检查放行后,通过用户态流量引导库投递到用户态回流队列中的;
在内核态中,将经过IPS引擎检测后放行的目标报文的信息中的skb报文回流到netfilter框架中;
在用户态中,将经过IPS引擎检测后放行的目标报文的信息归还给所述预分配报文池;
若经过IPS引擎检测后放行的目标报文的信息是被检测为阻断的,在内核态中直接释放报文skb信息。
6.根据权利要求1所述的针对IPS引擎的流量引导方法,其特征在于,所述通过hook回调,接收netfilter框架发送的目标报文,包括:
通过在netfilter框架的forward点注册的hook回调,接收netfilter框架发送的目标报文。
7.根据权利要求6所述的针对IPS引擎的流量引导方法,其特征在于,在通过hook回调,接收netfilter框架发送的目标报文之前,所述方法还包括:
获取用户态流量引导库设置的初始化接口参数和bypass的阈值,根据所述初始化接口参数,预先创建预分配报文池,所述报文池中的元素包含报文skb信息,所述bypass的阈值包括最大并发数和流量阈值;
预先创建用户态接收队列和用户态回流队列,并将用户态接收队列的信息和用户态回流队列的信息通过内存映射的方式写到目标设备中,以使用户态流量引导库的捕包接口,通过读取所述目标设备中的用户态接收队列的信息实现报文捕获,用户态流量引导库的回流接口通过读取所述目标设备中的用户态回流队列的信息实现报文回流;
向netfilter框架的forward点注册hook回调。
8.一种针对IPS引擎的流量引导装置,其特征在于,应用于内核态的零拷贝流量引导模块,包括:
接收模块,用于通过hook回调,接收netfilter框架发送的目标报文;
判断模块,用于判断当前hook回调是否满足bypass条件;
投递模块,用于若当前hook回调不满足bypass条件,则利用零拷贝技术,将所述目标报文的信息投递到用户态接收队列,以使用户态流量引导库从所述用户态接收队列获取所述目标报文的信息,以供IPS引擎通过调用所述用户态流量引导库获取所述目标报文的信息。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任一项所述方法的步骤。
11.一种计算机程序产品,所述计算机程序产品包括计算机可执行指令,其特征在于,所述指令在被执行时用于实现如权利要求1至7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010034035.2A CN111277509B (zh) | 2020-01-13 | 2020-01-13 | 针对ips引擎的流量引导方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010034035.2A CN111277509B (zh) | 2020-01-13 | 2020-01-13 | 针对ips引擎的流量引导方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111277509A true CN111277509A (zh) | 2020-06-12 |
CN111277509B CN111277509B (zh) | 2023-12-05 |
Family
ID=70998924
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010034035.2A Active CN111277509B (zh) | 2020-01-13 | 2020-01-13 | 针对ips引擎的流量引导方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111277509B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101789883A (zh) * | 2009-01-23 | 2010-07-28 | 英业达股份有限公司 | 一种入侵检测的数据获取方法 |
US7773507B1 (en) * | 2006-06-30 | 2010-08-10 | Extreme Networks, Inc. | Automatic tiered services based on network conditions |
CN101977154A (zh) * | 2010-11-16 | 2011-02-16 | 杭州迪普科技有限公司 | 一种智能的流量安全处理控制方法及装置 |
CN104580120A (zh) * | 2013-10-28 | 2015-04-29 | 北京启明星辰信息技术股份有限公司 | 一种可按需服务的虚拟化网络入侵检测方法和装置 |
CN106603427A (zh) * | 2017-01-17 | 2017-04-26 | 汉柏科技有限公司 | 防火墙中实现软件bypass的方法及装置 |
CN106850565A (zh) * | 2016-12-29 | 2017-06-13 | 河北远东通信***工程有限公司 | 一种高速的网络数据传输方法 |
CN107342968A (zh) * | 2016-05-03 | 2017-11-10 | 阿里巴巴集团控股有限公司 | 网页服务器的攻击检测方法、装置及*** |
CN109150741A (zh) * | 2018-08-10 | 2019-01-04 | Oppo广东移动通信有限公司 | 报文发送方法、装置、电子设备及存储介质 |
CN109525500A (zh) * | 2018-12-27 | 2019-03-26 | 北京天融信网络安全技术有限公司 | 一种自调整阈值的信息处理方法及信息处理装置 |
CN109561105A (zh) * | 2018-12-29 | 2019-04-02 | 江苏博智软件科技股份有限公司 | 一种基于报文零拷贝方式的高性能报文捕获发送平台 |
CN109889499A (zh) * | 2019-01-17 | 2019-06-14 | Oppo广东移动通信有限公司 | 报文发送方法及相关装置 |
-
2020
- 2020-01-13 CN CN202010034035.2A patent/CN111277509B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7773507B1 (en) * | 2006-06-30 | 2010-08-10 | Extreme Networks, Inc. | Automatic tiered services based on network conditions |
CN101789883A (zh) * | 2009-01-23 | 2010-07-28 | 英业达股份有限公司 | 一种入侵检测的数据获取方法 |
CN101977154A (zh) * | 2010-11-16 | 2011-02-16 | 杭州迪普科技有限公司 | 一种智能的流量安全处理控制方法及装置 |
CN104580120A (zh) * | 2013-10-28 | 2015-04-29 | 北京启明星辰信息技术股份有限公司 | 一种可按需服务的虚拟化网络入侵检测方法和装置 |
CN107342968A (zh) * | 2016-05-03 | 2017-11-10 | 阿里巴巴集团控股有限公司 | 网页服务器的攻击检测方法、装置及*** |
CN106850565A (zh) * | 2016-12-29 | 2017-06-13 | 河北远东通信***工程有限公司 | 一种高速的网络数据传输方法 |
CN106603427A (zh) * | 2017-01-17 | 2017-04-26 | 汉柏科技有限公司 | 防火墙中实现软件bypass的方法及装置 |
CN109150741A (zh) * | 2018-08-10 | 2019-01-04 | Oppo广东移动通信有限公司 | 报文发送方法、装置、电子设备及存储介质 |
CN109525500A (zh) * | 2018-12-27 | 2019-03-26 | 北京天融信网络安全技术有限公司 | 一种自调整阈值的信息处理方法及信息处理装置 |
CN109561105A (zh) * | 2018-12-29 | 2019-04-02 | 江苏博智软件科技股份有限公司 | 一种基于报文零拷贝方式的高性能报文捕获发送平台 |
CN109889499A (zh) * | 2019-01-17 | 2019-06-14 | Oppo广东移动通信有限公司 | 报文发送方法及相关装置 |
Non-Patent Citations (1)
Title |
---|
魏春花: "基于网络的应用识别及控制***设计", 《硕士论文》, pages 2 * |
Also Published As
Publication number | Publication date |
---|---|
CN111277509B (zh) | 2023-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9824215B2 (en) | System, method, and computer program product for monitoring and/or analyzing at least one aspect of an invocation of an interface | |
US10083302B1 (en) | System and method for detecting time-bomb malware | |
Srivastava et al. | Tamper-resistant, application-aware blocking of malicious network connections | |
US20180285564A1 (en) | Detecting an attempt to exploit a memory allocation vulnerability | |
CN114244560B (zh) | 流量处理方法及装置,电子设备,存储介质 | |
US9009332B1 (en) | Protection against network-based malicious activity utilizing transparent proxy services | |
He et al. | Masq: Rdma for virtual private cloud | |
US11743161B2 (en) | Container network interface monitoring | |
CN112039887A (zh) | Cc攻击防御方法、装置、计算机设备和存储介质 | |
Michelin et al. | Mitigating dos to authenticated cloud rest apis | |
US11563761B2 (en) | Deep packet analysis | |
US10243988B2 (en) | Configurable network security | |
CN111277509B (zh) | 针对ips引擎的流量引导方法及装置 | |
CN110808967B (zh) | 挑战黑洞攻击的检测方法及相关装置 | |
JP2019152912A (ja) | 不正通信対処システム及び方法 | |
KR101053470B1 (ko) | 유해 트래픽 제어 및 해킹을 차단하는 장치 및 방법 | |
Dashtbozorgi et al. | A high-performance and scalable multi-core aware software solution for network monitoring | |
CN111277567B (zh) | 入侵防御处理方法及装置 | |
CN115190077B (zh) | 控制方法、装置及计算设备 | |
KR20110036426A (ko) | 스택 역추적 장치 및 방법 | |
CN113726799B (zh) | 针对应用层攻击的处理方法、装置、***和设备 | |
CN116015844A (zh) | 一种数据流量检测方法、***及电子设备 | |
CN117354047A (zh) | 数据包控制方法、装置、设备、存储介质以及程序产品 | |
CN116346499A (zh) | 恶意流量清洗方法、装置、电子设备及存储介质 | |
Shlingbaum et al. | Virtualized network packet inspection |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088 Applicant after: QAX Technology Group Inc. Applicant after: Qianxin Wangshen information technology (Beijing) Co.,Ltd. Address before: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088 Applicant before: QAX Technology Group Inc. Applicant before: LEGENDSEC INFORMATION TECHNOLOGY (BEIJING) Inc. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |