您好,欢迎来到欧得旅游网。
搜索
您的当前位置:首页基于DPDK的虚拟化网络入侵防御系统设计与实现

基于DPDK的虚拟化网络入侵防御系统设计与实现

来源:欧得旅游网
/-------------------------

n

C

tinfo

security

x2018年第5期

■ doi :10.3969/j.issn.1671-1122.2018.05.005

技术研究国

基于DPDK的虚拟化网络入侵防御系统

设计与实现

-------------------刘超玲 '

张梭 '

杨慧然口,吴宏晶口---------------------(1.中国科学院信息工程研究所,北京100195 ; 2.中国科学院大学网络空间安全学院,北京100195 )

NIDS/NIPS软件Snort和Iptables数据处理性能的不足,文章提

出一种基于DPDK的虚拟化网络入侵防护系统vD-IPS0vD-IPS系统的整体架构,重点设计和实现了基于DPDK零拷贝的入侵检测模块、流量清洗模块。针对多元的 攻击环境,设计并实现了模式匹配算法的选择机制。经过实验验证,vD-IPS满足入 侵检测、流量清洗的功能需求,vD-IPS接收与检测报文单核比Snort提升约1.64倍,双核提升约2.62倍;vD-IPS转发报文单核比Iptables提升约1.56倍,双核提升约1.89 倍,三核提升约2.21倍。与Snort和Iptables相比,vD-IPS在具有相同的入侵检测与 防护能力的情况下还具有更优的性能,并且随着核数的增加,vD-IPS性能有进一步 的提升。另外,vD-IPS具备模式匹配算法选择功能,对于不同的模式串规模和字符 串长度,vD-IPS可以灵活选择对应最优的算法。

关键词:NIPS ; DPDK ;入侵检测;流量清洗;模式匹配

重要手段。针对现有

摘要:面对日益严峻的网络安全威胁,NIDS/NIPS成为实现网络安全防护的

中图分类号:TP309文献标识码:A文章编号:1671-1122 (2018) 05-0041-11

中文引用格式:刘超玲,张核,杨慧然,等息网络安全,

.基于DPDK的虚拟化网络人侵防御系统设计与实现[J].信

2018 (5): 41-51.

英文引用格式:LIU Chaoling,ZHANG Yan,YANG Huiran,et al. Design and Implementation of a DPDK-based Virtual NIPS[J]. Netinfo Security, 2018 (5) : 41-51.

Design and Implementation of a DPDK-based Virtual NIPS

LIU Chaoling12, ZHANG Yan12, YANG Huiran12,WU Hongjing1,2

(1. Institute of Information Engineering, Chinese Academy of Sciences, Beijing 100195, China.,2. School of Cyber Security, University of Chinese Academy of Sciences, Beijing 100195, China)

Abstract: As the threat of network security, NIDS/NIPS have become an important way to protect network environment. Considering the existing NIDS/NIPS software, such as Snort and Iptables have ineffective data processing performance, this paper propose a DPDK based Virtual NIPS(vD-IPS).This paper design the overall architecture of the system, highlighting the packet connection and detection module and packet cleaning module. Considering the multiple attack environments, this paper design and implement a mechanism of pattern matching algorithm selection. After experimental verification, vD-IPS Satisfy the

收稿日期:2018-1-15

基金项目:国家自然科学基金[61701494]

\"2—),女,广东,硕士研究生,主要研究方向为虚拟化与安全防护;张樅(198〇—),男,四川,副研究员,博

士,主要研究方向为内容网络与安全、网络虚拟化与安全、大数据技术;杨慧然(19列一),女,山西,硕士,主要研究方向为网络虚拟化; 吴宏晶(1993—),男,福建,硕士研究生,主要研究方向为网络虚拟化与安全。通信作者:刘超玲 liuchaoling@iie.ac.cn

作者简介:刘超玲(I

41

I

.nCtinfo security

技术研究

2018年第5期

requirements of intrusion detection and packet cleaning. Compare to Snort, the performance of packet connection and detection of vD-IPS with one core increased by 1.64 times and two cores has increased by 2.62 times. Comparing to Iptables, the performance of packet cleaning of vD-IPS with one core has increased by 1.56 times and two cores have increased by 1.89 times and three cores have increased by 2.21 times. In conclusion, vD-IPS performs better with the same abilities of detection and protection comparing to Snort and Iptables. With the increasing numbers of cores, vD-IPS has further improvement of performance. vD-IPS can select different pattern matching algorithm which has the best matching effect according to the character set size and string length of different pattern string.

Key words: NIPS; DPDK ; intrusion detection; packet cleaning; pattern matching

〇引言

随着计算机和网络技术的高速发展,网络安全 问题也日益严峻。据统计,常见的网络安全威胁主 要有病毒、木马、缓冲区溢出攻击、拒绝服务攻 击等几大类。目前,网络人侵检测系统(Network

IntrnsionDetectionSystems,NIDS)

可在通用服务器上灵活部署的虚拟化NIDS/NIPS引 起了业界的广泛关注。

Snortm

是应用广泛的开源N

IDS

软件,采用

Libpcap或Winpcap获取报文,基于日志记录的规贝IJ

来执行内容模式匹配,检测各种攻击和探测。类似 的软件还有Suricata[8]、Pfsensep],都是基于Snort改 进的。Iptables™是典型的NIPS软件,通过Netfilter 获取报文,通过命令行配置防护规则,可识别2~4 层包头信息,且支持TCP状态监测。类似的软件还 有 shorewall[11]、UFW[12】、Vuurmuur[13],与 Iptables 功 能相似。

与传统硬件设备相比,以Snort和Iptables为代表 的虚拟化NIDS/NIPS软件具有成本低、部署灵活和 扩展性好的优点。然而,Snort和Iptables的性能与传 统硬件设备相比仍然相差较远,难以满足高吞吐率人 侵检测的要求。制约Snort、IptableS等虚拟化NIDS/

NIPS性能的主要因素是数据处理效率低下,具体而言, Snort、Iptables 等软件米用 libpcap 或 netfilter 获取报文,

⑴、网络人侵防御

系统(Network Intrusion Prevention System,NIPS) H 是实现网络安全防护的重要手段。NIDS依照一定的安 全策略,对流经的每一个数据包或可疑数据包进行 特征分析,尽可能发现各种攻击企图、攻击行为或 者攻击结果,以保证网络系统资源的机密性、完整 性和可用性,代表性产品有ISS Real Secure Network

SensorP]、Cisco Secure IDS[4]等。NIPS 则可以看做是 NIDS的升级和扩展:不仅可以通过检测流经的网络

流量来发现安全威胁,还可以通过对人侵行为的进 一步处理来提供对网络系统的安全保护。NIPS采用 在线连接方式实时处理各种人侵流量,需要具备很 高的性能以免成为网络的瓶颈,代表性产品有绿盟 科技NGIPS[5】、天融信IPS[6]等。

传统NIDS/NIPS通常由硬件构成,由专业的设 备商制造生产,需要依赖多种设备和软件协同操作, 具备可靠性好、性能强大等优点,但也存在成本高、 部署不灵活、可扩展性差等缺点。随着云计算技术 的兴起和普及,对安全设备的部署成本、灵活性和 可扩展性都提出了越来越高的要求。传统的硬件化 的NIDS/NIPS难以适应云环境下安全随服务迁移、 动态灵活部署与配置带来的挑战,因此由软件实现,

需要频繁的内存拷贝和系统调用,并且Snort、Iptables 等软件通常是单线程处理模式,容易使接收队列长时 间处于阻塞等待状态,从而严重制约其报文处理性能。

DPDK (Data Plane Development Kit) [14]技术的出现贝 IJ

有望使虚拟化NIDS/NIPS的数据处理效率成倍提升, 从而显著提升其性能和应用范围。

DPDK是Intel公司开发的一款高性能的网络驱

动组件,基于轮询方式的PM驱动,利用 UI0(

D(Poll Mode Drivers)

LinuxUserspaceI/0)和 Linux 亲和

42

性支持,利用大页缓存支持,提供内存池和无锁环 形缓存管理,旨在为数据面应用程序提供一个简单 方便的、完整的、快速的数据包处理解决方案。

传统Linux内核协议栈与DPDK的系统处理对比 如图1所亦,DPDK绕过了 Linux内核的网络驱动模块, 直接从网络硬件到达用户空间,不需要进行频繁的内 存拷贝和系统调用。根据官方给出的数据,DPDK裸 包反弹每个包需要80个时钟周期,而传统Linux内 核协议栈每包需要2000~4000个时钟周期。

DPDK能显著提升虚拟化网络设备的数据处理

效率,在网络设备IT化的大趋势下拥有很好的应用 前景,目前已经得到业界的极大关注。而且,DPDK 部署灵活方便,支持独立部署与合并部署,支持云 环境下的虚拟机部署与容器部署。在

DPDK基础上

设计与开发新型虚拟化网络人侵防护系统,与在传 统协议栈上部署NIDS/NIPS软件相比,DPDK由于 具有减少报文拷贝次数,亲和性强等特点,理论上 可以显著提升报文的处理能力。

对于

NIDS/NIPS

软件,模式匹配(Pattern

Matching )[15]也是制约其数据处理性能的一个重要 因素。模式匹配应用在NIDS/NIPS软件中的人侵检 测部分,NIDS/NIPS软件将已知的攻击模式或敏感词 文本存放在数据库中,并将接收到的网络报文与之 进行匹配,若匹配成功,则说明该网络报文可能含 有人侵行为。目前,多模式匹配算法主要有前缀搜 索、后缀搜索和子串搜索3大类。其中,前缀搜索

n

Ctinfo security

/2〇18年第5期

技术研究_

算法有A

C

自动机算法[16]以及针对它的优化提升算

法(AC_BM算法問、AC_QS算法间等),后缀搜索 算法有CW算法[19]、W

M

算法[2。]以及关于它们的优

化算法等,子串搜索算法有SBDM算法pl]、SB0M算 法p2]和关于它们的优化算法等。现有的NIDS/NIPS 软件一般只使用一种模式匹配算法,缺少模式匹配 算法的选择机制,无法适应不同的网络环境,所以 必须设计一种行之有效的模式匹配算法选择方法。

本文针对现有的NIDS/NIPS软件的缺点,设计 并实现了基于DPDK的新型虚拟化网络人侵防护系统

vD-IPS (DPDK-based Virtual NIPS),并设计了一种模

式匹配算法选择方法以适应多元的网络环境,使其具 有良好的应用和部署前景。本文的工作主要包括:

1)

设计与实现vD-IPS软件模块。使用模块化

设计方法,为vD-IPS划分独立的功能模块,对各个 功能模块进行独立开发。其中,针对Snort和Iptables 数据处理效率低下的缺陷,设计并实现了基于DPDK 零拷贝的人侵检测模块、流量清洗模块。

2) 设计vD-IPS模式匹配算法选择机制。通过

比较常见多模式匹配算法算法在不同模式串的字符集 规模和字符串长度情况下的优势与不足,根据3种算 法各自的优势,设计vD-IPS模式匹配算法选择机制, 以适应不同的攻击应用场景。

3)

实验验证。通过设计实验,验证了vD-IPS具

备针对IP扫描、Probe探测、缓冲区溢出攻击、RPC 端口扫描、sadmind ping、DDoS等网络攻击的人侵 检测能力,具备对特定五元组特征的报文进行转发、

NAT修改、丢弃操作的流量清洗能力。同时验证了 vD-IPS

的人侵检测性能明显优于Snort,流量清洗性

能明显优于Iptables。值得一提的是,随着核数的增 加,vD-IPS较单线程模式的Snort和Iptables性能进 一步提升。另外,设计实验验证vD

-IPS

具备模式匹

配算法选择功能,对于不同的模式串规模和字符串长 度,vD-IPS模式匹配算法选择机制可以灵活选择对应 最优的算法。

43

I

.nCtinfo security

技术研究

2018年第5期

IvD-IPS软件模块设计与实现

1.1总体方案设计

一个完整的NIPS软件功能包括人侵检测、流量 清洗两大功能,人侵检测模块通过检测流经的网络流 量来发现安全威胁,流量清洗模块通过对人侵行为的 进一步处理来提供对网络系统的安全保护。VD-IPS系 统除了涵盖上述功能外,增加了独立于系统之外的管 理功能,便于管理员对VD-IPS

系统进行控制;增

Agent功能,用于vD-IPS

系统与管理功能交互。

vD-IPS系统是基于DPDK开发的,整个系统架构于

DPDK套件之上,接下来首先对DPDK的组件和框架

做一个概要介绍。

1.1.1DPDK 框架

整个DPDK系统由许多不同组件组成,各组件 为应用程序和其他组件提供调用接口。如图2所示,

DPDK主要有如下6

个核心组件。

DPDK^用

非DPDK应用

Sched库

内核网络接口库

网络协议定义

Hash/Lpm库meter/power以太网轮询模式(Pm〇驱动

Pm d ring 库

Pmd pcap 库

PmdelOOO库 Pmd igxbe库 Pmdvirtio库

图2DPDK整体框架

1)环境抽象层(EAL):为DPDK其他组件和

应用程序提供一个屏蔽具体平台特性的统一接口。 环境抽象层提供的功能主要有:DPDK加载和启动、

44

支持多核或多线程执行类型、CPU核亲和性处理、 原子操作和锁操作接口、时钟参考、P

CI总线访问

接口、跟踪和调试接口、CPU特性采集接口、中断 和告警接口等。

2)

堆内存管理组件(Malloc Lib):堆内存管理组

件为应用程序提供从大页内存分配堆内存的接口。当 需要分配大量内存小块时,使用这些接口可以减少

TLB

缺页。3)

环缓冲区管理组件:环缓冲区管理组件为应

用程序和其他组件提供一个无锁的多生产者多消费 者 FIFO 队列 API (Ring)。

Ring 借鉴了 Linux 内核

kfifo

无锁队列,可以无锁出人队,支持多消费/生产

者同时出人队。

4)

内存池管理组件:为应用程序和其他组件提

供分配内存池的接口,内存池是由多个固定大小的内 存块组成的内存容器,可用于存储相同对象实体,如

报文缓存块等。内存池由名称来作为唯一标识,它由

一个环缓中区和一组核本地缓存队列组成,每个核从 自已的缓存队列分配内存块,当本地缓存队列减少到 一定程度时,从内存环缓冲区中申请内存块来补充本 地队列。

5)

网络报文缓存块管理组件:提供应用程序创

建并释放用于存储报文信息的缓存块的接口,这些

MBUF存储在内存池中。提供两种类型的MBUF,一

种用于存储一般信息,一种用于存储报文数据。

6)

定时器组件:提供一些异步周期执行的接口,

可以指定某个函数在规定的时间异步执行,在主循环 中周期调用rte_timer_manage来使定时器得到执行。

除了以上6个核心组件外,DPDK还提供以下功能。1)

以太网轮询模式驱动(PMD)架构:把以太网

驱动从内核移到应用层,采用同步轮询机制而不是内

核态的异步中断机制来提高报文的接收和发送效率。

2)

报文转发算法支持:Hash库和LPM库为报

文转发算法提供支持。

3) 网络协议定义和相关宏定义:基于FreeBSD

n

C

tinfo

SECURIT\\

^018年第5期

技术研究_

IP

协议栈的相关定义,如TCP、UDP、SCTP等协议 根据模块化思想,本文将vD-IPS划分成Agent 模块、入侵检测模块、记录上报模块、流量清洗模块

头定乂。

4)

报文QoS调度库:支持随机早检测、流量整 4个模块。此外,还有独立的控制管理模块提供用户

图形接口,用于管理系统信息、规则信息、统计信息。

vD-IPS系统的详细设计方案如图4

形、严格优先级和加权随机循环优先级调度等相关

QoS功能。

所示。

5) 内核网络接口库(KNI):提供一种DPDK应

用程序与内核协议栈通信的方法,类似普通Linux的

TUN/TAP接口,但比TUN/TAP接口效率高,每个物

理网口可以虚拟出多个KNI接口。

1.1.2VD-IPS整体设计

vD-IPS

系统的整体架构及在网络拓扑中的位置

如图3所示,数据包流量在部署了 vD-IPS系统的网 络中的处理流程如下:

1)

SDN交换机粗粒度检测,若为正常流量,则通过路由器进入主机。

2) 若为可疑流量则拷贝至vD-IPS入侵检测模块:(1)

由入侵检测模块判断是否为异常流量,若为

正常流量,不作处理;

(2)

若为异常流量,贝I油控制管理模块通知SDN交换机将这部分流量导流至流量清洗模块,由流量清

洗模块对其进行处理。

需要特别说明的是,SDN交换机不属于本文vD-IPS 设计与实现的范畴,后续的设计与实现将略去SDN 交换机的作用。

图4VD-IPS详细设计方案

1) Agent模块。负责与控制管理模块进行交互, 起到vD-IPS系统主体与控制管理模块之间信息的上

传下达功能。交互内容包括:向控制管理模块注册 vD-IPS系统信息,接收控制管理模块下发的规则表

项,向控制管理模块上传异常流量信息,接收控制管 理模块下发的安全策略等。Agent模块通过socket套 接字和约定好的消息协议与控制管理模块进行通信。

2)

入侵检测模块。负责接收数据报文,对经过

解析和预处理的数据包进行扫描和检测。入侵检测 模块基于DPDK零拷贝的接收报文机制,绑定多张网 卡,使用网卡多队列模式协同捕获数据包,对数据 包进行解析、预处理,依照系统的入侵规则库对经 过处理的报文进行模式匹配,检测出潜在的入侵攻击。

3)

记录上报模块。负责报文信息记录和异常报

文上报。记录上报模块定时遍历待处理缓冲区,将检 测匹配结果记录至系统日志。将非法数据包进行报文 信息和动作信息的封装,并由Agent模块上传给控制

45

I

.nC

tinfo

security

技术研究

2018年第5期

管理模块。

4)

流量清洗模块。负责对数据流量进行清洗。

(1) 对数据包进行解码分析;(2)

遍历预处理插件,对经解码分析后的数据包

数据清洗模块按照系统的安全策略对报文进行ACL

(Access Control List)

进行预处理;

(3)

遍历规则库,对经预处理后的数据包进行检

规则匹配,根据匹配结果对报文

进行处理,处理方式包括丢弃、转发、NAT等。

5)

测匹配,得到数据包的检测匹配结果;

(4)

将所述检测匹配结果按照一定的格式封装成

控制管理模块。管理员操作vD-IPS系统的

接口,管理员可通过图形界面查看系统信息,查看人 侵检测统计信息,查看现有规则,生成和下发人侵 检测规则,生成和下发流量清洗安全策略,与SDN

交换机交互等操作。

在vD-IPS系统中,人侵检测模块、流量清洗模 块是设计和实现的重点功能模块,下文将对这两个模 块的设计和实现方法做详细的介绍。

1.2入侵检测模块设计与实现

如前文所述,Snort是基于Libpcap或Netfilter进

行报文采集,用户程序读取数据报需经历多次内存拷 贝和系统调用。vD-IPS基于DPDK开发套件对其进 行改进,使用UI0技术使报文缓冲区与用户程序直 接映射,大大减少了内存拷贝和系统调用次数。利用

Linux CPU亲和性,使单个处理器能使用线程级并行

计算。

人侵检测模块整体上包括初始化和数据包处理 两个阶段。初始化阶段主要进行以下操作:

1) 绑定CPU与网卡端口,设置环形缓冲区和接

收队列。

2) 设置Snort预处理插件,解析规则配置文件,解析规则。

3) 初始化DPDK环境抽象层。

数据包处理阶段流程如图5所示,循环进行以下 操作。

1)

若定时器时间到,则从指令缓冲区中提取控

制器发来的指令,解析所述指令后执行对应的处理 程序。

2)

遍历绑定的接收队列,对每个队列提取报文。对每个报文执行以下操作:

46

消息,存入待处理缓冲区,以供数据清洗模块处理。

图5入侵检测模块数据处理流程

1.3流量清洗模块设计与实现

Iptables在内核空间中的Netfiltei■读取报文,报

文处理性能不高。此外,Iptables规则表项多且复 杂,容易造成规则失效。为了克服Iptables报文处理 性能不高这一缺点,vD-IPS基于DPDK多核机制和

DPDK-ACL算法设计流量清洗机制。流量清洗模块

整体上包括初始化和数据包处理两个阶段。初始化阶 段主要进行以下操作:

1)

绑定CPU与网卡端口,设置环形缓冲区和接

收队列。

2) 初始化DPDK环境抽象层。

n

Ctinfo security

/2〇18年第5期

技术研究_

3)拷贝清洗规则。

清洗模块数据处理流程如图6所示,循环执行 以下操作:

1)

SBOM算法3

AC

种。

算法是1975年贝尔实验室的两位研究人员

Alfred V. Aho 和 Margaret J. Corasick 提出的。AC 算法米

若定时器时间到,检查rte_acl_field结构体数 用自动机,利用模式字符前缀的相关性增加跳跃步数,

组是否更新。若更新,则调用DPDK-ACL接口,更 新

rte_acl_ctx规则树。

2) 遍历绑定的接收队列,对每个队列提取报文。对每个报文执行以下操作:

(1) 对数据包进行解码分析。(2) 遍历rte_acl_ctx规则树,对数据包进行匹配。

(3)

按照规则匹配结果,对报文进行处理。处理

方式包括丢弃、转发、NAT。

(4)

将匹配结果内容定时记录至系统日志,其中,记录的内容包括时间戳、报文信息、匹配结果和处理 动作。

图6清洗模块数据处理流程

2VD-IPS模式匹配方法2.1常见的模式匹配算法

目前处理效率较好的算法有AC算法、WM

算法、

具有线性的时间复杂度,但自动机占用空间比较多,空 间复杂度大,不适合处理成千上万个模式串。W

M

法是基于子串的多模式串匹配算法, 使用Factor Oracle

自动机,自动机构建过程快,最坏情况下时间复杂度 大,平均花费时间消耗并不是线性的。SBOM算法采

用块匹配的方式,占用内存小,当不匹配情况较多时,

匹配速度快,但不适合应用在模式串较短的情况下。

这3个算法在不同数量模式串和不同大小模式字

符集上的性能是有差别的P],具体关系如表1所示。

表1AC算法、SBOM算法、WM算法对比

模式串

棋式串宇 效率最髙的

算法优点

算法缺点

长度

符集

算法

采用自动机,利用模式宇符前缀的相关

空间比较多,空间复杂度

AC

自动机占用算法

性增加跳跃步数,具有线性的时间复杂

大,不适合处理成千上万个模式串

采用块匹配的方式,占用内存小,当不

长或短大

TM

算法

不适合应用在棋式串较短的情况下

匹配情况较多时,匹配速度快

基于子串的多模式串匹配算法,使用

花费 长小

SBOM算法Factor Oracle最坏情况下时间复杂度大,平均自动机,自动机构建过

时间消耗并不是线性的

程快

可以看出,对于模式串字符集规模大的系统, 使用W

M

算法效率最优;对于模式串字符集规模小

的,模式串长度短的系统,使用AC

算法效率最优;

对于模式串字符集规模小,模式串长度长的系统, 使用SBOM算法效率最优。多元化的网络攻击环境 使系统的模式串长度和字符集大小存在差异,而现 有的NIDS/NIPS软件一般只使用一种模式匹配算法, 缺少模式匹配算法的选择机制,无法适应不同的部 署环境。

2.2VD-IPS模式匹配方法

如前所述,多元化的网络攻击环境使检测人

侵的模式串长度和字符集大小存在差异,而现有的

NIDS/NIPS软件缺少模式匹配算法的选择机制,难

以适应复杂多元的攻击类型。在深人调研模式匹配 算法的基础上,本文提出一种模式匹配算法的选择

机制:针对AC算法、W

M

算法、SBOM算法3种模

47

ACL .Q NFO SECURITY

技术研究

2018年第5期

式匹配算法各自优势,根据不同的系统需求,采用 不同的模式匹配算法,以达到最优的处理效率。具 体的选择过程如图7所示。

图7VD-IPS模式匹配方法

模式串字符集数目超过1000的系统环境使用

WM

算法,模式串字符集规模小于1000,模式串长

度小于50的系统环境使用AC

算法,而模式串字符

集规模小于1000,模式串长度大于50的系统环境 使用SB0M算法。

3VD-IPS功能与性能验证 3.1实验环境

实验使用3台服务器A、B、C,操作系统使用

Ubuntul4.04amd64,需要支持大页内存、多核和多队

列,分别安装两块Intel万兆网卡。服务器A上安装

DPDK-Pktgen发包软件用于发送报文;服务器B上安

装vD-IPS、1_1)168和311(:)11,用于接收和处理服务器

A

发送的报文;服务器C上安装Python Scapy用于接

收服务器B发送的报文。

接下来将分别测试vD-IPS的人侵检测模块、流 量清洗模块的功能和性能。

3.2入侵检测能力测试

人侵检测能力的测试拓扑如图8所示。48

服务器A

服务器B

安装DPDK-Pkgen、Tcpreplay

安装vD-IPS、Snort

图8入侵检测能力的测试拓扑

3.2.1功能测试

为了直观验证vD-IPS的人侵检测功能,本文使 用

DARPA2000数据集_

模拟人侵攻击流量。

DARPA2000数据集是人侵检测领域使用最为广

泛的测试数据集,该数据集模拟了某国空军基地的 主机被实施分布式拒绝服务攻击的情形。它包括两 个攻击场景LLDOS1.0和LLD0S2几2。

攻击场景LLDOS1.0包括的攻击类型有IP扫 描、Probe探测、缓冲区溢出攻击、RPC端口扫描、

sadmindping、DDoS攻击等。

攻击场景LLDOS2.0.2所包含的攻击类型与

LLDOS1.0类似,不同的是LLDOS2.0.2先人侵一台

主机,再使用攻击脚本攻击其他主机,攻击手段更 为隐蔽。由于vD-IPS尚未集成木马病毒检测机制, 因此剔除了 LLDOS2.0.2数据集中的Mstream木马软 件攻击部分。

实验使用代表性的商用IDSRealSecure作为对照 数据,使用检测率和误报率作为测试指标。检测率 反映了识别攻击的能力,其计算公式为:

检测率=

检测攻击数 x总攻击数

100%

误报率反映了报警的准确性,其计算公式为:

误报率=总报?总报报S警数f難

X腦

月艮务器A使用Tcprepla/1]高速率重放DARPA 2000 数据集的离线文件,将流量发送到服务器B上的

vD-IPS,vD-IPS对产生的流量进行检测分析,将

vD-IPS

的检测结果写人mongoDB数据库中。实验结

果如表2所示。

表2vD-IPS与RealSecure检测与报警数对比

数据集

检测工具

总攻击数

检测攻击数

检测率/%总报警数真实报警数

误报率/%vD-IPS

33175.84LLD0S1. 0

147

10672. 111370RealSecure88

59.86181315791.34vD-IPS

55.561373078. 10LLD0S2. 0. 2

18

10RealSecure

13

72.22

914

33

96.39

对比两个场景的数据可以看出,场景LLDOS 1.0总 攻击数明显多于场景LLD0S 2.0.2,这从侧面说明了在场 景LLD0S 2.0.2中攻击者采用的方法比较高明,难以察 觉。值得一提的是,每次攻击可能造成多个报警,所以 报警数大于总攻击数。

从测试结果可以看出,面对高速率的攻击流 量,vD-IPS检测率在56%〜72%左右,与RealSecure 60%〜72%的检测率基本相当;vD-IPS平均的误报 率在76%左右,显著低于RealSecure91%〜96%的误 报率。可以得出,vD-IPS具备针对IP扫描、Probe 探测、缓冲区溢出攻击、RPC端口扫描、sadmind

ping、DDoS等网络攻击的人侵检测能力。

3.2.2性能测试

为了验证vD-IPS的人侵检测性能,设计实验与

Snort进行对比。服务器A

使用DPDK-Pktgen发包软

件向服务器B发送高速率随机报文(发送速率基本 达到线速,约9.8Mbit/s)。在服务器B上测出vD-IPS/

Snort接收与检测报文所需的平均时间。通过比对接

收与检测报文所需的平均时间,可以比对vD-IPS和

Snort接收与检测报文的性能。

实验结果如图9所示,vD-IPS单核接收与检测 报文所需的时间为931叫,双核为583叫,Snort为 1526阼。可以得出,相同实验环境下,vD-IPS单核

图9vD-IPS与Snort对比

CriNFO SECURITY

^018年第5期

技术研究

接收与检测报文性能比Snort提升约1.64倍,双核 比Snort提升约2.62倍,vD-IPS

的人侵检测性能明

显优于Snort。

3.3流量清洗能力测试 3.3.1功能测试

为了验证vD

-IPS

的流量清洗功能,在服务器A

上使用DPDK-Pktgen发包软件向服务器B发送高速 率随机报文,服务器B上的vD-IPS对服务器A发来 的报文进行流量清洗。流量清洗功能包括转发、丢弃、

NAT3

种操作,分别对应以下3条规则:1

)

R192.168.1.14/32 192.168.1.12/32 0 : 65535 0 :

65535 0/0x0 0;

2) @192.168.1.14/32 192.168.1.12/32 0 : 65535 0 :

65535 0/0x0;

3)

N192.168.1.14/32 192.168.1.12/32 0 : 65535 0 :

65535 0/0x0 192.168.1.13/32 192.168.1.11/32 0 : 65535 0:65535 0/0x0 0。

服务器C安装Python Scapy嗅探报文用以验证

vD-IPS的流量清洗功能,实验结果如表3所示。

表3流量清洗模块功能测试结果

操作方法

预期效果

实验结果

将指定五元组信息的报文 报文转发

服务器C收到转发的报文

服务器C收到转发的报文

从指定端口转发出去

报文丢弃

将指定五元组信息的报文 服务器C接收不到报文

服务器C接收不到报文

丢弃

将指定五元组信息的报文

服务器C收到经过NAT后的 服务器C收到经过NAT后的 报文NAT

转化为另一五元组信息并 报文

报文

从指定端口转发出去

从表3可以看出,vD-IPS具备流量清洗功能, 支持对报文进行端口转发、丢弃和NAT操作。

3.3.2性能测试

为了验证vD-IPS的流量清洗性能,选择端口转 发操作作为测试对象,设计实验与Iptables进行对比。 在服务器A上使用DPDK-Pktgen发包软件向服务 器

B

发送高速率随机报文,由服务器B上的vD-IPS/

Iptables将特定信息的报文转发至服务器C,服务器C

上使用Python Scapy测出接收特定数量报文所需时间。 通过接收特定数量报文所需的时间大小,可以比对

vD-IPS数据清洗模块与Iptables数据清洗功能的性能。

49

I

.

n

C

nfosecurity

技术研究

2018年第5期

实验结果如图10所示,vD-IPS转发特定数量 报文所需的时间单核为34叫,双核为28叫,三核 为24叫,IPtablesS53叫。可以得出,相同实验环 境下,vD-IPS转发报文单核比Iptables性能提升约 1.56倍,双核比Iptables性能提升约1.89倍,三核 比Iptables性能提升约2.21倍,vD-IPS的流量清洗 性能明显优于Iptables。

n 60

枳 Iptables vD-IPS 单核 vD-IPS 双核 vD-IPS 三核

图10性能测试对比

3.4模式匹配选择机制测试

为了测试vD

-IPS

系统模式匹配算法选择机制是

否能够正常工作,在服务器A上使用DPDK-Pktgen发 包软件向服务器B发送高速率随机报文,服务器B 上的VD-IPS对服务器A发来的报文进行处理。通过 改变vD

-IPS

系统规则模式串的规模和模式串长度,

通过在不同模式串的规模和长度条件下,测试vD-IPS 系统模式匹配算法选择机制是否正常工作。测试拓扑 如图11所示。

服务器A

服务器B

安装 DPDK-Pkgen

安装 vD-IPS

图11模式匹配选择测试拓扑

测试结果如表4所示,模式串字符集数目为2000 的系统环境使用W

M

算法,模式串字符集规模为

500,模式串长度为20的系统环境使用AC算法,而 模式串字符集规模为500,模式串长度为80的系统 环境使用SB0M算法。vD-IPS系统模式匹配算法选 择机制正常工作,且达到预期效果。

50

表4模式匹配选择测试结果

模式串字符集数

模式串长度vD-IPS系统选择的算法

是否达到预期

200020/80WM算法是50020AC算法是500

80

SB0M算法

通过本文实验,可以验证vD-IPS实现了实时流 量分析,能完成协议分析,内容查找匹配,能用来探 测多种攻击和嗅探,如

IP

扫描、Probe探测、缓冲区

溢出攻击、RPC端口扫描、sadmindping和跨站脚本 攻击等。另外,vD-IPS实现了对特定五元组特征的 报文进行处理,可以对其进行转发、NAT修改、丢弃 操作。同时,vD-IPS的人侵检测性能明显优于Snort,

流量清洗性能明显优于Iptables。值得一提的是,随 着核数的增加,vD-IPS的性能较单线程模式的Snort 和Iptables进一步提升。另外,vD-IPS具备模式匹配 算法选择功能,对于不同的模式串规模和字符串长度,

vD-IPS可以灵活选择对应的最优算法。

4结束语

针对现有NIDS/NIPS软件的缺点,本文提出一 种基于DPDK的虚拟化网络人侵防护系统vD-IPS,并 为其提供模式匹配算法选择机制,旨在提升其数据处 理性能,适应多元的应用场景。

本文设计了 vD-IPS

系统的整体架构,重点设计

并实现了 vD

-IPS

的流量人侵检测模块、流量清洗模

块。人侵检测模块基于DPDK零拷贝技术,多网卡多 队列协同处理报文;流量清洗模块基于DPDK-ACL

算法对网络流量进行处理,包括转发、丢弃、NAT等 操作。

现有多模式匹配算法在不同的应用场景下各有优 劣,本文设计并实现了模式匹配算法的选择机制,对 于不同的应用场景,使用对应最优的模式匹配算法, 以适应多元的网络攻击环境。

本文通过实际系统测试对vD-IPS的功能和性能 进行了验证,实验结果显亦,与Snort相比,vD-IPS 单核接收与检测报文性能比Snort提升约1.64倍,双

核比Snort提升约2.62倍;与Iptables相比,vD-IPS 单核转发报文性能提升约1.56倍,X又核性能提升约 1.89倍,三核性能提升约2.21倍。另外,经过测试,

vD-IPS

具备模式匹配算法选择功能,对于不同的模

式串规模和字符串长度,vD-IPS

模式匹配算法选择

机制可以灵活选择对应的最优算法。

与传统NIDS/NIPS硬件设备相比,vD-IPS具有 部署灵活、成本低的优势;而与现有NIDS/NIPS软 件

Snort和Iptables相比,vD-IPS在具有相同的人侵

检测与防护能力的情况下还具有更优的性能。另外,

vD-IPS

模式匹配算法选择灵活,可以适应多元的网

络攻击环境。

未来的工作将进一步扩展vD-IPS的流量清洗功 能,使其功能更趋完善,同时进一步优化vD-IPS系 统代码,充分挖掘DPDK及模式匹配算法的潜能,使

vD-IPS的数据处理性能达到更优的水平。•(责编程斌)

参考文献:

[1] of NCAO Netinfo Security,2012(9):12—etwork Zijian,ZHAO Intrusion DYufeng,RONG etection Xiaofeng.Platform Design 14.Cooperating with Firewall[J]. 曹子建,赵宇峰,容晓峰.网络入侵检测与防火墙联动平台设计[J]. 信息网络安全,2012(9):12-14.

Prevention [2] QING Technology,2003(6):101—System Hao,YUand AN103.Its HImonplemgchuentation[J].Cn.Researchom on munications Intrusion 卿昊,袁宏春■入侵防御系统(IPS)的技术研究及其实现[J].通信 技术,2003(6):10卜103.

[3] com.au/article/41942/flaw_iss_realsecure/,2018—l —ISS. Flaw: ISS RealSecure[EB/OL]. https://www.computerworld. 10.

u[4] ids2cspm—6117.html,2018—l —s/suCISppCoO. rt/dCociscos/se[EcuBrity/OL/ip].h 10.

s —ttp 42s://w0 — series —sensors/6117 ww.cisco.com/c/en—/ 〇 IPS/10662340?fr=aladdin#5,2018-l-10.

[5] NSFOCUS. NGIPS[EB/OL]. https://baike.baidu.com/item/NG bjaq/rqfytopidp/ips/index.htm,2018—l —[6] TOPSEC. topsec IPS[EB/OL]. http://www.topsec.com.cn/aqcp/ Packet [7] LI Kang, XIN Yang, ZH 10.

Snort[J].Netinfo Security,2012(10):23—Capture Module in Intrusion U Hongliang. Analysis and Design of 28.

Detection System Based on n

Ctinfo security

/2〇18年第5期

技术研究_

李康,辛阳,朱洪亮.Snort入侵检测系统中数据包捕获模块的分析 与设计[J]■信息网络安全,2012(10):23-28.

[8] SURICATA. Suricata[EB/OL]. https://suricata-ids.org/, 2018—

1-[9] PFSENSE. Pfsense[EB/OL]. https://www.pfsense.org/,2018—l —10.

2018-1-10.

[10] NETFILTER. Iptables [EB/OL]. https://www.netfilter.org/, 10.[11] SHOREWALL. shorewall[EB/OL]. www.shorewall.net/,2018—1 —ubuntu.org.cn/Ufw/,2018—1 —[12] UBUNTU, wiki. Ufw UserGuide[EB/OL]. http://wik 10.i. vuurmuur.org/trac/,2018—1 —[13] VUURMUUR. Vuurm 10.

uur Firewall[EB/OL]. https://www. [14] Press,2011.

[15] INTEL. DPDK[EB/OL], http://w 10.

CHENG Jie.Data Structures[M]. wBeijing: w.dpdk.org,2018-l-10.TsingHua University 程杰.大话数据结构[M].北京:清华大学出版社,2011.

Approach [16] SIMONE F, THIERRY Notes in Computer Science, 2012, 72(76):172—to Speed up String ML. atching A Multiple AlgorithmSliding s [J]. WLecture indows Matching Algorithm[J].Computer Engineering,2012, 38(6): [17] WU Xihong,ZENG Feng.Research on AC 183.

Multiple 279—Pattern 281. 巫喜红,曾锋.AC多模式匹配算法研究[J].计算机工程,2012, 38(6):279-281.

M[18] DONG Zhixin,FANG Binxing.Optimization Research Computer and Applications,2017,7(5):100—ulti Pattern Matching Algorithm Based 103.on AC_QS[J].Intelligent of 董志鑫,方滨兴.基于AC_QS多模式匹配算法的优化研究[J].智 能计算机与应用,2017,7(5):100-103.

http://blog.csdn.net/qq_32023541/article/details/79171797, [19] QQ_32023541.The Principle of CW Clustering Algorithm[EB/OL]. 12018 — -Im[20] 10.

in plemZHentation AO Guofeng,Yof a Multi-pE Fei,YAO Yongan,et al. Design and Security,2018(l):52-57.

Cloud Center Network Intrusion attern String Detection Matching System[J].Netinfo Algorithm 赵国锋,叶飞,姚永安,等.一种面向云中心网络入侵检测的多模式 匹配算法[J].信息网络安全,2018(1):52-57.

in [21] Content-based XMLIU Ping, TAN Jianlong.A L Filtering[J].Journal Fast String of Chinese Matching Infomation Algorithm Processiog,2005(2):20—27.刘萍,谭建龙.XML内容筛选中的快速串匹配算法[J].中文信息学 报,2005(2):20-27.

Detection System Based on SBOM Algorithm[J].Intelligent Computer

[22] ZHOU Lihua.The Implementation of Network Intrusion and Applications,2013,3(3):9〇

—92.周丽华.基于SBOM算法的网络入侵检测系统的实现[J].智能计算 机与应用,2013,3(3):90-92.

51

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- ovod.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务