Snort体系结构的研究与分析

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:teachme
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:剖析了开源入侵检测工具Snort的体系结构及其工作配置模式,为中小型网络配置入侵检测系统提供了可行的解决方案。
  关键词:入侵检测系统;通用入侵检测框架;Snort
  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)18-31585-02
  Research and Analysis the System Framework of Snort
  YU Kun, WU Xiao-jin
  (Network Center, Jingchu University of Technology, Jingmen 448000, China)
  Abstract:the System framework and work configuration model of free Intrusion Detection tools: Snort is Researched and analyzed, offer a practicable solve way for Intrusion Detection System configuration in both middle and small networks.
  Key words:IDS; CIDF; Snort
  
  1 引言
  
  随着网络攻击的日趋复杂化,单纯依靠防火墙已经不能满足网络安全的需要。防火墙只能配置在网络边界上,对于来自网络内部的大量攻击无能为力,而事实上有80%的经济损失都来自于内部的攻击。这种背景下,入侵检测系统(Intrusion Detection System,IDS)应运而生。
  入侵检测是指对计算机和网络资源上的恶意使用行为进行识别和相应处理的过程。它不仅可以检测来自外部的入侵行为,同时也可以监控内部用户的非授权行为。IDS是一个动态的防御系统,它可以识别防火墙不能识别的攻击。
  IDS技术经过这些年的发展已经出现了不少商业IDS产品,但这些产品大多比较昂贵,无法满足更大层面上的用户需要。而本文所介绍的Snort是一个开放源码的IDS,且高效稳定,在全世界范围内被广泛安装和使用(据统计已超过100000例)。
  
  2 CIDF模型
  
  CIDF(Common Intrusion Detection Framework)模型是1999年美国国防高级研究项目局(DARPA)提出的通用入侵检测框架模型。该模型旨在提高 IDS 产品、组件及其他安全产品之间的互操作性。如图1所示是CIDF的体系结构。
  图1 CIDF体系结构
  CIDF将一个入侵检测系统分为事件产生器、事件分析器、响应单元和事件数据库四个组件。CIDF将IDS需要分析的数据统称为事件(Event),它可以是基于网络的入侵检测系统从网络中提取的数据包,也可以是基于主机的入侵检测系统从系统日志等其他途径得到的数据信息。CIDF 组件之间是以通用入侵检测对象(GIDO)的形式交换数据的。
  事件产生器的任务是从入侵检测系统之外的计算环境中收集事件,并将这些事件转换成CIDF的GIDO格式传送给其他组件。事件分析器负责分析从其他组件收到的GIDO,并将产生的分析结果传送给其他组件。事件数据库用来存储GIDO,以备系统需要的时候使用。响应单元负责处理接收到的GIDO,并据此采取相应的措施。
  
  3 Snort体系结构
  
  Snort是一个典型的遵循CIDF模型的入侵检测系统。如图2所示是Snort的体系结构。
  图2 Snort体系结构
  (1)Sniffer即嗅探器,这是Snort最初的开发目的。Snort没有自己的捕包工具,它使用一个外部的捕包程序库Libpcap从物理链路上进行捕包。Libpcap可以运行在任何一种流行的硬件和操作系统的组合中,这使得Snort成为一个真正的与平台无关的应用程序。
  Snort按照TCP/IP协议的不同层次对收集来的包进行解码,解码后的包数据将堆满一个数据结构。包数据一被存入数据结构中,就会迅速被送到预处理程序和检测引擎进行分析。
  (2)预处理器是以可插入模块的形式存在于Sniffer和检测引擎之间。这种插件机制使程序具有很强的扩展性,模块性强,程序易读。
  Snort的预处理可以分为两类。一类预处理对发现非基于特征的攻击是不可缺少的;另一类预处理负责对流量标准化以便检测引擎能准确匹配特征。预处理的参数可以通过Snort.conf配置文件调整,还可以根据需要添加或删除预处理程序。
  (3)检测引擎,是Snort的核心部件,主要功能是规则分析和特征检测。当数据包从预处理器送过来后,检测引擎依据预先设置的规则检查数据包,一旦发现数据包中的内容和某条规则相匹配,就通知报警模块。如图3所示描述了检测引擎的工作流程。
  启动的时候,Snort根据具体的用户需求读取相应的规则文件,并且建立一个三维的链表。当进行规则的匹配时,在链表的两个方向同时进行,检测引擎只检测那些一开始在规则解析器中设置好了的规则选项。当检测引擎检测到第一个与被解码的包相匹配的规则时,检测引擎触发相应的动作并返回。
  Snort的规则在逻辑上分为两部分:规则头((Rule Header)和规则选项((Rule Option)。 规则头中包含的是所有规则所共有的一些属性,规则选项则是包含修改检测的一些选项。例如,在已经给出的snort库文件中45条CGI-BIN探测检测规则,它们有共同的目的IP地址和端口。为了加快检测进程,这些共同的资源将被放在同一个规则头中,而它们各自独立的检测信号则保存在规则选项结构中。
  下面是一个简单的规则:
  Alert tcp any any -> 10.1.1.0/24 80(content: "/cgi-bin/phf";msg:"PHF probe!";)
  在这个规则中,括号左面为规则头,括号中间的部分为规则选项,规则选项中冒号前的部分为选项关键字(Option Keyword)。
  规则头由规则行为、协议字段、地址和端口信息3部分组成。
  Snort定义了五种可选的行为:alert,log,pass,activate,dynamic。其语义如下:
  alert:使用设定的警告方法生成警告信息,并记录这个报文。
  log:使用设定的记录方法一记录这个报文。
  pass:忽略这个报文。
  activate:进行alert,然后激活另一个dynamic规则。
  dynamic:等待被一个activate规则激活,然后进行logo。
  协议字段,当前Snort支持IP,TCP,UDP和ICMP将来可能会支持更多的协议。
  地址和端口信息,格式为:IP/CIDR Port,其中CIDR块表示网络掩码。
  规则选项由选项关键字组成,中间用冒号分隔。常用的选项关键字有:msg,打印一条警告信息到警告或日志中;content,在报文负载中搜索某个模式,这个字段是Snort的一个重要特征,进行比较的数据可以包含二进制数据;offset,调整content选项,设置模式匹配开始的偏移量;depth,调整content选项,设置模式匹配的最大搜索长度;nocase,进行内容匹配时,字符串的大小写不敏感。
  (4)日志/报警。检测引擎检查后的Snort数据需要以某种方式输出。snort对每个被检测的数据包都定义了如h的三种处理方式:alert(发送报警信息),log(记录该数据包)和pass(忽略该数据句)。这其实是具体定义在检测规则中的。其具体的完成是在日志/报警子系统中完成的,日志子系统允许你将包解码收集到的信息以可读的格式或以tcpdump格式记录卜来。报警子系统使其将报警信息发送到syslog,用户指定的文件、Unix套接字或数据库中。
  
  4 配置Snort工作模式
  
  Snort可以在支持libpcap运行的任何系统上运行,对于大量的数据不可能全部存储在Snort运行的机器上,这样将会导致处理上的瓶颈问题。配置Snort最典型的是采用分布式三层体系,如图4所示。
  第一层传感器层,对经过的流量进行监控以发现入侵。将Snort应用程序运行在传感器上,负责对抓来的包进行解释并传递警报。考虑到安全原因,运行Snort的主机只能有支撑Snort的应用程序。对于主机传感器,应尽量减少打开的服务和与网络联系的应用程序并时时打安全补丁以全面提高安全级别。另外,在操作系统方面,支撑网络传感器的平台尽量都是Linux,一方面安全性能够较好的得到保证,另外一方面对Snort的支持力度也会更好。
  图4 snort分布式体系
  传感器上有两块网卡:一块用作嗅探抓包接口,一块用作管理接口。这种思想就是让捕获的包都从一个接口进入,所有的警报都从另一个接口送出。用作抓包的网卡需要设成混杂模式来接收所有包,同时不给该网卡设置IP地址,这样做一方面可以让网卡获得网络公共区域的信息,另外也可加强安全,因为如果攻击者查明了传感器的IP地址,他就能像对网络中的其他主机一样攻击传感器。另一块网卡用作管理接口,连接到一个与抓包接口分开的网段。因为要与第二层通信,报警信息通过这个接口传给第二层。对传感器的全部操作都要通过管理网卡进行。在这种设计中,管理网络应该用防火墙和外部世界隔开。
  第二层是服务器层,它从传感器收集报警数据并且将其转换成用户可读的形式。报警数据将被导入一个关系数据库。Snort并不需要关系数据库,它可以用其他方法记录警报,比如系统日志syslog。利用关系数据库对数量相当大的报警数据进行组织管理是最实用的办法。报警存入数据库能进行复杂的查询,以便可以更好地管理报警信息。这样也可以用其他应用程序可以用各种格式来记录警报,便于操作的GUI用户图形界面方式显示数据。Snort支持许多不同的数据库,比如Oracle,Postgreql和MySQL。
  服务器保存大量敏感和机密信息,所以要优先保护。应该遵循尽可能分配最少的特权和安装最少的必要服务的原则。
  第三层是分析控制台层,数据在这一层显示。控制台的唯一要求就是一台专用的机器,该机器需要安装支持SSL的网页浏览器。
  
  5 结束语
  
  Snort可实现一个轻量级网络入侵检测系统的所有要求。它小巧灵活,能力强,在一些不需要花费高额费用来组建一个完整的商业系统的地方,它完全可以取代商业入侵检测系统,尤其适合于校园网这样非赢利性质的系统。
  
  参考文献:
  [1] Jack Koziol. 吴溥峰,孙默,许诚,译. Snort入侵检测实用解决方案[M]. 北京:机械工业出版社,2005.
  [2] BrianCaswell,JayBeale,JamesCF.宋劲松 译. 2.0入侵检测[M].北京:国防工业出版社,2004.
  [3]snort_install_guide.http//www.snort.org[EB/OL].
  注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
其他文献
摘要:简要介绍了瑞典ANOTO公司推出的专用ARM图像处理器ARGUS Ⅲ的特点,为使其在更多领域发挥其视频应用上的优势,在其开发板上构建了嵌入式Linux平台,详细论述了Linux系统在专用ARM处理器上的移植过程中,各个部分的设计及实现方法,其中包括引导加载、内核、接口驱动、文件系统、用户应用程序等。  关键词:ARGUS Ⅲ;embedded-Linux;引导加载;YAFFS  中图分类号:
期刊
摘要:20世纪70年代开始,GPS技术不断的成熟和迅猛发展,现在已渗透入除专业领域外的民用领域,从最初的航天及军事应用,逐步走近人们的生活。在专业测绘领域, GPS以全天候、高精度、自动化、高效益等显著特点,赢得广大测绘工作者的信赖。在民用领域,随着国民经济的发展,私人汽车保有量的不断增长,车载GPS导航已进入普及阶段。GPS全球卫星定位导航系统从日常的出行到老人儿童甚至宠物的协寻,应用范围不断扩
期刊
摘要:移动Ad hoc网络是近年来网络研究的热点,WSN(Wireless Sensor Networks,无线传感器网络)是传感器研究领域一个新的研究方向。由于它们之间诸多的相似性使得每当提到WSN的时候往往与Ad hoc网络做比较。本文试图通过对Ad hoc网络和WSN网络特点和路由协议的介绍和分析,使这两个领域区别并联系起来。  关键词:网络;协议;传感器;路由  中图分类号:TP393文献
期刊
摘要:针对Web使用挖掘中的信息,提出一种基于遗传算法的关联规则挖掘模型,同时结合实例对有关信息特征进行量化,然后利用实数数组的方法进行编码以及构造适应度函数,挖掘出隐含在用户注册登记信息库中的有关用户规则。为个性化服务系统提供准确和可行的关联规则,并对用户的行为进行了预测和分析。  关键词:遗传算法;Web使用挖掘;关联规则  中图分类号:TP311文献标识码:A文章编号:1009-3044(2
期刊
摘要:在中学数学教学内容中,应用一元二次方程求根公式计算一元二次方程的根和应用高斯主元素消去法计算线性方程组的解是一部分具有机械计算性的程式化的单元,这使得很适合用C语言编写其计算程序。按照结构化思路设计编写C程序的二个实例。  关键词:C语言;结构化;计算程序  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)18-31611-03  Compiling two Ge
期刊
摘要:本文提出了一种新的基于相容近似空间的Rough集理论在不完全信息系统中进行知识提取。  关键词:Rough集;相容近似空间;不完备信息系统  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)18-31652-01  The Application of a New Rough Set Approach to Non-complete Information Sys
期刊
摘要:本文首先介绍了JAVA类装载机制的功能、体系结构以及规则,然后以Tomcat服务器为例,分析了J2EE应用服务器的特点,并对其类装载器进行了简单的分析。  关键词:类装载器,J2EE应用服务器  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)18-31609-02  Brief Research on JAVA Class Loader of J2EE Appl
期刊
摘要:介绍了TMS320C54x系列DSP的存储结构,详细讨论了存储器和存储空间的映射关系,分析了存储空间的配置方法,并结合实例给出了C5410型DSP的存储器映射关系和链接配置文件。  关键词:DSP;存储器;存储空间;映射;链接配置文件  中图分类号:TP312文献标识码:A文章编号:1009-3044(2007)18-31604-03  Study on the Memory Mapping
期刊
摘要:目前,单信道MAC协议在网络负载较重时的冲突和退避,造成信道带宽浪费而使得协议效率不高。本文主要针对UWB应用在无线个域网络中的特定场景,提出了一种新的应用于分布式网络的私有多信道UWB MAC协议,既可以解决隐藏终端和暴露终端问题,又可以有效地分配信道资源,提高网络性能。  关键词:私有多信道;接入策略; MAC; UWB  中图分类号:TP393 文献标识码:A文章编号:1009-304
期刊
摘要:本文在阐述MPLS VPN技术基本原理的基础上,简单介绍了MPLS VPN模型和技术的优势,最后给出利用ATM组网和用户多方式接入的方案。  关键词:ATM;MPLS;VPN;多协议标签交换  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)18-31594-01  The Virtual Network Technology on MPLS  XU Li, ZH
期刊