北京邮电大学信息安全中心 李晨旸 牛冠杰 郑康锋 钮心忻
一、引言
网络扫描通过网络来测试主机安全性,可以用来完整的评价网络主机安全。对于网络管理员而言,网络扫描器是高效获取当前网络信息的有力工具;对于黑客而言,网络扫描器则是进行攻击准备的利器。但是,由于网络扫描极易暴露攻击者的身份,各种隐蔽扫描技术成为研究热点。各种隐蔽扫描技术也成为网络管理员测试,提高日志系统和入侵检测系统的性能的有效方法。分片扫描技术正是其中的一种。
本文研究了分片重组技术在网络扫描中的应用,首先简要说明了分片扫描的原理,并对现有应用的问题进行了分析。然后提出了一种windows环境下分片扫描器的结构及其功能,并对其中关键模块的实现予以详细的说明。该分片扫描器的设计和实现对隐蔽扫描的应用有推动作用。
二、分片扫描技术简介
分片扫描是隐蔽扫描技术的一种,是其它扫描方式的变形体,其基本原理是IP分片原理。与IP分片过程不同的是,分片扫描通常是在发送端人为地将IP分组分片,分片的长度也可由发送端控制。在发送一个扫描数据分组时,通过将IP分组数据段中的TCP分组头分为若干小段,放入不同的IP分片中,再通过重叠乱序等特殊方法使每个分片都不含有敏感信息。这就使得一些防护系统因无法正确重组而不能有效地阻止攻击,目标主机则可正常重组,实现隐蔽的网络扫描。
在上述特殊方法中,分片重叠是效果较好的一种。该方法正是模拟TCP/IP协议中分片重叠的情形,通过构造各分片的OFFSET段值,造成不同分片的数据段相互重叠,如图1所示。
目标系统对分片的重组方式也有两种可能性,即使用旧数据,或使用新数据覆盖旧数据重组成为原IP分组。事实上,不同的操作系统对此类分片的重组方式是不同的。在windows和solaris2.6系统中,旧数据将被用于重组;在linux系统中,新数据将被使用。因此,通过精心构造使重叠包的新旧数据不同,此时如果网络防护系统与操作系统的处理方式不同,就会造成防护系统重组结果与系统重组的结果不同,这样就存在漏报的危险。根据目标系统类型动态的调整扫描数据分组的分片重叠策略将获得较好的隐蔽策略。
三、分片扫描器的设计
(一)分片扫描的应用现状及问题
目前,分片扫描一般通过硬件实现,也可借助外部工具以软件方式实现,通常用这种方法来测试入侵检测系统的性能。一个典型的软件实现方式是借助于著名的工具fragroute。通常,发起扫描的攻击机需要先将普通的扫描数据分组发送到装有fragroute软件的服务器,再由服务器完成分片处理后发送到目标主机;中间的服务器需要配置为linux系统平台上的服务器。这是因为fragroute软件只能在linux系统平台上使用,且无法在本地同时进行扫描和分片,即不能在同一个网络接口上实现分片和发送。显然,这种应用方式过于繁杂。
流行的端口扫描工具namp也实现了使用碎片IP数据包发送SYN、FIN等多种端口扫描数据包的功能,但该功能无法在windows平台上使用。硬件实现虽然具有较好的效果,但成本较高,也不适用于一般应用。因此,设计实现在windows环境下方便、实用、高效的分片扫描实现工具是十分必要的。
(二)系统结构及模块功能
本扫描器在WindowsXPProfessional环境下以VisualC++.Net开发。该系统将含有敏感信息的扫描数据包在流经网卡时拦截下来,经过分片重叠处理后再发送出至目标系统,以实现分片扫描的目的。