全站搜索
基于包过滤技术的网络安全的研究
作者:管理员    发布于:2016-01-05 11:08:31    文字:【】【】【

  基于包过滤技术的网络安全的研究柳岸,龙雅琴,古乐野(中国科学院成都计算机应用研究所,四川成都610041)究并实现了基于中间层驱动的包过滤技术。通过编写内核级网络驱动实现了包过滤技术的具体应用。

  方向5嵌入式系统fl(古乐野X10l-i男,庆人,研研士生导师ti主要研厌嵌入式系统15reserved,http://www.cnki.netbookmark2 0引百随着网络的爆炸式发展以及网络应用越来越广泛,网络安全也成为人们日益关注的重点。一些常用的网络安全解决方案如防火墙,VPN等成为近年发展起来的重要安全技术。

  其中包过滤技术是大多数解决方案的关键技术。包过滤是在网络层中对数据包实施有选择的通过,依据系统事先设定好的过滤逻辑,检查数据流中的每个数据包,根据数据包源地址、目标地址,以及包所使用的端口确定是否允许该类数据包通过。传统的包过滤技术通常基于Windows的API函数来实现,运行在系统的用户态,只能通过对IP包包头的标准域信息来决定数据包的取舍,比如:IP地址,协议类型,端口等等。然而,这样并不能有效的滤除病毒等有害信息。本文分析了通过中间层驱动技术来实现基于包内容的过滤技术,使包过滤技术实现于系统的内核态,提升了过滤效率,使包过滤技术应用更加广泛。

  1Windows下包过滤实现方案要拦截Wind(ws下的网络数据包可以在两个层面进行:在用户态下进行网络数据包拦截有以下几种方法:在用户态下进行数据包拦截的好处是上层应用很直接,可以方便的实现对数据流的加密等操作。但这也是它致命的缺点,就是所有操作只能在应用层实现,而对于协议栈中底层协议的数据包无法进行处理。如果应用程序直接通过传输驱动接口TDI(TransportDriverInterface)调用TCP/IP来发送数据包,这种方法就无能为力了。如某些间谍软件会修改Winsock的设置,进行LSP“浏览器劫持”,从而使用户所有对外的信息都要通过这些间谍软件,从而使得它们可以窃取使用者的隐私信息。因此,更好的方案是在核心态进行数据包拦截,具体方法有以下几种:TDI接口过滤这种方法实际上是工作在OSI网络模型的传输层以下,网络层以上,因为应用程序要发送或接收数据包都是通过与一系列协议所提供的接口来实现的。以TCP/P协议为例,IP,TCPUDP实际上是在一个驱动程序里实现的,叫作Tcpsy.因此,我们只需要开发一个过滤驱动程序来截获这些协议所提供的接口,就可以实现网络数据包的拦截。

  NDJS中间层驱动这种方法本来就是微软为了网络编程而提出来的方法。中间层驱动介于上层协议和和下层小端口驱动之间,它能够截获所有的网络数据包。只是驱动级别的实现十分困难,并且这种概念在Wdows9x上无法实现。

  NDJSHookDriver这只是为了降低编写驱动程序困难度的一种技术方法。用Ho(k技术驱动程序可以挂接NDK所提供的所有服务。2000/XP下可以通过修改NDJSSYS的输出表或向系统注册假协议来实现。

  由前面的分析可以看出,所有的数据包都要经过中间层,所以我们采用NDIS中间层驱动来实现内核级包过滤。中间层插入网卡和协议层之间,对上面的协议层表现为一个虚拟的微端口网卡结构,而对下面的网卡则表现为一个协议结构。

  因此,上传和下送的数据都要经过中间层。

  此方案的优点有:首先,在驱动级别上过滤,速度快,效率高;其次,所有数据包无一例外,只要网卡上传送的数据均可以截获,避免了用户态下过滤无法得到所有数据包的缺点。

  2NDIS中间层驱动剖析3Com公司在1989年制定了一套开发Wndows下网络驱动程序的标准。ND 1S为网络驱动的开发提供了一套标准的接口,使得网络驱动程序的跨平台性更好。ND1S提供三个层次的接口:ND1S小端口驱动、ND1S协议驱动、ND1S中间层驱动。

  由可以看出,ND1S主要工作在数据链路层,ND1S相当于IEEE802标准的逻辑连接控制(LLC)子层。其中:NDIS小端口驱动主要负责与下层网卡的数据交互以及为它的上层驱动提供接口支持。它通过调用NDIS库的一系列函数NdisXxx实现对系统的操作,同时提供入口函数MinortXxx以实现高层驱动对自己的调用。

  NDIS中间层驱动位于小端口驱动和传输协议驱动之间。

  对于下层它提供了协议入口函数ProtornlXxx将自己模拟成上层协议;而对于上层它提供小端口入口函数Minip)ortXxx将自己模拟成下层端口。因此中间层驱动在上下媒体中起到了中间介质作用,在多网卡的环境下还可以起到负载平衡的作用。

  NDIS协议驱动负责与NDIS进行通讯。通过调用NDISXxx函数将上层的数据包发送给下层,同时向下提供协议入口函数ProtocolXxx以方便下层NDIS不同目的的调用。它实际上是传输驱动程序中作为底层的一个协议栈。

  3包过滤技术的应用案例31网络监控与过滤在一个局域网中,当一台主机向外发送数据包时,同一局域网中所有的主机都将收到该包,只不过网卡会自动判断该包是否是发给自己的从而接收或丢弃该包。一般网卡有四种工作模式:广播、多播、直接、混杂模式。默认情况下网卡是工作在广播模式下,但通过特定驱动我们可以将网卡设置为混杂模式(详见微软DDK例程Packetsys)。在这一模式下,网卡将接收所有经过的数据包,这是对网络进行监控和过滤的首要步骤。

  3.11以太网帧结构由于NDIS中间层驱动工作在数据链路层,所以所监控得到的数据包是链路层的报文,包含了多层协议的数据,具体格式如下:flu网头丨IP头丨TCP头|1>层头丨用户数1以太网数据包结构具体每层协议的格式可以通过相关资料查到。下面对一个具体截获的数据包进行分析,截获数据如下:前14字节为以太网头,分别表示:版本:4IP头长:20校验和:0x6335源IP地址:192 168.280目的IP地址:220181.27.5后20字节为TCP头,分别表示:TCP窗口校验和:0x297D紧急指针:0x0000可以看出,该包实际上是一次HTTP应用中TCP连接活动中的一个发出的数据包,我们可以获得源、目的MAC地址以及1P地址等一系列信息,实际上当后面进行具体HTTP活动时,捕获的数据除了现有的以外,后面还有具体HTTP格式的数据,从而可以获得访问网址,提交的数据等具体内容。

  31.2网络监控与过滤方案定制过滤规则,选择监控协议和端口如IP,HTTPFTP,SMTP等,以及选择对某MAC地址或IP地址进行监控。

  对所捕获的数据包进行分析,采用字符串模式匹配算法如KMP算法对数据包进行检查,若发现有特征库中含有的危险数据代码,如:访问了非法数据,URL地址非法,包内容含有敏感关键字,DoS攻击,木马攻击等,则对数据包进行丢弃或警告。

  若是对以太网的非法访问,则只需根据捕获的TCP包序列号重建一个TCP包,将RST标志设为即可将已经建立的连接断开。

  若用户URL访问违法,则只需构建一个DNS应答包,使得域名解析到我们指定的安全的地址上。或者改变初始连接过程中的TCP标记,使连接失败。若用户已经对非法网站进行了访问,则需要重构非法网站的数据包,以重构包代替原始包。

  若用户包内容含有敏感字,如即时通讯软件内含有反动言论或病毒,则需要放弃源包,用对应的结构重建该包,向用户发出警告。

  同层THjN的层数TDRARouLer和AlRouLer路由表条目数比较尽管因为TDRA路由表中仅存放了部分路由信息,导致为某些节点间的消息选择的路径不是短路径,但通过模拟仿真比较网络的平均短距离和平均近似短距离,我们发现在整个网络的消息传输过程中这个近似短路径可以被看作是短路径。

  定义4网络的平均短距离等于网络中任意两点之间的短路径长度之和与路径总数之比。

  定义5网络平均近似短距离等于网络中任意两点之间按照TDRA求得的近似短路径长度之和与路径总数之比。

  表4平均短距离和平均近似短距离的取值比较层数平均近似短距离平均短距离模拟仿真中采用了给出的消息排队模型,并假设网络中每条链路都是全双工通信方式,使用两个单工链路取代每条全双工链路,并将每条单工链路看作为一个消息处理中心,消息处理中心根据消息到达的顺序对消息进行处理。

  表4给出了在不同层的THN中,平均短距离和平均近似短距离的取值情况。从表中我们可以看出,两者相差很小,在某种程度上我们可以把平均近似短距离看作平均短距离。

  TDRA路由算法充分利用THN的层次特性,在路由表中仅存放部分目的地址的路由信息,使路由表存储开销小,路由算法设计简单,查找速度快,可以保证算法的高效性,从而实现高带宽、低延迟的互连网络。

  4结语针对基三分层互连网络,本文提出的TDRA算法,是一个使消息沿着近似短路径进行传递的分布式确定路由算法。

  该算法充分有效地利用网络自身的层次性,提高网络传输性能,而且算法设计简单易于实现。我们将对TDRA路由算法作进一步的仿真研究,了解该算法在不同网络负载分布情况下的性能表现,并进一步和其他路由算法进行性能比较。

访问统计
51客服