libpcap 是packet capturelibrary的简写,即数据包捕获函数库,该库提供的C函数接口用于捕获经过指定网络接口(通过将网卡设置为混杂模式,可以捕获所有经过该网络接口的数据报)的数据包。
著名的TCPDUMP就是在libpcap的基础上开发而成的,libpcap提供的接口函数主要实现和封装了与数据包采集、构造、发送等有关的工功能。
libpcap面向上层应用,提供了用户级别的网络数据包捕获接口,在系统部署时充分考虑到应用程序的可移植性。
它可以在绝大数linux平台上工作,与此同时,在windows平台上,也有一款与其功能类似的开发库--winpcap,他们的实现方式几乎完全一致。
1.libpcap 的功能
1. 数据包捕获
捕获六经本网卡的所有原始数据包,甚至对交换设备中的数据包也能够进行捕获,本功能是嗅探器的基础。
2. 自定义数据包发送
构造任意格式的原始数据包,并发送到目标网络,本功能是新协议验证、甚至攻击验证的基础。
3. 流量采集与统计
对所采集到的网络中的流量信息进行按规则分类、按指标进行统计,并输出到指定终端。利用这项功能可以分析目标网络的流量特性。
4. 规则过滤
libpcap 自带规则过滤功能,并提供脚本编程接口,能够按用户编程的方式对已采集到的数据包进行过滤,以便提供分析的性能。
2. libpcap 的应用范围
由于拥有强大的功能,当前基于libpcap的应用比较广泛,有很多unix上的流量相关的网络系统都是基于libpcap的,它的一些典型应用如下:
1. 网络协议分析器
libpcap应用最多的就是网络协议分析器,也可以称为网络嗅探器,目前基于libpcap最著名的网络数据包捕获工具是 ethereal。
2. 网络流量发生器
网络流浪发生器也是libpcap的一个应用,它是基于libpcap的数据构造与发送功能,可以针对性德构造各种形式的数据包,并执行发送工作,这样的组合变构成了网络流量的产生工具。
3. 网络入侵检测系统
网络入侵检测系统IDS 是发现网络入侵行为的关键,利用libpcap所提供的数据包捕获功能,可以进一步开发出IDS,这也是本章论述的重点。
4. 网络扫描器
这是基于libpcap的数据包构造与发送功能。当前最著名的网络扫描器就是基于libpcap开发而成的。
5. 其他安全工具
利用libpcap可以设计出其他的网络安全工具。
libpcap只是提供网络数据包的检测以及发送功能,并不提供控制层面的服务,类似防火墙那种数据包过滤的功能,libpcap是无法实现的。
libpcap工作流程
阅读(1543) | 评论(0) | 转发(0) |