信息安全课程设计(论文)网络嗅探器的设计与实现.doc
《信息安全课程设计(论文)网络嗅探器的设计与实现.doc》由会员分享,可在线阅读,更多相关《信息安全课程设计(论文)网络嗅探器的设计与实现.doc(25页珍藏版)》请在三一办公上搜索。
1、 信息安全课程设计(论文)说明书题 目: 网络嗅探器的设计与实现 学 院: 专 业: 姓 名: 学 号: 指导教师: 2011年 月 日摘 要随着网络技术的飞速发展,以及越来越多的信息资源放在了网上,网络安全问题越来越被人们所重视,其安全性和可靠性也越发重要。嗅探技术作为网络安全攻防中最基础的技术,它既可以用于获取网络中传输的大量的敏感信息,又可以用来进行网络管理。但同时它又有另一方面的影响,即攻击者可以利用它来监听网络中的数据,达到非法获得信息的目的。因此对网络嗅探器的研究具有重要意义,分析其通过获取网络包得流向和内容等信息,从而进行网络安全分析和网络威胁应对。本课程设计是关于网络嗅探器的简
2、单设计与实现,同时对网络嗅探技术进行了简要分析,研究了网络数据包的捕获机制,以VS2010为开发平台,使用Windows环境下的网络数据包捕获开发库WinPcap认真学习和掌握网络嗅探器工作原理,设计出一个嗅探器程序,使其实现网络层抓包,并对获得包的源和目的地址、端口、协议等进行分析及显示,实现简单的包嗅探器功能。 关键字:网络嗅探 数据包捕获 数据包分析 网络协议 WinPcap VS2010目 录1、引言.11.1 开发背景11.2 开发意义11.3 正文安排12、系统分析.22.1 需求分析2 2.1.1 功能需求.2 2.1.2 适用范围.2 2.1.3 基本思路.2 2.1.4 使用
3、环境.2 2.1.5 可行性分析.22.2 技术分析2 2.2.1 嗅探原理.2 2.2.2 捕获机制.3 2.2.3 WinPcap 技术.33、程序设计与实现.43.1 主要流程43.2 总体规划43.3 函数说明43.4 分块设计6 3.4.1 获得网卡列表信息.6 3.4.2 数据包捕获.7 3.4.2 数据包过滤.7 3.4.2 数据包分析.84、问题分析及测试.94.1 问题分析94.2 测试105、结论.115.1 设计心得115.1 谢辞11参考文献.12附录(源程序).131、引 言1.1 开发背景随着网络技术的迅速发展,加速了全球信息化进程,各种重要数据在网上的传播日益普遍
4、,使得网络安全问题越来越为人们所关注。网络嗅探器作为一种网络数据监听程序,在网络安全攻防方面扮演了很重要的角色,多数黑客入侵成功并植入后门后的第一件事就是选择一个合适当前网络的嗅探器,以获得更多的受侵者的信息。嗅探器是一种常用的收集有用数据的方法,可以作为网络数据包的设备,如果把网络嗅探器放置于网络节点处,对网络中的数据帧进行捕获的一种被动监听手段,是一种常用的收集有用数据的方法,可以分析各种信息包并描述出网络的结构和使用的机器,由于它接收任何一个在同一网段上传输的数据包,所以也就存在着捕获密码、各种信息、秘密文档等一些没有加密的信息的可能性。1.2 开发意义本次课程设计是基于VS的网络嗅探器
5、的设计与实现,由于本人编程能力有限,只是对抓取到的本机在网络中的通信数据,比如说协议类型,源、目的地址和端口、数据包的大小等加以分析,而无法做到像Sniffer那种成熟的嗅探器所拥有的强大功能。作为网络技术人员来说,要想有效地利用它、防范它,就得深入地学习、分析网络嗅探技术。最为重要的是,对于网络嗅探器的设计与实现,使我对网络通信,数据传输和网络信息安全等有了切身的体会与融入,同时也是对大学三年来内容的学以致用,不断提高自我的一种有效途径。1.3 正文安排 作为论文的主要部分,本文正文的安排如下: 第一部分是系统分析,包括程序需求分析和技术分析。讨论用户需求,功能需求,性能需求,运行环境等因素
6、,对嗅探工具开发的思想和过程作初步的分析和论证。并介绍出现网络嗅探器工具的原理和方法,以及本次设计中用到的Winpcap技术; 第二部分是功能设计,包括系统的设计与实现。详细介绍使用Winpcap开发程序的一般流程及相关功能函数,以及数据包捕获,分析,过滤等各个模块的具体实现。 第三部分是问题分析及解决,同时介绍测试环境及过程,作为课程设计的最后一部分,将严格地对网络嗅探器进行测试。第四部分总结这次课程设计的心得、谢辞以及列出参考文献。2、 系统分析2.1 需求分析l 2.1.1 功能需求本程序主要实现了对流经网络的数据包进行捕获及分析,通过对网卡的选择,设置过滤规则,来制定对特定的协议进行解
7、析,主要运用到套接字编程,WinPcap编程等技术,在程序上每一步都有详细的解释,很容易了解本嗅探程序的功能。 l 2.1.2 适用范围这个程序是面向用户的,简单易行,是对网络协议进行分析,只要电脑上有流经网络的数据包,通过本程序的执行,均可捕获该数据报,并对其内容进行分析,操作步骤简单,每一过程均有明显的提示信息。l 2.1.3基本思路该嗅探程序的总体架构划分为5部分,分别是监听网络适配器,选择网卡设备,设置过滤规则,捕获数据包,数据的分析及显示。良好的实现了嗅探器的一般功能。l 2.1.4使用环境 (1)、一台主机 (2)、操作系统(Windows XP)(3)、开发工具(VS2010,W
8、inPcap)l 2.1.5可行性分析在日异月新的网络时代中,网络信息与安全一是其中重要的一环,网络嗅探更是网络攻防重基础的技术,用来监听网络数据,保障信息安全,这项技术有着广大的发展空间,其类的嗅探工具更是层出不穷,有着良好的发展前景及经济利益,而且操作运行时所需人员不是很多,这种工具的开发节省了大量的人力及物力,在广大市场中是被需求的,并且无论是生活中还是企业里都得到了广泛的应用,它所带来的经济效益是无可厚非的。2.2 技术分析l 2.2.1嗅探原理 嗅探器是一种常用的收集有用数据的方法,嗅探器是利用计算机的网络接口截获目的地为其它计算机的数据报文的一种工具。由于组网方式不同,嗅探器的工作
9、原理也有所不同,总共可以分为三类:(1) 基于网卡混杂模式的嗅探原理;(2) 基于ARP欺骗的网络嗅探原理;(3) 基于中间人攻击的嗅探原理。本次课程设计就是利用第一种方式来实现嗅探器的功能,从网卡原理上来说,在一个实际的系统中,网卡的主要功能就是接收和发送网络数据包,它根据网卡内的单片程序接收数据帧的目的MAC地址,根据计算机上的网卡驱动程序设置的接收模式判断该不该接收,认为该接收就接收后产生中断信号通知CPU,认为不该接收就丢掉不管,所以不该接收的数据网卡就截断了,计算机根本就不知道。而本次设计嗅探工具正是利用了这个特点,把网卡设置为“混杂模式”。网卡的混杂模式可以接受所有的网络数据包,无
10、论其目的地址是否等于自己的地址,都一并接受。l 2.2.2捕获机制很多网络安全系统最首要的任务就是捕获网络上的数据信息,而网络数据包捕获技术就解决了这个问题。不同的网络有不同的捕获技术,不同的操作系统其捕获机理也有所不同。以太网采用了CSMA/CD技术,它使用了广播机制,所有与网络连接的机器都可以看到网络上传播的数据,操作系统提供的捕获机制主要有以下三种:(1) SOCK_PACKET类型套接口;(2) 数据链路提供者接口(Data Link Provider Interface,DLPI);(3) 伯克利数据包过滤器(Berkeley Packet Filter,BPF)。BPF主要由两部分
11、组成:网络转发部分和数据包过滤部分。网络转发部分是从链路层中捕获数据包并把它们转发给数据包过滤部分,数据包过滤部分是从接收到的数据包中接受过滤规则决定的网络数据包,其他数据包就抛弃。捕获数据包和过滤数据包都是在操作系统内核中完成的,而且使用了数据缓存机制。从效率上来讲,BPF在三种机制中是性能最高的,而SOCK_PACKET是最弱的。在实际应用中,实现网络数据包捕获技术的代表是Libpcap。它是一个专业的跨平台的网络数据包捕获开发包。使用Libpcap可以很轻松地实现网络数据包的捕获功能,它的捕获机制就是BPF捕获机制。在Windows平台下有与Libpcap兼容的WinPcap开发包,它是
12、专门针对Windows平台而开发的,本次程序的开发就是利用WinPcap库函数实现的。l 2.2.3 WinPcap 技术WinPcap(Windows Packet Capture)是Windows平台下的一个免费、公平的专业网络数据包捕获开发包。WinPcap的功能为:捕获数据包(主要功能)、流量统计功能、数据包发送功能。它包括三部分,即数据包捕获和过滤块NPF、较低层的网络编程接口packer.dll、较高层的编程接口wpcap.dll。使用该开发包可以提高应用效率,WinPcap充分考虑了各种性能和效率的优化,在内核层实现了数据包的捕获和过滤,这是由NPF来实现的,NPF是WinPca
13、p的核心部分,它实现了内核的统计功能,对于设计网络流量的程序很有好处。体系结构调用如下:Applicationwpcap.dllPacket.dll NPF 图2.2.3:体系结构调用3、 程序设计与实现本次课设的主要研究内容是利用套接字开发网络嗅探器的程序设计,设计要求完成对流经本地网卡的所有数据包的捕获,分析协议类型,并根据不同的协议类型对数据包进行了进一步的分析,包括分析数据包的IP,端口,协议类型等。3.1 主要流程 3.2 总体规划首先要选择监听的网络适配器,再设置网络适配器为混杂模式,然后再设置过滤器,从而可以过滤使用特殊协议的数据包。当完成这些准备工作后,就可以对流经网络适配器的
14、数据进行循环捕获了。捕获的同时,可以分析和显示数据,这可以通过调用相关函数实现。程序主要分为五个模块:获得网卡信息、数据包过滤、数据包捕获、数据包分析、数据显示。3.3 函数说明 (1)、pcap_findalldevs()是用来获得主机的网络设备列表,获取的网络设备就存储在参数alldevs中函数体:int pcap_findalldevs(pcap_if_t * alldevs,char * error_content)说明:指向pcap_if_t*类型的列表的指针的指针,char型指针,当打开列表错误时 返回错误信息。当不再需要网卡列表时,用pcap_freealldevs(pcap_i
15、f_t *) 释放空间。 (2)、pcap_open_live() 是用来打开网络设备列表,得到一个包抓取的描述符。函数体:pcap_t *pcap_open_live(const char * device, int snaplen, int promise, int to_ms, char ebuf *)说明:device表示要捕获数据包的网络设备的名称,由函数pcap_findalldevs()得 到的; Snaplen表示要捕获的数据包的最大可抓取的最大字节; Promise表示捕获数据包是否设为混杂模式,若值为1 则表明设为混杂模式; to_ms表示捕获的时间间隔。(3) 、pcap
16、_lookupnet() 用来监测网卡所在网络的网络地址和子网掩码。函数体:int pcap_lookupnet(char *device,bpf_u_int32 *netp,bpf_u_int32 *maskp,char *errbuf)说明:bpf_u_int32 *netp 存放网络地址 bpf_u_int32 *maskp 存放子网掩码(4) 、pcap_compile()如果要获得特定的网络数据包,就需要使用过滤规则,过滤规则其实就是一个字符串,在Winpcap 中使用此函数用来编译表达式。函数体:int pcap_compile(pcap_t *p,struct bpf_progr
17、am *fp,char *str,int optimize,bpf_u_int32 netmask)说明:pcap_t *p 打开的设备接口句柄 struct bpf_program *fp 存储被编译过的过滤器版本的地址 Char *str 表达式本身 int optimize 是否被优化的整形量(0-false,1-true)(5) 、pcap_setfilter()使用过滤器用于设定一个过滤程序。函数体:int pcap_setfilter(pcap_t *p,struct bpf_program *fp)(6) 、pcap_loop()设置获取到满足过滤规则后,数据包处理的回调函数。函
18、数体:int pcap_loop(pcap_t *p,int cnt,pcap_handler callback,u_char *user)说明:int cnt 捕获数据包的个数 pcap_handler callback 回调函数的名称 u_char *user 送往回调函数的参数(7) 、pcap_close()关闭pcap_open_live()获取的包捕捉句柄,释放相关的资源。关闭相关的文件并释放对应资源。函数体:void pcap_close(pcap_t *p()(8) 、void ethernet_protocol_packet_callback()回调函数的原型。函数体:voi
19、d ethernet_protocol_packet_callback(u_char *argument, const struct pcap_pkthdr *packet_header, const u_char *packet_content)说明:u_char *argument对应于pcap_loop()的最后一个参数 const struct pcap_pkthdr *packet_header参数类型在pcap.h中包含,该结 构体包含数据包被嗅探的时间、大小等信息。(9) 、struct protocol_header用于定义ETHERNET、IP、TCP、UDP、ARP、ICM
20、P等协议的头部信息。3.4 分块设计l 3.4.1获得网卡列表信息首先调用WinPcap 的pcap_findalledvs () 函数获取电脑中所有可用的网络适配器列表,并显示在控制台上,供操作人员选择不同的网络适配器进行测试。这个函数返回一个pcap_if 结构的连表,连表的每项内容都含有网卡信息,尤其是字段名字namea和含有名字的描述description 以及有关驱动器的易读信息。同样,WinPcap 也提供其他的高级信息,特别是pcap_findalldevs () 这个函数返回的每个pcap_if 结构体都包含一个pcap_addr 结构的列表, 它包含:一个地址列表,一个掩码列
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息 安全 课程设计 论文 网络 嗅探器 设计 实现
链接地址:https://www.31ppt.com/p-3935101.html