基于误用检测的网络入侵系统实现

2014-06-20 18:13朱勇
无线互联科技 2014年2期
关键词:入侵检测

朱勇

摘 要:随着网络技术的不断发展,网络安全问题日益突出,入侵检测成为网络安全中的核心技术,Snort系统由于开放源代码具有其自身巨大的优势。本文介绍了网络入侵检测技术,具体研究了Snort系统的工作原理和入侵检测流程等,最后对系统进行了一系列实验,实验显示的实验数据和日志情况。

关键词:入侵检测;snort技术;检测性能

1 引言

随着科学技术的不断发展,网络日趋复杂化,过去保护网络安全所采用的防火墙只是被动防御的网络安全工具,已不能适应如今复杂多变的网络安全问题。入侵检测是网络安全领域中一个较新的课题,检测引擎作为其核心模块,检测速度将直接影响系统的效率,模式匹配是入侵检测系统的重要检测方法。入侵检测技术是近年来飞速发展起来的一种集动态的集监控、预防和抵御系统入侵为一体的新型安全机制。作为传统安全机制的补充,入侵检测技术能够提出预警并实行相应反应动作。入侵检测是对计算机和网络资源上的恶意行为进行识别和相应处理的过程,具有智能监控、实时探测、动态响应、易于配置等特点。

在我国入侵检测技术的研究起步较晚,还不够成熟和完善,需要投入较多的精力进行探索研究,特别是基于模式匹配也就是基于规则的入侵检测,这对抑制黑客攻击和网络病毒的传播,提高网络安全具有重要意义。

2 网络入侵检测技术概述

入侵检测系统(IDS,Intrusion Detection System)可以识别计算机和网络系统,或信息系统的非法攻击,主要包括检测非法入侵者的恶意攻击,或是合法用户的越权行为。入侵检测系统在结构上基本一致,都由数据采集、数据分析及用户界面等组成,不同的只是在分析采集方法和数据类型等方面。

2.1 入侵检测系统分类

(1)基于主机的入侵检测系统。基于主机IDS部署在单主机上,利用审计记录,通过操作系统的日志记录,主机自动检测入侵行为。它不对网络数据包或扫描配置进行检查,而是整理系统日志。

(2)基于网络的入侵检测系统。基于网络的IDS主要用于防御外部入侵攻击。它通过监控出入网络的通信数据流,按照一定规则分析数据流的内容,从而发现协议攻击、运行已知黑客程序的企图和可能破坏安全策略的特征,做出入侵攻击判断。

为了能够捕获入侵攻击行为,基于网络IDS必须位于能够看到所有数据包的位置,这包括:环网内部、安全网络中紧随防火墙之后以及其它子网的路由器或网关之后。

2.2 入侵检测技术

入侵检测系统中核心的问题是数据分析技术,包括对原始数据的同步、整理、组织、分类以及各种类型的细致分析,提取其中所包含的系统活动特征或模式,用于判断行为是否正常。采用何种数据分析技术,将直接决定系统的检测能力和效果。 数据分析技术分为:误用检测和异常检测。误用检测搜索审计事件数据,查看是否存在预先定义的误用模式,典型的有特征模式匹配技术、协议分析技术和状态协议分析技术等;异常检测提取正常模式审计数据的数学特征,检查事件数据是否存在与之相违背的异常模式,典型的有统计分析技术、数据重组技术、行为分析技术。此外还提出了一些新技术,如免疫系统、基因算法、数据挖掘等。

3 Snort 网络入侵检测系统

3.1 Snort工作原理

Snort是一个功能强大的网络入侵检测系统,其最大的优势是开放源代码。它利用Libpcap网络数据包中捕获并分析函数包,监听有无可疑的网络活动;其数据分析技术采用基于误用检测技术,对数据进行最直接的搜索匹配。Snort的工作模式包括:数据包嗅探器、数据包记录器、网络入侵检测系统。

3.2 Snort系统的体系结构

⑴Sniffer。Sniffer数据包嗅探器的功能是捕获网络数据包并解析数据。Snort利用Libpcap库函数捕获数据,Libpcap能够从链路层直接获取接口函数提供给应用程序,并且能通过设置数据包的过滤器指定所需捕获的数据。网络数据采集和解析机制是整个NIDS实现的基础,其中关键的是要保证系统高速运行和较低的丢包率,这对软件的效率和硬件的处理能力都有关系。

⑵预处理器。预处理程序可以很容易扩展Snort的功能,用户和程序员能够将模块化的插件方便地融入Snort之中。预处理程序代码在探测引擎被调用之前运行,但在数据包译码之后。通过这个机制,数据包可以通过额外的方法被修改或分析。

⑶检测引擎。Snort的核心部分就是检测引擎,预处理器传送捕获的数据包后Snort根据规则库对它们进行匹配检测。匹配性能的好坏取决于准确性和速度。网络入侵检测系统属于被动防御,不能主动发送数据包探测,准确性主要是提取入侵特征码的精确性和编写规则的简洁性,只有将特征码归结为不同字段的特征值,再检测特征值对入侵行为进行判断。快速性表示检测引擎的组织结构进行规则匹配的速度,Snort用链表的形式组织规则。要求Snort的规则链表要进行分类和组织结构优化。

⑷日志和报警。Snort对被检测包有alert、log和pass三种处理方式,这些方式具体的完成在日志和报警子系统中,以命令行交互的方式选择。日志子系统将嗅探器收集到的数据包解码后以文本格式或tcpdump格式记录。报警子系统将报警信息写入指定的文件或数据库中。

3.3 Snort总体流程

Snort的入侵检测流程首先是规则的解析流程,主要包括读取规则和组织规则;然后是使用规则进行规则匹配的流程。

⑴规则解析流程。解析流程的具体过程为:①Snort读取规则文件;②依次读取每条规则;③解析规则语法,用相应的规则语法表示;④在内存中组织规则,建立规则语法树。规则文件读取ParseRulesFile()函数检查规则文件、读取规则和整理多行规则。ParseRulesFile()只是接口函数,而具体的规则解析任务主要由ParseRule()函数实现。ParseRule()函数解析每条规则,调用不同的函数并加入到规则链表。endprint

ParseRule()函数调用RuleType()提取规则类型。分别调用proeessHeadNode()函数处理规则头和proeessRuleoption()函数处理规则选项。如果提取规则的类型为PreProcess、output、config、var等则分别调用相应的函数对其处理,完成后跳出本条规则解析,然后继续解析下一条。

⑵规则匹配流程。Snort按照顺序遍历activation、dynamic、alert、pass、log的规则子树。接着根据报文的IP地址和端口号,在规则头链表中找到对应的规则头。最后,将这条数据报文匹配规则头附带的规则选项组织为链表。首先匹配第一个规则选项,若匹配则按照定义的规则行为做出处理结果。若不匹配,选择下一个规则选项匹配。若所有规则都不匹配,则说明报文不包含入侵行为特征。

4 检测系统实验

本文的实验平台主要有:Microsoft virtual pc虚拟机、windows server 2003镜像文件、Windows 版本的Snort 安装包、基于PHP的入侵检测数据库分析控制台等。

4.1 实验过程:Snort的使用

(1)嗅探器:Snort从网络上读出数据包然后在控制台上显示。

①只需要打印TCP/IP包头信息显示在屏幕上,输入命令行:./snort–V

②要在硬盘上记录全部的包,指定一个日志目录,自动记录数据包,输入:./snort -dev -l ./log

(2)网络入侵检测系统:命令行模式:./snort -dev -l ./log -h ***.***.***.***/** -c snort.conf

(3)网络入侵检测模式下的输出选项

ASCII格式是Snort默认的记录日志格式,使用full报警机制,snort会在打印包头信息后再打印报警消息。使用-s可以将报警消息发送到syslog。Snort还有另一种SMB报警机制,通过SAMBA发送到Windows主机,在运行./configure脚本时,必须使用—enable-smbalerts。

4.2 Snort与控制台,数据库的使用检测

(1)设置监测包含的规则。

找到snort.conf文件中描述规则的部分

(2)运行C:\duoaduo\Snort\bin中的snort.exe,不关闭窗口,浏览网页

(3)打开acid检测控制台主界面

点击右侧图示中TCP后的数字“1%”,将显示所有检测到的TCP协议日志详细情况

5 总结

论文首先介绍网络入侵检测的概况,然后进行了Snort检测系统研究,包括其工作原理、体系结构和入侵检测流程等,还进行了检测系统实验,介绍实验平台、实验的具体过程,来展现snort的工作过程,最后显示实验数据和日志情况。

[参考文献]

[1]高平利,任金昌.基于Snort入侵检测系统的分析与实现[J].计算机应用与软件,2006,23(8):134-135.

[2]王冬霞,张玉辉.基于Snort入侵检测系统的研究与设计[J].科技广场, 2012(9):117-119.

[3]董忠.基于Snort系统的网络入侵检测模型的研究[J].计量技术, 2012(002):14-16.

[4]易著梁.基于网络入侵检测系统的改进BM模式匹配算法研究[J].计算机应用与软件,2012,11:052.endprint

ParseRule()函数调用RuleType()提取规则类型。分别调用proeessHeadNode()函数处理规则头和proeessRuleoption()函数处理规则选项。如果提取规则的类型为PreProcess、output、config、var等则分别调用相应的函数对其处理,完成后跳出本条规则解析,然后继续解析下一条。

⑵规则匹配流程。Snort按照顺序遍历activation、dynamic、alert、pass、log的规则子树。接着根据报文的IP地址和端口号,在规则头链表中找到对应的规则头。最后,将这条数据报文匹配规则头附带的规则选项组织为链表。首先匹配第一个规则选项,若匹配则按照定义的规则行为做出处理结果。若不匹配,选择下一个规则选项匹配。若所有规则都不匹配,则说明报文不包含入侵行为特征。

4 检测系统实验

本文的实验平台主要有:Microsoft virtual pc虚拟机、windows server 2003镜像文件、Windows 版本的Snort 安装包、基于PHP的入侵检测数据库分析控制台等。

4.1 实验过程:Snort的使用

(1)嗅探器:Snort从网络上读出数据包然后在控制台上显示。

①只需要打印TCP/IP包头信息显示在屏幕上,输入命令行:./snort–V

②要在硬盘上记录全部的包,指定一个日志目录,自动记录数据包,输入:./snort -dev -l ./log

(2)网络入侵检测系统:命令行模式:./snort -dev -l ./log -h ***.***.***.***/** -c snort.conf

(3)网络入侵检测模式下的输出选项

ASCII格式是Snort默认的记录日志格式,使用full报警机制,snort会在打印包头信息后再打印报警消息。使用-s可以将报警消息发送到syslog。Snort还有另一种SMB报警机制,通过SAMBA发送到Windows主机,在运行./configure脚本时,必须使用—enable-smbalerts。

4.2 Snort与控制台,数据库的使用检测

(1)设置监测包含的规则。

找到snort.conf文件中描述规则的部分

(2)运行C:\duoaduo\Snort\bin中的snort.exe,不关闭窗口,浏览网页

(3)打开acid检测控制台主界面

点击右侧图示中TCP后的数字“1%”,将显示所有检测到的TCP协议日志详细情况

5 总结

论文首先介绍网络入侵检测的概况,然后进行了Snort检测系统研究,包括其工作原理、体系结构和入侵检测流程等,还进行了检测系统实验,介绍实验平台、实验的具体过程,来展现snort的工作过程,最后显示实验数据和日志情况。

[参考文献]

[1]高平利,任金昌.基于Snort入侵检测系统的分析与实现[J].计算机应用与软件,2006,23(8):134-135.

[2]王冬霞,张玉辉.基于Snort入侵检测系统的研究与设计[J].科技广场, 2012(9):117-119.

[3]董忠.基于Snort系统的网络入侵检测模型的研究[J].计量技术, 2012(002):14-16.

[4]易著梁.基于网络入侵检测系统的改进BM模式匹配算法研究[J].计算机应用与软件,2012,11:052.endprint

ParseRule()函数调用RuleType()提取规则类型。分别调用proeessHeadNode()函数处理规则头和proeessRuleoption()函数处理规则选项。如果提取规则的类型为PreProcess、output、config、var等则分别调用相应的函数对其处理,完成后跳出本条规则解析,然后继续解析下一条。

⑵规则匹配流程。Snort按照顺序遍历activation、dynamic、alert、pass、log的规则子树。接着根据报文的IP地址和端口号,在规则头链表中找到对应的规则头。最后,将这条数据报文匹配规则头附带的规则选项组织为链表。首先匹配第一个规则选项,若匹配则按照定义的规则行为做出处理结果。若不匹配,选择下一个规则选项匹配。若所有规则都不匹配,则说明报文不包含入侵行为特征。

4 检测系统实验

本文的实验平台主要有:Microsoft virtual pc虚拟机、windows server 2003镜像文件、Windows 版本的Snort 安装包、基于PHP的入侵检测数据库分析控制台等。

4.1 实验过程:Snort的使用

(1)嗅探器:Snort从网络上读出数据包然后在控制台上显示。

①只需要打印TCP/IP包头信息显示在屏幕上,输入命令行:./snort–V

②要在硬盘上记录全部的包,指定一个日志目录,自动记录数据包,输入:./snort -dev -l ./log

(2)网络入侵检测系统:命令行模式:./snort -dev -l ./log -h ***.***.***.***/** -c snort.conf

(3)网络入侵检测模式下的输出选项

ASCII格式是Snort默认的记录日志格式,使用full报警机制,snort会在打印包头信息后再打印报警消息。使用-s可以将报警消息发送到syslog。Snort还有另一种SMB报警机制,通过SAMBA发送到Windows主机,在运行./configure脚本时,必须使用—enable-smbalerts。

4.2 Snort与控制台,数据库的使用检测

(1)设置监测包含的规则。

找到snort.conf文件中描述规则的部分

(2)运行C:\duoaduo\Snort\bin中的snort.exe,不关闭窗口,浏览网页

(3)打开acid检测控制台主界面

点击右侧图示中TCP后的数字“1%”,将显示所有检测到的TCP协议日志详细情况

5 总结

论文首先介绍网络入侵检测的概况,然后进行了Snort检测系统研究,包括其工作原理、体系结构和入侵检测流程等,还进行了检测系统实验,介绍实验平台、实验的具体过程,来展现snort的工作过程,最后显示实验数据和日志情况。

[参考文献]

[1]高平利,任金昌.基于Snort入侵检测系统的分析与实现[J].计算机应用与软件,2006,23(8):134-135.

[2]王冬霞,张玉辉.基于Snort入侵检测系统的研究与设计[J].科技广场, 2012(9):117-119.

[3]董忠.基于Snort系统的网络入侵检测模型的研究[J].计量技术, 2012(002):14-16.

[4]易著梁.基于网络入侵检测系统的改进BM模式匹配算法研究[J].计算机应用与软件,2012,11:052.endprint

猜你喜欢
入侵检测
多Agent的创新网络入侵检测方法仿真研究
基于入侵检测的数据流挖掘和识别技术应用
艺术类院校高效存储系统的设计
基于关联规则的计算机入侵检测方法
无线传感器网络发展历史及安全需求及技术挑战
无线传感器网络入侵检测系统综述
人工神经网络的改进及其在入侵检测中的应用
基于Φ—OTDR的分布式入侵检测系统的应用综述
一种基于数据融合的新的入侵检测框架