Snort入侵检测

2024-10-05

Snort入侵检测(共7篇)

Snort入侵检测 篇1

0 引言

网络入侵指在非法或未授权的情况下, 通过计算机程序访问网络或文件产生安全威胁或伤害的行为。2001年, 由于目录回溯漏洞、红色代码蠕虫和尼姆达蠕虫席卷了上千上万台计算机, 给网络带来类似恐怖袭击般的极大危害[1]。如今互联网已融进我们的工作和日常生活中, 每个行业和地区都因计算机而飞速发展。随信息爆炸时代而来的入侵攻击, 网络资源滥用, 信息泄露等威胁带来的严重性问题也深受人们的关注。入侵检测系统有效地解决了大部分问题, 但是网络的攻击手段也在日渐强大, 在这场入侵与防御的大战中, 针对越来越复杂的攻击方法, 一方面要增强检测能力;另一方面, 如果入侵者的目标是IDS, 通过瓦解IDS来解除警报, 从而实现某些非法目的, 那么一旦攻击成功, 就会造成网络的全面瘫痪, 后果不堪设想, 所以如何增强IDS的安全度和鲁棒性也尤为重要。

1 入侵检测系统

1.1 入侵检测技术

入侵检测能够自动检测来自其他计算机未经授权或恶意的访问, 通过收集数据加以分析, 区分善意与恶意的访问, 保护计算机和网络免遭威胁与伤害。随着防火墙的普及, 人们已不满足于防火墙的网络控制, 需更高级的技术来维护网络安全。早在1980年代就由Jnames P.Aderson提出了入侵检测的概念, 提议改进审计跟踪数据监视入侵活动的想法[2]。

1.2 入侵检测系统的功能与分类

入侵检测系统的工作原理类似于海关, 检查每一个请求通过的人员, 如果发现可疑人员就要发出警报, 并由相关人员进行解决, 通过这一方法保证国家安全。IDS可以监视系统动态, 检查系统漏洞, 判断分析异常行为, 进行日志管理, 发出警报。它可以阻止一个攻击, 但是无法抵御病毒, 只能检测出一些基于漏洞传播的蠕虫。一个IDS从体系上可以分成四个模块[3]。即由事件产生器、事件分析器、响应单元和事件数据库这四个主要的模块组成, 组件之间通过入侵描述语言来进行通信。事件产生器对数据来源信息进行收集和预处理;事件分析器进行数据的统计分析与模式匹配;响应单元负责数据及新规则的存储和检索;事件数据库进行预警和响应处理。

IDS系统有很多的分类标准, 不同标准的解释可以让我们更加清楚地认识IDS系统[4]。

(1) 根据信息源的不同, 可以分为基于网络 (NIDS) 、基于主机 (HIDS) 和基于分布式 (DIDS) 的入侵检测系统。NIDS检测网络传输来寻找攻击特征;HIDS是通过监视主机和文件系统的操作来寻找攻击特征, 对单台主机进行保护;DIDS实现远程控测器, 并且把报警信息和日志发送到一个统一的中央管理平台。

(2) 根据分析引擎的不同, 可以分为特征检测和基于异常的检测。IDS使用攻击库进行数据的分析, 攻击库里是已知的攻击行为特征。如有异常行为, 即不同于攻击库里已知的攻击行为发生时, IDS也能检测出来, 报警阻止。

(3) 根据响应方式的不同, 可以分为主动响应和被动响应。主动响应指IDS在收集跟踪入侵信息的同时可以自动进行漏洞修复等;被动响应是指记录下入侵信息, 以对入侵者透明的方式发送警报给管理员。显然主动响应会更受“欢迎”。

(4) 根据数据的存储方式不同, 可以分为使用数据库和使用数据文件的IDS。规则的保证通常使用数据库来支持, 数据库和数据文件的实时更新也是IDS一个重要问题。

1.3 入侵检测系统的重要性

除了一些利益性问题, 如今黑客心理也许只想展现自己的过硬技术, 不需要可以说服人的理由, 如果他能攻破你的计算机, 那么他就会那样行动。只要有网络, 就会存在网络安全问题。网络攻击事件发生率也在逐年上升, 攻击工具的自动化和复杂化也给入侵检测带来巨大的挑战, 入侵检测系统本身也会存在漏洞被攻击, 有些攻击工具甚至可以知道入侵检测的存在, 所以入侵检测系统任重道远。

2 开源的Snort软件

2.1 认识Snort

Snort通常被称为轻量级的NIDS, 即占用的资源少, 能运行在不同操作系统上的网络入侵检测系统, 它的免费使用为网络安全时代添上浓墨重彩的一笔。Snort最初的开发目的是做一个数据包嗅探器, 经过不断发展, 如今, 它是一个基于libpcap包的十分有效的网络监控软件, 它能够进行数据嗅探, 内容搜索匹配, 协议分析, 日志记录, 检测各种攻击, 如缓冲区溢出, 隐秘端口扫描等, 以及可以发出警报。由于它的速度快, 性能好, 使用方便, 容易管理和配置等优点, 使Snort成为该系列使用人数最多的产品之一。

2.2 Snort的体系结构与功能

Snort的结构由4大软件模块组成, 这些模块使用插件模式与Snort结合, 因此扩展起来非常方便。它的架构决定了它的各种功能, 基本组成模块是数据包嗅探器, 预处理器, 检测引擎和报警输出模块。图1是Snort的体系结构图。为了便于理解, 它的工作流程可以用硬币分拣过程来类比。

(1) 首先取得所有的硬币 (从网卡上取得数据包)

(2) 然后把硬币通过传送带来确定这些是否是硬币, 如何包裹 (预处理)

(3) 接着, 按照硬币的面值分类排列, 五分, 一角, 两角五分, 一分分分别归类 (IDS的检测引擎)

(4) 最后, 有管理员决定如何处置这些硬币, 通常是包起来放好。 (记录数据包并保存)

2.3 Snort的内部工作

Snort的内部机制工作原理需要通过各个部件的功能来诠释[5], 图2是Snort内部工作流程。

Snort有四个主要部件

(1) 包捕获/解码引擎:利用Libpcap从网卡上捕获网络上的数据包, 然后数据包经过加码引擎填入链路层协议的包结构体中, 一边对高层次的协议进行译码。

(2) 预处理插件:取得数据包并把他们译码成不同的协议, 在数据包进入检测引擎之前, 它们被送入预处理器, 检查数据包是否应该注意、报警或者修改。

(3) 检测引擎:检测引擎通过各种规则文件中的不同选项来对每个包的特征和包信息进行单一、简单的检测。检测迎请插件对包提供额外的检测功能。规则中的每个关键字选项对应于检测引擎插件, 能够提供不同的检测功能。

(4) 输出插件:Snort通过检测引擎、预处理器和解码引擎输出报警。

2.4 Snort的规则

Snort规则是基于文本的, 通常存在于Snort程序目录中或者子目录中。规则文件按照不同的组进行分类。Snort规则分为两部分:规则头和规则体。

(1) 规则头

Snort规则头是特征中的重要组成[6], 它定义了规则被触发时该做什么, 对应哪一种协议, 以及包括IP地址、网络、端口在内的源和目的信息。一个规则头分为4个部分:规则行为、协议、源信息和目的信息。

在Snort中, 有五种可选的规则动作类型:

Alert:产生报警并记录这个数据包;

Log:记录网络流量, 不报警;

Pass:忽略这个数据包;

Activate:报警并且开启另外一个动态规则;

Dynamic:当被上层的激活规则激活时调用记录网络流量的日志;

(2) 规则体

规则体的作用是在规则头信息的基础上进一步的分析, 有了它才能确认复杂的攻击。如下面一条规则:Alert tcp any any any 12345 (msg:“test message”;nocase;)

上面包含在括号里的部分是规则体, 在本例中规则体包含两部分内容, 第一部分是规则触发时将显示的信息, 第二部分是nocase选项, 用于说明本规则检查数据包汇总的内容时对大小不敏感。规则体的每个选项都要用分号隔开, 包括括号前的最后一个选项。选项可以被分为五类:规则内容、IP、TCP、ICMP、标识和其他。

Snort有23个规则选项关键词。规则的建立也是因人而异, 检测攻击的方法有很多, 但它们的效率和精确程度大不相同。为了减少漏报和误报, 需要对规则体再三推敲。

3 Snort的应用与测试

3.1 Snort的安装环境和工具

安装环境:Microsoft Window7操作系统

工具:本实验使用的是Snort2.9.7.2, Snort规则集为Snortrules-snapshot-2970, Win Cap4.1.2等, 可在网站www.Snort.org上免费下载。

3.2 Snort的安装

Snort2.9.7.2具体安装步骤如下[7]:

1) 由于需要对网络底层进行操作, 安装Snort之前要预先安装Win Cap4.1.2, 双击安装包, 进行默认安装就可以了;

2) 双击Snort2.9.7.2安装程序, 选择目录为C:/Snort。

3) 单击“开始”菜单, 选择“运行”命令, 输入“cmd”并按回车键, 在命令方式下输入Snort-W命令 (-W查看可用网卡) , 安装成功的话, 系统将显示出如图3所示的信息, 结果表示有两个可用网卡。

3.3 Snort的测试

Snort有三种工作模式[8]:-v:Snort进入数据包嗅探模式 (只对TCP头有效) ;-d:嗅探所有类型的数据包 (TCP, UDP, ICMP) ;-e:嗅探数据包的链路层包头

(1) 数据包嗅探器模式:

输入命令Snort-dev, 进行抓包工作, 并且可以看到数据包的详细信息。结果如图4所示。

输入命令Snort-v-i1, 其中-v将包头信息显示在屏幕上, -i1表示监听第一个网卡;

结果如图5所示:

4 Snort的安全性分析

入侵检测是为了保护网络信息安全, 那么它本身的安全性能就是一个非常重要的前提。理想的状况是入侵检测系统本身能够绝对被信任。美国国防部在1985年提出了AI分类模型, 要求系统的安全性可以被证明, 并且可以作为一种安全系统的标准模型。然而任何系统都难以避免的会有多多少少的漏洞与薄弱的地方, 在当今的商业产品中, 没有能够满足这一要求的。也由于Snort开源式的特点, 入侵者可能也完全熟知入侵检测系统的原理, 在这基础上有些入侵手段便可以感知到入侵检测系统的存在, 可以通过资源耗尽、资源破坏和拒绝服务等方法攻击系统, 从而使系统停止运行。所以, 入侵检测系统本身的安全问题也是一个需要重视的问题, 只有自身足够强大才能抵御攻击, 而后检测入侵, 保护目标系统。

在安装了Snort的操作系统中, 带有漏洞的应用和使用数据库存储告警信息都有可能使Snort受到攻击。Snort内核引擎的安全性是值得称赞的, 有一些漏洞是存在于第三方的插件当中, 由于不在Snort的内核里, 所以这样的结构也更加保障了安全。在过去的几个Snort版本里, 就有发现了一些安全漏洞, 例如Snort1.8版本是TCP流预处理插件中出现问题, 是Snort程序奔溃;Snort1.8.1以前的版本使用Unicode编码访问IIS服务能绕过Snort检测;Snort1.8.3版本因为对不正常的ICMP的处理引发了DOS攻击;Snort1.9.0和以前的版本是RPC预处理插件中的缓冲区溢出漏洞。为了加固入侵系统的防御能力, 需要从两个方面出发, 一个是软件本身的程序足够强大, 另一个是从承载入侵系统的系统安全性出发, 可以通过关闭一些不需要的服务、尽可能使用加密和公钥进行身份的认证、使用有防火墙保护的服务和尽快安装补丁包等方法来加强整体的安全度和鲁棒性。

5 结论

当今时代, 人们得益于信息科技所带来的便利时, 因网络信息安全的严峻形势, 对于维护网络信息安全手段的研究与探索也日渐重要。入侵检测系统是一种动态实时的防御技术, 可靠安全是它的必要前提。Snort入侵检测系统虽然是轻量级的NIDS, 不能单一用于大型网络, 但是它的入侵检测能力和本身的安全性能却被广泛认可。

本文首先对入侵检测系统做了深入解释, 介绍了Snort的体系结构, 重点分析了Snort的内部工作原理, 再从实际操作上验证Snort的嗅探检测能力, 最后对Snort的安全性进行了初步的分析, 从而对基于Snort的入侵检测系统有更深层次的理解。Snort入侵检测系统尚有很多地方值得深思研究, 比如它的算法, 规则更新, 报警等, 只要网络被大量使用, 那么就离不开入侵检测系统的保护。

摘要:入侵检测系统 (IDS) 作为有效的防入侵手段在当今网络安全体系中占有重要地位, 它通过自动、实时地检测入侵行为, 及时发出警报来保障网络安全。而Snort是一个开放源代码的轻量级网络解决方案, 它有着数据包嗅探、数据包记录、入侵检测、报警和日志等功能。本文围绕入侵检测技术展开, 主要分析了IDS的基本原理、Snort的结构、工作流程及检测规则, 进而通过Snort入侵检测系统的应用进行其入侵检测能力的测试, 最后对Snort自身的安全性等问题做了初步的分析。

关键词:Snort,入侵检测,安全性

参考文献

[1][美]Brian Caswell, Jay Beale, James C.Foster, Jeffrey Posluns[著].宋劲松等译.Snort2.0入侵检测[M].北京:国防工业出版社, 2004.1.

[2]Anderson Corporation.Anderson Jp.Cormputer security threat monitoring and surveilancee[M], USA, 2009.

[3]孙建国主编;韩启龙编著, 网络安全实验教程, 第2版, 清华大学出版社, 2014.09.

[4]宋红主编;吴建军, 岳俊梅副主编, 信息安全技术, 中国铁道出版社, 2013.12.

[5]杜彦辉等编著, 信息安全技术教程, 清华大学出版社, 2013.01.

[6]吴礼发, 洪征, 李华波编著, 网络攻防原理, 机械工业出版社, 2012.04.

[7]刘京菊, 王永杰, 梁亚声等编著, 网络安全技术及应用, 机械工业出版社, 2012.08.

[8]丁喜纲主编, 网络安全管理技术项目化教程, 北京大学出版社, 2012.11.

Snort入侵检测 篇2

随着互联网的快速发展, 网络以及计算机系统所面临的安全性问题日趋严重。在企业中, 网络安全事故也屡屡发生, 如未知原因的端口扫描等。此外, 互联网用户可通过网络随意下载攻击工具, 各种网络攻击方法也层出不穷, 这些都充分说明了网络安全建设的必要性和紧迫性。入侵检测是互联网安全防范体系的一个重要组成部分, 其使用率名列前茅, 对于入侵检测系统的研究以及应用, 亦成为网络安全领域的重要课题。

网络入侵检测系统概述

(1) 网络入侵行为的概念

入侵指的是所有试图破坏网络信息的保密性、完整性以及可用性的行为。网络入侵行为是指企图通过暗中破坏系统的安全措施, 以达到非法访问信息、破坏系统可用性的目的。常见的入侵行为主要有下列几种形式:外部渗透, 指的是既没有被授权使用计算机, 又没有被授权使用数据或程序资源的渗透;内部渗透, 指的是虽然被授权使用计算机, 但没有被授权使用数据或程序资源的渗透;不法使用, 指的是使用已被授权使用计算机、数据或程序资源的合法用户身份进行的渗透。

常见的网络入侵手段有:电子欺骗攻击、口令破解、端口与漏洞扫描、嗅探器攻击、缓冲区溢出攻击、木马攻击、拒绝服务攻击等。伴随着网络安全技术的不断发展, 网络攻击的手段也不断发展, 攻击的方式也更加多样化, 使得网络安全更加复杂, 入侵检测系统就显得尤为重要。

(2) 入侵检测系统的分类

根据采用的技术不同, 入侵检测可分为异常检测和误用检测;根据监测对象及所处不同位置, 可以分为基于网络的检测和基于主机的检测。

1) 异常入侵检测:可以根据使用者的行为, 或者对资源的使用情况来判断是否存在入侵行为。该方法首先建立正常行为模型, 若某事件违反了正常行为模型, 则被认为是可疑的。优点是能够检测一些未知攻击, 但往往很难准确建模。异常检测方法主要有统计分析和神经网络两种。

2) 误用入侵检测:首先建立起异常行为模型, 然后把用户的行为与行为模型进行匹配, 如果匹配的结果相同即为入侵。这种方法准确度比较高, 但是对于没有出现过的新型攻击, 或是己知攻击的某些变体就无能为力了。显而易见, 上述两种入侵检测方法在一定程度上具有互补性, 可以将两者结合起来, 从而提高系统检测效率。

3) 基于网络的入侵检测:通过在网络上截获数据包、侦听通信数据, 进而分析可疑现象。优点是可监视结构不同的各类系统;能实时得到与外界交互的所有信息;所收集的数据被恶意篡改的可能性较小;不影响所保护系统的性能等。

4) 基于主机的入侵检测:通过对主机的审计记录的监视与分析来检测入侵。优点是不受加密传输的影响, 能有效地检测在应用层发生的入侵活动;能够检测多种网络环境下的网络包, 大大降低系统成本等。

(3) Snort概述

Snort是一个运行在libpcap库函数之上, 以开源形式发行的网络入侵检测系统, 它支持多种软硬件平台, 系统代码遵循GNU/GPL协议。Snort的工作方式是基于规则的, 根据对数据包内容进行规则匹配的方式来检测不同的入侵行为, 如缓冲区溢出等。总的来讲, Snort具有以下优点: (1) 尺寸小; (2) 容易安装配置; (3) 灵活易用; (4) 功能强大。

基于Snort的入侵检测系统的实现

(1) 攻击源追踪模块

通过入侵检测系统, 可以实时对发生告警事件的源IP和目的IP地址追踪。但目前大多数企业网内的地址是静态设定的, 且这些IP可任意更改为网段内的其他IP。为此, 通过企业的网络中心, 逐步绑定所有地址, 而且进行个人信息注册, 当发生网络故障时, 就可以通过IP来寻找主机地址, 再结合已注册的个人信息记录, 便可准确及时地追踪到攻击源。

(2) IP地址盗用监控模块

企业网络中通常指定IP时, 采用静态设定的方式, 将IP地址与MAC地址绑定的方式, 一方面可以给企业网的安全管理带来帮助, 但另一方面, 会导致网络性能的下降, 且只有在不发生IP地址盗用的前提下, 才能够真正从IP地址映射到个人信息。为此, 我们采用ARP地址欺骗原理实现对IP地址盗用主机的网络监控。首先通过嗅探引擎将局域网中的ARP包捕获, 再比较登记的IP地址与MAC地址之间的关系, 如果不一致则该主机的IP地址被盗用。

(3) 基于SNMP协议的交换机监控模块

对于该模块, 首先构造一个SNMP报文并发送给交换机的代理进程。当代理进程收到该报文后, 会将新的路径标识符和管理对象的值返回, 这样我们便可得到交换机各端口的流量以及CPU利用率的值。首先设定读取CPU利用率以及交换机各端口流量的时间间隔, 这样, 一旦网络发生异常, 我们就可以对各端口流量统计进行分析, 从而找到问题的根源。

(4) 告警信息模块

告警信息模块能够及时准确地对告警信息及其类别进行统计分析, 并将结果提交给管理员进行安全管理及维护。为实现这一模块, 我们在数据库中增设一张统计表, 这章表记录以下内容:告警信息名称;告警类别;告警时间;源IP地址;端口号等。为统计分析告警信息, 我们设计并实现了以下模块:告警事件统计模块;源地址维护模块;告警类型维护模块等。这些模块间可以相互调用, 从而使得整个告警控制台非常灵活, 大大提高了网络管理的效率。

(5) 基于角色的安全访问控制模块

在进行系统设计时, 我们将数据表分为部门设置、角色设置、用户权限设置等多个模块, 每张数据表都由专门的模块进行维护, 每个模块都包含增、删、改、查询等功能, 系统具有良好的可扩展性。同时, 还充分考虑了操作权限, 且只做删除标记以保证系统安全性。

小结

Snort入侵检测 篇3

1 概述

网络入侵检测系统是一种主动的安全防范技术, 能够对网络传输进行实时监控, 并能在发现可疑传输时及时采取相应措施。常用的检测技术有异常检测技术和误用检测技术两种。由于异常检测技术具有误报率高的不足, 所以成熟的检测系统大多采用误用检测技术实现。其中尤以采用模式匹配技术的Snort入侵检测系统为突出代表。

Snort是一个开源的免费网络入侵检测技术 (简称NIDS)。它的功能非常强大, 主要表现在以下几个方面:

( 1) 具有实时 流量分析 和日志IP网络数据 包的能力 。Snort包括多种报警机制 , 可利用XML插件或SNML语言把日志存放到一个文件或实时进行报警。能够快速地检测网络攻击, 及时发出报警。

(2) 能够进行多种方式的搜索与匹配。它能够检测多种方式的攻击和探测, 如缓冲区溢出、秘密端口扫描、CGI攻击、SMB探测和探测操作系统指纹特征的企图等。

(3) 其日志格式多样 , 便于用户检查。Snort的日志格式既可以是tcpdump式的二进制格式, 也可以解码成ASCII字符形式, 更加便于用户尤其是新手检查。

(4) 有很强的系统维护能力。Snort能通过Flex Resp功能主动断开恶意连接。

(5) 扩展性能好 , 对于新的攻击威胁反应迅速。Snort采用一种简单的规则描述语言, 最基本的规则只包含处理操作、协议、源和目标IP地址与网络掩码, 以及源和目标端口信息等4个域。能够对新的网络攻击做出很快的反应。

2 编写规则及其运行方式

一个入侵检测系统的有效性除了依赖于攻击特征库或用户行为特征数据库的完整性以及及时更新外, 还依赖于用户创建的入侵检测系统规则。Snort使用一种简单的、轻量级的规则描述语言来描述检测规则。它提供了当满足规则定义的所有属性的包出现时要采取的行动。当为Snort规则添加规则选项时, 规则的控制粒度将变得细化, 所有的Snort规则选项用分号“;”隔开, 规则选项关键字和它的参数用冒号“:”隔开。规则选项组的功能强大且灵活, 成了Snort入侵检测引擎的核心。

Snort的运行方式也就是Snort的工作模式。目前Snort主要支持3种工作模式。

(1) 嗅探器。嗅探器又称sniffer, 它是一种常用的收集数据方法。它通常运行在路由器或带路由器的主机上。但运行该程序的主机和被监听机需在同一个以太网段内, 且必须以管理员或root身份使用。

(2) 数据包记录。数据包记录是Snort入侵检测系统的另一种常用运行模式。它通过设置Snort的运行模式为数据包记录器, 可将所有的数据包记录到硬盘上指定的日志目 录中。用户可使用任何支持tcpdump二进制格式的嗅探器程序从文件中读出数据包。

(3) 网络入侵检测系统。除了作为网络嗅探器、 数据包记录器外, Snort最重要的用途是作为网络入侵检测系统NIDS。在Windows系统下, 可以启动Snort的入侵检测模式对每个包和规则集进行匹配。如果发现与规则匹配的包就采取相应的行动, 并将日志文件输出到指定的Snort安装目录 log下。

3 影响 Snort 性能的技术分析

在Snort技术的实施中, 比较耗时的操作主要有从传输介质上捕获数据包、分析数据结构、实施规则匹配以及对每一个数据包进行的校验。传输介质上的数据包的捕获是实现对网络数据分析的基础, 越是快速、完整地对数据包进行捕获,越能及时有效地对数据实现分析。

(1) 随着当今高速网络的发展 , 很多数据包都难以及时有效地被捕获。大量数据包的丢失必然会大大降低Snort系统的性能。

(2) Snort的检测过程实际上就是对根据Snort规则文件构造的二维链表进行搜索的过程。通过对二维链表进行深入的分析, 可以看出Snort采用的二维链表结构相当于一个集合的数据结构。所以, 如果对Snort规则文件进行集合优化, 即规则优化, 必然可以改进Snort的检测效率。

(3) Snort是一种基于对网络数据包进行模式匹配的误用入侵检测系统。网络数据包传输速度和模式匹配算法的速度必然也成为制约Snort性能提高的又一因素。

4 应用分析

目前, 受到国家和社会对教育关注 度不断提 高的影响 ,很多学校都建立起了校园网络方便师生工作和学习。大部分校园网络都具有用户流量大、使用时间长、在线比率高和应用复杂等特点。 面临的主要威胁有ARP欺骗、DHCP安全威胁和非法代理等。Snort在校园网的应用中也主要可以从这几个方面进行提升。

(1) 对ARP欺骗技术的检测改进。在以太网中 , 每台主机内都会存有一份ARP高速缓存映射表, 表里的IP与MAC信息一一对应, 且动态更新。针对这种欺骗技术, 在校园网的设计中可采用将IP地址和MAC地址进行静态绑定和修改原有ARP预处理插件、增加ARP检测模块等方式完成防御。检测模块的具体流程首先是从配置文件中读取网关的IP及MAC地址并进行静态绑定, 然后用多线程技术动态检测ARP缓存中网关的IP/AC对是否发生变化。如果改变则调用插件输出警报, 如果为否, 则正常收发数据并退出检测模块。具体流程如图1所示。

(2) 对DHCP威胁的防御改进。DHCP技术的使用不但提高了IP地址的利用率, 缓解了IP地址资源的紧张情况; 同时也减少了校园网管的工作量, 避免了手动配置网络参数容易出错的问题。但是这种方式在对网络中主机配置地址和参数时交互的信息却是没有任何加密和认证等安全措施的裸露信息, 更易被非法服务器所截获。对于这种技术的防御主要可采用增加消息认证机制和对交换机进行相应配置等方法来实现。采 用Snort检测则要 在收到DHCP服务器应 答的DHCPOFFER消息后 , 用Snort检测其DHCP服务器标 识符。如果与合法的标识不匹配则产生相应的警报信息。具体编写的规则语言如下所示:

其中客户端在68端口广播请求, 服务器在67端口回应请求,“$DHCP_IDENTIFIER”是合法DHCP服务器。主要含义是检测所有从67端向68端发送的广播, 如果其标识符不是 $DHCP_IDENTIFIER中的内容 , 则发出Rogue DHCPServer On Cam Pus警报。

(3) 对非法代理的检测改进。目前网络中代理服务器的基本特征有端口和流量特征以及变量特征等。 变量特征主要是指合法代理服务器会在通信过程中在原通信协议中添加一些变量。如图2所示。

以HTTP类代理的网络客户端在和外网通信过程中一般都会产生一些如Proxy-Connection、User-Agent和Cache-control等变量。于是通过Snort检查网络中主机对HTTP的请求或应答报文, 查看是否包含这些变量, 即可判断这台主机是否为代理服务器。

5 结语

Snort入侵检测 篇4

随着计算机网络的迅猛发展, 网络安全问题日益为严重, 虽然现在防火墙的各种安全工具已经被普遍的应用到各种网络环境中, 但网络仍然存在许多安全隐患, 而入侵检测是解决此类隐患的有效手段。入侵检测系统入侵检测系统是网络安全防御体系中的重要组成部分。入侵检测就是通过从计算机网络或系统的关键点收集信息, 并对信息进行深入分析从而发现网络或者系统中是否有违反安全策略的行为和攻击迹象, 是防火墙的有效补充, 防火墙后的第二道防线。

1 入侵检测系统介绍

1.1 入侵检测系统的概念

入侵检测是对企图入侵或正在入侵的入侵者以及已经发生的入侵进行识别的过程。所有能够执行入侵检测任务和功能的系统, 都可以称之为入侵检测系统。图1给出了一个通用的入侵检测系统的模型。

图1中数据收集器又可称为探测器, 主要负责收集数据。数据收集器的输入数据流包括任何可能包含入侵行为线索的系统数据。检测器又叫做检测引擎, 它主要负责分析和检测入侵行为的任务, 并发出报警信号。知识库的作用是提供必要的数据信息支持。控制器的作用是根据报警信号, 人工或自动做出反应动作。

1.2 入侵检测系统的分类

入侵检测系统根据采集的数据源不同, 可分为基于主机的入侵检测系统 (host intrusion detection system) 和基于网络的入侵检测系统 (net intrusion detection system) 。

(1) 基于主机的入侵检测系统

基于主机的入侵检测系统从主机或服务器上采集数据, 包括系统日志、系统进程和注册表访问等信息, 基于主机的入侵检测系统安装在要保护的主机或服务器上, 它的检测行为发生在主机上的活动, 处理的都是操作系统时间或者应用程序事件不包括而不是网络包。

(2) 基于网络的入侵检测系统

基于网络的入侵检测系统的信息来源来自于网络数据包。基于网络的入侵检测系统通常在网络层监听并分析网络包来检测入侵, 可检测到非授权访问、盗用数据资源、盗取口令文件等入侵行为。基于网络的入侵检测系统监控的是网络数据流量。

2 snort入侵检测系统简介

2.1 snort概述

Snort是一个轻量级入侵检测系统, 具有实时数据流分析和日志IP网络数据包的功能, 能够进行协议分析, 对内容进行搜索匹配, 能够检测不同的攻击方式并对攻击进行实时报警。此外snort是一个跨平台、开放源代码的免费软件, 所以snort还具有很好的扩展性和可移植性。Snort使用著名的网络包捕获器libpcap进行开发, libpcap是网络数据包捕获的标准接口, 使用BPF数据包捕获机制, 它为snort提供了一个可移植的数据包截获和过滤机制。

2.2 snort的体系结构

Snort由四个模块组成:数据包嗅探器、预处理器、检测引擎和报警输出模块。体系结构图如图2, 首先snort通过嗅探器从网络中捕获数据包, 而后交给预处理器进行处理, 而后再交给检测引擎来对所有的规则链进行匹配, 若匹配成功说明有入侵行为发生, 通过报警输出模块进行记录, 告警信息也可存入数据库中进行保存, 这里我们采用MYSQL数据库。

Snort的预处理器、检测引擎和报警输出模块采用插件结构, 插件程序按照snort提供的插件函数接口完成, 使snort的功能扩展功能扩展更加容易。Snort采用基于规则的网络信息搜索机制, 对网络数据在入侵规则库中进行匹配, 从而发现入侵行为。

2.3 snort的工作流程

snort有三种工作模式分别为数据包嗅探器、数据包记录器和网络入侵检测系统, 这里我们采用网络入侵检测系统, 图3给出了snort在网络入侵检测系统模式下的具体工作流程。

Snort入侵检测系统工作流程基本上分为两步:第一步为预处理阶段和规则解析流程, 首先对网络上抓取的数据包进行必要的预处理而后读取规则文件并对其解析, 在内存中建立对应的规则链, 这些规则链组成所需的规则树, 规则树是一个二维链表, 其中的规则由规则头和规则选项组成, 规则头存放源端口号、目的端口号、源IP地址及目的IP地址的信息, 它有指向下一规则头指针和指向对应其规则选项的指针。规则选项存放规则信息、关联其规则头的指针和指向下一规则选项的指针, 所有的规则头选项组成主链, 所有的规则选项组成以规则头为链首的从链。第二步为规则匹配过程, 此时snort将对抓取的网络数据报文同第一步建立的规则树进行匹配, 根据IP地址及端口信息找到相应的规则头文件, 而后与以此规则头为首的规则选项从链进行匹配, 如果发现有规则选项匹配, 则说明有入侵行为发生, 就对该数据报文进行记录及预警。若没有规则与此报文匹配则说明没有入侵行为发生。

3 snort入侵检测系统的应用实例

3.1 snort入侵检测系统必须的组件

系统所需组件:red hat linux9系统主机一台;snort2.8 (Linux平台版本) ;libpcap网络嗅探器;mysql5.2;ACID (基于php的入侵检测数据库控制台) ;adodb (为PHP提供统一的数据库连接函数) ;php5;jpgraph (php的图形库) ;apache (Linux下Aapche服务器) , 上述软件组成系统如图4所示。

3.2 snort入侵检测系统配置

在Linux环境下我们用源码安装的方法来安装snort入侵检测系统, 首先用tar解压缩命令来解压libpcap、Mysql、ACID和apache, 而后对这些软件进行安装, 解压安装php-5.2.8.tar.gz至/usr/local/php5目录下, 解压安装adodb4991.tar.gz到usr/local/php5/adodb目录下, 解压安装jpgraph-1.26.gz至usr/local/php5/jpgraph目录下, 解压安装acid—0.9.6b23至usr/local/apache2/htdocs/acid目录中。而后在apache2安装目录中的httpd.conf文件添加对php的支持:LoadModule php4_module modules/libphp4.so;Add Type application/x-httpd-php.php。而后再Mysql中建立snort运行所必须得数据库:

然后启动snort我们就可以在Wed页面上看到ACID控制台界面, 至此LINUX下的Snort安装建立成功。结果可以直接从WEB界面上看到, 一套完整的IDS系统就可以正常运行了。

3.3 系统测试

在命令行上键入:[root@localhost root]#snort-dev-l./logh 210.43.2.0/24-c snort.conf, 启动snort入侵检测系统, 所捕获的数据包存放于Mysql数据库中, 而后打开http://210.43.2.241/acid/acid_main.php, acid自动调用mysql中的数据文件, 对当前网络情况进行分析并显示在网页上, 网络环境复杂多变, 攻击手法层出不穷, 所以需要编写新的规则才能保证入侵检测的入侵识别能力。在本文中我们编写一条新规则用来检测所捕获的icmp报文中ttl为128的数据包, 规则编写为:alert icmp$EXTERNAL_NET any->$HOME_NET (msg:“The test is captured.”;ttl:128;) , 并将其添加入规则集.启动snort后在linux命令行中键入:ping–i 128 210.43.2.229 (网络中的一台主机) , 则在告警日志中会发现提示信息为“The test is captured.”的告警记录。

4 结束语

本文对snort入侵检测进行了深入分析, 在Linux环境下实现了snort入侵检测系统并进行了实验, 但是入侵检测系统需要经验丰富的管理员对网络日志进行正确的分析和编写新规则, 不断提高检测新的攻击的能力和减低系统误报率和漏报率。这样才能应对复杂多变的网络环境, 这正是我们下一步的研究目标。

参考文献

[1]宋劲松.网络入侵检测.北京:国防工业出版社.2004.

[2] (美) Jack Koziol (著) , 孙默, 许诚等.snort入侵检测实用解决方案.机械工业出版社.2005.

[3]顾丽, 李菲, 乔佩利.Linux平台下网络入侵防御系统的研究与实现.哈尔滨理工大学学报.2009.

Snort入侵检测 篇5

关键词:CIDF,Snort,入侵检测,分布式入侵检测

0 引言

Snort是目前为数不多的源代码开放且实用的网络入侵检测系统之一, 它具有数据流量实时分析和IP数据包日志的能力, 能够进行协议分析, 搜索和匹配入侵特征。它能够检测各种攻击方式, 并对攻击进行报警。一些商业入侵检测产品都多少参考了Snort的体系结构。Snort的设计具有灵活、可定制和可扩展的特点。而分布式入侵检测系统具有检测精度高、检测效率高、检测更大范围的攻击行为并能进行协同响应等优点。结合两者的优点, 本文讨论一种基于Snort的分布式入侵检测系统, 该系统能够比较有效而准确地检测网络攻击。

1 Snort防护入侵体系结构

Snort通过数据包嗅探器从被检测的网络中截获数据包, 然后将捕获的数据包提交给协议分析器先进行协议解码, 然后将解码后的数据交给Snort预处理插件进行预处理分析, 再将协议分析处理后的数据提交给检测引擎进行规则特征匹配。就Snort入侵检测防护的体系而言, Snort应属于集中式的网络入侵检测系统, 因为Snort的事件分析器与管理控制台属于同一个运算中心, 它的数据分析与事件检测是集中进行的, 也就是说分析与检测过程是由系统中惟一的一个事件分析器来完成的。集中式网络入侵检测系统Snort在应用到实际的网络环境时, 常因为网络流量的提高, 而造成检测性能的下降。因此, 为了能在实际的网络环境中, 准确而有效地检测网络入侵, 就需要以Snort为核心, 构建一个分布式入侵检测系统。

2 C1DF模型

为了提高入侵检测系统各组件之间以及与其他安全产品之间的互操作性, 美国国防高级研究计划署 (DARPA) 和互联网工程任务组 (IETF) 的入侵检测工作组 (IDWG) 发起并制订了一系列建议草案, 从体系结构、API、通信机制、语言格式等方面规范了IDS的标准。DARPA提出的公共入侵检测框架 (Common Intrusion Detection Framework, CIDF) 阐述了一个入侵检测系统 (IDS) 的通用模型。

其思想是将入侵检测系统分为以下几个组件:

(1) 事件产生器 (Event generators) ;

(2) 事件分析器 (Event analyzers) ;

(3) 响应单元 (Response units) ;

(4) 事件数据库 (Event databases) 。

CIDF将IDS需要分析的数据统称为事件 (Event) , 它可以是网络中的数据包, 也可以是从系统日志等其他途径得到的数据源信息。

事件产生器的目的是从整个计算环境中获得事件, 并向系统的其他部分提供此事件。事件分析器分析得到的数据, 并产生分析结果。响应单元则是对分析结果作出反应的功能单元, 它可以作出切断连接、改变文件属性等强烈反应, 也可以只是简单的报警。事件数据库是存放各种中间和最终数据的地方的统称, 它可以是复杂的数据库, 也可以是简单的文本文件。

本文中设计的基于Snort的分布式网络入侵检测系统符合公共入侵检测框架 (Common Intrusion Detection Framework, CIFD) 的标准。

3 基于Snort的分布式入侵检测系统的设计

3.1 基于snort的分布式入侵检测系统的设计思路

在我们的系统中使用了一种能够结合层次化的分布式入侵检测系统和协作化的分布式入侵检测系统两种模型优点的分布式入侵检测系统。其逻辑框架图如图2所示。

我们将受保护网络分割为不同逻辑区域, 这些区域物理上可以对应一个局域网。每个逻辑区域内都有一个分析节点, 分析节点包括:过滤器模块、包捕获器、过滤器模块、Snort网络检测引擎模块、通信模块和控制器模块。

3.2 基于Snort的分布式入侵检测系统的逻辑结构

为实现对网络入侵进行即时检测、对信息系统和信息资源实施安全保护, 本系统采用了基于Snort的分布式入侵检测结构, 它是基于Snort的分布式入侵检测系统。它由多个分布在网络中关键节点上的分析节点构成, 每个分析节点可以独立地工作, 当拓扑结构中的分析节点的数量小于等于1时, 通信模块和控制模块就处于休眠状态, 而每个分析节点此时可以单独运行。每个分析节点的主要部件由Snort网络检测引擎模块、通信模块、过滤器模块和控制器模块四部分组成。每个分析节点构成一种对等的分布式检测系统。每个分析节点的逻辑结构如图3所示。

3.2.1 snort网络入侵检测引擎

Snort网络入侵检测引擎是整个系统中的核心部件, 它主要被部署在受保护网络内不同的网段上。基于Snort的分布式入侵检测系统可以部署在负载较轻的主机上, 亦可部署在单独配置的机器上。

3.2.2 通信模块

通信模块与Snort检测引擎部署在同一位置, 起到数据传输的作用。它的主要作用是起着在分布式系统中与其他检测分析节点的信息交换和通信任务。

3.2.3 过滤器模块

为了减轻检测引擎的检测负荷, 并保证在高流量的网络中基于Snort的分布式入侵检测系统尽量做到不漏报和误报, 我们对已被Snort捕获并经过协议解析的数据包, 进行过滤处理, 抛弃无需检测分析的大量数据包, 这样就能直接提高系统的检测效率。

3.2.4 控制器模块

控制器模块是每个主机与外部交流的界面。控制器模块的主要工作主要有以下两部分:

(1) 控制Snort检测引擎、通信模块和过滤器模块启动或终止工作。

(2) 控制Snort检测引擎、通信模块和过滤器模块处于何种工作模式。

基于Snort的分布式入侵检测系统能适应大规模的高速的网络环境, 能实时检测出多种常见的入侵、攻击手段, 并可借助第三方软件, 以屏幕消息或电子邮件告警等方式及时报警。

该检测系统具有以下优点:

(1) 检测效率高;

(2) 漏报率低;

(3) 可扩展性好;

(4) 配置简单灵活;

(5) 能进行攻击库的更新;

(6) 能进行协同监测。

4 结论

本文对现有几种分布式入侵检测系统的体系结构进行了仔细的比较和研究后, 提出了一种基于Snort的分布式入侵检测模型。这种体系结构能够避免单节点失效, 同时也能够在高层次进行协作, 完成对全局信息的提取和分析。基于Snort的分布式入侵检测系统的各个节点不仅能够资源共享, 而且应具有互相操作的能力。通过节点与节点之间的协作进行对全局状态的检测, 并实现最优化的检测负载分担。基于Snort的分布式入侵检测系统能够适用于多种不同的环境而且基于Snort的分布式入侵检测系统在结构上能够不做本质上的改变而依然正常工作。

参考文献

[1]JackKoziol.Snort入侵检测实用解决方案[M].机械工业出版社.2005.

Snort入侵检测 篇6

本文对snort入侵检测系统及基于免疫原理的入侵检测技术进行了探讨和研究,利用snort系统为误用检测系统,把人工免疫的算法应用到异常检测,用于检测未知攻击。在此基础上设计了混合模式入侵检测系统。

1 入侵检测技术介绍

入侵检测技术主要有两种:误用检测和异常检测。

误用检测(Misuse Detection)是假定所有入侵行为和手段(及其变种)都能够表达为一种模式或特征,那么所有已知的入侵方法都可以用匹配的方法发现。误用检测的关键是如何表达入侵的模式,把真正的入侵和正常行为区分开来。误用检测的优点是可以有针对性地建立高效的入侵检测系统,其主要缺陷是不能检测未知的入侵,也不能检测已知入侵的变种,因此可能发生漏报。

异常检测(Anomaly Detection)是假定所有入侵行为都是与正常行为不同的。异常检测需要建立目标系统及其用户的正常活动模型,然后基于这个模型对系统和用户的实际活动进行审计,以判定用户的行为是否对系统构成威胁。常用的异常检测方法有:专家系统、神经网络、机器学习、和人工免疫等。异常检测的关键问题是:(1)特征量的选择。异常检测首先是要建立系统或用户的“正常”行为特征轮廓,这就要求在建立正常模型时,选取的特征量既要能准确地体现系统或用户的行为特征,又能使模型最优化,即以最少的特征量就能涵盖系统或用户的行为特征。(2)参考阈值的选定。因为在实际的网络环境下,入侵行为和异常行为往往不是一对一的等价关系,这样的情况是经常会有的:某一行为是异常行为,而它并不是入侵行为。同样存在某一行为是入侵行为,而它却并不是异常行为的情况。这样就会导致检测结果的虚警和漏警的产生。由于异常检测是先建立正常的特征轮廓作为比较的参考基准,这个参考基准即参考阈值的选定是非常关键的,阈值定的过大,那漏警率会很高;阈值定的过小,则虚警率就会提高。合适的参考阈值的选定是影响这一检测方法准确率的至关重要的因素。

误用检测能够较好地检测已知类型的攻击,通常误报率较低,因此大多数的商业IDS都采用这种方式。但是,该类型的系统无法检测未知类型的攻击。面对层出不穷的新型攻击显得捉襟见肘。异常检测虽然可以检测未知类型的攻击,但又伴随着较高的误报率,而且检测算法的复杂度一般较高,所以在实际环境中的应用不是很广。由于异常检测和误用检测这两种方法各有所长,选择其中一种方法忽视掉的入侵很可能会被另外一种所识别。因此,可以通过寻找一种有效的协调方式把误用检测和异常检测结合起来,发挥两者各自的优点。弥补各自的缺点,从而获得更好的性能。

2 snort系统分析

Snort是目前使用最广泛的开放源代码入侵检测系统,它具有实时数据流量分析和对网络上的IP网络数据包日志进行测试等功能,能够进行协议分析,完成内容搜索/匹配。它能够检测各种不同的攻击方式,对攻击进行实时报警。此外,Snort具有很好的扩展性和可移植性。从本质上来说,Snort是一个基于误用检测的IDS。snort系统是通过一个已有的规则库进行人侵行为的检测,其中没有规则的扩充机制,这就使得它对于新的攻击行为无能为力。

2.1 snort系统架构

Snort入侵检测系统主要由四部分组成:数据包嗅探器、预处理器、检测引擎、报警输出模块。系统体系结构如图1所示。

2.2 snort系统工作流程

Snort的基本功能是数据包嗅探器,数据包嗅探是Snort工作的开始,Snort取得数据包后先用预处理插件处理,然后经过检测引擎中的所有规则链,如果检测到有符合规则链的数据包,则系统就会根据输出设置把该信息记录到文件并报警。Snort的预处理器、检测引擎和报警模块都是插件结构,插件程序按照Snort提供的插件接口完成,使用时动态加载,在不用修改核心代码的前提下使Snort的功能和复杂性扩展更容易。既保障了插件程序和snort核心代码的紧密相关性,又保障了核心代码的良好扩展性。

3 人工免疫原理与入侵检测

3.1 生物免疫系统

生物免疫系统(Biology Immune System,BIS)是一个分布式、自组织和具有动态平衡能力的自适应复杂系统。它对外界入侵的抗原(Antigen,Ag),可由分布全身的不同种类的淋巴细胞产生相应的抗体(Antibody,Ab),其目标是尽可能保证整个生物系统的基本生理功能得到正常运转。生物免疫系统具有良好的多样性、耐受性、免疫记忆、分布式并行处理、自组织、自学习、自适应等特点,这些诱人特性,引起研究人员的普遍关注。

人工免疫系统(Artificial Immune System,AIS)就是研究、借鉴、利用生物免疫系统的原理、机制而发展起来的各种信息处理技术、计算技术及其在工程和科学中的应用而产生的多种智能系统的统称。计算机免疫系统是人工免疫、计算机科学的一个分支,是继神经网络、模糊系统、进化计算、人工免疫等研究之后的又一个研究热点。在众多的研究领域中,引入免疫概念后取得了满意的成果,特别在计算机病毒防治、网络入侵检测上,基于免疫的网络安全技术克服了传统网络入侵检测系统的缺陷,被认为是一条非常重要且有巨大实际应用前景的研究方向。

3.2 免疫算法

Forrest等研究人员受生物免疫系统启发提出了否定选择算法。否定选择,又称阴性选择。否定选择的主要思想是:建立一个随机检测器集,从中进行选择,将对系统无害的自体信息排除,剩下的则认为是异常体的集合。

本文提出的检测器生成器算法(如图2)是在原有的否定算法的基础上进行了改进。利用误用检测模式先检测出已经确定的攻击模式,对于未知的异常数据则用免疫算法的检测器检测,因此本文的检测器生成是以少量的异常数据为基础生成的,而不是一种不可能存在的模式,这样,产生的检测器数量不会像原始算法产生的那么多,这些检测器是有效的,有利于提高检测效率,节约存储空间。

4 系统设计

4.1 系统设计思路

Snort基于误用检测技术,其检测能力受到规则数据库中规则的限制,无法检测到未知类型的入侵行为,而基于免疫的异常检测技术的优点是能够检测到未知类型的入侵行为。

一般情况下,网络中绝大部分数据包都是正常的,可以在Snort检测引擎之前加入异常检测引擎来过滤掉大部分正常数据。减少Snort检测引擎的负担,提高其检测效率;由于Snort支持插件方式,因此将异常检测引擎编写成插件,通过Snort提供的插件接口,使用时动态加载,可方便地实现在Snort中添加异常检测的功能。对于那些不符合网络正常行为模型的数据包,可将其视为异常数据包,先送至误用检测引擎作进一步的检测。经过误用检测引擎未发现入侵行为的异常数据包很可能是新的入侵行为产生的数据包,对这些异常数据包再通过免疫的异常检测模块可以判断是否新的入侵行为模式,然后将这些入侵行为模式转换为Snort入侵检测规则并添加到规则库中,这样误用检测引擎就可以检测到新的入侵行为。

4.2 系统架构

本文提出的检测模型系统架构如图3所示。

系统主要包括6个功能模块:

数据包捕获和解码子系统,用来捕获网络的传输数据并按照TCP/IP协议的不同层次将数据包进行解析;

数据预处理,是介于解码器与检测引擎之间的可插入模块,提供一些对解码后的数据包及一些应用层协议的附加处理及解码功能;

异常检测引擎,负责对数据包进行检测,并过滤掉正常的数据包;并将可疑的异常数据包输出到snort误用检索引擎模块;

Snort误用检测引擎模块,把获得的网络数据与规则库进行比较,如果匹配,则报警;否则,作为异常数据存入异常文件;

基于免疫原理检测模块,对异常文件数据进行免疫检测,检测出新的入侵行为模式,调用报警模块,并转换为符合snort规则语法的入侵检测规则,然后添加到规则库中。

该系统的主要优点:结合了误用检测与异常检测的优点,提高了检测效率,应用免疫原理提高了检测未知攻击的检测的能力,可以不断更新规则库,检测某些新变种的入侵。

4.3 系统实现

本文改进模型的实现是基于开源网络入侵检测系统Snort及其相关组件的,这些都可以通过互联网免费获得。具体实现过程分为以下几步进行:

1)在Windows系统下部署一个简单的snort网络入侵检测系统。用到的主要软件有:Snort、Winpcap、jpgraph、Mysql、Apache、php、ADODB、ACID等.对这些软件进行合理的安装和配置,构建起一个功能较完善的snort入侵检测系统。

2)将可疑数据存入可疑数据库并对其进行分类,使新的人侵数据和正常数据分开。这部分通过在ACID(AnalysisConsole for Intrusion Databases)中加入相应的处理页面来人机交互实现。

3)利用数据挖掘算法构建正常行为模式库并实现异常检测引擎模块。异常检测引擎模块在Snort程序中使用C语言来实现。

4)对异常数据进行向量转换,利用免疫算法对异常入侵数据进行检测,如果是攻击数据则转换成适合Snort的规则。这部分使用C语言来实现。

5 结束语

该文提出了一个混合型的入侵检测系统,利用snort的预处理技术进行异常检测分类过滤掉大量正常数据,提高人侵检测系统的数据处理能力。再利用误用检测引擎检测已知类型的攻击。对于无法确定的攻击则由后续的基于免疫原理异常检测模块做二次检验;该系统可以进行在线的检测工作,可以自动更新规则库,记忆新类型的攻击,灵活性较高,检测性较强。

参考文献

[1]宋劲松.网络入侵检测[M].国防工业出版社,2006.

[2]杨义先,钮心忻.入侵检测理论与技术[M].高等教育出版社,2007.

[3]郭文忠,陈国龙,陈庆良,等.基于粒子群和人工免疫的混合入侵检测系统研究[J].计算机工程与科学,2007(29,10).

[4]袁晖.基于Snort的入侵检测系统安全性研究[J].计算机科学,2008(35,4).

Snort入侵检测 篇7

入侵防御体系实在网络中进行串联和部署的,受保护网段与 其他网络 之间交互 的数据流 都必须要 通过IPS中的设备。因此, 安全防御体系同时要具有一个连接到内部网络和一个连接到万部网络的网络端口,在对流经的网络流量进行检测的基础上实现对网络系统的安全保护。

入侵防御体系的工作原理为,当在网卡接口处流经数据包时,入侵防御体系能够根据数据包不同的包头和数据包流经的信息进行分类,在检测引擎不同的过滤器中对不同的数据包进行过滤,在过滤的过程中这些过滤器都是并行工作的,其在匹配的过程中主要参考每个数据包的特征以及检测引擎中的规则,当数据包的特征和其中的规则出现匹配时将这个数据包标记为命中,这时就说明发生了攻击,这时防御系统就会在丢弃该数据的同时进行报警,同时对于该数据包相关的状态信息进行更新。当同一会话流的其他数据包到达入侵防御体系时也会被丢弃;当数据包没有匹配检测引擎中的任何一条规则时就会将该数据包视为正常,这样数据包就可以顺利的通过入侵防御系统。

2 网络入侵检测技术

2.1 基于网络的入侵检测系统

基于网络的入侵检测系统在对网络和系统架构进行扫描的过程中是以外部攻击者的角度进行,其主要作用是对网络服务和协议中的漏洞进行查询,例如SNMP服务漏洞的检测。与此同时,基于网络的入侵检测系统在基于主机扫描发现不了的网络设备漏洞的检测上有非常高的效率,例如防火墙和远程访问服务等方面的漏洞。基于网络的入侵检测系统主要有几方面优点:首先是价格比较便宜;然后是操作比较简单;最后不需要对任何代理程序进行安装。但是这种检测系统也存在着不足之处,具体表现在:首先不能随意的穿越防火墙;然后不能有效的对某些文件系统相关的漏洞进行检测;最后缺乏相应的机制对通讯过程进行加密。

2.2 基于主机的入侵检测系统

基于主机的入侵检测系统在主要是检查操作系统级的漏洞,在检测的过程中主要以内部用户的角度来进行,在对注册表和用户配置中的漏洞进行检测的过程中能够有效的获取主机操作系统的底层细节。基于主机的入侵检测系统主要有几个方面优点:首先能够扫描数量较多的漏洞;其次可以有效的实现集中化的管理。再次,网络流量的负载比较小;最后,具有特殊的加密机制对通讯过程中的数据包进行加密。但是基于主机的入侵检测系统也存在着一些不足之处, 主要表现在几个方面:首先是价格比较高;然后在目标主机上需要安装一个代理和服务;最后在设计代理软件的过程中需要与用户充分的交流,设计周期比较长。

3 基于 Snort 的网络入侵设计

3.1 网络入侵的设计原则

基于Snort的网络入侵设计的过程中主要以几种原则来进行。第一, 独立性与组合性的原则, 这种基于Snort的网络入侵防御系统能够独立的在网络中工作 ,在防御的过程中可以实现与其他防御机制的配合,在对单台主机的保护和对整个网络的保护上都应该非常有效。第二是内嵌式的工作模式,只有在内嵌式的工作模式下这种基于Snort的网络入侵防御系统才能够真正的实现防御。第三,坚持安全性和可用性的原则,这种基于Snort的网络入侵防御系统本身的安全非常重要 , 内嵌式的工作模式决定了其发生故障和系统崩溃以后会阻断所有的网络流量, 因此这种基于Snort的网络入侵防御系统需要通过提供失效开放机制来加强系统本身的健壮性。除此之外,应该在充分考虑其它安全机制的反馈动态规则的基础上及时的更新安全知识库。第四,坚持实时监测与主动响应的原则, 种基于Snort的网络入侵防御系统能够对异常情况主动的响应,在对网络流量实时监测的过程中及时的发现攻击意图和入侵行为,同时采取响应的主动响应措施,另外还能够在系统日志中及时的记录攻击入侵过程,在以后的资料分析和入侵的时候可以作为参考。第五,坚持低延迟的原则,由于种基于Snort的网络入侵防御系统在网络中的部署方式为内嵌式,因此整体的网络性能会受到速度瓶颈的影响。本文的研究中采取多处理分布式处理数据包和高速数据采集相结合的方式来降低系统的延迟。第六坚持可扩充性的原则。第七,坚持易操作性的原则。

3.2 网络入侵系统结构设计

这种基于Snort的网络入侵防御系统的结构主要由防火墙、NIPS和蜜罐系统组成。

在外网和内网的交界处设置防火墙,这样能够有效地检测内外网之间的访问流量,在防火墙后面设置串联的NIPS1和NIPS2,能够检测和阻断防火墙检测和阻断不了的安全漏洞。在NIPS1和NIPS2部署蜜罐1和蜜罐2, 在实现主机与黑客的交互过程中及时的捕获活动信息并进行详细的记录。同时还能够吸引黑客对周边网络的注意,使黑客把时间浪费在对蜜罐的攻击上,能够有效地保护周边网络安全。因此可以看出,这种三层防御体系能够有效地降低网络攻击所带来的损失,保护网络环境的安全。

NIPS系统逻辑结构主要分为 :数据包捕获模块、入侵检测米快、相应模块、日志审计管理模块、管理控制模块、协作防御通讯模块。在这些模块协同工作的过程中有效地实现系统防御功能。对于各个模块有独特的功能, 例如数据包检测模块能够捕获流入网卡的数据包。管理控制模块能够对整个NIPS的各个模块进行管理和协调等。

4 结束语

总而言之, 基于Snort的网络入侵防御系统能够主动的防御网络中的漏洞和安全问题,保证互联网的可靠性,在应当充分考虑网络入侵设计原则的基础上对网络入侵系统的结构进行设计。后续还应当对基于Snort的网络入侵设计进行更加深入地研究以充分发挥其在网络防御过程中的优点。

摘要:为了研究基于Snort的网络入侵防御,文章首先介绍了入侵防御体系工作原理,再之介绍了网络入侵检测技术,主要包括基于网络的入侵检测系统以及基于主机的入侵检测系统,最后详细研究了基于Snort的网络入侵设计。文章的研究可以作为基于Snort的网络入侵防御设计过程中的参考。

上一篇:绿化工程建设下一篇:脂微球化前列地尔