网络嗅探器的设计与实现.目 录 论文总页数:25页 1 引言 1 1.1 网络安全的现状 1 1.1.1 计算机网络安全的问题 1 1.1.2 网络安全机制及技术措施 1 1.2本课题的研究意义 2 1.3本文研究的内容 3 2 网络嗅探器的基本原理 3 2.1网络嗅探器概述 3 2.2 嗅探器实现基础 3 2.3 常见的sniffer 4 2.4 数据包捕获机制的研究 4 2.4.1 WinPcap包捕获机制 5 2.4.2 套接字包捕获机制 6 2.5 嗅探器的两面性 8 2.5.1 sinffer的危害 8 2.5.2 通过网络嗅探进行网络管理 9 3 入侵检测系统与嗅探器 9 3.1 入侵检测概念 9 3.2 入侵检测的实现与嗅探器 10 3.2.1 入侵检测的实现与嗅探器的关系 11 3.2.2 数据包嗅探技术在入侵检测系统中的应用 11 4 嗅探器的实现与测试 12 4.1利用套接字开发网络嗅探程序的步骤 12 4.2 嗅探器的具体实现原理 13 4.3 数据包捕获程序设计 15 4.4 数据包的解析 15 4.5 数据的显示 19 4.6 嗅探器的测试 22 结 论 23 参考文献 23 致 谢 24 声 明 25
1 引言 1.1 网络安全的现状 1.1.1 计算机网络安全的问题 随着各种新的网络技术的不断出现、应用和发展,计算机网络的应用越来越广泛,其作用也越来越重要。但是由于计算机系统中软硬件的脆弱性和计算机网络的脆弱性以及地理分布的位置、自然环境、自然破坏以及人为因素的影响,不仅增加了信息存储、处理的风险,也给信息传送带来了新的问题。计算机网络安全问题越来越严重,网络破坏所造成的损失越来越大。Internet的安全已经成为亟待解决的问题。 从目前使用的情况来看,对计算机网络的入侵、威胁和攻击,基本上可以归纳为以下几种: 1.外部人员攻击 2.黑客入侵 3.信息的泄漏、窃取和破坏 4.搭线窃听 5.线路干扰 6.拒绝服务或注入非法信息 7.修改或删除关键信息 8.身份截取或中断攻击 9.工作疏忽,造成漏洞 10.人为的破坏网络设备,造成网络瘫痪 1.1.2 网络安全机制及技术措施 目前国内外维护网络安全的机制主要有以下几类: 1.访问控制机制 访问控制机制是指在信息系统中,为检测和防止未授权访问,以及为使授权访问正确进行所设计的硬件或软件功能、操作规程、管理规程和它们的各种组合。 2.身份鉴别 身份鉴别技术是让验证者相信正在与之通信的另一方就是所声称的那个实体,其目的是防止伪装。 3.加密机制 对纯数据的加密,加密机制是对你不愿意让他人看到的这些数据(数据的明文)用可靠的加密算法,只要破解者不知道被加密数据的密码,他就不可解读这些数据。 4.病毒防护 计算机病毒的防范既是一个技术问题,也是一个管理问题,它采取以“预防为主,治疗为辅”的防范策略将计算机病毒的危害降到最小限度。针对以上机制的网络安全技术措施主要有: (1)防火墙技术 防火墙是指一种将内部网和公众网络分开的方法,它实际上是一种隔离技术,是在两个网络通信是执行的一种访问控制手段,它能允许用户“同意”的人和数据进入网络,同时将用户“不同意”的人和数据拒之门外,最大限度地阻止网络中的黑客来访自己的网络,防止他们更改、复制和毁坏自己的重要信息。 (2)基于主机的安全措施 通常利用主机操作系统提供的访问权限,对主机资源进行保护,这种安全措施往往只局限于主机本身的安全,而不能对整个网络提供安全保证。 (3)加密技术 用于网络安全的加密技术通常有两种形式: (a)面向服务的加密技术。面向服务的加密技术即通常所说的信息加密。它是指利用好的密码算法对有些敏感数据、文件和程序进行加密,并以密文方式存取,以防泄密。其优点在于实现相对简单,不需要对网络数据所经过的网络的安全性提出特殊的要求。 (b)面向网络的加密技术。面向网络的加密技术是指通信协议加密,它是在通信过程中对包中的数据进行加密,包括完整性检测、数字签名等,这些安全协议大多采用了诸如RSA公钥密码算法、DES分组密码、MD系列Hash函数及其它一些序列密码算法实现信息安全功能,用于防止黑客对信息进行伪造、冒充和篡改,从而保证网络的连通性和可用性不受损害。 加密技术是网络信息最基本、最核心的技术措施。但加密的有效性完全取决于所采用的密码算法,故一般由中央授权部门研制生产,不能自行采用一些密码算法用于网络中,否则后果不堪设想。 (4)其它安全措施 包括鉴别技术、数字签名技术、入侵检测技术、审计监控、防病毒技术、备份和恢复技术等。鉴别技术是指只有经过网络系统授权和登记的合法用户才能进入网络。审计监控是指随时监视用户在网络中的活动,记录用户对敏感的数据资源的访问,以便随时调查和分析是否遭到黑客的攻击。这些都是保障网络安全的重要手段。 1.2本课题的研究意义 计算机网络技术的飞速发展,极大的改变了人们传统的生活和工作模式,越来越多的社会经济活动开始依赖网络来完成,可以说计算机网络的发展已经成为现代社会进步的一个重要标志。但与此同时,计算机犯罪、黑客攻击、病毒入侵等恶性事件也频频发生。因此,信息安全已越来越受到世界各国的重视。嗅探器作为一种网络通讯程序,是通过对网卡的编程来实现网络通讯的,对网卡的编程是使用通常的套接字(socket)方式来进行。但是,通常的套接字程序只能响应与自己硬件地址相匹配的或是以广播形式发出的数据帧,对于其他形式的数据帧比如已到达网络接口但却不是发给此地址的数据帧,网络接口在验证投递地址并非自身地址之后将不引起响应,也就是说应用程序无法收取到达的数据包。而网络嗅探器的目的恰恰在于从网卡接收所有经过它的数据包,这些数据包即可以是发给它的也可以是发往别处的。显然,要达到此目的就不能再让网卡按通常的正常模式工作,而必须将其设置为混杂模式。 本文通过对网络嗅探器对网络上传输的数据包的捕获与分析功能的进一步了解,做到知己知彼。通过网络嗅探器对网络上传输的数据包进行捕获和分析,获取所需要的信息,利用对这些信息进行网络安全分析。因此,对网络嗅探器的研究具有重要意义。 1.3本文研究的内容 本文的研究主要围绕以下几个方面进行。 1.网络嗅探器的概念及技术的研究。主要包括网络嗅探器的概念、网络嗅探器的工作原理及常见网络嗅探器的实现原理等。 2.入侵检测与嗅探器之间的联系,入侵检测的实现由四部分组成:数据包嗅探解析部分、数据行为检测部分、算法部分和扫描检测部分。数据包嗅探技术是实现入侵检测的基础,将数据包从共享网络线路中捕获,并将其提取到应用程序中。 3.网络嗅探程序的实现。主要工作包括:给出了一个网络嗅探程序的系统框架、数据包捕获程序的设计、数据包的解析、数据的显示等。 4.网络嗅探程序的性能测试与评价,得出结论。 2 网络嗅探器的基本原理 2.1网络嗅探器概述 网络嗅探器又称为网络监听器,简称为Sniffer子系统,放置于网络节点处,对网络中的数据帧进行捕获的一种被动监听手段,是一种常用的收集有用数据的方法,这些数据可以是用户的账号和密码,可以是一些商用机密数据等等。 Sniffer是利用计算机的网络接口截获目的地为其他计算机的数据报文的一种工具。Sniffer的正当用处主要是分析网络的流量,以便找出所关心的网络中潜在的问题。例如,假设网络的某一段运行得不是很好,报文的发送比较慢,而我们又不知道问题出在什么地方,此时就可以用嗅探器截获网络中的数据包,分析问题的所在。而嗅探器也可作为攻击工具被黑客所利用为其发动进一步的攻击提供有价值的信息。 2.2 嗅探器实现基础 以太网数据帧是一组数字脉冲,它们在传输介质上进行传输,从而实现信息的传递。以太网帧格式符合IEEE802.3标准,帧中包含目的地址和源地址,目的地址最高位为0是普通地址,为1时是组地址。当一个帧送到组地址时,组内的所有站点都会收到该帧。如果将它送到一个普通地址,一般情况下,只有一个站点收到这个帧,但是,以太网是以广播方式发送帧的,也即这个帧会传播到其所在网段内的所有站点,只不过该站点不会接收目的地址不为本机地址的帧。为了捕获网段内的所有帧(以后称数据包),可以设置以太网卡的工作方式,以太网卡通常有正常模式(normal mode)和混杂模式(promiscuous mode)两种工作模式。在正常模式下,网卡每接收到一个到达的数据包,就会检查该数据包的目的地址,如果是本机地址和广播地址,则将接收数据包放入缓冲区,其他目的地址的数据包则直接丢掉。因此,正常模式下主机仅处理以本机为目的的数据包,网卡如果工作在混杂模式,则可以接收本网段内传输的所有数据包。如果要进行数据包捕获,必须利用网卡的混杂模式,获得经过本网段的所有数据信息。 2.3 常见的sniffer sniff网络分析仪有专用硬件和软件的产品,尖端的网络分析仪产品可以找出一般网络接口检测不到的错误:中等商业市场的网络分析仪产品往往是带有特定软件的便携计算机;而基于各个平台的很多普通的网络监听软件则在网上可以自由下载。比较知名的被广泛用于调试网络故障的免费sniff工具有:tcpdump(运行在FreeBSD、linux、SunOS等系统下);Nfswatch(运行在HP-UX、 Irix、SunOS); Etherfind, Snooper(运行在SunOS); Ipman, therload,Gobbler(运行在DOS、Windows)。在Linux下监听的基本实现过程是通过Socket来实现的。Linux支持一种特殊的套接字,即Sock-Packet型套接字。在这种套接字下,应用程序可以读到网卡传递给系统的全部报文,一般情况下,网卡只将那些目的地址是自身的报文传递给系统内核。因此,需要将网卡的工作模式设定为混杂模式,这样系统内核就可以读到网卡监听到的所有报文,从而监听器应用程序也可以读到这些报文。 2.4 数据包捕获机制的研究 纵观国内外在网络嗅探技术中所使用的包捕获机制的方法,大致可归纳为两类:一类是由操作系统内核提供的捕获机制;另一类是由应用软件或系统开发包通过安装包捕获驱动程序提供的捕获机制,该机制主要用于Win32平台下的开发。操作系统提供的捕获机制主要有四种:BPF(Berkeley packet Filter),DLPI (Data Link Provider Interface),NIT(Network Interface Tap), Sock Packet类型套接口。BPF由基于BSD的Unix系统内核所实现。DLPI是Solaris(和其它System V Unix)系统的内嵌子系统。从性能上看, Sock Packet最弱。Windows操作系统没有提供内置的包捕获机制。它只提供了数量很少并且功能有限的API调用。WinPcap(Windows Packet Capture)是Win32上的第一个用来捕获数据包的开放系统软件包,它是一种新提出的强有力并且可扩展的框架结构。WinPcap包含了一系列以前系统所没有的创新特性。本文将对目前比较流行的WinPcap软件包提供的捕获机制进行简单介绍。 |