已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件体系结构的研究内容【体系结构的研究与分析】 摘要:剖析了开源入侵检测工具Snort的体系结构及其工作配置模式,为中小型网络配置入侵检测系统提供了可行的解决方案。 关键词:入侵检测系统;通用入侵检测框架;Snort :TP393:A:1009-3044(xx)18-31585-02 Research and Analysis the System Framework of Snort YU Kun, WU Xiao- _ (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 works. 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,进行内容匹配时,字符串的大小写不敏感。 本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文 (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. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 社区护理技能:慢性病患者家庭访视流程
- 2026年中考语文专项复习:话题作文 审题立意技巧+同步练习(含答案+范文)
- 2026年华师大七年级数学下册第8章综合素质评价卷(含答案)
- 医学生基础医学 儿童贫血护理课件
- 医学生基础医学 超声检查后护理课件
- 2026年云南高考语文总复习:文言文句子翻译(知识梳理+考点)原卷版
- 2026年高考数学一轮复习 第五章 平面向量与复数(综合训练)解析版
- 医学溶血性贫血冷凝集素病案例教学课件
- 2026年高考语文一轮复习之古诗文选必上教材文言文逐篇过关挖空训练(原卷版)
- 2026高考物理模型讲义:抛体运动模型(解析版)
- 新高考3+1+2政策解读及选科指导+课件-2025-2026学年高一上学期生涯规划主题班会
- 口腔备牙护理配合要点
- 黄水院水工建筑物基础课件第7章 河岸溢洪道
- 食堂物品换购管理办法
- 肝病健康知识科普
- 前庭性眩晕的护理查房
- 幼儿园群众信访管理制度
- 儿童流感科普课件
- (高清版)DG∕TJ 08-2243-2017 市属高校建筑规划面积标准
- 电能计量装置错误接线分析-低压三相四线电能表错误接线分析
- 夫妻忠诚协议书合同
评论
0/150
提交评论