版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、网络入侵检测系统(Snort)研究贾居宝(兰州职业技术学院信息工程系,甘肃 兰州 730070)摘 要;互联网络的蓬勃发展给人们的工作生活带来极大的便利,然而,随着现代化网络应用的普及,伴随而来的网络不安全因素也给网络信息安全带来了严峻挑战,传统的网络安全技术已经很难对付这些日益严重的安全威胁,所以我们就有必要去开发专门的工具去避免这些不安全因素的攻击,而入侵检测技术便可以作为一种很重要的技术为我们所用。入侵检测是网络安全领域中一个较新的课题,检测引擎作为入侵检测系统的核心模块,其检测速度快慢直接影响网络入侵检测系统的效率,模式匹配是入侵检测系统的重要检测方法,其性能对入侵检测系统至关重要。入
2、侵检测系统按照数据分析模式来分,可以分为异常入侵检测和误用入侵检测,对于当前基于模式匹配的误用入侵检测系统来说,入侵检测的检测效率主要体现在模式匹配的速度,好的模式匹配算法是提高入侵检测速度的关键所在。本论文首先介绍研究了网络入侵检测的概况,然后深入的研究了snort的详细信息,包括其特点,结构和其检测流程等,论文较重点的配置了snort在windows下的工作环境,做了简单的实验,来展现snort的DOS下的工作过程和与php,acid等可图形显示下的数据浏览与操作。关键词:网络安全;snort;入侵检测;模式匹配1 绪 论1.1 研究的目的与意义随着网络技术的飞速发展,其应用领域也在不断地
3、扩展,网络技术的应用已经从传统的小型业务系统逐渐扩展到大型的关键业务系统中,比如说金融业务系统、电子商务系统等等,政府门户信息系统等。然而,随着网络技术的迅速发展,网络安全问题也日益突出。比如说金融系统、政府信息系统受到外界的攻击与破坏,信息容易被窃取和修改等网络安全问题越来越严重。所以说,网络安全问题已成为各国政府、企业以及广大网络用户关心的问题之一。任何试图破坏网络活动的正常化都可以称为网络安全问题,过去保护网络安全的最常用、最传统的方法就是防火墙,但是防火墙只是一种被动防御性的网络安全工具,随着科学技术的不断发展,网络日趋复杂化,传统防火墙是不足以满足如今复杂多变的网络安全问题,在这种情
4、况下,逐渐产生了入侵检测系统,入侵检测系统不仅能够为网络安全提供实时的入侵检测及采取响应的防护手段,它还可以识别针对计算机或网络资源的恶意企图和行为,并对此做出反应,它提供了对系统受到内部攻击、外部攻击和误操作的实时保护,能够帮助系统对付网络攻击。入侵检测系统能很好的弥补防火墙的不足,是防火墙的合理完善。入侵检测系统具有以下几个特点:1)从系统的不同环节收集各种信息;2)分析收集到的信息并试图寻找入侵信息活动的特征;3)自动对检测到的行为做出响应;4)记录并报告检测结果;入侵检测系统的主要功能有:1)监测并分析用户和系统的活动;2)核查系统配置及其漏洞;3)评估系统重要资源和数据文件是否完整;
5、4)识别己知的入侵行为;5)统计分析不正常行为;6)根据操作系统的管理日志,识别违反安全策略的用户活动;入侵检测技术是一种积极主动地安全防护技术,其核心在于它的检测引擎,如何实现高效快速的检测,是入侵检测技术的一个重要研究重点。目前入侵检测技术主要分为两大类,分别是基于异常的入侵检测和基于规则的入侵检测。由于目前的攻击主要是针对网络的攻击,因此检测入侵和攻击的最主要的方法是捕获和分析网络数据包,使用相应的软件来提取入侵者所发出的攻击包的特征,然后将这些特征攻击包和入侵检测系统的特征库进行对比匹配,如果在特征库中检测到相应的攻击包,就会发出入侵报警。在与特征库进行匹配的过程中,用到的最主要的技术
6、就是模式匹配,所以说在入侵检测系统中模式匹配是一个研究重点。在国内,随着网络应用的日益增长,特别是那些关键部门对网络的应用使得网络安全问题至关重要,迫切需要高效的入侵检测产品来确保网络安全,但是,由于我国的入侵检测技术在网络安全领域的研究起步较晚,还不够成熟和完善,需要投入较多的精力来对这方面进行探索研究,特别是基于模式匹配也就是基于规则的入侵检测是一个重要的研究领域,这对抑制黑客攻击和网络病毒的传播,提高网络安全具有重要意义1.2 入侵检测技术的不足与发展趋势入侵检测技术作为安全技术的一个重要领域,正在成为网络安全研究的热点,对入侵检测的理论研究和实际应用中还存在着许多问题,需要我们继续深入
7、研究和探索,具体来说,入侵检测在以下方面有待继续发展:1)如何提高入侵检测的安全性和准确性目前商用领域的入侵检测系统主要是基于模式匹配的入侵检测引擎。这种基于模式匹配的入侵检测引擎是将入侵数据与攻击模式特征库进行匹配,其缺点是:当网络中出现新的攻击时,由于攻击特征库未能及时更新,或是暂时很难对这些攻击的攻击特进行总结等,从而对这些新的攻击无法产生报警,造成漏报。另外,大多入侵检测无法识别伪装或变形的网络攻击,也造成大量漏报和误报。因此减少网络负担,实现模式特征库的不断升级与扩展,这是对基于模式匹配的入侵检测系统来讲,提高入侵检测的安全性和准确性有很大帮助,从而使基于模式匹配的入侵检测系统具有更
8、广泛的应用前景。2)如何提高入侵检测的检测速度入侵检测系统的检测速度是其一项非常重要的指标,随着网络数据快速增长,不仅要求网络传输工具技术的不断发展,而且如果入侵检测的处理速度不能相应提高,那么它将会成为影响网络正常运行的一大瓶颈,从而导致丢包,漏报等,进一步影响入侵检测系统的准确性和有效性。在入侵检测中,随着百兆、甚至千兆网络的大量应用,入侵检测技术发展的速度已经远远落后于网络发展的速度。如何提高入侵检测系统的检测速度是目前研究者们迫不及待的任务,如改进其使用的核心算法,设计灵巧的检测系统等。3)如何提高入侵检测的理论研究现在,入侵检测技术研究理论在我国还不成熟,如何选择合适的检测技术以确保
9、入侵检测的高效性还不确定,随着计算机科学不断向前发展,计算机科学中的各种领域技术也有待进一步完善,如网络技术、系统工程、分布式计算、人工智能等已形成比较良好的理论基础,借鉴上述技术,再把入侵检测和网络结构、加密技术、防火墙、病毒防护技术等结合起来,结合入侵检测理论本身的特点,必将会提高、完善入侵检测的理论研究。4)如何规范入侵检测产品的性能标准化的工作对于一项技术的发展非常关键,在某一个技术领域,如果没有相应的标准,那么该领域的发展将是混乱无章的。目前对于入侵检测产品尚无一个明确的国际标准出台,国内也没有,这使得各产品之间无法共享数据信息。尽管入侵检测系统经历了二十多年的发展,但产品规范仍处于
10、一个无序状态,实际上,入侵检测还处在一个新兴的科学领域,如何规范入侵检测产品性能,研究者们对其还是充满信心,相信随着科技的继续发展、入侵检测理论的不断成熟,入侵检测产品的标准会出现的,从而加快入侵检测技术的不断向前发展。2 入侵检测系统概述2.1入侵检测系统的概述入侵检测系统(Intrusion Detection System简称为IDS)工作在计算机网络系统中的关键节点上,通过实时地收集和分析计算机网络或系统中的信息,来检查是否出现违反安全策略的行为和是否存在入侵的迹象,进而达到提示入侵、预防攻击的目的。入侵检测系统作为一种主动防护的网络安全技术,有效扩展了系统维护人员的安全管理能力,例如
11、安全审计、监视、攻击识别和响应的能力。通过利用入侵检测系统,可以有效地防止或减轻来自网络的威胁,它已经成为防火墙之后的又一道安全屏障,并在各种不同的环境中发挥关键作用。从实验室原型研究到推出商业化产品、走向市场并获得广泛认同,入侵检测走过了20多年的历程。 l 概念提出1980年4月,JnamesP.Aderson为美国空军做了一份题为“Computer Security ThreatMonitoring and Sureillance”(计算机安全威胁监控与监视)的技术报告,第一次详细的阐述了入侵检测的概念。他提出了一种对计算机系统风险和威胁的分类方法,并将威胁分为了外部渗透、内部渗透和不法
12、行为三种,还提出了利用审计跟踪数据监视入侵活动的思想。这份报告被公认为是入侵检测的开山之作。 l 模型的发展1984年-1986年,乔治敦大学的Dorothy Denning和SRI/CSL(SRI公司计算机科学实验室)的Peter Neumann研究出了一种实时入侵检测系统模型,取名为IDES(入侵检测专家系统)。 该模型独立于特定的系统平台、应用环境、系统弱点以及入侵类型,为构建入侵系统提供了一个通用的框架。 1988年,SRI/CSL的Teresa Lunt等改进了Denning的入侵检测模型,并研发出了实际的IDES。 1990年时入侵检测系统发展史上十分重要的一年。这一年,加州大学戴
13、维斯分校的L.T.Heberlein等开发出了NSM(Network Security Monitor)。该系统第一次直接将网络作为审计数据的来源,因而可以在不将审计数计转化成统一的格式情况下监控异种主机。同时两大阵营正式形成:基于网络的IDS和基于主机的IDS。 1988年的莫里斯蠕虫事件发生后,网络安全才真正引起各方重视。美国空军、国家安全局和能源部共同资助空军密码支持中心、劳伦斯利弗摩尔国家实验室、加州大学戴维斯分校、Haystack实验室,开展对分布式入侵检测系统(DIDS)的研究,将基于主机和基于网络的检测方法集成到一起。 l 技术的进步从20世纪90年代到现在,入侵检测系统的研发呈
14、现出百家争鸣的繁荣局面,并在智能化和分布式两个方向取得了长足的进展。目前,SRI/CSL、普渡大学、加州戴维斯分校、洛斯阿拉莫斯国家实验室、哥伦比亚大学、新墨西哥大学等机构在这些方面代表了当前的最高水平。我国也有多家企业通过最初的技术引进,逐渐发展成自主研发。2.2 入侵检测系统分类基于主机IDS部署在单主机上,利用操作系统产生的日志记录作为主要信息源,通过对其进行审计,检测入侵行为。基于主机IDS不对网络数据包或扫描配置进行检查,而是对系统日志提供的大量数据进行整理。早期的系统多为基于主机的,主要用来检测内部网络的入侵攻击。后来用分布主机代理来实现。其主要优点:信息源(0S日志记录)完备。系
15、统产生的日志是归类有序的。它准确记录了每个用户的行为序列,这样便可以精确监控每个用户的行为。同时也使得IDS对信息源的处理简单、一致。对某些特定的攻击十分有效。比如,审计日志能够显示出由缓冲区溢出攻击引起的优先级转移的情况,从而能够有效的检测缓冲区溢出攻击。其主要缺点:1)由于它通常作为用户进程运行,依赖于具体的操作系统底层的支持,与系统的体系结构有关,所以它无法了解发生在下层协议的入侵活动;2)熟练的入侵者往往可以进入系统修改、删除有关的日志记录,从而隐藏入侵迹象;3)HIDS位于所监视的每一个主机中,故占用的资源不能太多,从而大大制了所采用的检测方法及处理性能。基于网络的IDS最早出现于1
16、990年。它主要用于防御外部入侵攻击。它通过监控出入网络的通信数据流,依据一定规则对数据流的内容进行分析,从而发现协议攻击、运行已知黑客程序的企图和可能破坏安全策略的特征,做出入侵攻击判断。为了能够捕获入侵攻击行为,基于网络IDS必须位于能够看到所以数据包的位置,这包括:环网内部、安全网络中紧随防火墙之后以及其它子网的路由器或网关之后。最佳位置便是位于Internet到内部网络的接入点。但是,同一子网的2个节点之间交换数据报文并且交换数据报文不经过IDS,那么IDS可能就会忽略这些攻击。基于网络IDS的主要优点:1)由于NIDS直接收集网络数据包,而网络协议是标准的。因此,NIDS如目标系统的
17、体系结构无关,可用于监视结构不同的各类系统;2)NIDS使用原始网络数据包进行检测,因此它所收集的审计数据被篡改的可能性很小,而且它不影响被保护系统的性能;3)NIDS利用工作在混杂模式下的网卡实时监视和分析所有的通过共享式网络的传输,能够实时得到目标系统与外界交互的所有信息,包括一些隐蔽的端口扫描和没有成功的入侵尝试。基于网络IDS的主要缺点:1)缺乏终端系统对待定数据的处理方法等信息,使得从原始的数据包中重构应用层信息很困难。因此,NIDS难以检测发生在应用层的攻击;而对于加密传输方式进行的入侵,NIDS也无能为力;2)NIDS只检查它直接连接网段的通信,不能检测到不同网段的网络包,因此在
18、交换式局域网中,它难以获得不同交换端口的网络信息:3)网络流的数据量大,NIDS必须对数据帧进行解码才能了解其中的含义。因此,NIDS的数据处理量大,而造成处理能力不足。2.3 入侵检测技术 异常检测异常检测的假设是入侵者活动异常于正常主体的活动。根据这一理念建立主体正常活动的“活动简档”,将当前主体的活动状况与“活动简档”相比较,当违反其统计规律时,认为该活动可能是“入侵”行为。异常检测的难题在于如何建立“活动简档”以及如何设计统计算法,从而不把正常的操作作为“入侵”或忽略真正的“入侵”行为。特征检测特征检测这一检测假设入侵者活动可以用一种模式来表示,系统的目标是检测主体活动是否符合这些模式
19、。它可以将已有的入侵方法检查出来,但对新的入侵方法无能为力。其难点在于如何设计模式既能够表达“入侵”现象又不会将正常的活动包含进来。2.4 入侵检测系统主流产品近年来,国内外不少厂家生产了自己的入侵检测产品。这些产品己经得到了广泛的应用,下面简要介绍一下国内外的一些产品。1)Cisco公司的Cisco Secure IDSCisco Secure IDS以前被称为NetRanger,该产品由控制器(Director)、感应器(Sensor)和入侵检测模块IDSM(Intrusion Detection System Module)三大组成部分组成。感应器分为网络感应器(NIDS)和主机感应器(
20、HIDS)两部分,分别负责对网络信息和主机信息的收集和分析处理。控制器用于对系统进行控制和管理。Cisco Secure IDS的另一个强项是其在检测时不仅观察单个包的内容,而且还要看上下文,即从多个包中得到线索。Cisco Secure IDS是目前市场上基于网络的入侵检测系统中经受实践考验最多的产品之一。2)ISS RealSecureISS是最早将基于主机和基于网络的入侵检测系统完全集成到一个统一的管理框架中的供应商之一。 ISS RealSecure具有方便的管理控制台,其服务器和网络感应器近几年也取得了很快的发展。RealSecure采用分布式的体系结构、系统分为两层:感应器和管理器
21、。感应器包括网络感应器、服务感应器和系统感应器三类。网络感应器主要是对网络数据的分析检测,服务感应器主要是负责对系统日志和系统文件信息的检测。管理器包括控制台、事件收集器、事件数据库和告警数据库四个部分。3)“冰之眼”网络入侵检测系统“冰之眼”网络入侵检测系统是绿盟科技开发的网络入侵检测产品。具有IP碎片重组能力,同时具有基于特征和异常两种检测模式,能够提供多种入侵保护方式,并能与多种防火墙进行联动。全自动在线升级系统使其能够和绿盟主站点保持规则库的同步更新。4)开源入侵检测系统SnortSnort是以开放源代码(Open Source)形式发行的一个高性能、跨平台的轻量级网络入侵检测系统,在
22、网络安全方面有着极高的地位,并且应用十分广泛。在世界著名的专业安全网站进行的2006年网络安全工具Topl00评选中,Snort名列三甲,而在入侵检测一类中,更是头名状元。2.5 入侵检测技术发展趋势入侵检测技术在不断地发展更新,近年来入侵检测技术沿着以下几个方向发展:1)分布式入侵检测。为了躲避检测,越来越多的攻击者采用分布式协同的方式发起攻击,传统的IDS局限于单一的主机或网络架构,对异构系统及大规模的网络检测明显不足,不同的系统之间不能协同工作。为解决这一问题,需要发展分布式入侵检测技术与通用入侵检测架构。2)智能化入侵检测。入侵方法越来越多样化与综合化,尽管已经
23、有智能代理、神经网络与遗传算法在入侵检测领域应用研究,但这只是一些尝试性的研究工作,需要对智能化的IDS加以进一步的研究以解决其自学习与自适应能力。3)应用层入侵检测。许多入侵活动的含义只有在应用层才能理解。但传统方法很少涉及到应用层,使得一些应用系统内的入侵活动难以检测,所以需要开发应用层的入侵检测技术。4)全面的安全防御方案。即使用安全工程风险管理的思想与方法来处理网络安全问题,将网络安全作为一个整体工程来处理。从管理、网络结构、加密通道、防火墙、病毒防护、入侵检测多方位全面对所关注的网络作全面的评估,然后提出可行的全面解决方案。3 网络入侵检测系统(Snort)研究3.1 Snort特点
24、Snort是一个以开放源代码形式发行的一个功能强大、跨平台、轻量级的网络入侵检测系统,最初由 Martin Roesch编写,并由遍布世界各地的众多程序员共同维护和升级。它利用Libpcap从网络中采集数据并进行分析,从而判断是否存在可疑的网络活动;就检测模式而言,它基本上是基于误用检测技术,对数据进行最直接最简单的搜索匹配。虽然Snort是一个轻量级的入侵检测系统,但是它的功能却非常强大,其特点如下:1)Snort代码短小,简洁,而且移植性非常好。目前支持Linux系列,Solaris,BSD系列,IRIX,HP-UNIX,Windows系列等。2)Snort具有实时流量分析和日志IP网络数
25、据包的能力。能够快速检测网络攻击,及时发出警报。它提供的警报方式很多,比如Syslog,Unixsocket,WinPopup等。3)Snort能够进行协议分析,内容的匹配和搜索。现在它能够分析的协议有TCP、UDP、和ICMP。将来可以支持更多IPX、RIP、OSPF等。它能检测多种方式的攻击和探测。4)Snort具有灵活的日志格式。支持Tcpdump的二进制格式,也支持ASCll字符形式,也支持XML格式的,使用数据库输出插件,还支持数据库日志格式。当前支持的数据库有Postagresql、Mysql,任何UnixODBC、Microsoft SQL Server、Oracle等。5)使用
26、TCP流插件,Snort可以对TCP包进行重组。这种能力使得Snort可以对抗“无状态”攻击。无状态攻击是指攻击者每次只发送一个字节的数据包,逃过监视,然后被攻击主机的TCP栈会重新组合这些数据包,将攻击数据发送给目标端口上监听的进程,从而摆脱IDS的检测。6)使用Spade (Statistical Packet Anomaly Detection Engine)插件,Snort能够报告异常的数据包,从而对端口进行有效的检测。7)Snort还具有很强的系统防护能力。使用IPTables,IPFilter插件可以使入侵检测主机和防火墙联动,通过FlexResp功能,Snort能够命令防火墙断开
27、恶意连接。8)扩展性好,对于新的攻击威胁反应迅速。Snort采用了一种简单的规则描述语言,最基本的规则知识包含四个域:处理动作、协议、方向、端口。可以对新的攻击迅速建立规则表。9)Snort支持插件,可以使用具有特定功能的报告,检测子系统插件对其进行功能扩展。当前支持的插件有:数据库日志输出插件、破碎包检测插件、端口扫描检测插件、HttpURL插件、XML网页生成插件等。3.2 Snort的体系结构图3-1 Snort的体系结构1)Sniffer(数据包嗅探器)该子系统的功能是捕获网络数据包并按照TCP/IP协议的不同层次将数据包进行解析。Snort利用libpcaP库函数进行数据采集,该库函
28、数可以为应用程序提供直接从链路层捕获数据包的接口函数,并可以设置数据包的过滤器来捕获指定的数据。网络数据采集和解析机制是整个NIDS实现的基础,其中关键的是要保证高速和较低的丢包率,这不仅仅取决于软件的效率还同硬件的处理能力相关。对于解析机制来说,能够处理数据包的类型的多样性也同样非常重要,目前,Snort可以处理以太网,令牌环以及SLIP等多种类型的包。2)预处理器Snort的预处理器是介于数据包嗅探器与检测引擎之间的可插入模块,它的主要思想是在数据包送到Snort的检测引擎之前提供一个报警、丢弃数据包或修改数据包的框架。3)检测引擎检测引擎是Snort的核心。Snort根据规则库对预处理器
29、送来的数据包进行匹配检测。为了能够快速而准确地进行检测,Snort用链表的形式对规则进行组织。检测引擎的主要性能指标是快速和准确。为了达到快速的目的,要求Snort的规则链表要进行分类和组织结构优化。为了达到准确的目的,要求规则的提取十分准确,并且编写十分精确和简洁的规则。检测引擎是Snort的核心,准确和快速是衡量其性能的重要指标。准确性主要取决于对入侵行为特征码提取的精确性和规则编写的简洁实用性,由于网络入侵检测系统是被动防御的,只能被动的检测流经本网络的数据,而不能主动发送数据包去探测。所以只有将入侵行为的特征码归结为协议的不同字段的特征值,通过检测该特征值来决定入侵行为是否发生。快速性
30、主要取决于引擎的组织结构,是否能够快速地进行规则匹配。4)报警日志检测引擎检查后的Snort数据需要以某种方式输出。Snort对每个被检测的数据包都定义了如下的三种处理方式;alert(发送报警信息)、log(记录该数据包)和pass(忽略该数据句)。这些处理方式其实是具体定义在检测规则中的,具体的完成是在日志/报警子系统中。日志子系统允许将嗅探器收集到的信息以可读的格式或以tcpdump格式记录下来。报警子系统负责将报警信息发送到syslog、用户指定的文件、Unix套接字或数据库中。3.3 Snort入侵检测流程基于规则的模式匹配是Snort检测机制的核心。Snort的入侵检测流程分两大步
31、:第一步是规则的解析流程,包括从规则文件中读取规则和在内存中组织规则;第二步是使用这些规则进行匹配的规则匹配流程。下面将依次介绍入侵检测的流程:规则解析流程Snort首先读取规则文件,紧接着依次读取每一条规则。然后按照规则语法对其进行解析,在内存中对规则进行组织,建立规则语法树。Snort程序调用规则文件读取函数ParseRulesFile()进行规则文件的检查、规则读取和多行规则的整理。ParseRulesFile()只是Snort进入规则解析的接口函数,规则解析主要由ParseRule()来完成。ParseRule()解析每一条规则,并将其加入到规则链表中。parseRule()的流程如图
32、3-2所示。图3-2规则解析流程ParseRule()函数通过调用RuleType()函数提取规则类型,如果规则类型是Pass、fog、alert、activate、dynamic类型,那么就将规则按照规则语法结构进行解析。首先调用proeessHeadNode()处理规则头,再调用proeessRuleoption()处理规则选项。如果提取的类型是预处理插件关键字PreProcess、输出插件关键字output、配置命令config、变量定义var等则调用相应的函数进行处理,处理后跳出本条规则解析,进行下一条规则解析。规则匹配流程Snort对从网络上捕获的每一条报文和规则语法树进行扫描匹配,
33、首先按照默认的顺序遍历activation、dynamic、alert、pass、log的规则子树。然后根据报文的IP地址和端口号,在规则头链表中找到相对应的规则头。最后,将这条数据报文匹配规则头附带的规则选项组织为链表。首先匹配第一个规则选项,如果匹配,则按照这条规则所定义的规则行为做出相应的处理结果。如果不匹配,接着匹配下一个规则选项。若数据报文与规则选项列表中所有的规则都不匹配,则说明此条数据报文不包含入侵行为的特征。Snort规则匹配总体流程如图3-3所示。图3-3 Snort规则匹配总体流程3.4 Snort的规则结构Snort的规则保存在规则文件中。规则文件是普通的文本文件,我们可
34、以方便地对其进行编辑。规则文件是Snort的攻击知识库,每条规则包含一种攻击的标识,Snort通过这些标识来识别各种攻击行为。Snort规则可以划分为两个逻辑部分。如图3-4所示:规则头规则头包含报文关键的地址信息、协议信息以及当报文符合此规则时各元素应该采取的行为。Snort规则头部的主要结构如图3-5所示:1)规则动作规则的第一个字段就是规则动作,规则动作告诉Snort在规则匹配成功时要做什么。Snort中定义了五种可选的动作:alert、log、pass、activate和dynamic。Alert:使用选择的报警方法生成一个警报,并记录该报文。Log:使用设定的记录方法记录这个报文。P
35、ass:忽略这个报文。Activate:进行报警,然后激活另一条dynamic规则。Dynamic:等待被一个activate规则激活,然后进行log。此外,如果想对某些规则使用特定的输出插件,而不是默认的输出方式,这时可以自己定义所需的规则类型。2)协议字段规则的下一字段是协议类型。Snort当前能够分析的协议有四种:TCP、UDP、ICMP和IP。将来会更多,例如IGRP、OSPF、IPX和RIP等。3)地址字段端口号可以用几种方法表示,包括“any”、静态定义范围、以及通过否定操作符“!”。键值“any”可以被用来定义任何地址。Snort没有提供根据iP地址查询域名的机制。地址就是由直接
36、的数字型iP地址和一个cidr块组成的。Cidr块指示作用在规则地址和需要检查的进入的任何包的网络掩码。/24表示C类网络,/16表示B类网络,/32表示一个特定的机器的地址。例如,/24代表从到55的地址块。在这个地址范围的任何地址都匹配使用这个/24标志的规则。这种记法给我们提供了一个很好的方法,来表示一个很大的地址空间。4)端口信息端口号可以用几种方法表示,包括“any”端口、静态端口定义范围、以及通过否定操作符“!”。“any”端口是一个通配符,表示任何端口。静态端定义表示一个单个端口号,例如,21
37、表示tcp,23表示telnet,80表示http等等,端口范围用范围操作符“:”表示。5)方向操作符方向操作符“一”表示规则所施加的流的方向。方向操作符左侧的地址和端口号被认为来自源主机,方向操作符右边的ip地址和端口信息是目标主机。还有一个双向操作符“”,它告诉Snort把地址/端口号对既作为源又作为目标来考虑,这对于记录/分析双向数据流很方便。规则选项 规则头定义了规则的动作、所匹配网络报文的协议、源地址、目的地址、源端口以及目标端口等信息;规则选项部分则包含了所要显示给用户查看的警告信息以及用来判定此报文是否为攻击报文的其它信息。对规则选项的分析是Snort检测引擎的核心,规则选项是在
38、规则头的基础上作进一步分析,它包含报警信息、入侵特征以及该特征在数据包位置的相关信息。有了规则选项才能识别复杂的攻击。所有选项用分号“;”分隔,选项关键字和它的值之间用冒号“:”分隔。规则选项之间是逻辑与的关系。即所有的规则选项都匹配时,才触发该规则。Snort目前有四十几个选项关键字,按其功能可分为八类:1)关于报警信息的选项关键字:msg、referenee、sid、rev、classtype、priority。2)关于内容检测的选项关键字:content、nocase、rawbytes、depth、offset、distance、within、urieontent、isdataat、pc
39、re、byte-test、byte_jump、ftpbounce、regex、content-list。3)关于正协议的选项关键字:fragoffset、ttl、tos、id、ipopts、fragbits、dsize、sameip、ip_proto。4)关于TCP协议的选项关键字:flags、flow、flowbits、seq、ack、window。5)关于ICMP协议的选项关键字:itype、icode、icmp_id、icmp_seq。6)关于规则响应后的选项关键字:logto、session、resp、react、tag。4 网络入侵检测系统(Snort)实验4.1实验平台的搭建1)实
40、验软件:(1)Microsoft virtual pc虚拟机(2)windows server 2003镜像文件(3)网络数据包截取驱动程序WinPcap_4_1_2.zip(4)Windows 版本的Snort 安装包Snort_2_9_0_5_Installer.exe(5)Windows 版本的Apache Web 服务器apache_2.2.4-win32-x86-no_ssl.zip(6)Windows版本的PHP脚本环境支持php-5.2.5-Win32.zip(7)Windows 版本的Mysql 数据库服务器mysql-5.0.22-win32.zip(8)ACID(Analy
41、sis Console for Intrusion Databases)基于PHP的入侵检测数据库分析控制台acid-0.9.6b23.tar.gz(9)Adodb(Active Data Objects Data Base)PHP库adodb504.tgz(10)PHP图形库jpgraph-2.3.tar.gz(11)snort 规则包rules20090505.tar.gz2)安装步骤:(1)虚拟机和操作系统的安装:运行虚拟机安装程序,默认安装即可,打开控制台,新建一个虚拟机,按照提示具体填写,选择镜像文件,启动,安装好镜像系统后,效果如下:图4-1 虚拟机(2)组件的安装:在c:下建立d
42、uoduo的文件夹,再在其下建立duo的文件夹放入所有的安装程序,在后续的安装时,把可以选择安装路径的组件安装在duoduo的文件夹下安装WinPcap运行WinPcap_4_1_2.zip,默认安装。安装mysql运行mysql-5.0.22-win32.zip,选择自定义安装选择安装路径C:duoaduomysql下,安装时注意:端口设置为3306(以后要用到),密码本实验设置成123,图4-2 配置端口图4-3 配置密码添加环境变量:图4-4 配置环境变量安装apache运行apache_2.2.4-win32-x86-no_ssl.zip安装到c:duoaduoapache下面安装ph
43、p:解压php-5.2.5-Win32到c:duoaduophp添加gd图形库支持复制c:duoaduophpphp5ts.dll和c: duoaduophplibmysql.dll文件到%systemroot%system32查询本机的%systemroot%图4-5 查询机的%systemroot%复制c: duoaduophpphp.ini-dist到%systemroot%并重命名为php.ini,修改php.ini,分别去掉“extension=php_gd2.dll”和“extension=php_mysql.dll”前的分号,图4-6 配置php.Ini(1)并指定extensi
44、on_dir=c:duoaduophpext,图4-7配置php.Ini(2)同时复制c:duoaduophpext下的php_gd2.dll与php_mysql.dll到%systemroot%system32在C:duoaduoapacheconfhttpd.conf中添加LoadModule php5_module c:/duoaduo/php/php5apache2_2.dll和AddType application/x-httpd-php .php,AddType application/x-httpd-php-source .phps图4-8 配置httpd.conf重启Apach
45、e服务在C:duoaduoapachehtdocs目录下新建webinf.php(文件内容为:)并使用 访问测试是否能够显示当前Apache服务器的信息,如果能够显示表明Apache和php工作基本正常图4-9 正确运行Apache和php但是如果显示图4-10 错误信息原因是 addtype 的那两句话有错误,检查修改就可以了 安装Snort运行Snort_2_9_0_5_Installer.exe安装在C:duoaduoSnort下即可,运行C:duoaduoSnortbinsnort.exe或者在DOS中找到该位置,如果安装 Snort成功会出现一个可爱的小猪图4-11 Snort运行正
46、常并按照以下修改C:duoaduoSnortetcsnort.conf文件:var RULE_PATH c:duoaduosnortrulesinclude classification.configinclude reference.config修改为绝对路径:include c:duoaduosnortetcclassification.configinclude c:duoaduosnortetcreference.config在该文件的最后加入下面语句:output database: alert, mysql, host=localhost user=root password=12
47、3 dbname=snort encoding=hex detail=full创建 snort 数据库的表 复制 c:duoaduosnortschames 文件夹下的create_mysql 文件到C:duoaduomysqlbin文件夹下 打开 mysql 的的客户端执行如下命令 Create database snort; Create database snort_archive; Use snort; Source create_mysql; Use snort_archive; Source create_mysql; Grant all on *.* to “root”local
48、host” 加入 php 对 mysql 的支持: 修改 c:windowsphp.ini 文件去掉 extension=php_mysql.dll 前的分号。 复制c:duoaduophpext 文件夹下的 php_mysql.dll 文件到 c:windows 文件夹。复制c:duoaduophplibmysql.dll文件到c:windowssystem32下安装 adodb 解压缩 adodb 到 c:idsphp5adodb 文件夹下。安装 jgraph 解压缩 jpgraph 到 c:duoaduophpjpgraph 文件夹下安装 acid 解压缩 acid 到 cduoaduo
49、apachehtdocsacid 文件夹下修改 acid_conf.php 文件 为以下内容 $DBlib_path=c:duoaduophpadodb; $DBtype=mysql; $alert_dbname =snort; $alert_host = localhost; $alert_port =3306; $alert_user=root; $alert_password=123; $archive_dbname=snort_archive; $archive_host=localhost; $archive_port=3306; $archive_user=root; $archi
50、ve_password=123; $ChartLib_path=c:duoaduophpjpgraphsrc;重启apache、mysql服务在浏览器中初始化acid数据库: http:/localhost/acid/acid_db_setup.php以上配置正确会有下面的显示:图4-12 正确配置acid安装成功,测试一下:启动Apache和mysql服务运行ACID:打开浏览器,地址为。如果有下图所示,则表示ACID安装成功。图4-13正确安装acid运行c:duoaduosnortbinsnort -c c:duoaduosnortetcsnort.conf -l c:duoaduosnortlog -vdeX -X 参数用于在数据链接层记录raw packet 数据 -d 参数记录应用层的数据 -e 参数显示记录第二层报文头数据 -c 参数用以指定snort 的配置文件的路径 -v 参数用于在屏幕上显示被抓到的包图4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度互联网金融借贷平台运营合同
- 2024年度新能源电动车生产与销售合同协议书
- 2024年度大蒜进出口贸易合同
- 2024年度搬运工知识产权保护合同
- 2024年度委托加工合同:某食品公司与某加工厂关于食品加工的委托合同
- 《前厅服务礼仪培训》课件
- 2024年度出租车公司车辆维修服务合同
- 2024年度品牌授权合同标准范本
- 2024年度农产品购销:大蒜交易合同
- 2024年度技术服务合同:阿里云计算有限公司为某市政府提供智慧城市解决方案
- 中介效应检验方法
- 江苏省2023-2024学年六年级上学期数学高频易错期末考前预测卷(苏教版)
- 电气维修案例分析
- 流行性传染病预防应急预案
- 家长进课堂-能源的故事课件
- 1.1.1慢阻肺练习卷附答案
- (2023年度)中央厨房、集体供餐配送单位食品安全全项目自查记录表
- 餐饮环境的灭鼠和杀虫措施
- 金融理论与实务第六章
- 氨水和氨水的应用
- 《人类简史》从动物到上帝读书分享
评论
0/150
提交评论