基于socket套接字的网络监听程序设计.doc_第1页
基于socket套接字的网络监听程序设计.doc_第2页
基于socket套接字的网络监听程序设计.doc_第3页
基于socket套接字的网络监听程序设计.doc_第4页
基于socket套接字的网络监听程序设计.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

以太局域网的监听检测原理与实现鄢鹏 王忠(四川大学电气信息学院通信工程系,成都610065)摘要: 以太局域网的监听检测软件可以监视网络的状态,并利用这些信息来分析网络性能等。由于监听工具能有效的截获网络上的数据,所以它也对网络信息安全造成极大威胁。还必须采用各种反监听的检测措施以保护网络信息安全。软件设计包括用户界面部分、数据包的捕获与过滤部分、监听检测部分、数据解码部分。在Visual C+.NET环境下开发实现。关键词:网络安全;信息安全;监听;检测。61 引言计算机局域网和Internet的发展给个人、企事业单位带来了革命性的改革和发展。同时又要面对网络开放带来的数据安全的新挑战和新危险:网络的安全访问、黑客的攻击等。一旦网络安全问题发生,通常会造成严重的后果,1994年曾发生过黑客在众多的主机和骨干网络设备上安装了网络监听软件,利用它对美国骨干互联网和军方网窃取了超过100000个有效的用户名和口令。所以必须加强网络安全意识,并及早发现防范。特别是企业更应该加强网络的安全控制。计算机网络监听和检测软件就是在这种情况下而产生发展起来。2 监听与检测概述2.1监听概述一个简单的监听程序的大体结构如图1所示,大体上来说,可以将监听程序分为两个组成部分:(1)内核空间部分:负责从网络重捕获以及过滤数据包。(2)用户空间部分:负责处理用户界面的显示、协议分析,此外如果核心层没有进行过滤的话,还必须负责过滤部分工作。图1 监听程序基本结构监听的实施是有条件的,不可能在网络上的任意某一台主机装上监听软件,就可以看到整个的网络的状况。在以太局域网内,主机间的通信采用了广播机制。广播机制使得整个子网内的数据分组都将到达监听者的网卡接口。这样,只需要将某台主机的网卡设置为“混杂”模式,所有到达网卡的数据都将送给系统进行处理分析,就可以实施对整个网段内的监听。如果需要监听特定的数据,监听者必须在监听软件中设置过滤器。因为混杂模式下网卡式不会自己过滤数据。图2、3是网卡的正常工作模式和混杂模式的比较示意图。图2 正常网卡的工作流程图图3 混杂模式下网卡的工作流程图2.2检测概述由于产生网络监听行为的主机在工作时总是不做声的收集数据包,几乎不会主动发出任何信息,所以,一直都没有很有效好的检测方法。常见的监听方法主要有以下四种。(1)根据主机的反应时间:因为处在监听状况下的主机的负荷量会比较大,所以对任何请求的延迟都会比较大。(2)检测主机上运行的进程:因为监听软件都有特定的进程在运行,不过网络监听软件太多,这种方法不一定有效。(3)利用Ping模式进行监测:就是向被怀疑有监听系统的目标主机发送一个含有错误的MAC地址和正确的IP地址的数据帧。正确的IP地址使数据包可以到达主机,错误的MAC地址只有处在监听状况下的主机才可能接收。3 程序的总体设计先分析一下准备设计的程序需要实现的主要功能。(1)友好的界面:便于与用户进行交互,用户可以方便的对程序进行操作。(2)以太网的数据报捕获:直接读取以太网数据包,而不在高层获得IP包。使得到的数据信息更加完整,并且网卡需要工作在“混杂”模式。(3)数据报的过滤:可以根据监听者的需要,过滤掉不需要的信息,只捕获想得到的信息,避免太多垃圾信息。(4)数据报的解码:对数据包的包头进行分析,显示出包头的具体含义。使监听者很容易分析网络的状态等。(5)监听检测功能:向网络中各个可疑主机发送检测数据包,检查对方是否正在监听。避免信息被窃取,维护网络安全。可以看出,整个监听检测程序主要分为两大部分:程序驱动程序部分和应用程序部分。驱动程序工作在核心态,负责网络数据的接受和发送;应用程序工作在用户态,除了与驱动程序进行正常的通信外,还需要将有关信息显示出来,并提供过滤等操作。缓冲区由应用程序动态分配提供。程序的总体框架大致如图4所示。图4 程序模块示意图4程序的具体实现4.1界面部分利用微软基本类库(MFC),生成单文档视图窗口(MFC SDI)程序,用户可以利用这个窗口实时、清晰地看到捕获的数据包的简单统计信息和捕获到的数据包的较详细的解析信息。在文档类中存储一些捕获的简单统计信息,捕获到的数据以及数据包的解析信息,而在几个视图类中分别显示这些信息。l程序中的几个主要的视图类的介绍。(1)CSstatistic View 负责显示一些简单的统计信息,比如一共捕获到多少个数据包。l(2)CListCapture View 用以列表的形式显示捕获到的数据包,当这个列表的某一个数据被选中时,对(CDataHierarchy View)视图进行更新,使他们显示当前这个被选中的数据包的详细解码信息。l(3)CDataHierarchy View按照层次显示出在列表视图中被选中的数据包的解码分析后的详细信息。4.2以太网的数据包捕获要实现捕获,方法非常的多,能在网络栈的不同位置实现。可以采取一下几种不同的设计思路,他们都能达到相同的目的。(1)编写协议驱动程序:Windows系统下多个协议驱动程序可以共存于一个微端口驱动程序上,只要向NDIS(网络驱动程序接口规范)上注册一个协议驱动程序,建立绑定后就可以收到感兴趣的数据了。(2)编写中间层驱动程序:中间层驱动位于微端口驱动程序和协议驱动程序之间,有两种类型的中间层驱动程序:过滤驱动程序和复合驱动程序。由于中间层驱动程序位置的特殊性,不论上层或者下层的数据都要经过它,所以用它捕获网络数据包很容易高效实现。(3)编写IP Filter hook驱动程序:系统的TCP/IP模块提供了一种接口,使得驱动程序可以对TCP/IP协议数据进行过滤。(4)挂接NDIS库函数:这种做法的依据是所有的数据接收和发送,网卡状态设置和查询都直接与NDIS打交道,调用NDIS相应的库函数。如果能把所有这些收发数据截获,那么截获分析数据就很容易在程序中实现了。以下图5是Windows体系结构中网络模型的底层(NDIS)的结构示意图。图5 NDIS的结构示意图4.3数据报的过滤本程序能支持两种过滤器:协议过滤器和地址过滤器,并且两者之间是“与”的关系。这种过滤器结构简单,但功能强大,非常实用。(1)协议过滤器:在设计协议过滤器的时候,考虑到高层的协议数据总是作为底层协议数据的负载而存在,所以如果要捕获高层的协议,那么底层的协议就不能丢弃掉。(2)地址过滤器:地址过滤器同时支持目标地址和源地址,而且“地址”可以是以太网卡的MAC地址、IP地址二者之一,源地址和目标地址之间是“与”的关系。并且只有当两者同时满足的时候,数据包才能被捕获。程序代码的编写主要是通过使用条件语句来实现。大量使用C语言的(switch.case)和条件语句联合判断实现过滤功能的。这样,程序就可以根据用户的设置来实现过滤功能。4.4数据报的解码 数据包的解码是网络监听程序最重要的功能之一,通过对网络数据流的实时或者事后的解码分析,可以了解到网络上运行的协议和服务、数据帧的源地址和目标地址、数据帧的格式等。协议分析解码能力是衡量一个监听程序性能的重要指标。对于局域网的协议分析仪来说,它一般能提供对MICROSOFT的NETBEUI、NOVELL的IPX/SPX、TCP/IP、AppleTalk等协议的解码。与简单的过滤相比,数据的解码是一件很复杂的事情,每一种协议都有丰富的含义,每一个字段都有多种可能的值,不同的取值代表不同的含义,每一层上有可能会出现多种协议。特别是一些封包格式本身并不是很规则,存在很大的变化性,这给解码带来了很大的难度。此外还要考虑到数据出错的时的情况。为了便于解码功能的扩展,每一种协议都应该封装在一个“类”里面,这样当需要解更多的协议的时候。只需要简单的在程序中添加这些协议相对应的协议分析“类”,而不需要重写以前的程序。这也正是使用面向对象(OOP)的方法编写程序的好处。程序的协议分析流程示意图如图6所示。数据包从网卡捕获到以后,由低层到高层依次在各个网络层取出“数据包头”,然后对包头进行解码分析。当然,实际的网络并不是七层网络体系结构,根据不同的网络,具体实现有一定的区别。解码的信息采用Visual C+.NET的“树形控键”以层次结构显示出来,在树状视图中从上到下分别显示各层内容,使各种信息一目了然 。图6 协议分析示意4.5监听检测功能 Windows系统中,当网卡被设置为混杂模式的时候,对于单播以太帧,操作系统会对其目标MAC地址和IP地址同时检测,如果都符合,主机才会接受数据帧。对于广播帧的判断则是仅仅查看MAC地址第一个8位组。所以对于Windows系统可以向目标主机发送一个错误的MAC地址(比如:AA:BB:00:00:00:00)而IP地址为目标地址的ICMP回应请求(即发送Ping命令),如果目标主机回应了,就说明了目标主机的网卡很可能工作在混杂模式,即正在监听。还可以利用ARP方式进行监测的。这种模式是Ping方式的一种变体,它使用ARP数据包替代了上述的ICMP数据包。向局域网内的主机发送非广播方式的ARP包,如果局域网内的某个主机响应了这个ARP请求,那么就可以判断它很可能就是处于网络监听模式了,这种方法相对而言比较好。由于本检测程序主要设计工作在采用Windows操作系统的计算机上,并且考虑到程序的复杂性。所以可以设计采用发送ICMP回应请求(即Ping命令)模式来设计程序的检测功能。通过向目标主机发送含有假的目的MAC地址(AA:BB:00:00:00:00)和正确的IP地址的ARP请求,看是否能收到对应的ARP回应来判断目标主机网卡是否处于混杂模式(监听模式),这中方法不但效率高,并且也很容易实现。5 结论 本程序设计采用的是静态网络安全技术,可以有效的对网络的状态进行分析与检测。但程序的功能是基于特定的网络安全问题、技术环境而设计。所以程序不能根据网络条件的变化作出相应的变化调整,安全策略和技术始终处于滞后状态。不能应对越来越复杂的网络安全问题。并且存在两种主要问题:(1)程序上的错误,指安全技术在自身的实现运行过程中有某种缺陷;(2)可能存在的配置上的错误,这些错误是由于人为因素所造成的,会对安全技术的效能产生影响。为了解决以上的这些问题,完善程序的功能作用,应该在以后的开发中将第二阶段的动态安全技术融入系统的设计方法思想中,使系统功自身可以根据不断变化的网络安全问题而不断的改进和提高。参考文献:1Windows防火墙与网络封包截获技术 朱雁辉 编著 电子工业出版社2监听与隐藏 求实科技 谭思亮 编著 人民邮电出版社3计算机网络安全基础 袁津生 吴砚农 编著 人民邮电出版社4Windows 2000 设备驱动程序设计指南 美Art Baker,Jerry Lozano 编著 施诺 等译 机械工业出版社5Visual C+ 6.0 技术内幕 美David J.Kruglinski, Scot Wingo ,George Shepherd编著 希望图书创作室 译 北京希望电子出版社6/developerWorks/cn/security/se-sniff/index.shtml 宫一鸣 中国电信网络安全小组核心成员The Principle and Realization of Ethernet Networks Interception and DetectionYan Peng Wang Zhong(Dept. of Communication Engineering, Sichuan University, Chengdu.610065)Abstract: The program of Ethernet Networks Interception and Detection is mostly a very good network tool for managers. It can keep watch on networks condition, and use these information to analyze the networks performance. Because the wiretap tool can intercept and seize the data on the network effectively, it results the network and informations security problems. We must still adopt the anti detection measure to protect network and informations security problems .The whole system

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论