概述
网络监听及防御技术
网络监听概述
基础知识
网络监听的概念
网络监听技术又叫做网络嗅探技术,顾名思义这是一种在他方未察觉的情况下捕获其通信报文或通信内容的技术。
在网络安全领域,网络监听技术对于网络攻击与防范双方都有着重要的意义,是一把双刃剑。
网络监听技术的能力范围目前只限于局域网,它是主机的一种工作模式,主机可以接收到本网段在同一条物理通道上传输的所有信息,而不管这些信息的发送方和接收方是谁。
网络传输技术:广播式和点到点。
广播式网络传输技术:仅有一条通信信道,由网络上的所有机器共享。信道上传输的分组可以被任何机器发送并被其他所有的机器接收。
点到点网络传输技术:点到点网络由一对对机器之间的多条连接构成,分组的传输是通过这些连接直接发往目标机器,因此不存在发送分组被多方接收的问题。
网卡的四种工作模式
广播模式:该模式下的网卡能够接收网络中的广播信息。
组播模式:该模式下的网卡能够接受组播数据。
直接模式:在这种模式下,只有匹配目的 MAC 地址的网卡才能接收该数据帧。
混杂模式:(Promiscuous Mode)在这种模式下,网卡能够接受一切接收到的数据帧,而无论其目的 MAC 地址是什么。
网络监听技术的发展情况
网络监听(Sniffer)的发展历史
1、Sniffer这个名称最早是一种网络监听工具的名称,后来其也就成为网络监听的代名词。在最初的时候,它是作为网络管理员检测网络通信的一种工具。实际应用中的嗅探器分软、硬两种。
2、软件嗅探器便宜易于使用,缺点是往往无法抓取网络上所有的传输数据(比如碎片),也就可能无法全面了解网络的故障和运行情况;
3、硬件嗅探器的通常称为协议分析仪,它的优点恰恰是软件嗅探器所欠缺的,但是价格昂贵。
4、目前主要使用的嗅探器是软件的。
Sniffer软件的主要工作机制及常用软件
1、需要一个直接与网卡驱动程序接口的驱动模块,作为网卡驱动与上层应用的“中间人”,它将网卡设置成混杂模式,并从上层Sniffer接收下达的各种抓包请求,对来自网卡驱动程序的数据 帧进行过滤,最终将符合Sniffer要求的数据返回给Sniffer。
2、链路层的网卡驱动程序上传的数据帧就有了两个去处:一个是正常的协议栈,另一个就是分组捕获即过滤模块,对于非本地的数据包,前者会丢弃(通过比较目的IP地址),而后者则会根据上层应用的要求来决定上传还是丢弃。
3、许多操作系统都提供这样的“中间人”机制,即分组捕获机制。在UNIX类型的操作系统中,主要有3种:BSD系统中的BPF(Berkeley Packet Filter)、SVR4中的DLPI(Date Link Interface)和Linux中的SOCK_PACKET类型套接字。在Windows平台上主要有NPF过滤机制。
4、目前大部分Sniffer软件都是基于上述机制建立起来的。如著名的Sniffer软件Tcpdump等
网络监听的功能与危害
1、现在的Sniffer技术发展比较成熟,可以协助网络管理员测试网络数据通信流量、实时监控网络。
2、然而事情往往都有两面性,Sniffer的隐蔽性非常好,它只是“被动”的接收数据,所以在传输数据的过程中,根本无法察觉到有人在监听。网络监听给网络维护提供便利同时,也给网络安全带来了很大隐患。
监听技术
局域网中的硬件设备简介
集线器
集线器的原理
集线器(又称为Hub)是一种重要的网络部件,主要在局域网中用于将多个客户机和服务器连接到中央区的网络上。
集线器工作在局域网的物理环境下,其主要应用在OSI参考模型第一层,属于物理层设备。它的内部采取电器互连的方式,当维护LAN的环境是逻辑总线或环型结构时,完全可以用集线器建立一个物理上的星型或树型网络结构。
集线器的工作特点
依据IEEE 802.3协议,集线器功能是随机选出某一端口的设备,并让它独占全部带宽,与集线器的上联设备(交换机、路由器或服务器等)进行通信。集线器在工作时具有以下两个特点:
首先是集线器只是一个多端口的信号放大设备;
其次集线器只与它的上联设备(如上层Hub、交换机或服务器)进行通信,同层的各端口之间不会直接进行通信,而是通过上联设备再将信息广播到所有端口上。
交换机
交换机的原理
交换机是一种网络开关(Switch),也称交换器,由于和电话交换机对出入线的选择有相似的原理,因此被人称为交换机。
交换机在局域网的环境下,工作在比集线器更高一层链路层上。交换机被定义成一个能接收发来的信息帧,加以暂时存储,然后发到另一端的网络部件,其本质上就是具有流量控制能力的多端口网桥。
交换机的工作特点
把每个端口所连接的网络分割为独立的LAN,每个LAN成为一个独立的冲突域。
每个端口都提供专用的带宽。这是交换机与集线器的本质区别,集线器不管有多少端口,都是共享其全部带宽。
转发机制。交换机维护有每个端口对应的地址表,其中保存与该端口连接的各个主机的MAC地址
共享式局域网的监听技术
共享式局域网
共享式局域网就是使用集线器或共用一条总线的局域网,它采用了载波检测多路侦听(Carries Sense Multiple Access with Collision Detection,简称CSMA/CD)机制来进行传输控制。
共享式局域网是基于广播的方式来发送数据的,因为集线器不能识别帧,所以它就不知道一个端口收到的帧应该转发到哪个端口,它只好把帧发送到除源端口以外的所有端口,这样网络上所有的主机都可以收到这些帧。
共享式局域网监听工作原理及实现方法
在正常的情况下,网卡应该工作在广播模式、直接模式,一个网络接口(网卡)应该只响应这样的两种数据帧:
与自己的MAC地址相匹配的数据帧。
发向所有机器的广播数据帧。
但如果共享式局域网中的一台主机的网卡被设置成混杂模式状态的话,那么,对于这台主机的网络接口而言,任何在这个局域网内传输的信息都是可以被听到的。主机的这种状态也就是监听模式。处于监听模式下的主机可以监听到同一个网段下的其他主机发送信息的数据包。
应用程正常工作时,只能接收到以本主机为目标主机的数据包,其他数据包过滤后被丢弃不做处理。该过滤机制可以作用在链路层、网络层和传输层这几个层次,工作流程如图所示:
通过混杂模式嗅探到的数据包上传到网络层之后,网络层处理程序还要对其目的IP地址进行判断,如果不是本地IP,则丢弃。
这时如果没有一个特定的机制,上层应用也无法抓到本不属于自己的“数据包”。需要一个直接与网卡驱动程序接口的驱动模块,它将网卡设置成混杂模式,并从监听软件接收下达的各种抓包请求,对来自网卡驱动程序的数据帧进行过滤,最终将符合监听软件要求的数据返回给监听软件Sniffer。有了驱动模块,链路层的网卡驱动程序上传的数据帧就有了两个去处:一个是正常的协议栈,另一个就是分组捕获即过滤模块。对于非本地的数据包,前者会丢弃(通过比较目的IP地址),而后者则会根据上层应用的要求来决定上传还是丢弃,如图所示。
在实际应用中,监听时存在不需要的数据,严重影响了系统工作效率。网络监听模块过滤机制的效率是该网络监听的关键。
信息的过滤包括以下几种:站过滤,协议过滤,服务过滤,通用过滤。
同时根据过滤的时间,可分为两种过滤方式:捕获前过滤、捕获后过滤。
相关开发库
基于 UNIX 系统的开发库 libpcap
从开发者的角度来看系统中最主要的部分是libpcap。因为libpcap隐藏了用户程序和操作系统内核交互的细节,完成了如下工作:
向用户程序提供了一套功能强大的抽象接口。
根据用户要求生成过滤指令。
管理用户缓冲区。
负责用户程序和内核的交互。
基于Windows系统的WinPcap
WinPcap是基于Windows 操作系统环境下的Libpcap,其在监听程序中起的作用和UNIX系统下的libpcap类似,但是比libpcap多一些功能,如WinPcap可以发送数据,但是libpcap则不行。
WinPcap的架构包括:
内核级的数据包监听设备驱动程序NPF:把设备驱动增加在Windows,它直接从数据链路层取得网络数据包不加修改地传递给运行在用户层的应用程序上,也允许用户发送原始数据包。
低级动态连接库packet.dll:运行在用户层, 把应用程序和数据包监听设备驱动程序隔离开,使得应用程序可以不加修改地在不同Windows系统上运行。
高级系统无关库Wpcap.dll:它和应用程序编译在一起,它使用低级动态链接库提供的服务,向应用程序提供完善的监听接口,不同Windows平台上的高级系统无关库是相同的。
使用Winpcap的流程:
交换式局域网的监听技术
交换式局域网
交换式以太网就是用交换机或其它非广播式交换设备组建成的局域网。
这些设备根据收到的数据帧中的MAC地址决定数据帧应发向交换机的哪个端口。
因为端口间的帧传输彼此屏蔽,因此节点就不担心自己发送的帧会被发送到非目的节点中去。
产生交换式局域网的原因:
系统管理人员常常通过在本地网络中加入交换设备,来预防sniffer(嗅探器)的侵入。
交换机工作在数据链路层,工作时维护着一张MAC地址与端口的映射表。在这个表中记录着交换机每个端口绑定的MAC地址。不同于HUB的报文广播方式,交换机转发的报文是一一对应的。
交换式局域网攻击
交换式局域网在很大程度上解决了网络监听的困扰,但是交换机的安全性也面临着严峻的考验,随着嗅探技术的发展,攻击者发现了有如下方法来实现在交换式以太网中的网络监听:
1、溢出攻击
交换机工作时要维护一张MAC地址与端口的映射表。
但是用于维护这张表的内存是有限的。如用大量的错误MAC地址的数据帧对交换机进行攻击,交换机就可能出现溢出。
这时交换机就会退回到HUB的广播方式,向所有的端口发送数据包,一旦如此,监听就很容易了。
2、ARP欺骗(常用技术)
dsniff和parasite等交换式局域网中的嗅探工具就是利用ARP欺骗来实现的。通过ARP欺骗,攻击者可以成为被攻击者与交换机之间的“中间人”,使交换式局域网中的所有数据包都流经自己主机的网卡,这样就可以像共享式局域网一样分析数据包了。
监听的防御
通用策略
由于嗅探器是一种被动攻击技术,因此非常难以被发现。完全主动的解决方案很难找到并且因网络类型而有一些差异,但我们可以先采用一些被动但却是通用的防御措施。这主要包括采用安全的网络拓扑结构和数据加密技术两方面。
1、安全的网络拓扑结构
网络分段越细,嗅探器能够收集的信息就越少。
网络分段:将网络分成一些小的网络,每一个网段的集线器被连接到一个交换器 (Switch) 上,所以数据包只能在该网段的内部被网络监听器截获,这样网络的剩余部分(不在同一网段)便被保护了。网络有三种网络设备是嗅探器不可能跨过的:交换机、路由器、网桥。我们可以通过灵活的运用这些设备来进行网络分段。
划分VLAN:使得网络隔离不必要的数据传送,一般可以采用20个工作站为一组,这是一个比较合理的数字。网络分段只适应于中小的网络。网络分段需要昂贵的硬件设备。
2、数据加密技术
一种是建立各种数据传输加密通道:正常的数据都是通过事先建立的通道进行传输的,以往许多应用协议中明文传输的账号、口令的敏感信息将受到严密保护。目前的数据加密通道方式主要有SSH 、SSL(Secure Socket Layer,安全套接字应用层)和VPN。
另一种是对于数据内容的加密:主要采用的是将目前被证实的较为可靠的加密机制对对互联网上传输的邮件和文件进行加密。
共享网络下的防监听
虽然共享式局域网中的嗅探很隐蔽,但是可以通过以下两个特征来检测网络中是否有人在进行嗅探:
网络通讯丢包率非常高
网络带宽出现反常
检测技术
1、网络和主机响应时间测试
这种检测已被证明是最有效的,它能够发现网络中处于监听模式的机器,而不管其操作系统是什么。
原理是处于非监听模式的网卡提供了一定的硬件底层过滤机制,即目标地址为非本地(广播地址除外)的数据包将被网卡所丢弃。这种情况下骤然增加目标地址不是本地的网络通讯流量对操作系统的影响很小;而处于混杂模式下的机器则缺乏底层的过滤,骤然增加目标地址不是本地的网络通讯流量会对该机器造成较明显的影响(不同的操作系统/内 核/用户方式会有不同)。
2、ARP检测(如AntiSniff 工具)
嗅探器为了能够截获网络上所有的分组,必须把网络接口卡设置为混杂模式。接着,网卡就能够接受网络上所有的分组,并将其送到系统内核。地址解析协议(Address Resolution Protocol,ARP)请求报文用来查询硬件地址到IP地址的解析。我们可以使用这类分组来校验网卡是否被设置为混杂模式。之所以会使用ARP请求分组是因为它适用于所有基于以太网的IPV4协议。
ARP检测原理
在混杂模式下,网卡不会阻塞目的地址不是自己的分组,而是照单全收,并将其传送给系统内核。然后,系统内核会返回包含错误信息的报文。基于这种机制,我们可以假造一些ARP请求报文发送到网络上的各个节点,没有处于混杂模式的网卡会阻塞这些报文,但是如果某些节点有回应,就表示这些节点的网卡处于混杂模式下。这些处于混杂模式的节点就可能运行嗅探器程序。
交换网络下的防监听
交换网络下防监听,主要就是要防止ARP欺骗。
小结
最普遍同时也是最致命的安全威胁往往来自内部,其破坏性也远大于外部威胁。其中网络嗅探对于一般的网络来说,威胁巨大。因此很多黑客也使用嗅探器进行网络入侵渗透。网络嗅探器对信息安全的威胁来自其被动性和非干扰性,使得网络嗅探具有很强的隐蔽性,往往让网络信息泄密变得不容易被发现。本节课分析了网络嗅探的原理,并提出一些防范措施。但对于用户而言除了技术手段以外,最重要的还是建立相应的安全意识,注意对隐私信息的加密保护。
最后
以上就是传统曲奇为你收集整理的【网络与系统安全实验】网络监听及防御技术网络监听及防御技术的全部内容,希望文章能够帮你解决【网络与系统安全实验】网络监听及防御技术网络监听及防御技术所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复