1、 本科毕业设计 ( 20 届) 网络流量应用层特征提取与分析 所在学院 专业班级 通信工程 学生姓名 学号 指导教师 职称 完成日期 年 月 - 1 - 摘 要 随着网络的日益普及,流量识别技术也随之快速地发展。特别是应用层的协议层出不穷,尤其是 P2P 技术更是在近年来被广泛应用 于文件共享、语音视频服务、流媒体、即时通信等领域。随之而来的网络流量泛滥,网络带宽快速消耗、网络拥塞现况严重等等,快速、准确识别网络流量成为 了 研究的重点。深度包检测技术( DPI)是近年来出现的一种协议识别技术,该技术通过深入 IP 包的内容来对 OSI 七层协议中的应用层信息进行重组,从而识别出 IP 包的应
2、用层协议类型。本文利用 EtherPeek 软件分别对 OICQ、 HTTP、 FTP、 PPLIVE 四种网络协议的应用层 特征进行提取和分析, 生成流量特征正则表达式,添加到流量分析软件 L7-filter 的规则库中, 进行特征串的 匹配验证,从而达到对网络流量的识别过滤目的。 关键词: 应用层特征;正则表达式; L7-filter;模式匹配; - 2 - Abstract With the network popularization, Traffic identification has been increasing developed. Especially the applic
3、ation layer protocol emerge in endlessly, especially in recent years, P2P technology has been widely used in the file sharing, speech video service, streaming media, instant communication, etc. Followed by the proliferation of network traffic, network bandwidth consumed quickly, serious, and so the
4、status of network congestion, rapid, accurate identification of network traffic has become the focus of the study.Deep packet inspection (DPI) in recent years the emergence of a protocol identification technology, which IP packets through in-depth content on the OSI seven layer protocol information
5、in the application layer to restructure IP packets to identify the type of application layer protocol . In this paper, EtherPeek software respectively OICQ, HTTP, FTP, PPLIVE and other network traffic characteristics of the application layer data extraction and analysis, traffic generation character
6、istics of a regular expression, added to the traffic analysis software L7-filter rule base in the feature string match verification, so as to achieve the identification of network traffic filtering purposes. Key Words: Application layer Feature; Regular expression; L7-filter; Pattern matching; - 3 -
7、 目 录 1 引言 . - 1 - 1.1 研究背景 . - 1 - 1.2 识别技术 . - 1 - 1.2.1 深度包检测技术( DPI) . - 1 - 1.2.2 深度 /动态流检测技术( DFI) . - 2 - 1.2.3 两种检测技术的比较 . - 3 - 1.3 论文研究内容 . - 3 - 1.4 论文结构 . - 4 - 2 系统分析与设计 . - 5 - 3 应用层特征的提取 . - 6 - 3.1 QICQ . - 6 - 3.2 人人网 . - 8 - 3.2.1 HTTP. - 8 - 3.2.2 人人网应用 . - 9 - 3.3 FTP . - 10 - 3.4
8、 PPLIVE . - 12 - 3.5 分析结论 . - 13 - 4 流量识别模块设计 . - 15 - 4.1 正则表达式 . - 15 - 4.1.1 正则表达式介绍 . - 15 - 4.1.2 正则表达式应用 . - 16 - 4.2 模式匹配算法 . - 16 - 4.2.1 KMP 算法 . - 17 - 4.2.2 Boyer-Moore 算法 . - 17 - 4.2.3 Aho-Corasick 算法 . - 18 - 4.3 L7-FILTER 模块 . - 19 - 4.3.1 L7-filter 原理 . - 19 - 4.3.2 L7-filter 的模板文件 .
9、 - 19 - 5 系统实现 . - 22 - 5.1 L7-FILTER 核心 . - 22 - 5.2 结论分析 . - 25 - 6 总结和展望 . - 26 - 致谢 .错误 !未定义书签。 参考文献 . - 27 - - - 1 - - 1 引言 1.1 研究背景 在 21 世纪的现在,网络成为了人们平时工作和生活中密不可分的一部分。近年来,对等网络( P2P)的用户规模、应用类型和流量均以爆发式增长。但随着 P2P 等各种应用的广泛增长,随之而来的大量带宽的消耗,网络性能的降低,服务质量的下降,使得网络造成拥塞的现况。因此,如何有效精确的提取和识别网络流量具有很强的实际意义 1。
10、其中网络应用层流量识别对于网络管理、网络规划、安全检测等方面非常重要。传统的协议流量识别方法主要 是基于 IANA( Internet assigned numbers authority)定义的协议端口实现。但现在大量的应用层协议为了避免识别,逃避防火墙的检查,逐渐开始采用动态端口号,甚至加密方式进行通信,这不仅包括众多近年新出现的 P2P 协议,而且包括了越来越多的传统协议,比如 BitTorrent、eMule 等 P2P 协议,其采用动态端口进行通信; Skype、 QQ 等协议则共用 80 端口。 1.2 识别技术 就目前国内外研究现状,流量的识别技术最早的是基于端口的识别方法,不过
11、由于现在越来越多的 P2P 技术出现,采用 端口跳跃、随机端口等方式逃避检测,导致这种方法不再适用,现在流行的流检测技术有两种,分别是深度包检测技术( DPI)和深度 /动 态流检测技术( DFI) 2。 1.2.1 深度包检测技术( DPI) DPI( Deep Packet Inspection),即深度包检测技术是一种基于 OSI 七层模型中应用层的流量检测和控制技术,通过对网络数据包应用层中的净荷数据进行内容检测,来达到识别该网络流量的目的。 以往的端口检测法只是分析了数据包 2 至 4 层的头部信息,包括源地址、目的地址、源端口、目的端口和协议类型,而 DPI 则在此 基础上增加了对
12、应用层- - 2 - - 净荷数据的分析,能够识别出最新的 P2P 协议的流量应用。 典型的 DPI 检测技术有以下几种: 1. 基于 “特征字 ”的识别技术。不同的应用通常采用不同的协议实现,而各种协议都有特殊的指纹 3,这些指纹可能是特定的字符串或者特定的 Bit 序列。根据具体检测方式的不同,基于 “特征字 ”的识别技术又可以被分为固定位置特征字匹配、变动位置的特征匹配以及状态特征匹配三种技术。通过对 “指纹 ”信息的升级,基于特征的识别技术可以很方便的进行功能扩展,实现对新协议的检测 4。 2. 应用层网关识别技术。某些业务的控制流某些 业务的控制流和业务流是分离的,业务流没有任何特征
13、。这种情况下,我们就需要采用应用层网关识别技术。应用层网关需要先识别出控制流,并根据控制流的协议通过特定的应用层网关对其进行解析,从协议内容中识别出相应的业务流。对于每一个协议,需要有不同的应用层网关对其进行分析。如 SIP、 H323 协议都属于这种类型。 SIP/H323通过信令交互过程,协商得到其数据通道,一般是 RTP 格式封装的语音流。也就是说,纯粹检测 RTP 流并不能得出这条 RTP 流是那通过那种协议建立的。只有通过检测 SIP/H323 的协议交互,才能得到其完整的 分析。 3. 行为模式识别技术。行为模式识别技术基于对终端已经实施的行为的分析,判断出用户正在进行的动作或者即
14、将实施的动作。行为模式识别技术通常用于无法根据协议判断的业务的识别。例如: SPAM(垃圾邮件)业务流和普通的 Email 业务流从 Email的内容上看是完全一致的,只有通过对用户行为的分析,才能够准确的识别出 SPAM 业务。 1.2.2 深度 /动 态流检测技术( DFI) DFI( Deep/Dynamic Flow Inspection),即深度 /动态流检测技术,与 DPI 进行应用层的载荷匹配不同, DFI 采用的是一种 基于流量行为的应用识别技术,即不同的应用类型体现在会话连接或数据流上的状态各有不同 5。例如,在网上 IP语音流量体现在流状态上的特征就非常明显: RTP 流的
15、包长度相对固定,一般在130220byte,连接速率的特点为平均包长都在 450byte 以上、下载时间长、连接速率高、首选传输层协议为 TCP 等。 DFI 技术正是基于这一系列流量的行为特征,建立流量特征模型,通过分析会话连接流的包长、连接速率、传输字节量、- - 3 - - 包与包之间的间隔等信息来与流量模型对比,从而实现鉴别应用类型。 1.2.3 两种检测技术的比较 从处理速 度来看 : DFI 处理速度相对快,而采用 DPI 技术由于要逐包进行拆包操作,并与后台数据库进行匹配对比,处理速度会慢些。由于采用 DFI 技术进行流量分析仅需将流量特征与后台流量模型比较即可,因此,与目前多数
16、基于DPI 的带宽管理系统的处理能力仅为线速 1Gbit/s 相比,基于 DFI 的系统可以达到线速 10Gbit/s,完全可以满足企业网络流量管理的需求。 从维护成本来看 : DFI 维护成本相对较低,而基于 DPI 技术的带宽管理系统总是滞后新应用,需要紧跟新协议和新型应用的产生而不断升级后台应用数据库,否则就不能有效识别、管 理新技术下的带宽,影响模式匹配效率 ; 而基于DFI 技术的系统在管理维护上的工作量要少于 DPI 系统,因为同一类型的新应用与旧应用的流量特征不会出现大的变化,因此不需要频繁升级流量行为模型。 从识别准确率来看 : 两种技术各有所长。由于 DPI 采用逐包分析、模
17、式匹配技术,因此,可以对流量中的具体应用类型和协议做到比较准确的识别 ; 而 DFI仅对流量行为分析,因此只能对应用类型进行笼统分类,如对满足 P2P 流量模型的应用统一识别为 P2P 流量,对符合网络语音流量模型的类型统一归类为 VoIP流量,但是无法判断该流量是否采用 H.323 或其他协议。如果数据包是经过加密传输的,采用 DPI 方式的流控技术则不能识别其具体应用,而 DFI 方式的流控技术不受影响,因为应用流的状态行为特征不会因加密而根本改变。 1.3 论文研究内容 本文主要先通过分析比较几种常见的流量识别技术,在此基础上设计并实现一个能准确识别网络流量特征的识别系统。主要工作如下:
18、 ( 1)在 Windows 下实现网络数据包的捕获,分析并显示捕获到的数据包信息; ( 2)分析各类网络协议,尤其是 P2P 协议的流量特征; ( 3)提取各类网络流量的特征; ( 4)评估所提取的网络流量特征的 准确性和唯一性。 - - 4 - - 1.4 论文结构 论文分为四章,各章内容安排如下: 第一章介绍了本文的研究背景,国内外现状,介绍了目前最流行的两种识别网络流量的技术:深度包检测技术( DPI)和深度 /动 态流检测技术( DFI)以及两种之间的比较。提出了本文的研究内容及论文的组织结构。 第二章介绍下论文实现网络流量应用层特征提取和分析的总体思路流程。 第三章在 Window
19、s 系统下使用抓包软件 EtherPeek 实现流量的抓包,分析其数据,抓取应用层有用的净荷特征,得出一个比较完善的特征库。 第四章是文章的重点部分, 介绍了正则表达 式及其应用, 根据第三章得到的特征库, 分析应用层特征的正则表达式应该如何编写和验证过程中的模式匹配算法 。 第五章简要介绍下 L7-filter 模块是如何实现其功能的,总结了设计目标。 第六章对本文研究的工作进行总结,并对将来的工作进行展望。 - - 5 - - 2 系统分析与设计 本文研究的主要内容就是网络流量的应用层特征,将重点放在了 各类网络的应用层特征分析, 如何编写准确的应用层特征的正则表达式,依据编成的协议正则表
20、达式模板,利用 Linux 系统下的 L7-filter 模块对写成的特征表达式进行匹配验证。总体的设计思路是首先是抓 包提取分析流量应用层特征,然后是编写应用层特征的正则表达式模板文件。最后是用 L7-filter 对编写的正则表达式验证是否可以过滤这些流量,整个研究的流程如下图 2-1: 图 2-1 系统流程图 下面的文章会分别就应用层特征的提取,正则表达式的编写,以及 L7-filter的验证做详细的介绍。 应用层特征分析 提取应用层特征 编写正则表达式 观察结果 L7-filter 匹配验证 - - 6 - - 3 应用层特征的提取 现如今网络中提供了不少的抓包软件,要求在 Windows 系统下实现抓包,本文采用一款比较清楚,好用的抓包工具 EtherPeek NX,即一款提 供信息包捕获过程中实时进行专业诊断和结构解码的网络协议分析器来实现。下面将举例介绍下整个抓包过程是如何进行的,以及如何提取到应用层特征 6。 3.1 QICQ QQ 是目前网络上最流行的一款聊天工具, QQ 本身还自带了很丰富的应用,现在就光以 QQ 最基本的即时聊天为例,来提取它的应用层特征。 首先是抓包的部分,打开我们的抓包软件,过滤器指定本机的 IP( 60.179.184.88)。然后打开 QQ 应用,开启抓包得到如图 3-1 的界面: 图 3-1 Etherpeek 抓包界面