网络监听论文.docx

上传人:b****6 文档编号:8115702 上传时间:2023-05-12 格式:DOCX 页数:12 大小:349.59KB
下载 相关 举报
网络监听论文.docx_第1页
第1页 / 共12页
网络监听论文.docx_第2页
第2页 / 共12页
网络监听论文.docx_第3页
第3页 / 共12页
网络监听论文.docx_第4页
第4页 / 共12页
网络监听论文.docx_第5页
第5页 / 共12页
网络监听论文.docx_第6页
第6页 / 共12页
网络监听论文.docx_第7页
第7页 / 共12页
网络监听论文.docx_第8页
第8页 / 共12页
网络监听论文.docx_第9页
第9页 / 共12页
网络监听论文.docx_第10页
第10页 / 共12页
网络监听论文.docx_第11页
第11页 / 共12页
网络监听论文.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

网络监听论文.docx

《网络监听论文.docx》由会员分享,可在线阅读,更多相关《网络监听论文.docx(12页珍藏版)》请在冰点文库上搜索。

网络监听论文.docx

网络监听论文

引言

由于互联网的发展,整个世界经济正在迅速地融为一体,而整个国家犹如一部巨大的网络机器。

计算机网络已经成为国家的经济基础和命脉。

伴随着网络的发展,也产生了各种各样的问题,其中安全问题尤为突出。

了解网络面临的各种威胁,防范和消除这些威胁,实现真正的网络安全已成了网络发展中最重要的事情。

遗憾的是,当网络给人们提供便利的同时,网络技术的发展方向似乎都趋向于网络的便利性和实用性,因而留下了太多的技术、管理和基础设施的漏洞。

正是由于网络本身存在的这些缺陷和漏洞,网络在进行信息和数据传送时,可能会因为网络传输介质带宽的限制而出现数据冲突,传输帧中的地址不匹配或是因为网络硬件设备的错误,导致传输的信息出错或丢失;一些网络黑客和非法用户利用这些缺陷向网络发送可疑或不安

全的信息,肆意盗窃和破坏网络数据。

网络的维护和安全的要求也变得越来越高。

网络监听技术的起源是网络管理员为了诊断网络故障的需要,而监听网络中传输的数据信息。

一般的做法是在一定的网段上安装网络监视系统或网络分析仪来获取网络上的数据包进行分析,以便找出错误的原因,解决网络的故障。

一些网络管理人员也利用截取网络中传输的数据监听网络数据流量,来实现一定的流量计费功能。

目前,很多黑客也利用网络监听来获取一些明文传送的信息,达到窃取信息的目的。

在这样的一个迫切需要网络安全的信息社会里,积极的研究和探索网络安全问题是一件非常有意义的事情,通过研究网络监听系统来进行具体的网络安全研究工作是非常必要的。

第一章网络监听软硬件现状的简介

1.1研究现状

从早期的计算机网络出现,1969年美国国防部高级研究计划局建成的ARPANET实验网开始,计算机网络在各发达国家迅速蓬勃发展,到今天复杂的Intranet和Internet网络,经历了不同的时期。

伴随着网络的出现,对网络数据截取的工具,像sniffer也就随之而产生了。

到目前为止,可以进行网络数据监听的工具从软件到硬件,从有线网到无线网,可以说是应有尽有。

有软件实现的便携式终端,也有硬件实现的网络分析仪。

下面分别介绍。

1.1.1软件数据截取工具介绍

目前,针对各种不同版本的操作系统都有不同版本的数据监听软件,如MS-DOS平台上Gobblor、Window9x平台的NetXray、Win2000/xp平台下得SnifferPro、Novell平台的EthLoad以及UNIX平台Netman和Sunsniff等等。

1.2硬件数据截取工具介绍

以上介绍的均是由单纯的软件实现的sniffer,其功能相对硬件来说还是较为简单的。

下面将介绍相应的由硬件实现的sniffer。

硬件的sniffer又称为网络分析仪(协议分析仪)。

目前的网络分析仪的技术已经非常的成熟,产品也非常的多样。

各种产品的功能会略有差异,有的只能针对一种协议,有的可以分析多种协议。

一般的情况下,大型的企业网络都会使用软硬件结合的网络分析仪。

如:

1)安捷伦网络分析仪系统,2)FlukeOptiview综合网络协议分析仪等。

1.3综述

软件实现的Sniffer工具优点是:

物美价廉(甚至可以使用共享软件),且易于学习使用,同时对硬件的要求不高,也易于交流数据;缺点是:

无法抓获网络上所有的传输信息,比如碎片、shortevent等等,某些情况下就无法真正了解网络的故障和运行情况。

但是,它可以和其他的软件配合使用一起工作,可以起到维护网络稳定和安全的作用。

硬件实现的Sniffer通常称为网络协议分析仪。

它的功能比较齐全,可以对各种的网络环境进行网络数据包的检测和监听,可以进行详细的网络故障分析,现在新出现的分布式网络分析仪和无线网络分析仪使其在维护网络稳定和网络安全方面更加游刃有余。

但是,硬件的网络分析仪的缺点是:

价格昂贵,一般功能的网络分析仪的价钱都可以达到¥50,000,功能齐全的就更加昂贵。

而且体积比较大,不容易随身携带,一般硬件的网络分析仪都固定在某一固定的网络中。

根据各自的特点,一般在一些骨干网中安置硬件的网络协议分析仪,而在规模相对小一些的局域网中就使用软件实现的Sniffer。

第二章网络监听相关技术综述

2.1OSI模型

在20世纪80年代早期,ISO开始致力于制定一套普遍适用的规范集合,以使得全球范围的计算机平台可进行开放式通信。

ISO创建了一个有助于开发和理解计算机的通信模型,即开放系统互连OSI(模型)。

OSI模型将网络结构划分为七层:

即物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。

每一层均有自己的一套功能集,并与紧邻的上层和下层交互作用。

在顶层,应用层与用户使用的软件(如字处理程序或电子表格程序)进行交互。

在OSI模型的底端是携带信号的网络电缆和连接器。

总的说来,在顶端与底端之间的每一层均能确保数据以一种可读、无错、排序正确的格式被发送。

图2.1OSI七层模型

1)物理层:

物理层是OSI模型的最低层或第一层,该层包括物理联网媒介,如电缆连接器。

物理层的协议产生并检测电压以便发送和接收携带数据的信号。

在你的桌面PC上插入网络接口卡,你就建立了计算机连网的基础。

换言之,你提供了一个物理层。

尽管物理层不提供纠错服务,但它能够设定数据传输速率并监测数据出错率。

2)数据链路层:

数据链路层是OSI模型的第二层,它控制网络层与物理层之间的通信。

它的主要功能是将网络层接收到的数据分割成特定的可被物理层传输的帧。

帧是用来移动数据的结构包,它不仅包括原始(未加工)数据,或称“有效荷载”,还包括发送方和接收方的网络地址以及纠错和控制信息。

其中的地址确定了帧将发送到何处,而纠错和控制信息则确保帧无差错到达。

3)网络层:

即OSI模型的第三层,其主要功能是将网络地址翻译成对应的物理地址,并决定如何将数据从发送方路由到接收方。

网络层通过综合考虑发送优先权、网络拥塞程度、服务质量以及可选路由的花费来决定从一个网络中节点A到另一个网络中节点B的最佳路径。

由于网络层处理路由,而路由器因为连接网络各段,并智能指导数据传送,因此属于网络层。

4)传输层:

传输层主要负责确保数据可靠、顺序、无错地从A点传输到B点(A、B点可能在相同的网络段也可能不在相同的网络段上)。

因为如果没有传输层,数据将不能被接受方验证或解释,所以,传输层常被认为是OSI模型中最重要的一层。

传输协议同时进行流量控制或是基于接收方可接收数据的快慢程度规定适当的发送速率。

除此之外,传输层按照网络能处理的最大尺寸将较长的数据包进行强制分割。

5)会话层:

会话层负责在网络中的两节点之间建立和维持通信。

会话层的功能包括:

建立通信链接,保持会话过程通信链接的畅通,同步两个节点之间的对话,决定通信是否被中断以及通信中断时决定从何处重新发送。

6)表示层:

表示层如同应用程序和网络之间的翻译官,在表示层,数据将按照网络能理解的方案进行格式化;这种格式化也因所使用网络的类型不同而不同。

表示层管理数据的解密与加密,除此之外,表示层协议还对图片和文件格式信息进行解码和编码。

7)应用层:

OSI模型的顶端也即第七层是应用层。

应用层负责对软件提供接口以使程序能使用网络服务。

应用层提供的服务包括文件传输、文件管理以及电子邮件的信息处理。

2.2TCP/IP协议体系结构

TCP/IP不是一个简单的协议,而是一组小的、专业化协议,包括TCP、IP、UDP、ARP、ICMP以及其他的一些被称为子协议的协议。

大部分网络管理员将整组协议称为TCP/IP,有时简称为IP。

TCP/IP的前身是由美国国防部在20世纪60年代末期为其远景研究规划署网络(ARPAnet)而开发的。

由于低成本以及在多个不同平台间通信的可靠性,TCP/IP迅速发展并开始流行。

它实际上是一个关于因特网的执行标准,并迅速成为局域网的首选协议。

TCP/IP这个协议遵守一个四层的模型概念:

应用层、传输层、互联层和网络接口层。

2.1.3MAC地址的格式

以太网卡的MAC地址是一组唯一的48比特数字。

这48比特分为两个部分组成,前面的24比特用于表示以太网卡的寄主,后面的24比特是一组序列号,是由寄主进行分配的。

这样可以保证没有任何两块网卡的MAC地址是相同的(当然可以通过特殊的方法实现)。

这24比特被称之为OUI(OrganizationallyUniqueIdentifier)。

可是,OUI的真实长度只有22比特,还有两个比特用于其他:

一个比特用来校验是否是广播或者多播地址,另一个比特用来分配本地执行地址(一些网络允许管理员针对具体情况再分配MAC地址)。

举个例子,你的MAC地址在网络中表示为030000000001。

第一个字节所包含的值二进制表示方法为00000011。

可以看到,最后两个比特都被置为真值。

即指定了一个多播模式,向所有的计算机进行广播,使用了“NetBEUI”协议(一般的,在Windows计算机的网络中,文件共享传输等是不使用TCP/IP协议的)。

2.3IP地址

在TCP/IP协议中,编址由网际协议(InternetProtocol,简称IP)规定,IP标准规定每台主机一个32位数作为该主机的地址。

所有Internet上的计算机都必须有一个Internet上唯一的编号作为其在Internet的标识,这个编号称为IP地址。

每个数据报中包含有发送方的IP地址和接收方的IP地址。

1)IP地址

IP地址是一个32位二进制数,为了输入和读取的方便,通常采用点分十进制表示法,即以32位数中的每8位为一组,用十进制表示,并将各组用句点分开。

例:

某台机器的IP地址为110010100111000100100000010000001,写成点分十进制表示形式就是202.114.64.33。

整个Internet由很多独立的网络互联而成,每个独立的网络,就是一个子网,包含若干台计算机。

根据这个模式,Internet的设计人员用两级层次模式构造IP地址。

IP地址的32个二进制位也被分为两个部分,即网络地址和主机地址,网络地址就像电话的区号,标明主机所在的子网,主机地址则在子网内部区分具体的主机。

2)IP地址分类

IP地址根据网络规模的不同分为A、B、C、D、E五类。

其中A、B和C类称为基本类,D类地址是多址广播地址,允许发送到一组计算机,E类是实验性地址。

第三章网络监听技术概述

3.1网络监听概念

网络监听技术是一种与网络安全性密切相关的技术,它的完整定义是:

利用计算机的网络接口截获目的地为其它计算机的数据报文的一种技术。

网络监听器(sniffer)原来是提供给网络管理员的一类管理工具,使用这组工具可以监视网络的状态、数据流动情况以及网络上传出的消息并利用这些消息来排除网络故障。

不幸的是由于网络监听能有效的截获网络上的数据,它也成为了黑客使用最多的法。

黑客运行监听工具暗中监视他人的网络状况、窃取明文传出的密码和各种数据。

网络监听不仅在共享式局域网中实现,而且还可以在交换式局域网中实现。

3.2网络监听的可能性

在一些传输介质上,网络信息是会有被监听的可能性。

在网络上,监听效果最好的地方是在网关、路由器和防火墙一类的位置,通常由网络管理员来操作。

而大多数黑客使用的地方是以太网中任何一台连网的主机上,因为这是监听最方便的地方。

下面简单讨论一下各种数据链路上网络信息被监听的可能性。

1)以太网:

因为以太网是一种广播型网络,所以大多数网络数据的截获是在这种网络上实现的,其中可以分为共享式以太网监听和交换式以太网监听。

2)令牌网:

尽管令牌网并不是一个广播型网络,但带有令牌的那些包在传输过程中,平均要经过网络上一半的计算机。

使得网络监听成为可能,但是令牌网中高的数据传输率使网络监听实现起来变得非常困难。

3)电话线:

电话线可以被一些电话公司协作人或者一些有机会在物理上访问到线路的人搭线窃听。

在微波线路上的信息也会被截获。

在实际中,高速的调制解调器将比低速的调制解调器搭线窃听困难一些,因为高速调制解调器中引入了许多频率。

4)微波和无线电:

监听的可能性高。

无线电本来就是一个广播性的传输媒介,任何一个无线电接收机都可以截获传输的信息。

3.4以太网的网络数据监听

目前,以太网组成的局域网中,按传输技术网络可以分为两种:

点到点网络和广播式网络。

局域网下目前以广播式的共享网络居多,但以点到点方式实现的交换式局域网也正在日益普及。

在这两种环境下,由于网络的构成不同,监听的实现原理也各不相同。

由于局域网下的数据传输主要是在数据链路层进行的,因此监听也集中在这一层实现。

3.5共享式局域网中实现网络监听

共享式局域网采用的是广播信道,每一台主机都共享一条网络总线,这意味着所有的主机都可以接收到总线上的数据包。

但我们实际情况是每个主机只接受发给它的数据包,丢弃不属于自己的数据包,这是通过每台主机网卡上唯一的MAC地址实现的。

只有当数据包中目的地址与自己的MAC地址相同,主机才接收该数据包,否则不接受该

数据包。

在一个计算机系统中,数据的收发是由网卡来完成的。

网卡接收到传输来的数据,得知数据包的目的MAC地址,根据计算机上的网卡驱动程序设置的接收模式及该地址值判断该不该接收,认为该接收就产生中断信号通知CPU,所以是否接收数据由网卡而不是计算机决定。

CPU得到中断信号后产生中断,操作系统就根据设置的网卡中断程序地址调用相应程序接收数据,驱动程序接收数据后放入信号堆栈让操作系统处理。

对于网卡来说一般有四种接收模式:

1广播模式:

该模式下的网卡能够接收网络中的广播信息。

2组播模式:

设置在该模式下的网卡能够接收组播数据。

3直接模式:

在这种模式下,只有目的网卡才能接收该数据。

4混杂模式:

在这种模式下的网卡能够接收一切通过它的数据,而不管该数据是否是发送给它的。

正常的情况下,一个网卡默认响应广播模式和直接模式。

而监听的主机网卡一般采用混杂模式(Promiscuousmodel),因而可以接收到网上所有数据包。

共享式网络监听的实现正是基于这一原理。

3.6交换式局域网中实现网络监听

3.6.1ARP欺骗(ARPSpoofing)

ARP欺骗能够实现的主要原因是ARP协议在早期设计上的缺陷造成的。

ARP协议是这样工作的:

首先,源主机会向网络中所有主机广播包含有ARP请求的数据包,数据包中询问与目的主机IP地址相对应的MAC地址;然后拥有该IP的目的主机会向请求方发送一个含有其MAC地址的ARP应答数据包,这样,源主机就知道向哪个MAC地址,也就是目的主机发送数据了。

出于传输效率以及实现简单性的考虑,ARP协议没有考虑安全问题。

ARP协议是建立在各个主机之间相互信任基础上的,因此存在一定的安全问题。

问题之一:

局域网内每台主机都维护着一张ARP表来表明IP地址与MAC地址的对应关系,这张ARP表定时的进行刷新,如果假冒者在下次更新之前成功地修改了被攻击主机上的ARP表,就可以进行假冒了。

问题之二:

ARP请求包是以广播的方式进行。

因为主机不知道通信对方的MAC地址,才需要进行ARP广播请求。

这样攻击者就可以通过伪装ARP应答包来与真正要通信的主机竞争,并且通过迟延一定时间发送ARP应答包来更改已经被刷新了的、正确的ARP表。

问题之三:

由于ARP协议是无状态和无认证的,因此可以随意的发送ARP应答包。

局域网中任何主机即使没有ARP请求的时候也可以做出应答,只要应答有效,接受到应答包的主机就会无需认证的和无条件的根据应答包的内容刷新本机的ARP表。

下面举例详细说明ARP欺骗的过程。

假设在局域网中有三台主机通过交换机相连。

如图3.1所示:

图3.1ARP欺骗后数据传递过程

主机A:

IP地址:

192.168.100.1

MAC地址:

00-51-24-35-33-01

主机B:

IP地址:

1921681002

MAC地址:

00-51-24-35-33-02

主机C:

IP地址:

192.168.1003

MAC地址:

00.51-24-35-33-03

正常情况下,主机B是收不到主机A与主机C之间的通信报文的,如果主机B要监听主机A与主机C的通信报文,那么主机B就要分别向主机A和主机C发送假冒的ARP应答包。

对于主机B发往主机A的应答包中IP地址与MAC地址的对应关系是:

主机C的IP地址:

192.168.1003对应主机B的MAC地址:

00-5l-24-35-33-02,这样在丰机A收到应答包后会刷新自己本地的ARP表。

这样当主机A要发往主机C的报文实际上已发给了主机B,因为数据包是根据MAC地址发送的而不是根据IP地址发送的。

同样对于主机B发往主机C的应答包中口地址与MAC地址的对应关系是:

宅机A的IP地址:

192.168.100.1对应主机B的MAC地址:

00.51.24.35.33.02。

这样就可监听主机A与主机C之间的所有报文了,如图2所示。

这里,主机B相当于充当了一个中间人的角色,因此这种监听方法被称为“Man-In-The—Middle”方法。

3.6.2MAC复制(MACDuplicating)

由于很多网卡允许修改内部的MAC地址,所以可以利用这一点修改本地的MAC地址,使它和被监听主机的MAC地址相同,这样,交换机就会发现,有两个端口对应相同的MAC地址,于是到该MAC地址的数据包将同时从这两个交换机端口发送出去。

这种方法也要求交换机使用动态的地址映射表。

这种方式与前面提到的ARP欺骗有本质的不同,前者是欺骗交换机,后者是毒害主机的ARP缓存而与交换机没有关系。

3.6.3MAC洪水(MACFlooding)

交换机要负责建立两个节点之间的“虚电路”,就必须维护一张交换机端口与MAC地址的映射表。

这张映射表是存放在交换机的内存中的,由于交换机的内存是有限的,所以这张映射表存储的映射表项也是有限的。

如果向这个交换机发送大量的虚假MAC地址数据从而使映射表“溢出”,使交换机在应接不暇的情况下,像普通Hub那样只是简单地向所有端口广播数据。

这样实际上就破坏了网络的交换环境,监听者就可以用共享式局域网中的方法进行监听。

3.7网络数据过滤机制

通过网络数据截获机制我们可以获取几乎所有流经该网络的数据包,但是在实际操作中,我们只对部分有用的数据感兴趣,其它的数据都会忽略掉。

因此我们使用相应的数据过滤机制来对数据进行过滤,这样将大大提高系统的性能。

通常的数据过滤机制有两种实现方式:

3.7.1树型结构过滤机制

在树型模型中,每一节点代表一个布尔关系如AND、OR,每个叶子代表一个谓词短语,如type=IP,边表示布尔操作和操作数的关系。

树结构方式如图2.17所示。

图2.17树结构方式图2.18CFG结构方式

树型图的操作往往基于操作数堆栈运算,指令将常数或包数据压入堆栈,在堆栈顶层执行布尔运算或位运算,通过连续运算,在堆栈清空时返回结果。

堆栈需要内存模拟,其中的pop和push操作需要指针的加减运算将数据从内存读取和写入内存。

另外树型结构解释包时可能进行重复操作,例如某个值可能在多个叶子中分别从内存读取并计算,因此这种方式效率较低。

3.7.2可控制流图方式CFG(ControlFlowGraph)过滤机制

在CFG模型中,每个节点代表一个谓词短语,而边代表控制转换,如果谓词短语为true则转向右边,反之转向左边。

每个CFG图有两个终结节点,表示返回true或者false。

其结构方式如图2.18所示。

CFG模型可以基于寄存器操作,且CFG模型解释包时数据包的解释状态和路径是可记忆的,不需要重复计算。

以上两个模型的计算功能大致相同,它们可以表示相同的函数只在实现的过程不相同。

但是它们在实现时都有相同的要求:

1)独立于协议;

2)指令集是通用的;

3)尽量少的引用数据包。

第四章Windows平台下的数据包截获的方法介绍

网络封包截获,涉及驱动编程技术、核心态编程技术、系统动态链接库编程技术、协议生成与解析编程技术等,集中体现了网络应用的核心技术,是防火墙等高级网络应用开发的基础。

截获Windows下的网络数据包可以在两个层面进行:

用户态(usermode)和内核态(kernel-mode),基于Windows2000和WindowsXP的网络封包截获技术主要分为以下几种:

WinsockLayeredServiceProvider、WinSock2动态链接库重载、Winpcap、Win2kFilter-HookDriver、NDISHookDriver、传输层过滤驱动(TDI)、中间层驱动(NDIS)。

几乎所有的Unix操作系统都为应用程序直接与网络交互提供了一套标准的系统调用,这样的系统调用非常有用,例如可以用来直接捕获数据包。

这使得unix操作系统下的Sniffer相当多。

而Windows平台下,由于系统没有直接提供捕获数据包的API,而且网卡驱动不能重新编译以加入新功能,所以要想在windows下开发Sniffer很困难,只能通过自己编写一个驱动程序或网络组件来访问内核网卡驱动提供的数据包来实现。

WinPcap这个捕获数据包的工具库的出现,在一定程度上弥补了Windows操作系统在这方面的欠缺,也为Windows下网络监听工具的开发带来了新的方法和思路。

本文将简要介绍WinPcap,以及利用WinPcap开发网络监听工具。

4.1Winpcap技术介绍

WinPcap的出现具有一定的必然性。

由于Window操作系统没有提供可以直接捕获数据包的API,尽管提供了一些内核模块,但存在着严重的局限性。

例如:

IPFilterDriver只运行在Windows2000下,且仅支持IP协议。

由于这些局限,使得Windows平台下的网络安全和分析工具无论在数量上,还是质量上都与Unix下有很大的差距。

微软研究院赞助了意大利一家开发机构,为Win32平台底层网络分析开发了一套有力而且易扩展的体系结构——WinPcap,它可以将Unix支持的数据包捕获功能加到Win32系统中,从而弥补了Windows操作系统这方面的欠缺。

而且WinPcap完全开放,提供源代码,同时它提供了与Libpcap相兼容的函数接口。

4.2WinPcap的体系结构

(1)BSDCapturingComponent的体系结构:

BSDCapturingComponent是Unix下最常用的捕获数据包的驱动,其基本体系结构见图4.1。

图4.1BSDCapturingComponent的体系结构

如图4.1所示,BSDCapturingComponent由以下几部分组成:

NetWorkTap,它负责从网络直接捕获所有的数据包;BerkeleyPacketFilter,它用来分析捕获进来的数据包;两种Buffer:

一种工作在核心层,一种工作在用户层。

经过BerkeleyPacketFilter的数据包被拷贝到KernelBuffer中,它分为两个buffer:

storebuffer和holdbuffer。

storebuffer用于保存从网络适配器捕获的数据包,holdbufier则用于将数据包拷贝到用户的buffer中。

二者之间拥有swap特性:

由于storebuffer比holdbuffer更易被填满,所以当storebuffer已满,而holdbuffer为空的时候,storebuffer变成holdbuffer,而之前的holdbuffer变成storebuffer。

这样使得用户的程序和捕获数据包的驱动完全分开。

Us

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2