SNORT原理探讨.pdf

SNORT原理探讨.pdf

ID:48025464

大小:657.22 KB

页数:35页

时间:2020-01-30

SNORT原理探讨.pdf_第1页
SNORT原理探讨.pdf_第2页
SNORT原理探讨.pdf_第3页
SNORT原理探讨.pdf_第4页
SNORT原理探讨.pdf_第5页
资源描述:

《SNORT原理探讨.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、SNORT原理简介与优化及GNORT初探刘斐然主要内容•Snort原理是什么?•Snort在实际应用中的缺陷有哪些?•如何对Snort进行优化?•Gnort初探。入侵检测系统的基本结构入侵检测系统通常包括三功能部件:•信息收集,其来源如下:–系统或网络的日志文件–网络流量–系统目录或文件的异常变化–程序执行中的异常行为•信息分析–模式匹配–统计分析–完整性分析•结果处理–对异常进行记录/报警等入侵检测系统分类StSnort--基于特征检测的NIDS•在1998年,MartinRoesch先生用C语言开发了开放源代码(OpenSour

2、ce)的入侵检测系统Snort.直至今天,Snort已发展成为一个多平台(Multi-Platform),实时(Real-Time)流量分析,网络IP数据包记录等特性的强大的网络入侵检测/防御系统(NetworkIntrusionDetection/PreventionSystem)Detection/PreventionSystem),即NIDS/NIPS.•Snort有三种工作模式:嗅探器、数据包记录器、网络入侵检测系统。–嗅探器模式仅仅是从网络上读取数据包并作为连续不断的流显示在终端上。–数据包记录器模式把数据包记录到硬盘上。

3、–网路入侵检测模式是最复杂的,而且是可配置的。我们可以让snort分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作。StSnort的结构组成SnrtSnort主要包含以下模块:•数据包捕获模块:–通过DAQ调用底层函数库,捕获来输出自网络的数据包•解码模块数据包规则匹配–对捕获的数据包进行协议解码Snort•预处理模块数据包预处理–以插件形式存在,对IP分片进行重组,防止ARP欺骗等等数据包解码•规则匹配模块DAQ(DataAcquiiiisitionlibrary)–根据设置的规则对数据包进行匹配PCAPPFP

4、ACKETNFQIPFW•输出模块–以插件形式存在,当匹配成功时进行记录或报警StSnort原理分析--数据包解码•在Snort内部用Packet数据结构表示一个数据包。数据包解码模块负责根据捕获到的数据包初始化Packet数据结构。(该结构定义在decode.h中)•数据包解码函数均定义在decode.c中,由gridinder指针指向其入口函数。解码流程如右图所示。最后生成完整的Packet结构。StSnort原理分析--数据包预处理简介•解码后的数据包还需经过预处理才能被主探测引擎进行规则匹配。预处理器的主要用来应对一些IDS

5、攻击手段。其作用包括:–针对可以行为检查包或修改包,以便探测引擎能对其正确解释。–负责对流量标准化,以便探测引擎能精确匹配特征。•目前已知的IDS逃避技术主要有:–多态URL编码;–多态shellcode;–会话分割;–IP碎片;StSnort原理分析--预处理器简介StSnort主要包含以下预处理器:•包重组预处理器:–Frag3:IP分片重组和攻击监测。–Stream5:维持TCP流状态,进行会话重组。•协议规范化预处理器:–HttpInspect:规范HTTP流,如将Unicode或hex翻译成snort可以识别的字符集。–R

6、pcDecode:规范RPC调用。•异常检测预处理器:–ARPspoof:检测ARP欺骗。–SfPortscan:检测端口扫描。•在StSnort中,捕获的数据包要经过所有已经打开的预处理器。预处理器是由插件来实现的,这样的好处为:–可以根据实际环境启动或停止一个预处理插件,提高Snort效率。–可以灵活添加自己编写的预处理插件,预防新型的IDS逃避手段。(如何编写预处理插件在源码doc/README.PLUGINS中有初步介绍)StSnort原理分析--预处理器初始化StSnort预处理器初始化流程如下:•首先调用Register

7、Preprocessors函数,将所有预处理插件注册进全局preproc_config_funcs链表中,内容包括:关键字及相关预处理插件的初始化函数等。•调用CfConfiigurePPreprocessors函数,根据配置文件和命令行参数遍历preproc_config_funcs链表,比对关键字。如相同则运行预处理插件的初始化函数。•预处理插件的初始化函数通过调用AddFuncTTPoPreprocList将其实际的预处理函数添加到preproc_eval_funcs链表中,插入时会根据预处理插件的priority进行排序。•

8、当程序捕获到数据包时,首先通过grinder指向的函数进行解码。然后执调用preproc_eval_funcs链中的预处理程序进行预处理。StSnort原理分析--规则简介•Snort规则分为RulesHeaders和RulesOpt

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。