snort分析评估.pdf
《snort分析评估.pdf》由会员分享,可在线阅读,更多相关《snort分析评估.pdf(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、介SNORT原理简介与优化及GNORT初探GNORT初探刘斐然主要内容主要内容 Snort原理是什么?Snort在实际应用中的缺陷有哪些?Snort在实际应用中的缺陷有哪些?如何对Snort进行优化?如何对进行优化 Gnort初探。入侵检测系统的基本结构入侵检测系统的基本结构入侵检测系统的基本结构入侵检测系统的基本结构入侵检测系统通常包括功能入侵检测系统通常包括三功能部件:信息收集其来源如下 信息收集,其来源如下:系统或网络的日志文件 网络流量网络流量 系统目录或文件的异常变化 程序执行中的异常行为信息分析 信息分析 模式匹配 统计分析统计分析 完整性分析 结果处理 对异常进行记录/报警等入侵
2、检测系统分类入侵检测系统分类入侵检测系统分类入侵检测系统分类St 基于特征检测的基于特征检测的NIDSSnort-基于特征检测的基于特征检测的NIDS在1998年,Martin Roesch先生用C语言开发了开放源代码(Open Source)的入侵检测系统Snort.直至今天,Snort已发展成为一个多平台(Multi-Platform),实时(Real-Time)流量分析,网络IP数据包记录等特性的强大的网络入侵检测/防御系统(Network Intrusion Detection/Prevention System)即NIDS/NIPSDetection/Prevention Syste
3、m),即NIDS/NIPS.Snort有三种工作模式:嗅探器数据包记录器网络入侵检测系Snort有三种工作模式:嗅探器、数据包记录器、网络入侵检测系统。嗅探器模式仅仅是从网络上读取数据包并作为连续不断的流显示在终端上。数据包记录器模式把数据包记录到硬盘上。网路入侵检测模式是最复杂的,而且是可配置的。我们可以让snort分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作络数据流以匹配用户定义的些规则,并根据检测结果采取定的动作。St的结构组成的结构组成Snort的结构组成的结构组成Sn rt主要包含以下模块Snort主要包含以下模块:数据包捕获模块:数据包捕获模块:通过DAQ调
4、用底层函数库,捕获来自网络的数据包解码模块输出数据包规则匹配数据包规则匹配解码模块 对捕获的数据包进行协议解码预处理模块SnortSnort数据包规则匹配数据包规则匹配数据包预处理数据包预处理 以插件形式存在,对IP分片进行重组,防止ARP欺骗等等规则匹配模块数据包解码数据包解码DAQDAQ(DAi i ilibDAi i ilib)规则匹配模块 根据设置的规则对数据包进行匹配输出模块DAQDAQ(D Data ata A Acqucqui is si it ti ion on liblibraryrary)PCAPPFPACKETNFQIPFWPCAPPFPACKETNFQIPFW输出模块
5、以插件形式存在,当匹配成功时进行记录或报警St原理分析原理分析 数据包解码数据包解码Snort原理分析原理分析-数据包解码数据包解码在Snort内部用Packet数据结构表示一个数据包数据包解码模据包。数据包解码模块负责根据捕获到的数据包初始化Packet数据结构。(该结构定义在decode.h中)数据包解码函数均定义在decode.c中,由i d指针指向其入grinder指针指向其入口函数。解码流程如右图所示。最后生成完整的Packet结构。St原理分析原理分析 数据包预处理简介数据包预处理简介Snort原理分析原理分析-数据包预处理简介数据包预处理简介解码后的数据包还需经过预处理才能被主探
6、测引擎进行规则匹配。预处理器的主要用来应对一些IDS攻击手段。其作用包括:针对可以行为检查包或修改包,以便探测引擎能对其正确解释。负责对流量标准化以便探测引擎能精确匹配特征 负责对流量标准化,以便探测引擎能精确匹配特征。目前已知的IDS逃避技术主要有:目前已知的IDS逃避技术主要有:多态URL编码;多态shellcode;会话分割;IP碎片;St原理分析原理分析 预处理器简介预处理器简介Snort原理分析原理分析-预处理器简介预处理器简介St主要包含以下预处理器Snort主要包含以下预处理器:包重组预处理器:Frag3:IP分片重组和攻击监测。维持流状态进行会话重组 Stream5:维持TCP
7、流状态,进行会话重组。协议规范化预处理器:HttpInspect:规范HTTP流,如将Unicode或hex翻译成snort可以识别的字符集字符集。RpcDecode:规范RPC调用。异常检测预处理器:ARPf检测ARP欺骗 ARPspoof:检测ARP欺骗。SfPortscan:检测端口扫描。在St中捕获的数据包要经过所有已经打开的预处理器预处理在Snort中,捕获的数据包要经过所有已经打开的预处理器。预处理器是由插件来实现的,这样的好处为:可以根据实际环境启动或停止一个预处理插件,提高Snort效率。可以灵活添加自己编写的预处理插件预防新型的IDS逃避手段(如何编可以灵活添加自己编写的预处
8、理插件,预防新型的IDS逃避手段。(如何编写预处理插件在源码doc/README.PLUGINS中有初步介绍)St原理分析原理分析 预处理器初始化预处理器初始化Snort原理分析原理分析-预处理器初始化预处理器初始化St预处理器初始化流程如下Snort预处理器初始化流程如下:首先调用RegisterPreprocessors函数将所有预处理插件注首先调用RegisterPreprocessors函数,将所有预处理插件注册进全局preproc_config_funcs链表中,内容包括:关键字及相关预处理插件的初始化函数等。调用CfiP函数根据配置文件和命令行调用ConfigurePreproce
9、ssors函数,根据配置文件和命令行参数遍历preproc_config_funcs链表,比对关键字。如相同则运行预处理插件的初始化函数。预处理插件的初始化函数通过调用AddFT PLi将预处理插件的初始化函数通过调用AddFuncToPreprocList将其实际的预处理函数添加到preproc_eval_funcs链表中,插入时会根据预处理插件的priority进行排序。当程序捕获到数据包时,首先通过grinder指向的函数进行解码。然后执调用preproc_eval_funcs链中的预处理程序进行预处理预处理。St原理分析原理分析 规则简介规则简介Snort原理分析原理分析-规则简介规则
10、简介规则分为和格式为Snort规则分为Rules Headers和Rules Options,格式为:rule headers(rule options)规则头(Rules Headers)包含结果处理模式协议来源与目地的IP地址来源与目地的端口等 包含结果处理模式,协议,来源与目地的IP地址,来源与目地的端口等。规则选项(Rules Options)规则选项(p)包含匹配内容,匹配位置,报警信息,引用说明等等。例:alert tcp$EXTERNAL_NET any-$HTTP_SERVERS$HTTP_PORTS(msg:WEB-PHP Opt-X header.php remote fi
11、le include attempt;flow:to server established;content:/header php;include attempt;flow:to_server,established;content:/header.php;nocase;http_uri;content:systempath=;.)St原理分析原理分析 规则表现形式规则表现形式Snort原理分析原理分析-规则表现形式规则表现形式在中规则头由结构表示规则选项由在Snort中,规则头由RuleTreeNode(RTN)结构表示,规则选项由OptTreeNode(OTN)表示。RTN结构中主要包括:
12、IpAddrSet*sip,*dip:源IP地址,目的IP地址。IpAddrSet sip,dip:源IP地址,目的IP地址。PortObject*src_portobject,*dst_portobject:源端口,目的端口。OptTreeNode*down:指向相关的OTN。R l F Li t*lf规则匹配函数RuleFpList*rule_func:规则匹配函数。OTN结构中主要包括:OptFpList*opt_func:规则匹配函数。void*ds_listPLUGIN_MAX:插件需要的数据结构指针。RuleTreeNode*proto nodes指向其关联的RTNRuleTree
13、Node proto_nodes:指向其关联的RTN。St原理分析原理分析 RTN初始化初始化Snort原理分析原理分析-RTN初始化初始化及均由负责初始化RTN及OTN均由ParseRule负责初始化。首先读入行规则传给PR l 函数进行分析PR l 函数首先读入一行规则,传给ParseRule函数进行分析。ParseRule函数会将规则头取出并进行拆分,然后执行如下函数对RTN进行初始化:ProcessIP函数:将源IP地址,目的IP地址写入RTN的*sip,*dip中。ProcessIP函数:将源IP地址,目的IP地址写入RTN的 sip,dip中。ParsePortList函数:将源端
14、口,目的端口写入RTN的*src_portobject,*dst_portobject中。ProcessHeadNode函数:调用SetupRTNFuncList函数,将具体的规则匹配函数插ProcessHeadNode函数:调用SetupRTNFuncList函数,将具体的规则匹配函数插入rule_func链表中,其函数根据标志位不同可选用如下几个:CheckSrcPortNotEq/CheckSrcPortEq/CheckDstPortNotEq/CheckDstPortEqualCheckSrcIP/CheckDstIPRuleListEnd:rule_func的链结尾函数匹配RTN时会
15、依次执行rule func链表中的函数进行匹配,如匹配不成匹配RTN时会依次执行rule_func链表中的函数进行匹配,如匹配不成功则返回0。最终如果执行到RuleListEnd函数则表明匹配成功。St原理分析原理分析 OTN初始化初始化Snort原理分析原理分析-OTN初始化初始化与检测不同系统检测时会用到规则检测插件(例如针对与检测RTN不同,系统检测OTN时会用到规则检测插件(例如针对TCP flags的匹配的检测是由TCPFlagCheck插件中的CheckTcpFlags函数来完成的),所以先介绍一下规则检测插件的初始化:函数来完成的),所以先介绍下规则检测插件的初始化:通过调用Re
16、gisterRuleOptions函数,将所有的规则检测插件添加到rule_opt_config_funcs链表中,包括关键字与具体的检测初始化函数。OTN初始化是由ParseRuleOptions函数完成的。其执行如下操作:调用addRtnToOtn将关联的RTN指针添加到OTN的proto nodes中 调用addRtnToOtn,将关联的RTN指针添加到OTN的proto_nodes中遍历rule_opt_config_funcs规则链,进行关键字匹配,如匹配成功则执行其对应的检测初始化函数检初 检测初始化函数负责将需要的数据指针添加到OTN的ds_list中,并将检测函数插入OTN的o
17、pt_func链表中最后将OptListEnd插入到opt_func链的末尾St原理分析原理分析 快速规则匹配初始化快速规则匹配初始化Snort原理分析原理分析-快速规则匹配初始化快速规则匹配初始化fpCreateFastPacketDetection:构建快速规则匹配结构:结构:第一层是由四个PORT_RULE_MAP构成,分别对应TCP,UDP,ICMP及别对其他IP协议。第二层由PORT_GROUP结构构成,分别对应源端口、目的端口及通用端口三种目的端口及通用端口三种 第三层由RULE_NODE结构构成,分别对应以下三类规则规则:uri-content:URI中的包含规则;Content
18、:内容包含规则;Content:内容包含规则;non-content:非content规则。St原理分析原理分析 规则匹配流程规则匹配流程Snort原理分析原理分析-规则匹配流程规则匹配流程调用Detect(Packet*p)对数据包进行规则检测,首先判断是TCP,UDP或者ICMP协议,然后调用相关函数:fpEvalHeaderTcp,fpEvalHeaderUdp,fpE alHeaderIcmp进行处理如均不是则调用fpE alHeaderIp进行处理fpEvalHeaderIcmp进行处理。如均不是则调用fpEvalHeaderIp进行处理。fpEvalHeaderXXX的处理过程为首
19、先通过对应协议的PORT_RULE_MAP,根据源端口与目的端口号找到相关的PORT GROUP端口与目的端口号,找到相关的PORT_GROUP。执行fpEvalHeaderSW(),通过规则类型从PORT_GROUP中找到RULE_NODE,然后对相应规则进行匹配具体如下对相应规则进行匹配。具体如下:对于url-content或content,执行多模式匹配函数mpseSearch()进行匹配;对于非content规则,则逐一运行OTN中opt_func链中的所有规则匹配函数。如均执行成功,则继续运行其指向RTN中的rule func链中的匹配函数。执行成功,则继续运行其指向RTN中的rul
20、e_func链中的匹配函数。如均匹配成功,则最后会调用输出插件进行输出。St目前存在的问题目前存在的问题Snort目前存在的问题目前存在的问题 snort是一款轻量级的网络入侵检测系统。如果将其应用在大规模、大流量的网络中,snort的报警性能会非用在大规模、大流量的网络中,的报警性能会非常低下。可见snort以下两方面的效率还无法满足我们的需求:数据包捕获效率数据包捕获效率数据数据包包分析处分析处理理效率效率数据分析处效率数据分析处效率 改进思路为:改进思路为:首先需保证snort可以捕获到网络中的所有数据包。然后需要保证这些数据包可以及时得到处理。然后需要保证这些数据包可以及时得到处理。高
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- snort 分析 评估
限制150内