22
哈尔滨工业大学软件工程有限公司 1 互联网海量内容 安全处理技术的研究 哈尔滨工业大学软件工程有限公司 撰稿人 宋益波 报告人 程峰 2006.3.30

互联网海量内容 安全处理技术的研究 - CERT...数将在函数goto报告fail时被调用。关键词所设置的每个标识都 被找到后,输出的状态是一个被指定的确定状态。output函数

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 互联网海量内容 安全处理技术的研究 - CERT...数将在函数goto报告fail时被调用。关键词所设置的每个标识都 被找到后,输出的状态是一个被指定的确定状态。output函数

哈尔滨工业大学软件工程有限公司

1

互联网海量内容安全处理技术的研究

哈尔滨工业大学软件工程有限公司

撰稿人 宋益波报告人 程峰

2006.3.30

Page 2: 互联网海量内容 安全处理技术的研究 - CERT...数将在函数goto报告fail时被调用。关键词所设置的每个标识都 被找到后,输出的状态是一个被指定的确定状态。output函数

哈尔滨工业大学软件工程有限公司

2

目 录

概述

基于零拷贝技术的高速网络实时报文捕获技术

原理

性能

高性能字符串匹配有限状态机算法

原理

性能

TCP/IP并行协议栈还原技术

应用

Page 3: 互联网海量内容 安全处理技术的研究 - CERT...数将在函数goto报告fail时被调用。关键词所设置的每个标识都 被找到后,输出的状态是一个被指定的确定状态。output函数

哈尔滨工业大学软件工程有限公司

3

互联网与生俱有的开放性、交互性和分散性特征使人类所憧憬的信息共享、开放、灵活和快速等需求得到满足。网络环境为信息共享、信息交流、信息服务创造了理想空间,网络技术的迅速发展和广泛应用,为人类社会的进步提供了巨大推动力。然而,正是由于互联网的上述特性,在为人们工作带来便利的同时,随之而来的便是日趋严重的网络安全问题。

信息泄漏、信息污染、信息不易受控。例如,资源未授权侵用、未授权信息流出现、系统拒绝信息流和系统否认等,这些都对网络信息安全构成了威胁。

概述

Page 4: 互联网海量内容 安全处理技术的研究 - CERT...数将在函数goto报告fail时被调用。关键词所设置的每个标识都 被找到后,输出的状态是一个被指定的确定状态。output函数

哈尔滨工业大学软件工程有限公司

4

计算机系统遭受病毒感染和破坏的情况也相当严重。据

国家计算机病毒应急处理中心公布的数据分析,从国家计算

机病毒应急处理中心日常监测结果看来,计算机病毒呈现出

异常活跃的态势。这些病毒很大一部分都是通过网络传播的

蠕虫病毒,这些病毒破坏力强,传播速度快,很难加以清

除,对局域网的影响尤其严重。

Page 5: 互联网海量内容 安全处理技术的研究 - CERT...数将在函数goto报告fail时被调用。关键词所设置的每个标识都 被找到后,输出的状态是一个被指定的确定状态。output函数

哈尔滨工业大学软件工程有限公司

5

为了应对这些普遍存在的网络安全问题,各种解决方案和新的技术都不断的得到应用,但是随着互联网网络用户的增加,以及各种高速网络服务应用的增加,带来了网络传输数据量的极大增加,原有的网络安全技术远不能够满足现在高速网络的安全需求。这就对网络安全技术发展提出了新的考验。下面介绍的几项安全处理技术成为解决当今存在的网络安全问题的重要武器,零拷贝技术,并行协议栈技术以及高性能字符串匹配有限状态机技术都是我公司投入大量的人力物力资源所取得的研究成果。

Page 6: 互联网海量内容 安全处理技术的研究 - CERT...数将在函数goto报告fail时被调用。关键词所设置的每个标识都 被找到后,输出的状态是一个被指定的确定状态。output函数

哈尔滨工业大学软件工程有限公司

6

1. 基于零拷贝技术的高速网络实时报文捕获技术

1.1 原理

所谓零拷贝是指在某节点的报文收发过程中不会出现任何

内存间的拷贝,发送时数据包由应用程序的用户缓冲区直接经

过网络接口到达外部网络,接收时网络接口直接将数据包送入

用户缓冲区。

这是“真正的零拷贝(True Zero Copy)”。

Page 7: 互联网海量内容 安全处理技术的研究 - CERT...数将在函数goto报告fail时被调用。关键词所设置的每个标识都 被找到后,输出的状态是一个被指定的确定状态。output函数

哈尔滨工业大学软件工程有限公司

7

图1 零拷贝工作流程图

Page 8: 互联网海量内容 安全处理技术的研究 - CERT...数将在函数goto报告fail时被调用。关键词所设置的每个标识都 被找到后,输出的状态是一个被指定的确定状态。output函数

哈尔滨工业大学软件工程有限公司

8

如图1零拷贝工作流程图所示,图形的上部为传统的捕包模块,下部为采用零拷贝技术的捕包模块。零拷贝技术通过操作系统给网卡和用户区开了一段共用内存,网卡接收到的数据都被写到这段共用内存中,在这段内存区中存在着接收环和发送环,接收环存储着从网卡上接收来的数据,发送环存储着要通过网卡进行发送的用户数据。因为这段内存是网卡和用户区共用的,所以只要网卡接收到数据,用户程序就可以直接对这些数据进行访问和操作。同样的只要用户区程序有网络数据要发送,就可以由网卡程序直接发送。这减少了不必要的系统数据调用,减少了中断,使CPU能够有更多的时间来处理其它事情。

Page 9: 互联网海量内容 安全处理技术的研究 - CERT...数将在函数goto报告fail时被调用。关键词所设置的每个标识都 被找到后,输出的状态是一个被指定的确定状态。output函数

哈尔滨工业大学软件工程有限公司

9

1.2 性能零拷贝技术具有很高的性能,通过我们采用linux上的捕包

系统Libpcap捕包模块与其零拷贝技术进行试验对比,其中网卡为Intel 845系列千兆光纤网卡。

表1 性能对比图

捕包系统Libpcap(普通捕包程序) 零拷贝系统

系统平台 Linux Linux

每 秒 发 送 报 文 数(64byte/packet)

14Mpackets/S 70Mpackets/S

每 秒 接 收 报 文 数(64bytes/packet)

20Mpackets/ S 130Mpacket/s

CPU 占用(866M) >90% <50%

Page 10: 互联网海量内容 安全处理技术的研究 - CERT...数将在函数goto报告fail时被调用。关键词所设置的每个标识都 被找到后,输出的状态是一个被指定的确定状态。output函数

哈尔滨工业大学软件工程有限公司

10

从以上的图表中可以看出,零拷贝系统不论是发包还是

收包都是传统的libpcap系统的5倍以上,它极大的提高了

系统的数据处理能力,使得系统能够有更多宝贵的CPU处理

时间来处理其它的高级应用。

Page 11: 互联网海量内容 安全处理技术的研究 - CERT...数将在函数goto报告fail时被调用。关键词所设置的每个标识都 被找到后,输出的状态是一个被指定的确定状态。output函数

哈尔滨工业大学软件工程有限公司

11

2.高性能字符串匹配有限状态机算法

该算法是基于应用层报文内容实时分析的核心算法。该算

法是根据Bell实验室Aho-Corasick 博士的研究成果而设计

的,这种简单有效的算法用来在一串文本中确定给定的一组关

键字在文本中发生的频度,它具有匹配速度快、占用CPU少、

适合海量数据的网络环境等优点。

Page 12: 互联网海量内容 安全处理技术的研究 - CERT...数将在函数goto报告fail时被调用。关键词所设置的每个标识都 被找到后,输出的状态是一个被指定的确定状态。output函数

哈尔滨工业大学软件工程有限公司

12

该算法开始使用关键字构建一个有限状态机 然后使用该有限状态机来处理需要查询的文本串。构造的模式匹配状态机所占用的内存和所有关键字的总长度有关。在处理文本串的时候,由模式匹配机所构成的状态迁移的数量与关键字的个数无关而与这些关键字中最长的那个关键字所含有的字母个数有关。这个算法包含两个部分,第一部分使用一组关键字来构建一个确定状态自动机。第二部分把文本串作为状态机的输入,每当这个状态机发现一个关键字匹配后,都会给出一个相应的信号。

Page 13: 互联网海量内容 安全处理技术的研究 - CERT...数将在函数goto报告fail时被调用。关键词所设置的每个标识都 被找到后,输出的状态是一个被指定的确定状态。output函数

哈尔滨工业大学软件工程有限公司

13

2.1 原理

假设K = {y1, y2, ……, yk} 是一批有限的将要调用的关键

字的字符串,并且给定x是将要调用的一些文本字符串中的任

意字符串。本算法所要解决的问题是标识在x中的那些关键字

K子字符串。

这个模式匹配机是由一批状态所构成的。每个状态用一个

数来描述。这个机器将字符串x以持续流的方式读入x中的符

号。模式匹配机的行为有三个函数:跳转函数g,失败函数f,

和输出函数output。图2表示了一个按关键词字符串 {he, she,

his, hers} 所建立的模式匹配机。

Page 14: 互联网海量内容 安全处理技术的研究 - CERT...数将在函数goto报告fail时被调用。关键词所设置的每个标识都 被找到后,输出的状态是一个被指定的确定状态。output函数

哈尔滨工业大学软件工程有限公司

14

图2 状态机 构造图

Page 15: 互联网海量内容 安全处理技术的研究 - CERT...数将在函数goto报告fail时被调用。关键词所设置的每个标识都 被找到后,输出的状态是一个被指定的确定状态。output函数

哈尔滨工业大学软件工程有限公司

15

一个状态(通常是0)被指示为开始状态。在图2中这些状态是0, 1, …, 9。goto函数g输入当前状态和字符构成的一个数据状态。图2 (a)中直接描述了这个goto函数。例如从0-1边上的记号h表示g(0,h)=1。没有箭头指示的输入表示失败。因而g(1,σ)=fail,σ是e和i以外的任意符号。在状态0时goto函数的这个特性确保每一个机器周期处理一个输入符号。

failure函数f映射了一个状态到另一个状态,这个failure函数将在函数goto报告fail时被调用。关键词所设置的每个标识都被找到后,输出的状态是一个被指定的确定状态。output函数给定了所设置的关键词(可能为空)和每个状态的结合。模式匹配机的一个操作周期是定义成跟随的。让s为当前机器的状态并且a是当前的输入字符串中的一个符号。

Page 16: 互联网海量内容 安全处理技术的研究 - CERT...数将在函数goto报告fail时被调用。关键词所设置的每个标识都 被找到后,输出的状态是一个被指定的确定状态。output函数

哈尔滨工业大学软件工程有限公司

16

如果 g(s,a)=s’,则机器执行goto转换。这将进入s’状态,并且x字符串中的下一个符号变成当前的符号。

如果 g(s,a)=fail,机器将调用failure函数进行失败转换。如果f(s)=s’,机器将替换s’为当前状态,a是当前输入符号。

当需要被处理的文本串到来的时候,文本串逐次通过状态机,每输入一个字符后,状态机都会对应一个状态输出,而通过对当前状态机状态的分析就可以判断出需要被查询的字符串所出现的频度。

Page 17: 互联网海量内容 安全处理技术的研究 - CERT...数将在函数goto报告fail时被调用。关键词所设置的每个标识都 被找到后,输出的状态是一个被指定的确定状态。output函数

哈尔滨工业大学软件工程有限公司

17

2.2 性能

这种算法是当今字符串查询算法中匹配速度最快的一

种。查寻速度与关键词的数量没有关系,而是与关键词序列

中最长的单词字母个数有关。这就非常适合进行对大容量关

键词库进行信息查询。通过我们的试验,以随机获得的100个

英文单词为例,并以Boyer-Moore算法作为对比,对两万个

单词的文本进行查询,状态机算法的查询时间不到BM算法查

询速度的十分之一。

Page 18: 互联网海量内容 安全处理技术的研究 - CERT...数将在函数goto报告fail时被调用。关键词所设置的每个标识都 被找到后,输出的状态是一个被指定的确定状态。output函数

哈尔滨工业大学软件工程有限公司

18

3.TCP/IP并行协议栈还原技术

并行协议栈还原技术就是采用多线程技术将捕获的以太

网数据报文还原成应用层数据来进行高效分析处理。底层的

网卡捕包程序把网络数据报文提交给应用层程序处理,当不

使用并行协议栈时,底层的数据必须等应用层的程序处理完

报文之后才可以处理新的网络数据,当数据流量大的时候,

底层捕包程序往往速度更快,数据缓冲区马上就被填满,从

而造成底层数据的堵塞,形成瓶颈。

Page 19: 互联网海量内容 安全处理技术的研究 - CERT...数将在函数goto报告fail时被调用。关键词所设置的每个标识都 被找到后,输出的状态是一个被指定的确定状态。output函数

哈尔滨工业大学软件工程有限公司

19

而使用并行协议栈之后,首先要对从网络上捕获的数据报文运用协议分析程序进行分析,并按照协议的不同把相应的报文加入到各自的协议报文数据处理模块中,协议分析采用的方法就是通过不同协议各自特定的网络端口,并根据常用协议的各自的协议特点来区分所属协议。多个协议报文数据处理模块在计算机中以多线程的方式并行运行,这样就大大提高了应用层报文协议的处理效率。目前的并行协议栈已经支持的应用层协议有HTTP、FTP、SMTP、POP3、IMAP、TELNET等。根据我们的实际应用结果,发现使用并行协议栈之后系统的处理效率要提高2到3倍。

Page 20: 互联网海量内容 安全处理技术的研究 - CERT...数将在函数goto报告fail时被调用。关键词所设置的每个标识都 被找到后,输出的状态是一个被指定的确定状态。output函数

哈尔滨工业大学软件工程有限公司

20

以上这些 内容安全处理技术 已经在网络安全领域中得到了广泛的应用。

1、在一个互联网安全技术项目上,零拷贝技术和高效有限状态机技术得到了很好的应用,实现了对互联网上特定信息的成功捕获。

2、在防病毒网关系统中也得到了很好的应用,防病毒网关就是通过在网关对网络数据报文进行检查,当发现含有网络病毒的数据报文出现时,就阻断这条连接,从而实现阻断网络病毒在网络中传播的目的。在网络服务器上安装零拷贝模块,可以提高报文捕获速度,同时在上层的病毒特征码匹配模块中,加入有限状态机算法,又可以提高对报文的分析速度。该系统已经被国内的好几所重点院所采用。该系统的应用成功的遏制了网络病毒在互联网上快速传播的势头,保障了网上系统的安全运行。

应用

Page 21: 互联网海量内容 安全处理技术的研究 - CERT...数将在函数goto报告fail时被调用。关键词所设置的每个标识都 被找到后,输出的状态是一个被指定的确定状态。output函数

哈尔滨工业大学软件工程有限公司

21

3、对于一些涉密的政府机关和公司,采用以上技术的

网络安全系统也得到了广泛的应用,这几项技术的应用满足

了这些部门局域网的海量数据处理要求,使这些部门用最少

的投入取得了最大的经济效益,同时很好的解决了这些部门

当前所面临的严峻的网络安全问题,对网络数据进行了很好

的分析,有效地防止了泄密事件的发生。

综上所述,零拷贝技术,并行协议栈技术以及高效字符

串匹配有限状态机算法在网络安全领域中得到了广泛的应

用,有效地保障了海量信息互联网的网络安全。

Page 22: 互联网海量内容 安全处理技术的研究 - CERT...数将在函数goto报告fail时被调用。关键词所设置的每个标识都 被找到后,输出的状态是一个被指定的确定状态。output函数

哈尔滨工业大学软件工程有限公司

22

谢谢!