sniffer

Sniffer,中文可以翻译为嗅探器,是一种基于被动侦听原理的网络分析方式。使用这种技术方式,可以监视网络的状态、数据流动情况以及网络上传输的信息。当信息以明文的形式在网络上传输时,便可以使用网络监听的方式来进行***。将网络接口设置在监听模式,便可以将网上传输的源源不断的信息截获。Sniffer技术常常被***们用来截获用户的口令,据说某个骨干网络的路由器网段曾经被***攻入,并嗅探到大量的用户口令。但实际上Sniffer技术被广泛地应用于网络故障诊断、协议分析、应用性能分析和网络安全保障等各个领域。

本文将详细介绍Sniffer的原理和应用。

一、Sniffer 原理

1.网络技术与设备简介

在讲述Sniffer的概念之前,首先需要讲述局域网设备的一些基本概念。

数据在网络上是以很小的称为帧(Frame)的单位传输的,帧由几部分组成,不同的部分执行不同的功能。帧通过特定的称为网络驱动程序的软件进行成型,然后通过网卡发送到网线上,通过网线到达它们的目的机器,在目的机器的一端执行相反的过程。接收端机器的以太网卡捕获到这些帧,并告诉操作系统帧已到达,然后对其进行存储。就是在这个传输和接收的过程中,嗅探器会带来安全方面的问题。

每一个在局域网(LAN)上的工作站都有其硬件地址,这些地址惟一地表示了网络上的机器(这一点与Internet地址系统比较相似)。当用户发送一个数据包时,这些数据包就会发送到LAN上所有可用的机器。

如果使用Hub/即基于共享网络的情况下,网络上所有的机器都可以“听”到通过的流量,但对不属于自己的数据包则不予响应(换句话说,工作站A不会捕获属于工作站B的数据,而是简单地忽略这些数据)。如果某个工作站的网络接口处于混杂模式(关于混杂模式的概念会在后面解释),那么它就可以捕获网络上所有的数据包和帧。

但是现代网络常常采用交换机作为网络连接设备枢纽,在通常情况下,交换机不会让网络中每一台主机侦听到其他主机的通讯,因此Sniffer技术在这时必须结合网络端口镜像技术进行配合。而衍生的安全技术则通过ARP欺骗来变相达到交换网络中的侦听。

2.网络监听原理

Sniffer程序是一种利用以太网的特性把网络适配卡(NIC,一般为以太网卡)置为杂乱(promiscuous)模式状态的工具,一旦网卡设置为这种模式,它就能接收传输在网络上的每一个信息包。

普通的情况下,网卡只接收和自己的地址有关的信息包,即传输到本地主机的信息包。要使Sniffer能接收并处理这种方式的信息,系统需要支持BPF,Linux下需要支持SOCKET一PACKET。但一般情况下,网络硬件和TCP/IP堆栈不支持接收或者发送与本地计算机无关的数据包,所以,为了绕过标准的TCP/IP堆栈,网卡就必须设置为我们刚开始讲的混杂模式。一般情况下,要激活这种方式,内核必须支持这种伪设备Bpfilter,而且需要root权限来运行这种程序,所以sniffer需要root身份安装,如果只是以本地用户的身份进入了系统,那么不可能唤探到root的密码,因为不能运行Sniffer。

也有基于无线网络、广域网络(DDN, FR)甚至光网络(POS、Fiber Channel)的监听技术,这时候略微不同于以太网络上的捕获概念,其中通常会引入TAP (测试介入点)这类的硬件设备来进行数据采集。

3. Sniffer的分类

Sniffer分为软件和硬件两种,软件的Sniffer有 Sniffer Pro、Network Monitor、PacketBone等,其优点是易于安装部署,易于学习使用,同时也易于交流;缺点是无法抓取网络上所有的传输,某些情况下也就无法真正了解网络的故障和运行情况。硬件的Sniffer通常称为协议分析仪,一般都是商业性的,价格也比较昂贵,但会具备支持各类扩展的链路捕获能力以及高性能的数据实时捕获分析的功能。

基于以太网络嗅探的Sniffer只能抓取一个物理网段内的包,就是说,你和监听的目标中间不能有路由或其他屏蔽广播包的设备,这一点很重要。所以,对一般拨号上网的用户来说,是不可能利用Sniffer来窃听到其他人的通信内容的。

4.网络监听的目的

当一个***成功地攻陷了一台主机,并拿到了root权限,而且还想利用这台主机去***同一(物理)网段上的其他主机时,他就会在这台主机上安装Sniffer软件,对以太网设备上传送的数据包进行侦听,从而发现感兴趣的包。如果发现符合条件的包,就把它存到一个LOg文件中去。通常设置的这些条件是包含字“username”或“password”的包,这样的包里面通常有***感兴趣的密码之类的东西。一旦***截获得了某台主机的密码,他就会立刻进入这台主机。

如果Sniffer运行在路由器上或有路由功能的主机上,就能对大量的数据进行监控,因为所有进出网络的数据包都要经过路由器。

Sniffer属于第M层次的***。就是说,只有在***者已经进入了目标系统的情况下,才能使用Sniffer这种***手段,以便得到更多的信息。

Sniffer除了能得到口令或用户名外,还能得到更多的其他信息,比如一个重要的信息、在网上传送的金融信息等等。Sniffer几乎能得到任何在以太网上传送的数据包。

二、Sniffer产品介绍

网络的安全性和高可用性是建立在有效的网络管理基础之上的,网络管理包括配置管理、故障管理、性能管理、安全管理和计费管理五大部分。对于企业计算机网络来说,网络故障管理主要侧重于实时的监控,而网络性能管理更看中历史分析。

Sniffer网络分析仪是一个网络故障、性能和安全管理的有力工具,它能够自动地帮助网络专业人员维护网络,查找故障,极大地简化了发现和解决网络问题的过程,广泛适用于Ethernet、Fast Ethernet、Token Ring、Switched LANs、FDDI、X.25、DDN、Frame Relay、ISDN、ATM和Gigabits等网络。

1.1 Sniffer产品的基本功能包括:

• 网络安全的保障与维护

1. 对异常的网络***的实时发现与告警;

2. 对高速网络的捕获与侦听;

3. 全面分析与解码网络传输的内容;

• 面向网络链路运行情况的监测

1. 各种网络链路的运行情况;

2. 各种网络链路的流量及阻塞情况;

3. 网上各种协议的使用情况;

4. 网络协议自动发现;

5. 网络故障监测;

• 面向网络上应用情况的监测

1. 任意网段应用流量、流向;

2. 任意服务器应用流量、流向;

3. 任意工作站应用流量、流向;

4. 典型应用程序响应时间;

5. 不同网络协议所占带宽比例;

6. 不同应用流量、流向的分布情况及拓扑结构;

• 强大的协议解码能力,用于对网络流量的深入解析

1. 对各种现有网络协议进行解码;

2. 对各种应用层协议进行解码;

3. Sniffer协议开发包(PDK)可以让用户简单方便地增加用户自定义的协议;

• 网络管理、故障报警及恢复

运用强大的专家分析系统帮助维护人员在最短时间内排除网络故障;

1.2 实时监控统计和告警功能

根据用户习惯,Sniffer可提供实时数据或图表方式显示统计结果,统计内容包括:

? 网络统计:如当前和平均网络利用率、总的和当前的帧数及字节数、总站数和激活的站数、协议类型、当前和总的平均帧长等。

? 协议统计:如协议的网络利用率、协议的数、协议的字节数以及每种协议中各种不同类型的帧的统计等。

? 差错统计:如错误的CRC校验数、发生的碰撞数、错误帧数等。

? 站统计:如接收和发送的帧数、开始时间、停止时间、消耗时间、站状态等。最多可统计1024个站。

? 帧长统计:如某一帧长的帧所占百分比,某一帧长的帧数等。

当某些指标超过规定的阈值时,Sniffer可以自动显示或采用有声形式的告警。

Sniffer可根据网络管理者的要求,自动将统计结果生成多种统计报告格式,并可存盘或打印输出。

1.3 Sniffer实时专家分析系统

高度复杂的网络协议分析工具能够监视并捕获所有网络上的信息数据包,并同时建立一个特有网络环境下的目标知识库。智能的专家技术扫描这些信息以检测网络异常现象,并自动对每种异常现象进行归类。所有异常现象被归为两类:一类是symptom(故障征兆提示,非关键事件例如单一文件的再传送),另一类是diagnosis(已发现故障的诊断,重复出现的事件或要求立刻采取行动的致命错误)。经过问题分离、分析且归类后,Sniffer将实时地,自动发出一份警告、对问题进行解释并提出相应的建议解决方案。

Sniffer与其他网络协议分析仪最大的差别在于它的人工智能专家系统(Expert System)。简单地说,Sniffer能自动实时监视网络,捕捉数据,识别网络配置,自动发现网络故障并进行告警,它能指出:

? 网络故障发生的位置,以及出现在OSI第几层。

? 网络故障的性质,产生故障的可能的原因以及为解决故障建议采取的行动。

? Sniffer 还提供了专家配制功能,用户可以自已设定专家系统判断故障发生的触发条件。

? 有了专家系统,您无需知道那些数据包构成网络问题,也不必熟悉网络协议,更不用去了解这些数据包的内容,便能轻松解决问题。

1.4 OSI全协议七层解码

Sniffer的软件非常丰富,可以对在各种网络上运行的400多种协议进行解码,如TCP/IP、Novell Netware、DECnet、SunNFS、X-Windows、HTTP、TNS SLQ*Net v2(Oracle)、Banyan v5.0和v6.0、TDS/SQL(Sybase)、X.25、Frame Realy、PPP、Rip/Rip v2、EIGRP、APPN、SMTP等。还广泛支持专用的网络互联桥/路由器的帧格式。

Sniffer可以在全部七层OSI协议上进行解码,目前没有任何一个系统可以做到对协议有如此透彻的分析;它采用分层方式,从最低层开始,一直到第七层,甚至对ORACAL数据库、SYBASE数据库都可以进行协议分析;每一层用不同的颜色加以区别。

Sniffer对每一层都提供了Summary(解码主要规程要素)、Detail(解码全部规程要素)、Hex(十六进制码)等几种解码窗口。在同一时间,最多可以打开六个观察窗口。

Sniffer还可以进行强制解码功能(Protocl Forcing),如果网络上运行的是非标准协议,可以使用一个现有标准协议样板去尝试解释捕获的数据。

Sniffer提供了在线实时解码分析和在线捕捉,将捕捉的数据存盘后进行解码分析二种功能。

二、Sniffer的商业应用

Sniffer被 Network General公司注册为商标,这家公司以出品Sniffer Pro系列产品而知名。目前最新版本为Sniffer Portable 4.9,这类产品通过网络嗅探这一技术方式,对数据协议进行捕获和解析,能够大大帮助故障诊断和网络应用性能的分析鉴别。

Network General 已经被NetScout公司收购。

三、Sniffer的扩展应用

1、专用领域的Sniffer

Sniffer被广泛应用到各种专业领域,例如FIX (金融信息交换协议)、MultiCast(组播协议)、3G (第三代移动通讯技术)的分析系统。其可以解析这些专用协议数据,获得完整的解码分析。

2、长期存储的Sniffer应用

由于现代网络数据量惊人,带宽越来越大。采用传统方式的Sniffer产品很难适应这类环境,因此诞生了伴随有大量硬盘存储空间的长期记录设备。例如nGenius Infinistream等。

3、易于使用的Sniffer辅助系统

由于协议解码这类的应用曲高和寡,很少有人能够很好的理解各类协议。但捕获下来的数据却非常有价值。因此在现代意义上非常流行如何把协议数据采用最好的方式进行展示,包括产生了可以把Sniffer数据转换成Excel的BoneLight类型的应用和把Sniffer分析数据进行图形化的开源系统PacketMap等。这类应用使用户能够更简明地理解Sniffer数据。

英文原意:用鼻吸毒者,嗅探器