网络分析(又称网络嗅探、网络流量分析、协议分析、数据包分析、网络窃听等)就是通过捕获网络流量并进行深入检查,了解网络中发生了什么情况的过程。从定义来看,网络分析主要指在网络上,通过某台主机捕获其他主机之间的数据包实现对网络流量的监视、分析或记录。不过在本书中,还包含了数据包的发送技术。
网络分析器(network analyzer)通常用于通用协议数据包的解码,并以人可读的格式来显示网络流量的内容。而嗅探器(sniffer)则是监视网络上所传输数据的一种工具。未经授权的嗅探器会对网络安全构成威胁,因为它们具有难被发现并且可插入在任何地方的特性,使其成为黑客最喜欢使用的一种工具。本书后面不会对网络分析器与嗅探器做严格区分,除非有特别说明。
历史上,网络分析器曾经专注于通过昂贵的、并难以使用的硬件设备来实现。而新出现的先进技术使得基于软件的网络分析器的开发成为可行方案,其为有效进行网络分析提供了一种更为便捷与廉价的工具,同时具备很强的网络分析能力。
一个网络分析器由硬件与软件两部分共同组成。它可以是一个带有特定软件的单独硬件设备,也可以是直接安装在台式电脑或笔记本电脑上的一个软件。尽管每种产品之间具有差别,但基本都是由下列五个基本部分组成的。
❑硬件:多数网络分析器是基于软件的,并工作于标准的操作系统与网卡之上。
不过有一些硬件网络分析器会提供额外的功能,诸如硬件故障分析(比如循环冗余纠错(CRC)错误、电压问题、网线问题、抖动(jitter)、逾限(jabber)、协商错误等)。除了部分网络分析器仅支持以太网或无线网适配器以外,其他的均可支持多重适配器,并允许用户定制它们的配置。依据实际使用情况来看,网络分析器可能也需要一个集线器或一个网线探针(cable tap)连接已有的网线。
❑捕获驱动器:这是网络分析器中负责从网线上捕获原始网络数据包的组件。它会过滤出需要捕获的网络数据,并把所捕获的数据保存在一个缓冲区中。这是网络分析器的核心,没有它就无法捕获网络数据包。
❑缓冲区:该组件用于保存所捕获的数据,直到该缓冲区被填满为止。不过,如果采用循环缓冲区的方式,那么最新的数据将会替换最老的数据。
❑实时分析:该组件可对实时数据包进行分析,也就是说数据包一离开网线就可启用此组件。部分网络分析器还用该组件监测网络性能问题,比如网络入侵检测系统利用它寻找非法的入侵活动。
❑解码(器):该组件用于显示网络数据包的内容。它以更便于人们理解的方式来描述数据包,是可读的。解码特定于每个协议,因此网络分析器当前支持的可解码的协议数是变化的,网络分析器可能需要经常加入新的解码协议。
另外,典型的网络分析器通常会采用如下格式来显示所捕获网络流量的信息。
❑概要:该窗格显示所捕获内容的概要信息,包含时间、源地址、目标地址、最高层协议的名称、信息等内容。
❑详情:该窗格提供捕获数据包所包含的每层内容的细节信息(采用树形结构)
❑数据:该窗格用十六进制与文本格式显示捕获数据包的原始数据。
图1-1所示为Wireshark网络分析器的主窗口。
[图片]图 1-1 Wireshark网络分析器的主窗口
各种网络分析器之间的主要差别在于所支持的解码的协议数量、用户接口、图形化与统计能力等的不同。其他的差别则包括推理能力(比如专家分析特性)与数据包解码的质量等的不同。尽管不同的网络分析器可能会针对同一个协议进行解码,
据包解码的质量等的不同。尽管不同的网络分析器可能会针对同一个协议进行解码,但实际工作质量可能并不相同。