




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、使用ARP分组检测处于混杂模式的网络节点摘要本文将阐述PromiScan(一个能够有效地检测网络嗅探器的软件)使用的检测机制。嗅探器为了能够截获网络上所有的分组,必须把网络接口卡(Network Interface Card,NIC)设置为混杂模式(promiscuous mode)。接着,网卡就能够接受网络上所有的分组,并将其送到系统内核。地址解析协议(Address Resolution Protocol,ARP)请求报文用来查询硬件地址到IP地址的解析。我们将使用这类分组来校验网卡是否被设置为混杂模式(promiscuous mode)。之所以会使用ARP请求分组是因为它适用于所有基于以
2、太网的IPV4协议。在混杂模式(promiscuous mode)下,网卡不会阻塞目的地址不是自己的分组,而是照单全收,并将其传送给系统内核。然后,系统内核会返回包含错误信息的报文。基于这种机制,我们可以假造一些ARP请求报文发送到网络上的各个节点,没有处于混杂模式的网卡会阻塞这些报文,但是如果某些节点有回应,就表示这些节点的网卡处于混杂模式下。这些处于混杂模式的节点就可能运行嗅探器程序。这样就可以成功地检测到网络运行的嗅探器程序。(2002-06-24 14:45:15)摘要在一个局域网中,安全问题应该引起注意。当纯文本数据在网络上传输时,任何网络用户都会很容易地窃取这些信息。在网络上窃取数
3、据就叫作嗅探(sniffing)。通过嗅探网络,一个用户能够获得绝密文档的访问权限,窥探到任何人的隐私。在Internet上有很多自由散发的嗅探器软件可以实现上述目的。尽管进行网络嗅探非常容易,然而却没有很好的方法来检测这种恶意行为。本文将阐述PromiScan(一个能够有效地检测网络嗅探器的软件)使用的检测机制。嗅探器为了能够截获网络上所有的分组,必须把网络接口卡(Network Interface Card,NIC)设置为混杂模式(promiscuous mode)。接着,网卡就能够接受网络上所有的分组,并将其送到系统内核。地址解析协议(Address Resolution Protoco
4、l,ARP)请求报文用来查询硬件地址到IP地址的解析。我们将使用这类分组来校验网卡是否被设置为混杂模式(promiscuous mode)。之所以会使用ARP请求分组是因为它适用于所有基于以太网的IPV4协议。在混杂模式(promiscuous mode)下,网卡不会阻塞目的地址不是自己的分组,而是照单全收,并将其传送给系统内核。然后,系统内核会返回包含错误信息的报文。基于这种机制,我们可以假造一些ARP请求报文发送到网络上的各个节点,没有处于混杂模式的网卡会阻塞这些报文,但是如果某些节点有回应,就表示这些节点的网卡处于混杂模式下。这些处于混杂模式的节点就可能运行嗅探器程序。这样就可以成功地检
5、测到网络运行的嗅探器程序。1.简介在局域网中,嗅探行为已经成为网络安全的一个巨大威胁。通过网络嗅探,一些恶意用户能够很容易地窃取到绝密的文档和任何人的隐私。要实现上述目的非常容易,恶意用户只要从网络上下载嗅探器并安全到自己的计算机就可以了。然而,却没有一个很好的方法来检测网络上的嗅探器程序。本文将讨论使用地址解析协议(Address Resolution Protocol)报文来有效地检测办公网络和校园网上的嗅探器程序。2.网络嗅探的原理局域网通常使用以太网进行连接。在以太网线缆上使用IP(IPV4)协议传输的传递的信息是明文传输的,除非使用了加密程序进行了加密。当一个人把信息发送到网络上,他
6、会希望只有特定的用户才能收到这些信息。但是,非常不幸,以太网的工作机制为非验证用户提供了窃取这些数据的机会。以太网在进行信息传输时,会把分组送到各个网络节点,目的地址匹配的节点会接收这些分组,其它的网络节点只做简单的丢弃操作。而接收还是丢弃这些分组由以太网卡控制。在接收分组时,网卡会过滤出目的地址是自己的分组接收,而不是照单全收。在本文以后的部分我们将把网卡的这种过滤称为硬件过滤(Hardware Filter)。但是这只是在正常情况下,嗅探器使用另一种工作方式,它把自己的网卡设置为接收所有的网络分组,而不管分组的目的地址是否是自己。这种网卡模式叫作混杂模式(Promiscuous Mode)
7、。3.检测混杂模式的基本概念在网络中,嗅探器接收所有的分组,而不发送任何非法分组。它不会妨碍网络数据的流动,因此很难对其进行检测。不过,处于混杂模式(promiscuous mode)网卡的状态很显然和处于普通模式下不同。在混杂模式下,应该被硬件过滤掉的分组文会进入到系统的内核。是否回应这种分组完全依赖与内核。下面我们举一个现实世界中的例子,说明我们检测处于混杂模式网络节点的方法。设想一下,在一个会议室中正在举行一个会议。某个人把耳朵放在会议室就可以进行窃听(嗅探_)。当她(还是个女的,原文如此:P)进行窃听(嗅探)时,会屏住呼吸,安静地聆听会议室内所有的发言。然而,如果此时会议室内有人忽然叫
8、窃听者的名字:“XX太太”,她就可能答应“唉”。这听起来有点好笑,但是完全可以用于网络嗅探行为的检测。网络进行网络嗅探的节点会接收网络的所有报文,因此其内核可能对某些本该被硬件过滤的分组作出错误回应。根据这个原理,我们可以通过检查节点对ARP报文的响应来检测网络的嗅探行为。4.基础4.1.硬件过滤器首先,我们从处于混杂模式(promiscuous mode)下和普通模式下有何不同开始。以太网的地址是6个字节,制造商为每块网卡分配的地址在全世界是唯一的,因此理论上没有相同地址的网卡。在以太网上的所有通讯都是基于这种硬件地址。不过,网卡可以被设置为不同的过滤模式以接收不同种类的分组。下面就是以太网
9、卡的过滤模式:4.1.1.unicast网卡接收所有目的地址是自己的分组4.1.2.broadcast接收所有广播分组,以太网广播分组的目的地址是FFFFFFFFFFFF。这种广播分组能够到达网络上的所有节点。4.1.3.multicast接收目的地址为指定多投点递交(multicast)组地址的分组。网卡只接收其地址已经预先在多投点列表中注册的分组。4.1.3.all multicast接收所有多投点递交广播分组。4.1.4.promiscuous根本不检查目的地址,接收网络上所有的分组。图-1描述了硬件过滤器处于在正常情况下和在混杂模式下的区别。通常,网卡的硬件过滤器被设置为接收目为单投点
10、递交(unicast)、广播(broadcast)和多投点递交(multicast)地址1的分组。过滤器只接收目的地址为自己的地址、广播地址(FF FF FF FF FF FF)和多投点地址1(01 00 5E 00 00 01)的分组。 4.2.ARP机制使用以太网连接的IP网络需要依靠以太网进行传输。只使用IP地址,报文是无法发送的。因此,在以太网上需要一种机制来提供IP地址和硬件地址之间的转换。这种机制就是地址解析协议(Address Resolution Protocol)。ARP属于网络层,和IP处于OSI模型的同一层。在IP网络上地址解析是不断进行的,所以ARP报文比较适合用来检测
11、处于混杂模式(promiscuous mode)的网络节点。在下面的例子中,我们将讲述使用ARP报文是怎样解析IP地址的:例如:网络上一台IP地址为的PC(X)以太网地址是00-00-00-00-00-01,这台PC(X)需要向网络上另外一台IP地址为0的PC(Y)发送消息。在发送之前,X首先发出一个ARP请求包查询0对应的以太网地址。查询包的目的地址被设置为FF-FF-FF-FF-FF-FF(广播),从而本地网络上的所有节点都可以收到这个包。收到之后,每个节点会检查这个ARP包查询的IP地址和本机的IP地址是否匹配。如果不同,
12、就忽略这个ARP包;如果匹配(Y)就向X发出应答。X收到应答之后就缓存Y的IP/硬件地址。然后,X就可以向Y发送实际的数据。5.检测处于混杂模式的节点上面讲到,报文的过滤状态是处于混杂模式状态和正常的网络节点的区别。当网卡被设置为混杂模式,本该被过滤掉的报文就会进入系统的内核。通过这种机制,我们可以检测到网络上处于混杂模式的节点:我们构造一个ARP查询包,其目的地址不是广播地址,然后向网络上的各个节点发送这个ARP查询包,最后通过各个节点的回应来判断是否处于混杂模式。下面我们讨论一下整个ARP请求/响应的操作过程。首先,产生一个ARP查询包来解析0的硬件地址。为了使网络上
13、的所有节点都能够收到这个查询包,把这个包的目的地址设置为广播地址。理论上,只有IP地址为0的网卡才能对这个查询包进行响应。进一步设想,如果我们把这个查询包的目的地址(以太网地址)设置为另外的地址,而不是原来的广播地址又将如何?例如:我们把查询包的目的地址设置为00-00-00-00-00-01会发生什么?处于正常模式下网络节点的以太网卡会认为这个查询包是发往其它主机的,其硬件过滤器会拒绝接收这个包;然而,如果这个网络节点(0)的以太网卡处于混杂模式(promiscuous mode)下,那么即使以太网地址不匹配,其硬件过滤器也不进行任何过滤,从而使这
14、个查询包能够进入到系统的内核。因为这个节点的IP地址和查询包的要查询IP地址相同,其内核就会认为ARP查询包到达,应该作出应答。但是,另我们吃惊的是,这个处于混杂模式节点的内核不会应答ARPR查询包。这种出人意料的结果说明这个包被系统内核过滤掉了。在这里我们把这叫作软件过滤器。再进一步,我们可以通过区别硬件过滤器和软件过滤器的不同特征来检测处于混杂模式的网络节点。硬件过滤器一般会阻塞所有无效的分组(这些分组显然不会进入系统内核),因此能够通过硬件过滤器一般也能够通过软件过滤器,这种情况我们不多做讨论。现在我们需要构造应该被被硬件过滤器阻塞,但是却能够通过软件过滤器的报文。如果把这种报文送到各个
15、网络节点,那么处于普通模式下的网络节点将不做应答;而处于混杂模式的节点会进行应答。6.软件过滤器软件过滤器依赖于操作系统的内核,因此有必要理解系统内核软件过滤器是如何工作的。Linux是开放源玛系统,因此我们能够获得其软件过滤机制。但是对于Micro$oft Windows我们只有凭经验猜测了:(。 6.1.Linux在Linux的以太网驱动模块中,分组是以硬件地址分类的。广播包FF FF FF FF FF FF多投点分组所有的分组都有一个组标志位集合,不包括广播分组。TO_US分组目的地址和本机网卡相同的分组。OTHERHOST分组所有目的地址和本机网卡不同的分组。现在,我们假设具有组标志位
16、的所有分组都是广播分组。IP网络对应的以太网多投点分组的目的地址是01-00-5e-xx-xx-xx,而且,通过校验组标志位本来就不能对多投点分组进行分类。这个假设并不错误,因为01-00-5e-xx-xx-xx是一个基于IP的多投点地址,但是网卡硬件地址还用于其它高层协议。下面,我们看一下ARP模块的代码。if (in_dev = NULL |arp->ar_hln != dev->addr_len ' 'dev->flags & IFF_NOARP |skb->pkt_type = PACKET_OTHERHOST |skb->pkt_
17、type = PACKET_LOOPBACK |arp->ar_pln != 4)goto out;Linux内核的ARP模块拒绝所有OTHERHOST类型的分组。接着,ARP模块将处理广播、多投点和TO_US类型的分组。表1综合了硬件过滤器和软件过滤器对各种ARP分组的过滤处理,1说明:hw(hardware)、sw(software)、res.(response)、gr(group)。下面,后我们将对这六硬件地址的分组进行详细描述:TO_US网卡在正常模式下,所有地址为TO_US的分组都能够通过精简过滤器和软件过滤器。因此,不管网卡是否处于混杂模式(promiscuous mode)
18、下,ARP模块都会对其进行响应。OTHERHOST当网卡处于正常模式下,会拒绝所有地址为OTHERHOST的分组。即使网卡处于混杂模式(promiscuous mode),这种分组也无法通过软件过滤器,因此这种ARP请求不会收到响应。BROARDCAST在正常模式下,BROARDCAST分组能够也能够通过硬件和软件过滤器,因此不能用于网络节点混杂模式的检测。MULTICAST在正常模式下,如果分组的硬件地址没有在多投点地址列表中注册,网卡将拒绝接收;但是,如果网卡处于混杂模式,这种分组将畅通无阻地穿过硬件过滤器和软件过滤器。因此,可以使用这种类型的分组来检测处于混杂模式的网络节点。group
19、bit这种类型的分组既不属于BRODCAST类型也不属于MULTICAST类型,但是其硬件地址的组位(以太网地址的首字节低序第一位)置位即:01-00-00-00-00-00。在正常模式下,网卡会拒绝接收此类分组;但是在混杂模式下,这种类型的分组能够通过硬件过滤器。而在Linux内核中,这种类型的分组被归类为多投点分组进行处理,能够穿过软件过滤器。因此,这种类型的分组也能够用于混杂模式检测。6.2.Micro$oft WindowsWindows系统不是开放源码系统,因此不能从源代码分析其软件过滤行为。只好由实验来测试。在实验中,我们使用了以下的硬件地址:FF-FF-FF-FF-FF-FF 广
20、播地址所有的网络节点都会接收这种分组。通常的ARP查询包使用这个地址。FF-FF-FF-FF-FF-FE 伪广播地址FF-FF-FF-FF-FF-FE是一种伪广播地址,它的最后一位丢失。这个地址被用来检查软件过滤器是否检查所有的地址位,是否应答。FF-FF-00-00-00-00-00 16位伪广播地址FF-FF-00-00-00-00-00只有前16位和真正的广播地址相同。如果过滤器函数只测试广播地址的第一个字,这个地址就可以归入广播地址。FF-00-00-00-00-00 8位伪广播地址这个地址只有前8位和广播地址相同,如果过滤器函数只检查广播地址的首字节,它也可以归入广播地址类。01-0
21、0-00-00-00-00 多投点标记置位地址这个地址只有多投点标记位(以太网地址的首字节低序位)被置位,用来检查过滤器函数是否也象Linux一样把它作为多投点地址处理。01-00-5E-00-00-00 多投点地址0多投点地址0并不常用,因此我们使用这个地址作为没有在网卡多投点地址列表中注册的多投点地址。正常情况下,硬件过滤器应该拒绝接收这种分组。但是,如果软件过滤器不能检查所有的地址位,这类分组就可能被归类到多投点地址。因此,如果网卡处于混杂模式(promiscuous mode),内核就会进行应答。01-00-5E-00-00-01 多投点地址1局域网上的所有网络节点都应该接收多投点地址
22、1类型的分组。换句话说,默认情况下硬件过滤器允许这类分组通过。但是可以由于网卡不支持多投点模式而不应答。因此,这类分组可以用于检查主机是否支持多投点地址。即使结果:对于这7种类型地址的测试结果如表2所示。测试是针对Windows85/98/ME/2000和Linux。不出所料,网卡处于正常模式下,内核会对所有地址为广播地址和多投点地址1的分组进行回应。然而,当网卡处于混杂模式下时,每种操作系统的测试结果不尽相同。Windows95/98/ME会响应31、16、8位伪广播地址的分组。因此,我们可以认为Window9x系列操作系统的软件过滤器只通过检测一位来判断分组地址是否是广播地址。Window
23、s2000对地址为31、16位伪广播地址的分组进行响应。因此,我们可以认为WindowsY2K检查地址的8位来判断分组地址是否为广播地址。Linux内核对所有七种地址的分组都会进行响应。7.混杂模式检测我们可以把这个测试结果用于局域网处于混杂模式节点的检测。下面是具体检测过程:7.1.我们需要检测IP地址A的主机是否处于混杂模式。我们首先需要构造如下格式的ARP分组和以太网帧: ARP分组:· 目的以太网地址 00 00 00 00 00 00(说明1) · 发送方以太网地址 00 11 22 33 44 55(说明2) · 高层协议类型 08 00(IP) · 硬件类型 00 01(以太网) · 硬件地址长度 06(以太网地址长度) · IP地址长度 04 · 发送方的IP地址 本机IP地址 · 目标的IP地址 被检测主机的IP地址 · ARP操作码 00 01(ARP请求01、ARP应答02) 以太网帧:· 协议类型 08 06(ARP) · 发送方的硬件地址 本机以太网卡地址 · 目标硬件地址 FF FF FF FF FF FE 说明1:这时ARP要查询的以太网地址,全部填0或者1都可以。说明
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 情感教育与情商提升活动计划
- 2024年云南省生态环境厅下属事业单位真题
- 2024年云南省戒毒管理局下属事业单位真题
- 2024年西藏自治区商务厅下属事业单位真题
- 2025年行业竞争格局变化分析试题及答案
- 感受软件设计师职业的乐趣试题及答案
- 2025届江苏省无锡市宜兴市七年级数学第二学期期末统考试题含解析
- 2024年培黎职业学院辅导员考试真题
- 2024年南京师范大学辅导员考试真题
- 2025年绿色金融对企业战略的影响试题及答案
- 2024年湖北省中考地理·生物试卷(含答案解析)
- GB/T 44241-2024虚拟电厂管理规范
- JGT 160-2017 混凝土用机械锚栓
- 南通辅警考试题库
- 连续蒸煮螺旋喂料器
- DL-T904-2015火力发电厂技术经济指标计算方法
- 新时代劳动教育教程(高校劳动教育课程)全套教学课件
- 北京市某低温热水地板辐射采暖工程设计 毕业设计
- 懂设备原理会维护保养
- 英语中考专题复习-短文填空
- 《化妆品稳定性试验规范》
评论
0/150
提交评论