毕业论文 网络入侵检测.doc_第1页
毕业论文 网络入侵检测.doc_第2页
毕业论文 网络入侵检测.doc_第3页
毕业论文 网络入侵检测.doc_第4页
毕业论文 网络入侵检测.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

编号3215567本科生毕业设计(论文)题目: 网络入侵检测 专 业 计算机科学与技术 学 号 学生姓名 指导教师 周黎 2009年10月摘 要入侵检测作为一种主动的安全防护手段,为主机和网络提供了动态的安全保障它不仅检测来自外部的入侵行为,同时也对内部的未授权活动进行监督利用网络协议的高度规则性,采用协议分析的方法,结合优秀的模式匹配算法,融合比较先进的数据挖掘和数据融合方法,能较好地解决当前入侵检测系统中准确性与实时性等问题首先,本文在研究现有入侵检测技术国内外发展现状及理论的基础上,重点研究了模式匹配、协议分析、数据挖掘和数据融合几种有代表性的检测方法相对于传统的模式匹配检测方法,将其他领域的新技术融入入侵检测中能更加有效的减少匹配检测的计算量、误报率和漏报率其次,在深入研究入侵检测方法的基础上,对轻量级网络入侵检测系统Snort的特性、功能及规则进行了全面详细的研究,并在Linux系统环境下借助Snort搭建了一个典型的入侵检测系统作为具体实例,接着通过相关实验进行分析研究最后将协议匹配方法应用到网络入侵检测过程中,通过编程在VC+环境下,借助Winpcap实现了对网络数据包的捕获到协议匹配的全过程由此对入侵检测方法有了更深一层的认识,并对如何搭建一个相对完善的入侵检测系统的具体过程由理论深入到实际的层面关键词:入侵检测;Snort;模式匹配;协议分析;LinuxABSTRACTIntrusion detection as a means of proactive security protection for the host and provides a dynamic network security. It not only detect intrusions from the outside, but also on the internal monitoring of unauthorized activities. Network protocol to use a high degree of regularity, the use of protocol analysis method, combined with excellent pattern-matching algorithms, integration of more advanced data mining and data fusion method can better solve the current accuracy of intrusion detection system with real-time and so on.First of all, this paper examined the current intrusion detection technology and the development of the theory at home and abroad on the basis of the focus on the pattern matching, protocol analysis, data mining and data fusion of several detection methods representative. With respect to the traditional pattern-matching detection methods, other new technologies into the field of intrusion detection can be more effective to reduce the computation to match detection, false alarm rate and missing rate.Second, in-depth study of intrusion detection method based on the Lightweight Network Intrusion Detection System Snort features, functions and rules of a detailed study of a comprehensive and Linux system environment with a typical set up Snort Intrusion Detection System As a concrete example, and then through analysis of related experiments. Finally, the protocol matching method applied to network intrusion detection process, through programming in VC + + environment, achieved through the network Winpcap packet capture to match the whole process of the agreement. This method of intrusion detection has a deeper level of understanding and how to build a relatively complete intrusion detection system by the theory of the specific process to the actual level of depth.Keywords: Intrusion detection,Snort, protocol analysis,pattern matching, Linux第1章 绪论近年来计算机技术水平飞速发展,网络信息安全越来越受到重视网络技术飞速发展的同时,各种网络技术漏洞和各种意图的网络攻击者也越来越多,网络入侵和攻击的现象仍然是屡见不鲜,而网络攻击者的技术和知识也日趋专业成熟,攻击工具与手法日趋复杂多样计算机网络安全、信息安全已经成为一个国际性的问题,每年全球因计算机网络的安全问题而造成的经济损失高达数百亿美元,且这个数字正在不断增加传统的加密和防火墙技术等被动防范技术已经不能完全满足现今的安全需要,想要保证网络信息和网络秩序的安全,就必须要更强有力和更完善的安全保护技术近年来,入侵检测技术以其强有力的安全保护功能进入了人们的视野,也在研究领域形成了热点网络安全是一个系统的概念,制定有效的安全策略或方案是网络信息安全的首要任务现有的网络安全策略主要有物理隔离、数据加密、信息隐藏、防火墙、身份识别和认证、入侵检测等入侵检测技术是为保证计算机系统的安全而设计并配置的一种能够及时发现并报告系统中未授权现象或异常现象的技术,是一种用于检测计算机网络和系统中违反安全策略行为的技术入侵检测系统的应用,可以在系统发生危害前检测到入侵攻击,并利用报警与防护系统响应入侵攻击,从而减少它所造成的损失入侵检测技术是近年来飞速发展起来的一种动态的集监控、预防和抵御系统入侵行为为一体的新型安全机制作为传统安全机制的补充,入侵检测技术不再是被动的对入侵行为进行识别和防护,而是能够提出预警并实行相应反应动作入侵检测系统(IDS,Intrusion Detection System)可以识别针对计算机系统和网络系统,或更广泛意义上的信息系统的非法攻击,包括检测外界非法入侵者的恶意攻击或试探,以及内部合法用户的超越使用权限的非法行动通常来说入侵检测是对计算机和网络资源上的恶意使用行为进行识别和相应处理的过程,具有智能监控、实时探测、动态响应、易于配置等特点1与防火墙不同的是,入侵检测不仅能检测外部非法入侵者的攻击和试探,同时还能发现内部合法用户的超越权限的非法行为作为一种积极主动的安全防护方式,入侵检测系统不仅是防火墙有效的补充,还可以使系统管理员实时的了解网络系统中的各种变化,并根据记录的各种监控数据(如日志文件等)做出分析,为网络安全策略的制定提供指南计算机网络安全是一项系统工程,应该在整体的安全策略的控制和指导下,综合运用各种防护工具的同时,利用检测工具了解和评估系统状态,通过适当的反应将系统调整到相对最安全和风险最低的状态入侵检测方法是所有入侵检测领域中起到承前启后作用的关键环节,是实现系统安全策略保证网络安全的关键,也是当前网络安全研究的热点当前的入侵检测方法中,有的是检测操作系统漏洞有的是检测应用程序的实现上的漏洞,有的是检测针对网络Protocol漏洞而进行的攻击,有的是检测加密算法的弱点或针对其的密码破解,有的是检测目前常见的拒绝服务攻击和分布式拒绝服务攻击本研究重点分析了基于模式匹配和Protocol分析的入侵检测方法,Snort作为目前应用较广的开源网络入侵检测系统,提供对网络实时流量的分析和数据包记录Snort可以提供Protocol分析、内容查找和匹配,可以用它来检测各种攻击和探测,如缓冲区溢出、隐蔽端口扫描、CGI攻击、SMB探测、操作系统指纹识别常识等2在一个实用的入侵检测系统中, 最重要的部分是检测方法,也就是采用什么技术进行入侵行为检测检测技术主要分为误用检测和异常检测两大类, 模式匹配技术属于误用检测, 也是最常用、最实用的一种数据检测技术只有加深对入侵检测方法的研究才能使入侵检测技术及相关领域有更快更好的发展,研究核心的入侵检测方法将是十分有意义和效果的研究已有的检测方法所具有的特点,包括优点和缺点才能更好的了解现有入侵检测方法的优势和劣势,以便提出更好的检测方法,更加灵活和有效的融入入侵检测技术,提高检测效率第2章 网络信息安全和入侵检测2.1 网络信息安全2.1.1 网络信息安全概述随着社会经济及现代科技水平的不断发展,信息已经成为国家的主要财富和重要战略资源国家综合实力的竞争越来越集中在信息优势的争夺上,而要占据信息优势的高地,最直接的表现在信息安全与对抗方面信息安全问题的迅速增加,使各国的计算机系统特别是网络系统面临着很大的威胁,受到越来越多的关注信息安全所导致的损失不仅是指信息自身价值所遭受的损失,更多的是其可能造成的其它方面的更大损失为保证信息的安全可靠,除了运用法律和管理等手段,更需要依靠技术方法实现,先进的技术是实现信息安全的有力保障而近年来计算机技术水平飞速发展,网络信息安全越来越受到重视网络信息安全主要是指网络系统的硬件、软件及其系统中的数据受到保护,不受偶然的或者恶意的原因而遭到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断计算机网络安全多是利用网络管理和控制技术,保证网络系统环境中信息数据的机密性、完整性和可用性,保护其不被偷看、窃取和修改2.1.2 主要的网络安全威胁在目前的计算机网络技术飞速发展和应用的前提下,网络安全相关技术已经得到了应有的重视和深入研究、应用但网络入侵和攻击的现象仍然是屡见不鲜,攻击者数目增多,知识日趋专业成熟,攻击工具与手法日趋复杂多样,这些都对网络信息安全提出了全新的考验网络安全问题既包括网络系统的安全,又包括网络信息的安全和机密性目前网络和计算机所面临的主要安全威胁有:病毒:可引起计算机或网络故障,破坏计算机数据或影响网络正常服务,如蠕虫病毒、邮件病毒、QQ病毒、手机病毒等特洛伊木马:该黑客软件能把程序的服务器端植入目标主机中,通过目标主机上的客户端程序彻底控制目标主机缓冲区溢出攻击:利用设计漏洞进行的攻击,据统计现在网络中的攻击行为80%与缓冲区溢出漏洞有关拒绝服务攻击:恶意造成拒绝服务,造成目标系统无法正常工作或瘫痪,或造成网络阻塞扫描:若被恶意使用和隐蔽使用于探测他人主机的有用信息作为实施下一步攻击的前奏,此类扫描也构成了对网络安全的威胁嗅探:可捕获主机所在网络的所有数据包,一旦被恶意利用,获取了目标主机的关键信息则可对目标主机实施进一步攻击Web欺骗:通过URL重写技术和信息掩盖技术讲URL重定向到攻击者的主机,从而监视、记录访问者的信息,同时尽量掩盖这种欺骗行为IP欺骗:攻击者可通过技术手段利用TCP/IPProtocol的缺陷,伪装成被信任主机,试用被信任主机的源地址与目标主机进行会话,在目标主机不知的情况下实施欺骗行为口令破解:攻击者若通过一定手段取得用户口令,提升权限进入目标系统,对目标主机进行完全控制常用的口令破解手段有暴力破解、利用Protocol或命令的漏洞、植入木马等目前的主要网络安全威胁根据互联网的层次大致可分为三个层次:主干网络的威胁、TCO/IPProtocol安全问题、Web应用程序安全而我们常见的多是针对于电子商务、网上银行、企业协作、交易管理等网站的黑客攻击,但目前绝大多数企业并没有为自己的应用程序、网站和服务器采取更加深入且有效的安全措施,如防火墙、入侵检测等功能2.1.3 网络信息安全模型与技术防护(Protection)响应(Response)检测(Detection)策略(Policy)传统的计算机安全模型主要作用于单机系统,由于网络的普遍应用和技术发展,传统的模型已不足以应对外界攻击而随着网络黑客恶意攻击技术的不断提高和更新,安全模型和技术也向更高层次发展P2DR模型就是能适应不断变化的网络环境、发现网络服务器和设备中的新漏洞、不断查明网络中存在的安全隐患等问题而提出的新的网络安全模型,如图2-1所示该模型以安全策略为核心,通过一致的检查,流量统计,异常分析,模式匹配以及应用、目标、主机、网络入侵检查等方法进行安全漏洞检测,使系统从静态防护转化为动态防护5图2-1 P2DR模型传统的安全技术大致可分为静态安全技术和动态安全技术这两类,我们熟知的防火墙就是静态安全技术的代表产品,主要用于保护系统抵御外部的攻击而动态的安全技术应该是增强了主动的检测能力,在于其主动性目前采用的一些传统的安全机制主要有:数据加密技术访问控制技术认证技术数据完整性控制技术安全漏洞扫描技术防火墙技术其中的防火墙技术是防范网络攻击最常用的方法,即在用户网络和因特网之间插入了一个中间系统,形成了一个安全屏障,将用户网络和因特网分割开虽然防火墙提供了较强的防护能力,但它仍有着局限性首先,防火墙不能阻止用户网络内部对用户网络的攻击,它只提供了网络边缘的防护;其次,防火墙不能阻止未知的恶意代码的攻击,如病毒、特洛依木马等由此可看出,作为对防火墙技术的补充,入侵检测的动态防护特点足以成为实现网络安全的新的解决策略引入入侵检测技术,相当于在计算机系统中引入了一个闭环的安全策略计算机的多种安全策略,如:防火墙、身份认证、访问控制、数据加密等,通过入侵检测系统进行安全策略的反馈,从而进行及时的修正,大大提高了系统的安全性2.1.4 Linux系统安全性Linux 操作系统是一套开放的由Unix发展起来的多用户、多任务的网络操作系统它具有稳定性强、高可靠性等系统性能,容易建构网络sever,又由于Linux有免费、开放源代码的特性,目前越来越多的Internet应用服务器和主机采用了Linux系统由此,Linux系统的安全问题也日益成为人们关注的焦点开放的源代码为实现Linux 主机安全系统提供了极大的方便能够获得系统调用的充分信息可以通过修改主机系统函数库中的相关系统调用,引入安全控制机制,从而将防火墙对于网络信息的处理和操作系统中用户使用资源的访问控制紧密结合起来,让防火墙模块和操作系统配合起来协同工作但开放的源代码也为黑客攻击提供了方便,攻击者可以利用Linux系统的安全漏洞而获得超级用户权限,从而达到控制root 系统的目的,这些攻击者利用系统的漏洞侵入以后,通常都是通过非法执行一些敏感的系统调用来完成攻击112.2 入侵检测2.2.1 入侵检测基础目前通常说的入侵就是指对系统资源的非授权操作,可造成系统数据的丢失和破话、甚至会造成系统具绝对合法用户服务等问题Smaha从分类的角度将入侵描述成尝试性闯入、伪装攻击、安全控制系统渗透、泄露、拒绝服务、恶意使用等六类入侵者通常可分为外部入侵者,例如黑客等系统的非法用户,和内部入侵者,即越权使用系统资源的用户入侵检测技术是近年来飞速发展起来的一种动态的集监控、预防和抵御系统入侵行为为一体的新型安全机制作为传统安全机制的补充,入侵检测技术不再是被动的对入侵行为进行识别和防护,而是能够提出预警并实行相应反应动作美国国际计算机安全协会(ICSA)将入侵检测定义为:通过从计算机网络或计算机系统中的若干关键点收集信息并对其进行分析,从中发现网络或系统中是否有违反安全策略的行为和遭到袭击的迹象的一种安全技术违反安全策略的行为有入侵和滥用通常来说入侵检测是对计算机和网络资源上的恶意使用行为进行识别和相应处理的过程,具有智能监控、实时探测、动态响应、易于配置等特点入侵检测的目标就是通过检查操作系统的安全日志或网络数据包信息来检测系统中违背安全策略或危及系统安全的行为或活动,从而保护信息系统的资源免受拒绝服务攻击、防止系统数据的泄漏、篡改和破坏传统安全机制大多针对的是外部入侵者,而入侵检测不仅可以检测来自外部的攻击,同时也可以监控内部用户的非授权行为作为新型的安全机制,入侵检测技术的研究、发展和应用加强了网络与系统安全的保护纵深,使得网络、系统安全性得到进一步的提高目前在入侵检测系统中常用的检测方法有:(1) 模式匹配 Pattern Matching(2) 统计分析 Statistical Analysis(3) 专家系统 Expert System(4) 神经网络 ANN(5) 模糊系统 Fuzzy Systems(6) 遗传算法 GA(7) 免疫系统 Immune System(8) 数据挖掘 Data Mining(9) 数据融合 Fusion(10) Protocol分析 Protocol Analysis2.2.2 入侵检测系统入侵检测系统(IDS,Intrusion Detection System)可以识别针对计算机系统和网络系统,或更广泛意义上的信息系统的非法攻击,包括检测外界非法入侵者的恶意攻击或试探,以及内部合法用户的超越使用权限的非法行动一般来讲就是通过分析系统安全相关数据来检测入侵活动的系统入侵检测系统在功能结构上基本一致,由数据采集、数据分析及用户界面等组成,不同的入侵检测系统只是在分析采集数据方法及数据类型等方面有所不同入侵检测系统的研究最早可追溯到1980年,James Aderson首先提出了入侵检测的概念,1987年DEDenning首次给出了入侵检测的抽象模型,并将入侵检测作为一种新的安全防御措施提出6早期的入侵检测系统都是基于主机的系统,主要检测用户对数据库的异常访问等后期随着网络的普及和发展,入侵检测系统也开始向网络方面发展作为一种主动防护技术,入侵检测系统可以在攻击发生时记录攻击者的行为、发出报警,必要时还可以追踪攻击者,可以独立运行,也可以与防火墙等安全技术协同工作,更好地保护网络安全一个入侵检测系统能够完成监控分析用户和系统活动,发现入侵企图或异常现象,记录、报警和响应等具体来说入侵检测系统的主要功能可分为:检测并分析用户和系统活动核查系统配置和漏洞评估系统关键资源和数据文件的完整性识别已知的攻击行为统计分析异常行为对操作系统日志进行管理,并识别违反安全策略的用户活动入侵检测系统的应用,能使在入侵攻击对系统发生危害前,检测到入侵攻击,并利用报警与防护系统驱逐入侵攻击减少入侵攻击过程带来损失,在入侵后收集入侵攻击的相关信息,作为防范系统的知识加入知识库,增强系统防范能力从功能逻辑上讲,入侵检测系统由探测器(Sensor)、分析器(Analyzer)、用户接口(User Interface)组成目前的入侵检测系统主要分为两类:基于主机的入侵检测系统:主要用于保护某一台主机的资源不被破坏基于网络的入侵检测系统:主要用户保护整个网络不被破坏美国国防部高级研究计划署(DARPA)提出了CIDF(公共入侵检测框架),阐述了一个入侵检测系统的通用模型,可将入侵检测系统分为四个组件:事件产生器、事件分析器、响应单元、事件数据库他们在入侵检测系统中的位置和相互关系如图2-2所示现在的入侵检测系统多采用分布式体系结构,使用代理和移动代理技术6响应单元事件分析器事件数据库事件产生器来源于Network上的数据包图2-2 入侵检测系统通用模型事件产生器负责原始数据采集,对数据流和日志文件进行追踪,将搜集到的原始数据转换为事件,提供给系统其他部分事件分析器接收事件并进行分析,判断为入侵行为或异常现象后转换为警告信息事件数据库存放各种中间和最终数据,响应单元根据警告信息作出反应,是入侵检测系统中的主动武器第3章 典型的入侵检测系统Snort简析Snort是一个免费的、开放源代码的基于网络的轻量级网络入侵检测系统,具有很好的配置型和可移植性另外,它也可以用来截获网络中的数据包并记录数据包日志Snort多适用于小网络段使用,最初设计用于Linux/Unix操作系统,且其设计得易于插入和扩充进新的规则以对付各种新出现的威胁3.1 Snort的相关特性Snort具有实时数据流量分析和检测IP网络数据包的能力,能够进行Protocol分析,对内容进行搜索/匹配Snort的报警机制很丰富,如syslog、用户指定的文件、一个Unix套接字,以及使用SAMBAProtocol向客户程序发出警告消息Snort能够进行Protocol分析,内容的搜索和匹配,目前Snort可以对多种Protocol进行解析能检测多种方式的攻击和探测,如缓冲区溢出、端口扫描CGI攻击、SMB探测、探测操作系统指纹特征的企图等Snort的日志格式可以是tcp dump式的二进制格式,也可以解码成ASC字符形式,便于用户尤其是新手检查Snort有很好的扩展性,由于其规则描述语言简单,能够快速对新的网络攻击作出反应Snort支持插件,可以使用具有特定功能的报告、检测子系统插件对其功能进行扩展Snort的可移植性好,它有极佳的跨平台性,支持Linux,Solaris,BSD,IRIX,HP-UX,Windows系列,ScoOpenserver,Unixware等11Snort遵循公共通用许可证GPLSnort遵循GPL,所以任何企业、个人、组织都可以免费使用它作为自己的NIDS3.2 Snort的功能架构Snort可提供Protocol分析、内容查找和匹配,可以用来检测各种攻击和探测,如缓冲区溢出、隐蔽端口扫描、CGI攻击、SMB探测、操作系统指纹识别尝试等其中的包嗅探、数据包记录和入侵检测是其重要功能Snort的架构决定了它的各种功能,构架图见图4-1所示而Snort架构由以下4个基本模块构成:嗅探器预处理器检测引擎输出模块Snort的最简单形式就是包嗅探器,但当Snort获取到数据包后会将数据包传送到与处理模块,然后通过检测引擎判断这些数据包是否违反了某些预定义规则11 嗅探器 预处理器 检测引擎 报警/日志主干网图3-1 Snort架构Snort的预处理器、检测引擎和报警模块都以插件形式存在插件就是符合Snort接口定义的程序,这些程序曾经是Snort内核代码的一部分,现在独立出来使内核部分的修改变得简单可靠包嗅探器用来监听数据网络,可以是硬件也可以是软件一个网络嗅探器使应用程序或者硬件设备能够监听网络上的数据流互联网多是IP数据流,在本地局域网或传统网络中多是IPX或AppleTalk数据流具体来说,包嗅探器不仅可以进行网络分析及错误处理、性能分析及基准测量、监听明文密码及其他感兴趣的数据预处理器得到原始数据包,使用不同的插件检测数据包,这些插件检测数据包的某些特定行为一旦数据包被确认具有某些特定行为,就会被送到检测模块插件可以根据需要在与处理层被启用或停用,从而更具网络优化级被分配计算资源并生成报警,插件是入侵检测系统的一个非常有用的功能检测引擎接收预处理器及其插件穿送来的数据,然后根据一系列的规则对数据进行检测如果这些规则和数据包中的数据相匹配,就将数据包传送给报警处理器当数据通过检测引擎后,Snort会对其数据进行不同的处理如果数据和检测引擎的规则相匹配,Snort就会触发报警报警可以通过网络连接、UNIX的套接字或Windows Popup(SMB),甚至SNMP陷阱机制发送到日志文件也可以使用Snort的一些附加工具来通过Web接口显示日志内容,包括一些perl、PHP和Web服务器的插件等日志可以存储在文本文件中报警和日志都可以记录到数据库中,如MySQL或Postgree等另外,Snort报警可以通过系统日志工具如SWATCH发送电子邮件及时通知系统管理员,是系统不需要由专人24小时监控123.3 Snort规则Snort是一个基于特征的入侵检测系统,而Snort正是通过大量的规则集实现基于特征的入侵检测系统的功能这些规则集按照不同的类别进行分类,如木马、缓冲区溢出、访问不同的应用程序等,并进行定期的更新3.3.1 规则的组成规则本身由两部分组成:规则头:规则头包含了规则的基本动作(记录日志或是报警)、网络数据包的类型(TCP、UDP、ICMP等)、源和目的IP地址源和目的端口规则可选项:可选项中指定了数据包中规则匹配的具体内容Snort使用特定的语法来定义这些规则规则的语法涵盖了Protocol的类型、内容、长度、Protocol头及很多其他元素,类如定义缓冲区溢出规则的填充字节等3.3.2 规则头规则头定义了规则的行为(Action)、所匹配网络包的Protocol、源地址、目标地址、源端口和目标端口等信息,其作用主要是定义网络数据包分组中的报头路由特征规则头格式如下:规则行为 Protocol 源地址 源端口 方向操作符 目的地址 目的端口规则行为(Rule Action)规则行为指示了数据包与规则匹配时该做什么,此字段有五个选项:alert、log、pass、activate、dynamic其语义如下:alert:使用设定的警告方法生成警告信息,并记录这个报文log:使用设定的记录方法记录这个报文pass:忽略该报文activate:进行alert,然后激活对应的一个dynamic规则dynamic:等待被一个对应的activate规则激活,然后进行log其中activate和dynamic规则必须成对出现,已完成特定任务当某种攻击发生后需要记录两个或多个包时,activate规则激活对应的dynamic规则记录后继的若干个包Protocol字段(Protocol):目前Snort主要支持TCP、UDP、ICMP三种Protocol,对应的值为tcp、udp和icmp方向操作符(Direction):指示规则所适用的流量方向“-”表示从左端到右端的数据包,“-”反之,“”表示匹配双向流量地址和端口信息地址可以是一个主机地址或者网络地址可以用关键字any来指定所有的地址目的地址必须用CIDR表示法表示CIDR表示法如下:IP地址后面用斜线来附加一个数字,表示掩码的位数比如19216820/24代表一个C类网络19216820,其子网掩码是2552552550一些子网掩码:如果子网掩码是24位,它是一个C类网络如果子网掩码是16位,它是一个B类网络如果子网掩码是24位,它是一个A类网络表示一个主机用32位掩码根据CIDR的支持,可以用任何位数的掩码3.3.3 规则选项规则选项则包含了所要显示给用户查看的警告信息以及用来判断此数据包是否为攻击数据包的其他信息虽然规则选项对于Snort规则定义而言不是必需的,但实际上规则选项是Snort检测规则的核心部分,其设计将易用性和检测性能以及灵活性结合了起来规则选项格式如下:(选项关键字1:选项参数;选项关键字2:选项参数; )选项之间以“;”分隔,选项中的关键字与选项参数之间用“:”隔离一些基本的选项类型如下:msg - 在报警和包日志中打印一个消息logto - 把包记录到用户指定的文件中而不是记录到标准输出ttl - 检查ip头的ttl的值tos- 检查ip头的tos域的值id - 检查ip头的分片id值ipoption- 检查ip头的option域fragbits- 检查ip头的分片标志位dsize - 检查包的数据部分大小content - 在包的数据部分中搜索指定的样式;Snort的一个重要特征就是它可以在包的里面发现数据特征,这些特征可能以ASCII字符的形式出现,也可能是16进制字符所表示的二进制数据如同病毒,入侵者的行为也通常会在数据包中表现某种特征,关键字content就使用来发现这些特征的offset - content选项的修饰符,设定开始搜索的位置;调整content选项,设置模式匹配开始的偏移量,与content关键字联合使用,可以找到应用层的数据depth - content选项的修饰符,设定搜索的最大深度nocase - 指定对content字符串大小写不敏感content-list 在数据包中搜索多种可能匹配flags -检查tcp flags的值seq - 检查tcp顺序号的值ack - 检查tcp应答(acknowledgement)的值itype - 检查icmp type的值icode - 检查icmp code的值session - 记录指定会话的应用层信息的内容icmp_id - 检查ICMP ECHO ID的值icmp_seq - 检查ICMP ECHO 顺序号的值ipoption - 监视IP option的特定代码rpc - 监视特定应用/进程调用的RPC服务resp - 主动反应(切断连接等)reference- 外部参考idsid- snort的规则idrev- 规则的修正号classtype- 规则的分类号priority- 规则的优先级uricontent- 在数据包的URI部分搜索指定的匹配ip_proto- ip头的Protocol值sameip- 源地址和目标地址相同stateless- 无状态连接regex- 通配符模式匹配3.3.4 一个简单的规则范例alert tcp any any -19216810/24 111(content:“|00 01 86 a5”|;msg:“mountd access”;)上例中,括号左边部分为规则头,括号里面部分为规则选项,规则选项中冒号前的部分称为选项关键字(Option Keyword),规则选项并不是任何规则都必需的,它只是用来明确地定义表示的是某种攻击、需要采取某种行为(如警告等)只有组成规则的各个元素都为真时才能触发相应的操作,规则内部限制数据包的各元素的关系是逻辑与;同时规则库中的各条规则之间的关系可以被认为一个大的逻辑或,只要有一条规则被匹配,即认为发生了入侵规则一般被分类存放于Snort源代码所在目录*/rules/*rules文件中当多个元素放在一起时,可以认为它们组成了一个逻辑与(AND)语句同时,snort规则库文件中的不同规则可以认为组成了一个大的逻辑或(OR)语句第4章 Linux系统下搭建入侵检测系统实验及分析本研究中,在Linux系统环境下搭建了一个入侵检测系统Snort,实现了基本的入侵检测功能在实验室环境下,在局域网中利用两台以上的计算机,使用其中一台主机作为被攻击方,即检测方,另外的主机可对其进行攻击被攻击方可看出攻击方的IP地址及数据包相关内容,并可根据检测结果进行分析由于Ubuntu是Debian系的Linux,安装软件非常简单这里使用Ubuntu默认命令行软件包管理器apt来进行安装要安装的不仅有Snort,还有Snort规则集$ sudo apt-get install snort snort-rules-default4.1 配置Snort选项接下来利用Snort的配置文件来设置各种选项,以确定它的运行方式这个过程相对复杂,尤其要注意的是命令的输入,有时因为一个空格的缺失就要反复进行配置首先打开Snort的主配置文件:/etc/snort/snortconf#HOME_NET和#EXTERNAL_NET是嗅探器最主要的两个配置变量和选项在配置文件中将HOME_NET有关项注释掉,然后将HOME_NET设置为本机IP所在网络,将EXTERNAL_NET相关项注释掉,设置其为非本机网络删除HOME_NET行前的“#”,设置HOME_NET变量“#”在Snort配置文件中作命令指示器HOME_NET变量定义了哪些网络是受信的内部网络它与签名共同判断内部网络是否受到攻击Snortconf默认把HOME_NET设为“var HOME_NET any”对任意地址信任把它精确设为实际的内网地址空间将减少错误告警的次数设置代码如下:#var HOME_NET anyvar HOME_NET16设置EXTERNAL_NET变量它指定可能发起攻击的网络,一般把它设为除HOME_NET地址以外的所有地址设置代码如下:#var EXTERNAL_NET anyvar EXTERNAL_NET !$HOME_NET定义哪些服务器上运行了哪些服务程序如果把HTTP_SERVERS设为某些服务器,则Snort只关注对那些服务器进行的HTTP攻击如果想了解到对某个服务器上并没有运行着的服务程序进行的攻击,就保留默认设置,这样可以观察到任何对内网的攻击也可以命令Snort只关注对某一台或某几台服务器的HTTP攻击设置代码如下:var DNS_SERVERS $HOME_NETvar HTTP_SERVERS32配置服务使用的端口同前面定义服务类似,命令将使Snort只关注对这个端口的攻击按照默认配置,Snort将忽略对端口8080的HTTP攻击这样的配置能够使Snort专注于不同类型攻击类型的发生地点但在最终对被攻击方做全面保护时不开启这个配置,这样可以检测出局域网内对该机器进行攻击的主机和攻击类型在本地打开Snort规则:snort c/etc/snort/rules配置RULE_PATH变量,指示规则的存储位置,规则用于触发事件配置代码如下:var RULE_PATH /rules接下来一段内容被注释掉了,是对一些不常见的通信的监测除非系统中出现了其中的问题或者入侵检测系统耗费资源很小,否则最好不要启用下面一段是允许为资源有限的系统配置侦测引擎,在本实验中无需改动配置文件之后的几段用于配置一些功能和设置对某些类型的攻击的侦测,包括碎片攻击(fragmentation attacks)、状态检测(stateful inspection)和流重组(stream reassembly)选项标注有Step #4的段落包含Snort的输出选项,取消“output alert_syslog:LOG_AUTH LOG_ALERT”前的注释此处无论如何配置都会生成authinfo警告编辑#2部分动态加载库的路径,这些路径有些需要修改默认项比如在本实验中,运行Snort时遇到错误,提示了“Unknown rule type:dynamicpreprocessor directory”,经查发现是是由于Snort未配置使用动态加载处理机,只需用“#”注释掉加载处理机相关两行就可以了最后一段Step #6是规则集这里有些规则默认为不起作用,如chatrules是由各种即时消息客户端出发生效的在行首加入或删除注释符号“#”就可以指定该行的规则集是否生效在本实验中一般均默认为生效4.2 测试Snort前面对Snort的配置做的修改,有些配置的修改可能会影响到Snort的正常启动,在将Snort作为入侵检测工具正式启用前,首先要测试Snort工作是否正常:$ sudo snort -c /etc/snort/snortconf如果出现一个用ASCII字符画出的小猪,那么Snort工作就正常了,可以使用Ctrl+C退出;如果Snort异常退出,就需要查明安装软件和修改配置的正确性了4.3 攻击与检测过程4.3.1 攻击过程在攻击库面板中选择一种攻击,在此选择Backdoor Backdoor 203dll为例,选择该类型攻击作为实验用点击右侧“Run attack”开始攻击过程在下面的界面中可以看到发出攻击的大概情况当攻击结束后左侧的窗口会显示本次攻击的信息,包括攻击类型,其中发出攻击包所属Protocol种类,及本次发出攻击包的总数4.3.2 Snort运行过程在启动Snort后,入侵检测的过程就开始了启动操作输入:snort vd外界没有攻击时的检测如图5-4(a)(b)所示截获的数据包中,首先显示一些基本的数据包信息,包括时间、攻击方IP地址及端口号、被攻击方IP地址及端口号、数据包类型、报文中转次数、ID号、IP数据包长度、响应号和发送窗口大小等信息数据包内部信息用ASCII显示出,对于数据包内容的分析可用专门的分析软件进行,在本实例中使用了wireshark对已知数据包进行分析退出Snort会显示出本次检测的数据包相关数据,包括本次检测总时间,及分析的数据包个数、分析失败个数、突出数据及其相应的百分比接下来显示的是分析的数据包中,每种数据类型所占的个数和百分比4.4 检测结果分析Wireshark是一个网络封包分析软件网络封包分析软件的功能是截取网络封包,并尽可能显示出最为详细的网络封包资料本实验中以此软件来对已经记录的数据包进行分析首先将数据包文件导入,如图4-1图4-1 用Wireshark分析数据包内容Wireshark和其它的图形化嗅探器使用基本类似的界面,整个窗口被分成三个部分:最上面为数据包列表,用来显示截获的每个数据包的总结性信息;中间为Protocol树,用来显示选定的数据包所属的Protocol信息;最下边是以十六进制形式表示的数据包内容,用来显示数据包在物理层上传输时的最终形式使用Wireshark可以很方便地对截获的数据包进行分析,包括该数据包的源地址、目的地址、所属Protocol等通过Protocol树可以得到被截获的数据包的更多信息,如主机的MAC地址信息(Ethernet II)、IP信息(Internet Protocol)、TCP信息 (Transmission Control Protocol),以及该Protocol的具体内容(Hypertext Trnasfer Protocol)通过扩展Protocol树中的相应节点,可以得到该数据包中携带的更详尽的信息最下边是以十六制显示的数据包的具体内容,这是被截获的数据包在物理媒体上传输时的最终形式,当在Protocol树中选中某行时,与其对应的十六进制代码同样会被选中,这样就可以很方便地对各种Protocol的数据包进行分析第5章 总结虽然入侵检测系统能够监视网络中的数据包进行分析,并在匹配到可疑的特征时进行报警但所有的入侵检测系统都不能完全取代人来进行安全处理,仍然需要有经验的分析人员来分析入侵检测系统产生的报警,判断哪些是真正的攻击,哪些是误报尽管入侵检测系统可以从一个网段内的多台设备上收集数据,但它并不知道攻击是如何在各个机器之间扩散的或网络上各台服务器的重要性可见入侵检测技术还需在只能分析方面进行深入研究和技术改进,用更加智能化的方式来分辨报警,查出误报所有的入侵检测方法应用于实际都不可能捕获到所发生的每次攻击,也不可能完全阻止攻击的发生任何一种入侵检测系统都有局限性对于基于特征的检测系统而言,系统需要时间加入新的攻击特征来检测新的攻击类型对于基于异常的检测系统而言,新的攻击本身对于系统定义的正常模式常具有一定的隐蔽性因此,任何一种入侵检测系统都不可能提供零时差的攻击检测因特网残酷且危机四伏,入侵检测系统只能提供相对健壮的网络防御方式并对攻击做好准备,但不可能从物理上彻底阻止外界对网络进行攻击大多数情况下,入侵检测系统并不能阻止持续的攻击,其功能主要是检测和预警而

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论