论文部分内容阅读
摘要:snort是目前应用最广泛的开源网络入侵检测系统,其设计原理和实现特点,是目前多数商用入侵检测系统的研发基础。本文阐述了snort系统的结构以及各个模块的功能
关键词:网络入侵检测系统;snort
1 基于snort的网络入侵检测系的概述
1.1 snort介绍
snort系统是一个用C语言编写以开放源代码形式发行的网络入侵检测系统,Martin Roesch 1999年10月snort l.5发布,该版本的软件体系架构一直沿用下来,直到snort2.0,软件的架构才发生了重大的变革。到目前为止snort还使用2.0的体系结构。snort是基于libpcap的网络数据包嗅探器、日志记录工具的入侵检测工具。它具有实时数据流量分析和日志IP网络数据包的能力,能够进行协议分析,对内容进行搜索/匹配。它能够检测各种不同的攻击方式,对攻击进行实时报警。从入侵检测分类角度看,snort应该是一个基于网络和误用的入侵检测系统。
1.2 系统的总体构架
本系统采用分层结构来进行入侵检测系统的设计,分层结构可以减低设计的复杂性。每一层完成一些特定的功能,每层所实现的功能都是对上一层屏蔽的。本系统分为三个层级,从低到高分别为数据采集层、数据分析层和管理层数据采集层主要负责采集入侵检测系统进行分析的数据,并作简单的处理。
数据分析层对原始数据进行过滤、分类、分析。管理层对整个系统进行统筹管理,响应入侵行为,产生警报,记录日志,并与管理员交互。在具体的实现中,又把每个层次设计成几个模块来进行实现。其中数据采集层分为网络数据包捕获模块和协议解析模块。数据分析层分为预处理模块、检测分析模块。管理层分为响应模块和控制中心。
2 基于snort的入侵检测系统各模块分析
2.1 网络数据包捕获模块
由于网络入侵检测系统将网络数据包作为其数据源,所以该模块是整个系统的基础核心模块之一。数据包捕获模块主要负责监听、捕获网络中的原始数据包,并按照规则进行数据包过滤。通过网络数据包,可以从中获取连接的源地址、目的地址、源端口号、协议类型、连接状态以及传输数据等数据。系统运行中,数据的收发是由网卡来完成。但是在系统正常工作时,网卡应该只接收两种数据包:MAC地址与自己相匹配的数据帧和广播包,其它数据包过滤后将丢弃。
2.2 协议解析模块
协议解析模块又叫包解析模块或者包解码模块。为了得到更为完整的数据信息,需要进一步对数据包进行协议解析。TCP协议已经成为当今互联网上事实上的标准。TCP/IP协议通常被认为是一个四层的协议系统,当应用程序基于TCP/IP协议进行数据传送时,需要进行数据包封装,要得到数据包的较为详细的信息,必须对每一层的协议,即包头信息进行详细的分析,从而掌握它的具体特征。从libpacp捕获来的数据包,按照TCP/IP协议进行各种网络报文的协议解析工作,然后把分析后的结果存储到一个已经定义好的Packet数据结构中,该结构中保存了进行协议解析所需的各种数据结构和信息。
2.3 预处理模块
预处理模块的作用就是对数据包进行预处理,以方便处理模块对数据包的检查和处理。提供了一个报警、丢弃数据包、修改数据包的框架。主要功能有Http解码、数据包分片重组、数据流重组。预处理模块被设计为模块化的插件,每个插件为一个预处理器,可以方便的增加功能,也可以在不必要时去除。
2.4 检测分析模块
2.4.1 规则描述語言
snort规则描述语言简单、高效、易于使用和学习、有很强的表达能力。所有的规则语言都存储在以*.rules为名称的文本文件中。每一条snort规则可以分为前后两个部分:规则头部 (Rule Head)和规则选项(Rule Options)。规则头部包含了操作动作、协议、源IP地址/端口号、方向操作符、目标IP地址/端口号等信息。而规则选项的作用是在规则头信息的基础上作进一步的分析,有了它才能确认复杂的攻击。
2.4.2 规则的处理
规则处理分为两部分:规则解析和规则匹配。
规则解析在程序初始化的时候完成,它读取规则文件中的每一条规则,分析规则文件的内容,并用相应的规则语法表示,建立规则语法树。规则解析涉及到的主要数据结构为规则树。
2.4.3 模式匹配子模块
模式匹配是入侵检测系统中广泛的检测手段之一。它是将正在检测的网络数据包对照一系列己知的网络入侵和系统数据库,从而发现违背安全策略的行为。该过程可以是简单的通过字符串匹配以寻找一个简单的条目或指令,也可以是利用复杂的数学方法来表示安全状态的变化。
2.5 响应模块
2.5.1 入侵响应系统
入侵响应系统就是入侵检测系统发现有入侵事件时做出的反应。它是入侵检测系统中必不可少的一部分,当有入侵事件发生时,就应该作出响应,让相关人员了解事情的发生,并及时作出处理措施。入侵检测系统的响应系统的工作方式可分为主动响应和被动响应两种类型。
2.5.2 日志数据库
无论检测到入侵事件还是没有检测到入侵事件,都应该详细地记录现场数据,以便以后的取证或重建。这里需要建立日志数据库来记录操作日志或攻击日志。该数据库的数据来源主要是分析模块处理后的数据,包括报警信息以及其他重要的信息,以及管理员经过条件查询后对查询结果处理所得的数据,如生成的本地文件、格式报表等。数据库管理的前端程序通常与控制台模块集合在一起。
2.6 控制中心
控制中心是整个入侵检测系统的核心,它应该有一个友好的人机界面,具有很强的网络管理功能。管理员通过它来配置系统的安全策略、设定运行参数、更新入侵特征规则库、观察系统的运行情况以及监测系统的安全状况等。主要子模块有系统设置子模块、用户管理子模块、管理员维护子模块、数据库维护子模块、日志查询子模块等。
参考文献:
[1] 马春光,郭方方.防火墙、入侵检测与VPN[M].北京邮电大学出版社,2008.10-12.
[2] 孙伟等.snort轻量级入侵检测系统全攻略[M].北京邮电大学出版社,2009.28-35
[3] 李坊标.基于snort的网络入侵检测系统NIDS的研究和应用[D].上海:上海交通大学,2007.
关键词:网络入侵检测系统;snort
1 基于snort的网络入侵检测系的概述
1.1 snort介绍
snort系统是一个用C语言编写以开放源代码形式发行的网络入侵检测系统,Martin Roesch 1999年10月snort l.5发布,该版本的软件体系架构一直沿用下来,直到snort2.0,软件的架构才发生了重大的变革。到目前为止snort还使用2.0的体系结构。snort是基于libpcap的网络数据包嗅探器、日志记录工具的入侵检测工具。它具有实时数据流量分析和日志IP网络数据包的能力,能够进行协议分析,对内容进行搜索/匹配。它能够检测各种不同的攻击方式,对攻击进行实时报警。从入侵检测分类角度看,snort应该是一个基于网络和误用的入侵检测系统。
1.2 系统的总体构架
本系统采用分层结构来进行入侵检测系统的设计,分层结构可以减低设计的复杂性。每一层完成一些特定的功能,每层所实现的功能都是对上一层屏蔽的。本系统分为三个层级,从低到高分别为数据采集层、数据分析层和管理层数据采集层主要负责采集入侵检测系统进行分析的数据,并作简单的处理。
数据分析层对原始数据进行过滤、分类、分析。管理层对整个系统进行统筹管理,响应入侵行为,产生警报,记录日志,并与管理员交互。在具体的实现中,又把每个层次设计成几个模块来进行实现。其中数据采集层分为网络数据包捕获模块和协议解析模块。数据分析层分为预处理模块、检测分析模块。管理层分为响应模块和控制中心。
2 基于snort的入侵检测系统各模块分析
2.1 网络数据包捕获模块
由于网络入侵检测系统将网络数据包作为其数据源,所以该模块是整个系统的基础核心模块之一。数据包捕获模块主要负责监听、捕获网络中的原始数据包,并按照规则进行数据包过滤。通过网络数据包,可以从中获取连接的源地址、目的地址、源端口号、协议类型、连接状态以及传输数据等数据。系统运行中,数据的收发是由网卡来完成。但是在系统正常工作时,网卡应该只接收两种数据包:MAC地址与自己相匹配的数据帧和广播包,其它数据包过滤后将丢弃。
2.2 协议解析模块
协议解析模块又叫包解析模块或者包解码模块。为了得到更为完整的数据信息,需要进一步对数据包进行协议解析。TCP协议已经成为当今互联网上事实上的标准。TCP/IP协议通常被认为是一个四层的协议系统,当应用程序基于TCP/IP协议进行数据传送时,需要进行数据包封装,要得到数据包的较为详细的信息,必须对每一层的协议,即包头信息进行详细的分析,从而掌握它的具体特征。从libpacp捕获来的数据包,按照TCP/IP协议进行各种网络报文的协议解析工作,然后把分析后的结果存储到一个已经定义好的Packet数据结构中,该结构中保存了进行协议解析所需的各种数据结构和信息。
2.3 预处理模块
预处理模块的作用就是对数据包进行预处理,以方便处理模块对数据包的检查和处理。提供了一个报警、丢弃数据包、修改数据包的框架。主要功能有Http解码、数据包分片重组、数据流重组。预处理模块被设计为模块化的插件,每个插件为一个预处理器,可以方便的增加功能,也可以在不必要时去除。
2.4 检测分析模块
2.4.1 规则描述語言
snort规则描述语言简单、高效、易于使用和学习、有很强的表达能力。所有的规则语言都存储在以*.rules为名称的文本文件中。每一条snort规则可以分为前后两个部分:规则头部 (Rule Head)和规则选项(Rule Options)。规则头部包含了操作动作、协议、源IP地址/端口号、方向操作符、目标IP地址/端口号等信息。而规则选项的作用是在规则头信息的基础上作进一步的分析,有了它才能确认复杂的攻击。
2.4.2 规则的处理
规则处理分为两部分:规则解析和规则匹配。
规则解析在程序初始化的时候完成,它读取规则文件中的每一条规则,分析规则文件的内容,并用相应的规则语法表示,建立规则语法树。规则解析涉及到的主要数据结构为规则树。
2.4.3 模式匹配子模块
模式匹配是入侵检测系统中广泛的检测手段之一。它是将正在检测的网络数据包对照一系列己知的网络入侵和系统数据库,从而发现违背安全策略的行为。该过程可以是简单的通过字符串匹配以寻找一个简单的条目或指令,也可以是利用复杂的数学方法来表示安全状态的变化。
2.5 响应模块
2.5.1 入侵响应系统
入侵响应系统就是入侵检测系统发现有入侵事件时做出的反应。它是入侵检测系统中必不可少的一部分,当有入侵事件发生时,就应该作出响应,让相关人员了解事情的发生,并及时作出处理措施。入侵检测系统的响应系统的工作方式可分为主动响应和被动响应两种类型。
2.5.2 日志数据库
无论检测到入侵事件还是没有检测到入侵事件,都应该详细地记录现场数据,以便以后的取证或重建。这里需要建立日志数据库来记录操作日志或攻击日志。该数据库的数据来源主要是分析模块处理后的数据,包括报警信息以及其他重要的信息,以及管理员经过条件查询后对查询结果处理所得的数据,如生成的本地文件、格式报表等。数据库管理的前端程序通常与控制台模块集合在一起。
2.6 控制中心
控制中心是整个入侵检测系统的核心,它应该有一个友好的人机界面,具有很强的网络管理功能。管理员通过它来配置系统的安全策略、设定运行参数、更新入侵特征规则库、观察系统的运行情况以及监测系统的安全状况等。主要子模块有系统设置子模块、用户管理子模块、管理员维护子模块、数据库维护子模块、日志查询子模块等。
参考文献:
[1] 马春光,郭方方.防火墙、入侵检测与VPN[M].北京邮电大学出版社,2008.10-12.
[2] 孙伟等.snort轻量级入侵检测系统全攻略[M].北京邮电大学出版社,2009.28-35
[3] 李坊标.基于snort的网络入侵检测系统NIDS的研究和应用[D].上海:上海交通大学,2007.