谈到老北京生活的代表画面,可能很多人都会想到美丽的四合院。可是一旦真的走在北京的大街小巷,身临其境,你可能会发现很多四合院都已经成了大杂院。私搭乱建现象非常普遍,进出院门往往很不方便,对于体型丰满的人而言,最窄的地方可能通过都会成为一个挑战。这一现象在企业的网络中也同样存在,虽然企业的网络带宽远比几年前富裕,但是网络体验却未必与时俱进。制造障碍的是那些酷爱下载的用户,不管网络如何升级改造,对于网络管理员而言,网络下载相关的P2P 流量一直是最深的梦魇。抛开利用P2P协议在组织内部传输影音文件、应用程序可能带来的法律方面的困扰不提,即使单纯从网络可用性的角度出发,目前未对 P2P通信进行限制的组织中,P2P流量一般会占据20%到60%不等,这将会严重影响企业的正常业务。正常的邮件、VoIP等应用就像在大杂院中举步维艰的你我一样,在狭小的缝隙中艰难前行。
在组织中对P2P流量必须进行控制,这已经成为大多数网络管理者的共识。目前常见的入侵防护技术和流量整形技术一度被人们寄予厚望,这种技术通过签名技术将各种流量用白名单和黑名单加以区分,其工作机制类似于防毒软件。在初期也的确表现的中规中矩,颇能解决企业的P2P困扰。但是问题在于随着P2P协议技术的发展,签名技术越来越难以捕捉P2P流量。传统的入侵防护技术和流量整形技术对于P2P的效果因此也越来越弱。
P2P协议技术发展带来的挑战
以最具代表性的两种P2P协议为例,BitTorrent 协议在出现初期,客户端依赖于连接Tracker服务器,从该服务器获取其他正在下载该文件的人的地址信息。从这一点来看,BT并非全部为点对点,Tracker服务器是BT得以存在的核心。也因此对Tracker服务器的封杀即可实现对于BT的阻断。但是随着哈佛大学两位教授发表了了"去中心"的点对点网络论文后,BT技术出现了分布式哈希表DHT网络,真正做到了完全的分散,没有集中服务器用于注册、登录或存储有关哪些节点共享哪些文件的信息。DHT技术为BT下载带来巨大变化的另一佐证是世界最大BT下载网站"海盗湾"(thepiratebay.org)于2009年11月中的时候在官方网志上宣布,永久关闭Tracker服务器。这并非是反盗版的巨大胜利,而是该网站认为从技术上并不需要继续提供Tracker服务器即可在客户端完成BT下载。DHT技术当然也为基于网络检测和阻断BT带来了很大的挑战,因为不存在一个包含可被列入黑名单的 IP 地址或特定端口的列表 – 无法通过阻断IP地址和端口实现BT阻断,而必须通过分析各网络流量来完成。而且,一旦一个节点得到共享所请求文件的远程节点的 IP-端口对,BitTorrent 协议支持信息流加密 (MSE) 或协议头加密 (PHE),以对整个文件-传输 TCP 会话进行加密。对于传统的入侵防护系统或流量整形设备而言,一旦两个节点间设置了共享密钥,并使用该密钥进行了加密以启动共享所请求变得的文件。这些设备可能会束手无策。Skype协议与之类似,也采用了通信加密处理。比BT更为棘手的是,Skype并非开源软件,并且在其发布版本采用了多种反逆向工程措施。这使得对其协议进行解析变得更加困难。入侵防护系统或流量整形设备首先需要解析Skype协议,并通过耗费大量计算资源逆向解开密钥,并对于所有网络通信实现这一检测。这使得即使没有技术障碍,对于Skype的检测也不经济-因为开启这一检测功能将严重影响网络性能。
P2P检测和防护技术的发展
为了适应P2P的改变,除了面对DHT技术和加密技术外,需要有一种一劳永逸的思路来McAfee Labs 展开的 P2P 研究,McAfee 的研究人员设计了若干正在申请专利的技术,这些技术能够识别逃避 P2P 文件共享协议的一般行为特征,即这些 P2P 系统自身具有的高逃避性、文件共享和分散性特征。这种技术的优势在于:P2P 对传统流量整形基于协议的识别签名技术展开的"抵抗"越凶猛,新技术对其进行检测越容易。接下来,将概述这一创新的对逃避性批量传输进行速率限制的技术。
这一技术通过以下三个阶段对于采用了逃避技术的 P2P 文件共享进行分类:
第一阶段:设置灰名单 – 对未分类的协议进行分类
首先,我们要尝试依据已知"已知良好"(白名单)和"已知有害"(黑名单)对协议进行分类。
McAfee 的研究人员开发了一个网络应用层协议分类引擎,该引擎的检测范围涵盖上百种协议,包括 TCP/IP 堆栈(例如,TCP 和 ICMP)、应用级协议(如 FTP、TFTP 和 HTTP)以及 P2P 和即时消息协议(例如,eDonkey、BitTorrent 和 MSN)。该引擎可对于对网络流量进行白名单和黑名单划分。例如,FTP 和 SSH 等协议列入白名单,而 BitTorrent 和 Gnutella 变体则被列黑名单。任何未被归类为白名单和黑名单的网络流都将被标记为灰名单(未知)协议。
第二阶段:针对批量数据传输流的启发式检测方法
对于灰名单流列表,采用精心设计的启发式方识别该流量是否为批量数据传输或非批量数据传输。通过这样深入分析灰,从而排除所有不需要进行流量整形的交互式会话或低带宽流量。研究人员采用的部分启发式方法包括查找:
• 大容量数据传输流量 -高效的 P2P 技术的设计使得服务器节点可容纳的最小的非完整文件"块"也至少具有数百 Kb(BitTorrent 中的每个块为 256 Kb)。因此,这一技术会关注那些已传输某一预设最小数据量的流量(例如,数百 Kb 的数据),而忽略那些不那么高效的数据流–总是只传输少量数据。
• 含有数据流量,而非交互式会话的流量 – 交互式会话一般会不时地有双向交换的带有较小载荷的数据包。而数据传输往往是数据包的单向流动,数据包的大小与网络的物理特性或协商好的会话最大分段大小 (MSS) 相当。例如,如果网络流量在服务器-客户端方向有上百个数据包,且大部分数据包为 1412 字节,则流量很有可能属于服务器-客户端批量数据传输,这里1412 字节则是网络路由的最大传输单元 (MTU) 或是对等双方协商好的 MSS。
• 不可打印/二进制响应 – 经过混淆或加密处理的协议自然会包含不可打印(非 ASCII)字符。由于传统的流量整形技术通常会在网络流量的起始处查找签名,而逃避的 P2P 协议通常会在流量开始传输时便对字节进行加密或混淆处理,因此,研究人员在网络流量开始传输时即查找二进制字符。
通过上述第一和第二阶段,McAfee的研究人员可非常精准地明确识别灰名单/未知、不可打印/二进制、长时间(无小数据包)和非交互式/数据流量,并将它们标记为采用了逃避技术的文件传输协议。研究人员将所有类似的网络流量定义为名为"批量数据"的协议族。此时即可选择对上述标记的流量进行速率限制,使其优先级低于"已知良好"协议的指定速率,但高于"已知有害"协议。例如,HTTP 可能被明确归入白名单,Emule这一 P2P 协议则可能被明确归入黑名单。基于速率限制优先级的方案中,"批量数据"这类流量的优先级将低于 HTTP,但高于 Emule。这一算法使网络管理员能够根据网络流量是被列入白名单、黑名单还是灰名单(对于传统检测技术而言"不可见"),来有区别地加以处理。
第三阶段:对于一段时间内多个采用逃避技术的批量数据流的关联检测
本阶段针对 P2P 技术的分散特性。最新的 P2P 技术将文件分成多个块。任何时间点都有多个不同的 P2P 节点正在进行下载和/或共享这些块。出于分散的目的,P2P技术设计为需要一个文件的 P2P 客户端将向不同节点请求不同的块。这一过程显示为某一请求节点针对一批随机目标节点发起一系列网络流量。由于 P2P技术设计为逃避防火墙和流量整形器,则源 IP 地址是为这些流的唯一通用参数。目的 IP、目的端口、源端口等将全部显示为随机参数。同时,流的内容本身也将被混淆或加密。
由于那些批量数据流的混淆特性,McAfee研究人员的检测算法的第一和第二阶段可以轻松捕获它们。而算法的第三阶段,则可对这些"组件"检测基于时间进行关联:
• 基于源的关联 – 通过算法第一和第二阶段识别出的多种流量(未知流量、二进制流量、长时间流量、数据流),这些流量都来自相同的源 IP。
• 扫描特性/多个不同目的地 – 该算法将从一个给定源 IP 连接到同一目的地的多个流视为一个流。这样可以避免误报,如某一源节点频繁连接同一目标节点(例如,HTTP 浏览器会话、HTTP/ FTP 站点镜像等)。
• 可配置的扫描阈值 – 网络管理员可以对此类流量进行定义,一个源在指定时间段 (P) 内连接多个不同目标发起的流的阈值 (N),以确定是否属于 P2P 文件传输块请求的离散。也就是说,如果离散点在 (P) 时间段内超过 (N),则可以将该来源标记为 P2P 文件共享节点。
• 在由第一和第二阶段标记的所有流量如果在第三阶段仍被算法进行标记,该数据流无疑是 P2P 文件传输。对于对这些流量可进行更严格的速率限制。
算法的第三阶段为网络管理员提供了一种可配置阈值的方法,用于识别 P2P 离散点并进一步深入到 P2P 文件共享源。此外,还提供对属于第一阶段和第二阶段确定的灰色区域的协议更加细化的速率限制。
新P2P检测和防护技术的实践
McAfee的研究人员已将该技术集成在入侵防护系统(IPS)产品中,并在已在大型真实网络(企业和开放式大学网络环境)中对这一新技术进行了测试。研究人员首先基于快速人工检查,挑出一些明显属于不可识别的批量数据传输的网络流量。然后使用算法重试了所有这些流量,发现这些流量被百分之百捕获。这实质上验证了此算法实施的正确性 – 它能够检测到所有与"逃避性、长时间批量数据传输"定义相符的流量。研究人员并且集中分析了算法第三阶段捕获的源主机。通过详细的取证分析,确定所有这些源主机都存在涉及使用目前协议识别器并未涵盖的协议的 P2P 活动(准确率 100% 或误报率为 0%)。研究人员同时发现了大量地采用逃避技术的批量数据传输活动 – 根据算法第一和第二阶段,在这些灰色流量中,40% 至 50% 被识别为"采用了逃避技术的批量数据"。换句话说,在大型真实网络网络中,大约有一半的P2P文件传输由于采用了逃避技术使得以往完全不可见得以成为漏网之鱼。研究人员还进行了另一项实验–挑选了包括 BitTorrent、eMule 在内的几种 P2P 协议。在协议识别引擎中不加载针对这些协议的解析,而仅采用新算法进行检测,使用算法的第一和第二阶段,在对 P2P协议不进行识别的情况下,捕获了其中约 84% 至 92% 的长时间批量数据流量。由于BitTorrent、eMule 是最具有代表性的 P2P 技术,这一结果表明,该算法能够捕获 84% 至 92% 以前对设备无法通过签名技术识别从而完全不可见的 P2P 批量数据传输流量。
对于企业而言,结合了网络行为分析的灰名单方法将成为检测和管理 P2P 流量最行之有效的方法。通过上面的介绍,已经说明了这一方法所带来的出色的成效。这种技术使得以往难以检测的却又最占带宽的P2P网络流量无所遁形,为网络管理者提供了亟需的的P2P流量监控和防护功能。