扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:51CTO.COM 2007年10月19日
关键字:
在本页阅读全文(共5页)
网络数据采集是利用以太网络的广播特性实现的,以太网数据传输通过广播实现,但是在系统正常工作时,应用程序只能接收到以本主机为目标主机的数据包,其他数据包将被丢弃。为了采集到流经本网段的所有数据,我们需要首先将网卡设置为混杂模式,使之可以接收目标MAC地址不是自己MAC地址的数据包,然后直接访问数据链路层,截获相关数据,由应用程序对数据进行过滤处理,这样就可以监听到流经网卡的所有数据。
在进行数据捕获时,我们采用的是libpcap,libpcap是一个与实现无关的访问操作系统所提供的分组捕获机制的分组捕获函数库,用于访问数据链路层。该库提供的C函数接口可用于需要捕获经过网络接口数据包的系统开发上。这个库为不同的平台提供了一致的编程接口,在安装了libpcap的平台上,以libpcap为接口写的程序,可以自由地跨平台使用。
Libpcap在网上捕获到的是数据帧,我们还需要对数据帧进行协议分析,协议分析的处理过程为:首先根据预先定义的过滤规则从网络上获取所监听子网上的数据包,然后进行TCP/IP栈由下至上的处理过程,主要是IP重组和TCP/UDP层协议处理,最后进行应用层协议分析。
协议分析的工作在每个操作系统里都有,在这里,我们选择了libnids函数库。libnids是在libnet和libpcap的基础上开发的,它封装了开发网络入侵检测系统的许多通用型函数。libnids提供的接口函数除了可以监视流经本地的所有网络通信、检查数据包外,还具有重组TCP数据段、处理IP分片包的功能。而且它同样具有很好的移植性。
数据分析是入侵检测系统的核心。各种分析方法各有利弊,但基于规则的检测方法因为事先将各种入侵方式表示为规则存放于规则库中,因此在规则库比较完备的基础上,可以有很好的检测效率,所以我们在该系统的实现中主要考虑了基于规则的检测方法。
基于规则的检测方法是误用检测的一种。入侵检测系统需要从以往的攻击入侵活动中,归纳识别出对应的入侵模式,并将这些入侵模式存放于规则库中,然后将系统现有的活动与规则库中的规则进行模式匹配,从而决定是否有入侵行为发生。
每一种基于规则的入侵检测方法都需要一个确定的入侵模式库,即规则库,其中存放着描述入侵方法和行为的规则。在我们的系统中,采用了SNORT的入侵行为描述方法。SNORT是一个开放源代码的轻量级的基于网络的入侵检测系统。这种描述方法简单、易于实现,能够描述绝大多数的入侵行为。由于其简单,因此检测速度比较快。
规则库中的每条规则在逻辑上分为两部分:规则头部和规则选项。规则头部包含规则的操作、协议、源IP地址和目标IP地址及其网络掩码和端口。规则选项包括报警信息及需要检测的模式信息。规则的一般格式为:
<规则操作><协议><源主机IP><源端口><方向操作符><目标主机IP><目标端口>(<规则选项1:值1>;<规则选项2:值2>;…;<规则选项n:值n>;)
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。