局域网安全的攻防测试与分析.doc_第1页
局域网安全的攻防测试与分析.doc_第2页
局域网安全的攻防测试与分析.doc_第3页
局域网安全的攻防测试与分析.doc_第4页
局域网安全的攻防测试与分析.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

目录第一章 绪论- 1 -1.1什么是局域网- 1 -1.2局域网的现有拓扑结构- 1 -1.2.1. 星型结构- 1 -1.2.2. 环型结构- 2 -1.2.3. 总线型结构- 2 -1.2.4. 混合型拓扑结构- 3 -1.3什么是内网- 3 -1.3.1内网与外网的区别- 3 -1.3.2如何检测公网和内网- 3 -第二章 测试局域网网络攻击的手段- 5 -2.1 局域网网络技术的分类- 5 -2.2Snort 简介- 5 -2.3 SNORT警报检测及输出- 6 -2.3.1检测引擎- 6 -2.32预处理器- 7 -2.3.3检测结果的输出- 8 -第三章 局域网策略分析工具的研究- 9 -3.1 策略分析的意义- 9 -3.2警报关联的框架结构- 9 -3.2.1 理论基础- 10 -第四章 攻击的测试与分析- 20 -第五章总结- 26 -参考文献- 27 -致谢- 28 -插图清单图3-1攻击策略示例- 9 -图3-2系统框架图- 15 -图3-3Agent 警报获取流程图- 15 -图3-4Agent 应答请求流程- 16 -图3-5 TIAA 警报请求流程- 17 -图3-6 TIAA接收警报流程- 18 -图3-7分析效果图- 19 -图4-8攻击顺序示例1- 23 -图4- 9示例2- 24 -图4-10阻止IP攻击的攻击策略示例- 25 -摘 要 随着计算机网络的不断发展和普及,计算机网络带来了无穷的资源,但随之而来的网络安全问题也显得尤为重要,局域网内的安全问题引起了我们的重视,局域网内网的安全隐患给我们带来了许多麻烦,来自网络内部的计算机客户端的安全威胁缺乏必要的安全管理措施,安全威胁较大。未经授权的网络设备或用户就可能通过到局域网的网络设备自动进入网络,形成极大的安全隐患。本文就局域网的安全攻防的检测和分析,是层次化、集成化和智能化的测试和分析系统。采用分布式体系结构,应用集成防卫的理论和技术,建立策略数据库,提供智能的检测和分析机制,通过对信息数据的统计分析,实现对完了安全的综合管理。本文主要对IPv6局域网攻防原理、分类、危害进行阐述,再对两种具体的攻击:扫描攻击和阻止IP攻击,进行了原理分析,然后设计并实现两个Snort预处理器分别对着两种攻击进行攻击检测分析。本文使用一种实时警报分析框架(实时TIAA系统)通过预先学习的关联关系对Snort产生的警报进行匹配和关联,从而在海量警报中找到属于同一攻击序列的警报,并显示图形化分析结果。关键词:LAN;攻击;数据库; TIAA系统;SnortAbstract With the continuous development of computer networks and the popularity of computer networks brings endless resources, but the attendant problem of network security is particularly important, LAN security issues brought to our attention, LAN network security risks brought us a lot of trouble, from the client computer within the network security threats lack the necessary safety measures, security, a greater threat. Unauthorized network devices or the user may be through to the LAN network devices automatically enter the network, forming a great security risk. In this paper, LAN security detection and analysis of attack and defense, is hierarchical, integrated and intelligent detection and analysis system. A distributed architecture, application integration theory and defense technology, a policy database, providing intelligent mechanisms for detection and analysis, information data through statistical analysis, to achieve the integrated management of over safety. This paper focuses on IPv6 LAN offensive and defensive principles, classification, hazards described, and then on two specific attacks: IP scan attacks and prevent attacks, carried out the principle analysis, then design and implement Snort preprocessor were two attacks against two Detection of an attack. This article uses a real-time alarm analysis framework (real-time TIAA system) through pre-association study of Snort alerts generated and associated matching, resulting in massive attacks on alert to find the same sequence of alerts, and displays the results graphically Germany. Keywords: LAN; warning of attack; database architecture; TIAA; Snort Attack铜陵学院毕业论文第一章 绪论1.1什么是局域网 局域网(Local Area Network),简称LAN,是指在某一区域内由多台计算机互联成的计算机组。“某一区域”指的是同一办公室、同一建筑物、同一公司和同一学校等,一般是方圆几千米以内。局域网可以实现文件管理、应用软件共享、打印机共享、(扫描仪共享(注:扫描仪不能共享))工作组内的日程安排、电子邮件和传真通信服务等功能。局域网是封闭型的,可以由办公室内的两台计算机组成,也可以由一个公司内的上千台计算机组成。 1.2局域网的现有拓扑结构 网络中的计算机等设备要实现互联,就需要以一定的结构方式进行连接,这种连接方式就叫做“拓扑结构”,通俗地讲这些网络设备如何连接在一起的。目前常见的网络拓扑结构主要有以下四大类:1.2 .1. 星型结构这种结构是目前在局域网中应用得最为普遍的一种,在企业网络中几乎都是采用这一方式。星型网络几乎是Ethernet(以太网)网络专用,它是因网络中的各工作站节点设备通过一个网络集中设备(如集线器或者交换机)连接在一起,各节点呈星状分布而得名。这类网络目前用的最多的传输介质是双绞线,如常见的五类线、超五类双绞线等。 这种拓扑结构网络的基本特点主要有如下几点: (1)容易实现:它所采用的传输介质一般都是采用通用的双绞线,这种传输介质相对来说比较便宜,如目前正品五类双绞线每米也仅1.5元左右,而同轴电缆最便宜的也要2.00元左右一米,光缆那更不用说了。这种拓扑结构主要应用于IEEE 802.2、IEEE 802.3标准的以太局域网中; (2)节点扩展、移动方便:节点扩展时只需要从集线器或交换机等集中设备中拉一条线即可,而要移动一个节点只需要把相应节点设备移到新节点即可,而不会像环型网络那样“牵其一而动全局”; (3)维护容易;一个节点出现故障不会影响其它节点的连接,可任意拆走故障节点; (4)采用广播信息传送方式:任何一个节点发送信息在整个网中的节点都可以收到,这在网络方面存在一定的隐患,但这在局域网中使用影响不大; (5)网络传输数据快:这一点可以从目前最新的1000Mbps到10G以太网接入速度可以看出。其实它的主要特点远不止这些,但因为后面我们还要具体讲一下各类网络接入设备,而网络的特点主要是受这些设备的特点来制约的,所以其它一些方面的特点等我们在后面讲到相应网络设备时再补充。1.2.2. 环型结构这种结构的网络形式主要应用于令牌网中,在这种网络结构中各设备是直接通过电缆来串接的,最后形成一个闭环,整个网络发送的信息就是在这个环中传递,通常把这类网络称之为“令牌环网”。实际上大多数情况下这种拓扑结构的网络不会是所有计算机真的要连接成物理上的环型,一般情况下,环的两端是通过一个阻抗匹配器来实现环的封闭的,因为在实际组网过程中因地理位置的限制不方便真的做到环的两端物理连接。 这种拓扑结构的网络主要有如下几个特点:(1)这种网络结构一般仅适用于IEEE 802.5的令牌网(Token ring network),在这种网络中,“令牌”是在环型连接中依次传递。所用的传输介质一般是同轴电缆。 (2)这种网络实现也非常简单,投资最小。可以从其网络结构示意图中看出,组成这个网络除了各工作站就是传输介质-同轴电缆,以及一些连接器材,没有价格昂贵的节点集中设备,如集线器和交换机。但也正因为这样,所以这种网络所能实现的功能最为简单,仅能当作一般的文件服务模式; (3)传输速度较快:在令牌网中允许有16Mbps的传输速度,它比普通的10Mbps以太网要快许多。当然随着以太网的广泛应用和以太网技术的发展,以太网的速度也得到了极大提高,目前普遍都能提供100Mbps的网速,远比16Mbps要高。 (4)维护困难:从其网络结构可以看到,整个网络各节点间是直接串联,这样任何一个节点出了故障都会造成整个网络的中断、瘫痪,维护起来非常不便。另一方面因为同轴电缆所采用的是插针式的接触方式,所以非常容易造成接触不良,网络中断,而且这样查找起来非常困难,这一点相信维护过这种网络的人都会深有体会。 (5)扩展性能差:也是因为它的环型结构,决定了它的扩展性能远不如星型结构的好,如果要新添加或移动节点,就必须中断整个网络,在环的两端作好连接器才能连接。 1.2.3. 总线型结构 这种网络拓扑结构中所有设备都直接与总线相连,它所采用的介质一般也是同轴电缆(包括粗缆和细缆),不过现在也有采用光缆作为总线型传输介质的,如后面我们将要讲的ATM网、Cable Modem所采用的网络等都属于总线型网络结构。这种结构具有以下几个方面的特点: (1)组网费用低:从示意图可以这样的结构根本不需要另外的互联设备,是直接通过一条总线进行连接,所以组网费用较低; (2)这种网络因为各节点是共用总线带宽的,所以在传输速度上会随着接入网络的用户的增多而下降; (3)网络用户扩展较灵活:需要扩展用户时只需要添加一个接线器即可,但所能连接的用户数量有限; (4)维护较容易:单个节点失效不影响整个网络的正常通信。但是如果总线一断,则整个网络或者相应主干网段就断了。 (5)这种网络拓扑结构的缺点是一次仅能一个端用户发送数据,其它端用户必须等待到获得发送权。1.2.4. 混合型拓扑结构 这种网络拓扑结构是由前面所讲的星型结构和总线型结构的网络结合在一起的网络结构,这样的拓扑结构更能满足较大网络的拓展,解决星型网络在传输距离上的局限,而同时又解决了总线型网络在连接用户数量的限制。这种网络拓扑结构同时兼顾了星型网与总线型网络的优点,在缺点方面得到了一定的弥补。 1.3什么是内网 内网就是局域网,网吧、校园网、单位办公网都属于此类。另外光纤到楼、小区宽带、教育网、有线电视Cable Modem上网虽然地域范围比较大但本质上还是基于以太网技术,所以仍然属于内网。 内网接入方式:上网的计算机得到的IP地址是Inetnet上的保留地址,保留地址有如下3种形式: 10.x.x.x 172.16.x.x至172.31.x.x 192.168.x.x 内网的计算机以NAT(网络地址转换)协议,通过一个公共的网关访问Internet。内网的计算机可向Internet上的其他计算机发送连接请求,但Internet上其他的计算机无法向内网的计算机发送连接请求。 公网接入方式:上网的计算机得到的IP地址是Inetnet上的非保留地址。 公网的计算机和Internet上的其他计算机可随意互相访问。 1.3.1内网与外网的区别内网指的是局域网.几台或者几十台电脑之间互访 外网指的是我们上的internet网络 内网也叫私网地址如下: IP等级 IP位置 Class A 10.0.0.0-10.255.255.255 Class B 172.16.0.0-172.31.255.255 Class C 192.168.0.0-192.168.255.255 子网掩码一般设为:255.255.255.0 内网是可以上网的.内网需要一台服务器或路由器做网关,通过它来上网 做网关的服务器有一个公网IP,其它内网电脑的IP可根据它来随意设置,前提是IP前三个数要跟它一样,第四个可从0-255中任选但要跟服务器的IP不同1.3.2如何检测公网和内网请用上面介绍的查看IP地址的办法,检查一下您的电脑里有没有这个IP地址。如果有,您就是通过公网接入Internet,否则,就是通过内网接入Internet。 请注意: 1、如果您的浏览器里设置了使用代理服务器,请清除代理服务器设置,并刷新本页面,之后再检测。 2、有些学校或大型的机关单位虽然分配公网IP给用户,但学校或单位为了安全起见,会封闭校外对校内的访问请求。这部分用户虽然有公网IP地址,但依然要用内网动态域名来建网站。如果您通过校园网或机关单位的网络上网,并检测到自己有公网IP,请您在本机调试好网站后,把防火墙打开,请外网的朋友通过IP地址来访问您的网站。如果能访问,就是公网;如果不能访问,就是内网。 第二章 测试局域网网络攻击的手段2.1 局域网网络技术的分类防御网络攻击的手段有多种,可以大致分为入侵测试系统(IDS,Intrusion Detect System),入侵防护系统(IPS,Intrusion Protection System)以及统一威胁管理(UTM,Unified Threat Management )。IDS 应用于大多数场景中,通过对网络流量的检测,报告攻击行为的发生。IPS提供更加深层的防护,不仅能够发现恶意代码,而且还能够主动地阻止恶意代码的攻击,IPS 与UTM 都是以IDS为基础的,通常都将IDS作为系统的一部分在进行扩展。尽管二者有着很多的优势,但IDS以其容易搭建,耗费低,规模小,灵活等特点,适宜在小型实验网的环境中进行攻击的测试。IDS的设计目的是探测攻击和未授权的使用,并对攻击采取一定的措施予以制止。攻击的测试结果通常称为安全事件。IDS按照功能可以分为三类,网络IDS(NIDS)、主机IDS(HIDS)、分布式IDS(DIDS)。 NIDS 通过监控主机监视整个局域网的流量来测试攻击的发生。监控主机将网卡设置为混乱模式,产生安全事件(即对攻击进行举报)。由于监控主机需要对每个嗅探到的数据报进行分析,受控网络规模越大,网络流量越大,监控主机的负荷越大,对监控主机的运行速度和承载能力要求越高。所以,一般将监控主机部署到关键节点,只对重要节点如文件服务器、DNS等进行监控。在一般的以太网中,简单的将监控主机与受保护主机放置在同一链路中即可进行嗅探。使用智能交换机进行网络的搭建时,则需要进行交换端口的映射。智能交换机将以其他主机IP为目的地址的数据报转发到监控主机所连接的端口,多样要将非监控主机多连接的端口映射到监控主机所连接的端口,以保证监控主机可以嗅探到所以数据报。HIDS是指部署在受保护主机上的入侵测试系统,只对主机进行测试。一般采取的手段有监控系统调用过程、检查系统性能统计信息、检查进程行为、检查系统错误日志等,如LTT等工具就是一种HIDS。HIDS可以设定适合于本主机监控目的的规则。针对不同用途的主机设定不同的规则,使得HIDS与NIDS 相比,规模更小,对机器的性能影响更小。 DIDS 一般采用管理端(controller)、探测器(sensor)结构。Controller包括中央数据库,分析控制模块和通信模块组成。中央数据库管理各sensor 采集的安全事件数据。分析控制模块对中央数据库的信息进行分析处理,给出结果,并依据用户兴趣产生新规则。通信模块负责sensor 与 controller 之间的数据传输。Sensor 可以是HIDS ,也可以是一个NIDS,使用不同手段,遵循不同规则,产生安全事件,并将这些事件提交给controller 。 DIDS 适用于大型网络,通过HIDS 及HIDS的结合,在网络的不同位置进行攻击的采样,集中进行分析处理,从而获得入侵者得攻击策略和意图。所以,DIDS 可以看做更高层的入侵测试系统,更适用于检测多步骤分布式攻击。2.2Snort 简介 Snort是一种典型的NIDS。它耗费资源少,适用于多种平台,如Linux,Solarus,IRIX,HP_UX,windows等。Snort的检测原理是特征匹配,特征使用规则进行定义。当Snort捕获到一个数据报时,对该数据报进行解析,与每个规则定义的值进行匹配,如果匹配成功,则产生报警信息,否则,继续处理其他数据报。Snort通常设置在网络的关键节点。如骨干网入口,或局域网的出口处。Snort包括数据报嗅探器,预处理器,检测引擎,报警输出四个模块。数据报嗅探器负责数据报的获取,是整个工具的入口。预处理模块按照不同的过程,提取数据报的各项元素。继而发现匹配情况执行预定动作。规则使用特定的语法,对测试内容、衡量值、执行动作等进行了简单直接的描述,相对于预处理模块,更加简单。报警输出模块负责将警报信息输出到指定的目的地,如日志、文件、数据库、socket套接口等。预处理器、测试引擎及报警输出模块都是以插件形式实现的。以预处理器为例,增加新的的预处理器,不会妨碍其他插件的运行:对某个预处理器插件的停用,不会影响其他预处理器的运行。Snort使用插件在不同阶段并行执行不同动作,互不干扰。Snort的工作原理为在基于共享网络上测试于是的网络传输数据,通过分析捕获的数据包,主要工作为匹配入侵行为的特征或者从网络活动的角度检测异常。从本质上来说,Snort是基于规则检测的入侵检测工具,即针对每一个规则数据库。其次将捕获的数据报按照规则库逐一匹配,若匹配成功,则认为该入侵行为成立。2.3 SNORT警报检测及输出2.3.1检测引擎检测引擎是Snort的核心模块,通过规则检查数据报来确定是否包含攻击内容。规则由规则头和规则体两部分组成。规则头描述了处理动作(记录或预警)、数据报协议类型(TCP、UDP或者ICMP)、源MAC与目的MAC、源IP与目的IP、源端口与目的端口等。规则体描述了数据中的内容,即特征值。规则头是检测引擎的重要组成部分。规则的动作、触发条件、数据报基本信息等豆子啊规则头中进行体现。当规则被匹配时,Snort根据规则头中的定义,将数据报内容进行格式化的记录,或者产生警报等。规则头中的其他信息完成对数据报的确认,确定数据报是否具有特征。规则体完成对数据报的深入分析。简单规则可以不包含规则体,仅使用规则头完成特征检查和匹配。但用于确认复杂工具的规则,需要使用规则体在规则头的基础上作进一步的特征检查。规则体使用不同的额选项完成特征匹配。如CONTENT选项,检查数据报内容中是否有特征字符串。IP选项集合可以检查IP报头特定位信息。相应的,TCP选项集合分别检查TCP报图及ICMP报文特定域信息。使用规则进行特征匹配时Snort使用最多的手段。规则的开发比较简单,首先对冬季进行分析得到特征信息,再按照格式语法进行编写并进行测试,最后在配置文件中启用规则并重新启动Snort。检测引擎适合快速部署,网络某家电收到基于某种特征的攻击后,可以迅速进行规则的开发,并部署到其他节点,从而在整个网络内,对该攻击进行预警。如果攻击数据报的特征不明显,或者与正常报文不易区别,检测引擎容易漏报和误报。所以,仔细把握攻击特征,严格书写规则,按照安全级别设定特征敏感度,是降低漏报率和误报率的关键。然而特征匹配的表达能力毕竟有限,并且仅通过欲蛇的选项对数据报分析无法满足检查需要,所以Snort使用预处理器检测复杂攻击。2.32预处理器预处理程序从Snort版本开始引入,使用语言进行编写,使得Snort的功能可以很容易地扩展,用户和程序员能够将模块化德插件方便地融入Snort之中。预处理程序代码在探测引擎被调用之前运行,但在数据报译码之后。通过这个机制,数据报可以通过额外的方法被修改或分析。 Snort通过一个struct packet类型的指针,将数据报和其他信息传入预处理器。编程人员可以通过这个指针访问数据报内容及特征定域,并对这些信息进行分析,在确定具备攻击特征或者攻击可能之后,使用Snort提供的苦函数,进行警报和攻击信息的发布。typedefstruct packet structpca-pkthdr *pkth;/*BPF data*/ u-int8-t *pkt; /*base pointer to the raw packet data*/EtherHdr*eh; /*standard TCP /IP/Ethermet/ARP headers*/VlanTagHdr*bh;EthLlc *ehllc;EthllcOther *ehllcother;/*wireless LAN header*/*802.1xEAPOL header*/IPHdr*iph,*orig-iph; /*and orig.headers for ICMP-*-UNREACH family */U-int32-t-options-len;U-int32-t-options-data;ICMP6Hdr*icmp6h.*orig-icmp6h;IP6Frag*ip6th;/*other declaration*/*modify end*/Packet;Struct Packet中包含很多元素:数据报指针pkt,载荷指针data,报头指针如IPv6 报头指针ip6h、ICMPv6报头icmp6h等,通过这些指针可以快速访问对应信息。可以看出预处理器的分析能力比检测引擎更加强大,还可以对数据报进行修改,这是检测引擎无法做到的。针对特征不明显的攻击数据报,只有通过编写对应的预处理器才能完成攻击的分析。 功能的强大带来的是,预处理器相比检测引擎更耗费资源。预处理器越多,Snort性能受到的影响越大,并且更具预处理器功能性质的不同,造成性能下降的程度不同。但预处理器被设计为模块化德插件,可以在配偶之文件中方便的进行启动和停用,一定程度上避免因使用不必要的预处理器影响Snort的性能。 预处理器的开发编译过程复杂,插件程序(spp-test.h及spp-test.c)编写完成后,起编译加载过程如下: 1). 在SNORT DIR/src/plugbasc.c中加入预处理器的头文件:#include “preprocessor/spp-test.h2). 在InitPreprocessoes 函数中加入预处理器安装函数Setuptest():所以的预处理器的插件程序中,必须定义setup函数,其作用是将用于Snort.conf 的关键字和初始化函数联系在一起。3). SNORT-DIR/src/preprocessors/Makcfile里libspp-a-SOURCES项中加入源文件Spp-test.h spp-test.c4). 重新编译Snort并在配置文件Snort.conf中加入预处理器Preprocessor.test:args2.3.3检测结果的输出预处理器及检测引擎的检测结果,可以使用不同的方式进行输出。如前所述,结果可以写入数据库或者日志文件,也可以建立一个unix套接口,将信息写入其他健康进程,输出的方式也是以插件的形式完成的。 每个插件对应一种输出方式,因输出方式不同对信息的表示方式也不同,二千因输出目的不同对信息进行的截取也不同。常用的输出插件有alert-full,需要在配置文件中指定一个警报日志文件的路径名,如:nutput alert full:/var/log/Snort/alert-full警报信息会记录在/var/log/Snort/路径下的alert-full文件 中,通常动态查看此文件,来获得警报信息。数据库插件database将警报数据存入postgresql数据库中,洗衣设定数据库名,用户名及口令等,其配置如下:Output database:alert,postgresql,user=Snort sbname=Snort host=localhost password= * 这类输出插件主要的用途是警报备份,警报转存数据库中后,可供分析软件做线下分析,或者提供Snort报警监视器进行实时显示。第三章 局域网策略分析工具的研究3.1 策略分析的意义 上一章节提到的Snort等工具,只能通过对数据报的嗅探和分析,来确定一个攻击的产生,攻击的相关信息,如数据报内容,包括IP地址,使用报文和端口(如果有)、发生时间等都被记录在特定的结构中。但是,Snort无法对攻击进行深层的挖掘。 从攻击者得角度看,发起的每一次攻击都有明确的目的,或者为下一次攻击做准备或者完成一个特定动作。我们可以总结网络攻击的特点: 。攻击有着明确的目的性 。不同的攻击可能拥有同一个最终目标 。不同的攻击之间有内在的关联关系 所以,通过对源地址和目的地址相同的攻击报文进行关联分析,根据攻击之间的次序及IP地址等信息,找到其内在联系,最终发现攻击者的攻击意图和攻击策略。 攻击者的意图是网络中产生攻击的根本目的。在通常的网络攻击中,攻击者采取的一系列的手段,比如,扫描主机以确定主机的存在并获取主机地址信息,对主机进行DOS攻击,冒用主机身份,窃取他人通信信息。在上述一系列攻击过程中,冒用他人身份进行信息的窃取是攻击者得攻击意图,儿攻击者的攻击策略如图3-1:主机扫描Dos攻击冒用身份窃取信息 图3-1攻击策略示例 基于对以往的攻击策略及攻击意图进行分析,得出攻击之间的关系作为分析结果集,在日常的攻击检测过程中,按照结果集中的定义,对已出现的攻击进行匹配和关联,按照匹配结果确定攻击意图,预测将要发生的攻击。 比如,我们根据以往的经验确定了上述的攻击策略,假如在网络监控过程中,我们发现了扫描攻击、DoS攻击和虚假宣告的出现,那么盗用连接窃取信息可能会再将来发生。通过攻击的匹配和关联,可以在一定程度上对未发生的攻击进行预测。 更重要的是,网络监控过程中会产生大量的攻击警报,而其中关于对攻击意图的警报才是最有价值的,对网络攻击进行匹配和关联,有利于忽略低价值警报,突出高价值警报,有利于警报的归类和攻击策略的分析。 3.2警报关联的框架结构 在一系列攻击中,由攻击者发起的前期的攻击为后续的攻击准备作条件,前期攻击的结构与后续攻击的先决条件通常有很强的联系。如果一前期的攻击是为后续的攻击做准备,那么前期攻击的结果至少会部分满足后续攻击的先决条件。 我们的方法就是通过识别各种不同攻击的先决条件(例如,易受攻击服务的存在)和结果(例如,易受攻击服务的发现)然后进行匹配(攻击所对应的)前期的警报的结果和(攻击所对应的)后续的警报的先决条件来关联入侵检测系统所检测到的攻击的警报。 应当注意攻击者并不一定会执行前期的攻击为后期的攻击做准备,即使后续的攻击存在特定的先决条件。换句话说,我们不应该把一个攻击的先决条件与前期攻击存在的必要性混淆起来。然而如果攻击者发起一个攻击为后续的攻击做准备,我们的方法可以关联被入侵检测系统所探测到的攻击。3.2.1 理论基础 谓词是描述供给先决条件和结果的基本结构。例如一个扫描攻击可能发现UDP 服务易受某种缓存溢出的攻击。我们就可以用谓词: UDPVulnerableToBOF(VIctimPort) 来描述攻击者的发现。同样的,如果一个攻击依赖于UDP 缓存溢出漏洞攻击的发生,我们就可以用相同的谓词描述这个先决条件。 一些攻击需要一些条件被同事满足才能成功。例如,一个网络发起缓存溢出攻击可能需要目标主机拥有一个被攻击者通过防火墙得到的UDP 缓存溢出漏洞攻击,这种情况可以用: UDPVulnerableToBOF(VictimIP,Victimport)UDPAccessibleViaFirewal(VictimIP,VictimPort)来描述,我们规定逻辑操作符为(交)和并;使用谓词集来描述攻击的结果。例如,一个攻击可能导致root 权限被获取并且rhost 文件被修改。于是,可以描述对应的结果为u(GainRootAccess(VictimIP),rhoatModified(VictimIP)。 3.2.1.1 超级警报类型和超级警报 采用谓词作为基本的构造,本节介绍超级警报类型的概念来描述每个警报类型的前决条件和结果。所有的超级警报类型定义都存放在称为Knowledge Base 的XML 文件中,供TIAA 数据库进行分析时使用。 3.2.1.1.1超级警报类型 超级警报类型T 是一个三元组,T =(fact,prerequisite,consequence),其中:fact 是一个属性的名字域,每个都关联一个值域。prerequisite 是一个逻辑公式集,它的自由变量都在fact中。consequence 是一个逻辑公式集,它的自由变量都在fact中。例如:缓存溢出攻击来攻击sadmind 远程管理员工具,则超级警报类型SadmindBufferOverflow=(fact,prerequisite,consequence)fact= IP,port prerequisite=ExistHost(IP)And VulnerableSadmind(IP)consequence= GainRootAccess(IP) 3.2.1.1.2 超级警报假定一个超级警报类型 T =(fact,prerequisite,consequence),则类型T 的一个超级警报h 是一个 fact 上的一个有限元组集,每个元组与一个时间戳【begin-time,end-time】相关联。 例如:缓存溢出攻击来攻击sadmind 远程管理员工具,则超级警报类型 SadmindBufferOverflow=(fact,prerequisite,consequence)可能有一个超级警报h SadmindBOF包含下面的元组: (IP=152.141.129.5,port=1235),(IP=152.141.129.37,port=1235)(b) 如果攻击成功,攻击的先决条件一定为真: ExistHost(152.141.129.5)And VulnerableSadmind(152.141.129.5) ExistHost(152.141.129.37)And VulnerableSadmind(152.141.129.37)(c) 如果攻击成功,则攻击的结果可能为真: GainRootAccess(152.141.129.5) GainRootAccess(152.141.129.37)3.2.1.2 关联条件3.2.1.2.1 先决条件及结果假定一个类型T=(fact,prerequisite,consequence)的一个超级警报h 。则h 的先决条件集表示为P(h),h 的结果集表述为C (h) .例如,假定攻击者采用Sadmind Ping 攻击来发现可能得易受攻击的Sadmind服务,则超级警报类型: SadmindPing = (fact,prerequisite,consequence)fact = IP,port prerequisite =ExistHost(IP)consequence=VulnerableSadmind(IP)假如高级警报类型SadmindPing的一个实例h-SadmindPing 有下列元组:(IP IP=152.141.129.5,port=1235).h-SadmindPing的前提p(h-SadmindPing)为:ExistHost(152.141.129.5)h-SadmindPing的结果集C(h-SadmindPing)为: VulnerableSadmind(152.141.129.5),.3.2.2 TIAA 系统组成 TIAA(A Toolkit for Intrusion Alerts Correlation Based on Prerequisites and Consequence of Attacks )是NCSU 大学计算机科学部门的Cyher Defense 实验室开发的一套离线警报分析系统,它由三个子系统构成,警报采集子系统,警报关联子系统,和交互式分析子系统,它们以信息库和数据库为中心。3.2.2.1 警报采集子系统 警报采集子系统是为了解决不同类型IDS 触发器之间的名字冲突,并实现入侵警报的集中存储。理想情况下,一个通用的入侵警报格式化标准,例如IDMEF 一旦被采用,就必须要解决入侵警报的名字冲突问题。然而在实际应用中,名字冲突问题依然存在,例如,IDMEF 允许IDS 为不同级别的警报命名,而对于相同的攻击,不同的IDS 可能会给其定义不同的级别。当前的TIAA版本支持IDMEF 警报和ISS 的RealSecure 标准。通过添加软件组件,可以支持更多的警报类型。3.2.2.2 警报关联子系统警报关联子系统是TIAA 入侵警报分析的基础,它由Hyper-alert Generator 和Correlation Engine 两部分组成,Hyper-alert Generator 在警报采集子系统采集到警报的基础上生成超级警报,同时,利用信息库中的信息,生成超级警报的必要条件集和超级警报的结果集。最后关联引擎再利用这些结果进行实际的关联。超级警报类型用(fact,prerequisite,consequence)这样一组数据来对各种类型攻击编码量化。一个超级警报可能对应着一个或者几个相关的警报。如果IDS 为一次攻击发出一次警报,并且警报中包含可以产生超级警报的所有信息,那么这次警报就能产生一个超级警报。然而,有的IDS 会为一次攻击发出一系列警报,我们对超级警报的定义允许将它们加工成一次超级警报。在理想情况下,如果先行警报可能会导致下一个警报的到来,我们就把先行警报和后发警报相关联,可事实上这种机制并不能很好的工作。首先,攻击者并不总是发动先行的攻击为后来的攻击行为做准备。其次,现在的IDS 可能会对一些攻击产生漏报。基于以上的原因,我们采取了另一种方案。我们检查先行的超级警报是否有可能为后发警报的必要条件做准备,而不是判断先行警报是否满足后发警报的必要条件。更加明确一点说,我们将一次超级警报的必要条件分解成更加细化的条目,然后判断先行警报能否会使这些条目中的一条或几条为真。警报预处理器处理警报并产生超级警报,并且将每个超级警报的条件和结果实例化。在关联阶段推论产生实例化谓词的方法有两种。第一种是关联引擎直接利用储存在信息库中的信息推理出相关联的谓词,对警报进行实时的关联需要用这种方法。然而做到这些需要更进一步的开发,并且这种方法不能充分利用RDBMS 的查询处理能力。第二种方法是将警报的必要条件和结果实例化成谓词,并列入数据库,从而将超级警报相关联的过程就变成了简单的实例化谓词匹配。第二种方法需要更多的储存空间,但适合警报的批量处理,并且充分利用了RDBMS 的查询处理能力,这种方法适合离线的处理。警报的处理过程中产生超级警报数据的同时,也生成两个辅助的表,每个超级警报都都唯一的用一个超级警报ID 作为识别标志。表存储着属性HyperAlertID,HyperAlertType,begin-time ,end-time。表HyperAlert存储属性HyperAlertID,和所有已知超级警报类得实际属性,那些不适用的属性被置为NULL 。两个辅助表PrereqSet 和ConseqSet 是为了便于超级警报的关联,他们用来分别存储警报实例化的必要条件和结果,两个表存储相同的属性,不同的是,PrereqSet存储必要条件集中的元素,而ConseqSet存储结果集中的元素。为了简化关联的过程,把实例化谓词定义成string类型,并明确实例化谓词的编码规范,每个谓词名后跟符号“(”,然后是用“,”间隔的声明序列,最后是“)”。并且假定谓词只从它们的名字和符号来识别,并且不能出现在谓词名和声明中,这样谓词实例的比较相当于匹配字符串。关系引擎的基本算法:关系引擎的基本作用是发现超级警戒之间的因果关联,超警戒信息存储在CorrelatedAlerts 中 ,这个表只有两个属性,PreparingHyperAlertID 和Prepared HyperAlertID 。其中具有PreparingHyperAlertID 属性的超级警报为具有Prepared HyperAlertID属性的超级警报做准备。现在的技术是使用SQL 查询来实现上述关系引擎的基本作用,把SQL 的查询结果插入到CorrelatedAlerts 表中,由此我们不难检验通过使用SQL 可以发现所有的超级警报关联对。查询语句用来产生所有的条件关系:SELECT DISTINCT c.HyperAlertID , p.HyperAlertID FROM PrereqSet p ,ConseqSet cWHERE p.EncodedPredicate= c.EncodedPredicateAND c.end-time p.begin-time结果插入到CorrelatedAlerts 表中3.2.2.3 警报分析子系统 警报分析子系统是TIAA 最核心的部分,它由一系列交互式的分析方法和一个图形化用户界面组成(GUI)。在TIAA 中入侵警报被分成多个超级警报集合,没个集合有多个超级警报组成,每一个超级警报都对应着一个或多个IDS 传感器发出的原始入侵警报;但是,在同一个集合中,每一个原始的入侵警报只对应着最多一个超级警报,每一个超级警报处于并且只能处于一个集合中。这些分析方法可以独立的应用于超级警报集合,这意味着这些分析方法可以反复的应用于由上一次分析产生的超级警报集合中,分析的结果以图标的形式被可视化,并通过GUI展现给客户。这些分析反复允许向上追溯或向下追溯的方式对警报进行分析。分析者应该具有较高的水平来分析大量潜在的入侵警报,并随着他对警报的了解加深,逐渐分析出细节的内容。3.2.3 TIAA系统实现 在TIAA 源代码中一共包含12个类: AssignGraphID , CorrelationEngine , Correlator , FocusedAnalysis , GraphDecomposition , GraphOutput , GraphReduction , HATMapping , , SimplifidGraphOutput , TransitiveExclusion 。其中Correlator 作为主类去调用其他类 。 AssignGraphID 将关联分别划分到不同的图表中。 CorrelationEngine 类对警报进行预处理及关联,首先它从信息库中得到所有的超级警报类型:然后通过将原始警报和超级警报类进行比对,产生超级警报;最后,利用警报预处理算法和关联引擎算法产生前后关联的关联关系。最后输出的关联保存在表Co

温馨提示

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

评论

0/150

提交评论