基于SNORT的入侵防御系统的实现---毕业论文_第1页
基于SNORT的入侵防御系统的实现---毕业论文_第2页
基于SNORT的入侵防御系统的实现---毕业论文_第3页
基于SNORT的入侵防御系统的实现---毕业论文_第4页
基于SNORT的入侵防御系统的实现---毕业论文_第5页
免费预览已结束,剩余64页可下载查看

下载本文档

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

文档简介

本本 科科 毕毕 业业 论论 文文 基于基于 SNORTSNORT 的入侵防御系统的实现的入侵防御系统的实现 The Implementation of SNORT-Based Intrusion Prevention System 姓 名: 学 号: 学 院:软件学院 系:软件工程 专 业:软件工程 年 级: 指导教师: 年年 月月 摘摘 要要 在网络化高度发达的今天,从网络中获取信息已经成为人们日常生活中不可分割的一部 分。网络已经成为经济、文化、军事和社会活动中无处不在的工具。在带来发展的同时,网 络安全问题也随之突显出来。在这样的环境下,网络安全技术不得不与时俱进,以增强网络 安全的保障。传统的入侵检测系统,防火墙等在保障信息安全上都发挥着巨大的应用,但是 他们的作用单一,无法应对复杂多变的网络环境。入侵检测系统具有发现入侵、记录事件的 功能,其重点在于入侵行为的检测上,缺乏对于入侵的应对和阻断能力。防火墙对流经的网 络流量进行检测,拦截不符合安全策略的数据包。但是防火墙的访问规则是静态的,不能动 态地响应入侵行为的变化。本文将入侵检测和防火墙相结合,来实现一个简单的入侵防御系 统 IPS。论文主要研究了以下三方面的问题: 第一、对入侵检测系统 Snort 的工作原理和报警信息的内容进行研究,并在代码中实现 调用 Snort 的工作。 第二、实现一个基于 API 的包滤器式的防火墙,能够限制一台指定 IP 地址、端口号的 客户机,对本机发送 TCP、UDP 或者 ICMP 的数据包。 第三、实时获取 Snort 报警信息,解读警报中的关键字段,动态地对防火墙进行设置。 从而在发现恶意行为的伊始,阻断产生威胁的连接,达到防御入侵的效果。 关键词关键词:入侵防御系统;入侵检测技术;Snort;防火墙;过滤器 Abstract With rapid development of the Internet nowadays, obtaining information from the network has become an inseparable part of our daily life. The Internet has been widely used as a ubiquitous tool in our economic, cultural, military and social activities. In addition to benefits of development, the security problem of network is being highlighted. In such an environment, network security technology is required to keep pace with the times so as to improve the level of network security. Although traditional IDS (Intrusion Detection System), firewall and so on are playing a significant role in information security, they are unable to cope with the complex and changeable network environment. For instance, IDS has the ability of detecting and recording events. It focuses on detecting intrusion behavior, but can not fulfill the function of blocking and responding to intrusion; firewall has the capability of detecting network traffic and intercepting the packets which do not conform to the safety strategy. But the access rules of firewall are static, they can not respond to changeable invasion behavior in a dynamic way. In this thesis, the author combines IDS and firewall to implement a simple IPS (Intrusion Prevention System). The whole work mainly focuses on the following three aspects: Firstly, the thesis researches the working principle and the alert information of Snort so as to prepare for calling the detection function of Snort. Secondly, the thesis aims to implement a firewall based on API packet filter. It is expected to restrict a client with a certain IP address and port number to sending packets to the host by TCP, UDP or ICMP protocol. Thirdly, the thesis analyzes how to gain real-time Snort alerts, read the key fields of it, and configure the firewall dynamically so as to block the potential threatening connection at the beginning of malicious behavior and realize invasion defense. Key words: Intrusion Prevention System; Intrusion Detection Technology; Snort; Firewall; filter 目录目录 第一章第一章 绪论绪论 1 1 1.11.1 选题背景和研究意义选题背景和研究意义 1 1 1.21.2 入侵防御软件的发展历程入侵防御软件的发展历程 2 2 1.31.3 国内外发展现状国内外发展现状 4 4 1.41.4 本文的主要工作和论文结构本文的主要工作和论文结构 5 5 第二章第二章 背景知识背景知识 6 6 2.12.1 入侵检测的概念入侵检测的概念6 6 2.1.1 基本术语 .6 2.1.2 IDS 基本结构 .7 2.1.3 入侵检测的分类.7 2.1.4 入侵检测性能关键参数 .8 2.1.5 入侵诱骗技术、蜜罐技术与入侵响应技术 .8 2.22.2 入侵防御的核心思想和模型入侵防御的核心思想和模型9 9 2.32.3 SnortSnort 介绍介绍1010 2.3.1 Snort 原理 10 2.3.2 Snort 系统组成 11 2.42.4 防火墙的类别与特点防火墙的类别与特点1212 2.4.1 包过滤防火墙12 2.4.2 应用代理防火墙12 2.4.3 复合型防火墙13 2.4.4 防火墙操作系统 14 2.4.5 防火墙的抗攻击能力与局限性 14 2.4.6 防火墙术语14 2.52.5 本章小结本章小结 1515 第三章第三章 S Snortnort 的的部署与分析部署与分析1616 3.13.1 SnoSnor rt t 的配置的配置1616 3.1.1 Snort 的安装 16 3.1.2 Snort 配置文件的修改 17 3.1.2 Snort 连接数据库 17 3.23.2 SnortSnort 的使用的使用1818 3.2.1 Snort 的运行 18 3.2.2 BASE 分析引擎 .19 3.33.3 S SNORTNORT报警信息分析报警信息分析2121 3.3.1 从数据库中还原警报信息22 3.3.2 警报的具体含义22 3.3.3 报警信息处理方案24 3.43.4 本章小节本章小节 2525 第四章第四章 包过滤式防火墙的实现包过滤式防火墙的实现 2626 4.14.1 简介简介 2626 4.24.2 MyFirewallMyFirewall 的结构的结构2626 4.34.3 MyFirewallMyFirewall 的工作流程的工作流程2727 4.44.4 核心代码分析核心代码分析 2929 4.54.5 本章小结本章小结 3030 第五章第五章 MyIPSMyIPS 的设计与实现的设计与实现3131 5.15.1 MyIPSMyIPS 系统设计系统设计3131 5.1.1 UI 界面设计 .31 5.1.2系统结构设计.32 5.1.3数据库设计.33 5.25.2 MyIPSMyIPS 详细设计说明详细设计说明3434 5.2.1 入侵检测模块34 5.2.2 监听报警模块36 5.2.3 入侵响应模块和包过滤器模块38 5.2.4 界面美化工作42 5.35.3 实验结果和相关问题的讨论实验结果和相关问题的讨论 4242 5.45.4 本章小结本章小结 4545 第六章第六章 总结总结 4646 参考文献参考文献 4848 致谢致谢 4949 Contents Chapter 1 Introduction 1 1.11.1 ResearchResearch TopicsTopics BackgroundBackground andand SignificanceSignificance 1 1 1.21.2 IntrusionIntrusion PreventionPrevention SystemsSystems DevelopingDeveloping ProcessProcess 2 2 1.31.3 TheThe StatusStatus QuoQuo atat HomeHome andand AbroadAbroad 4 4 1.41.4 TheThe MainMain WorkWork a an nd d StructureStructure ofof ThisThis ThesisThesis 5 5 Chapter 2 Background Knowledge.6 2.12.1 TheThe ConceptConcept ofof IntrusionIntrusion DetectionDetection 6 6 2.1.1 Basic Terms6 2.1.2 The Basic Structure of Intrusion Detection System.7 2.1.3 Types of Intrusion Detection.7 2.1.4 Key Parameter of Intrusion Detections Performance.8 2.1.5 Intrusion Deception Technology,Honeypot and Intrusion response Technology.8 2.22.2 TheThe KernelKernel andand ModelModel ofof IntrusionIntrusion PreventionPrevention SystemSystem 9 9 2.32.3 SnortsSnorts IntroductionIntroduction 1010 2.3.1 Snorts Elements.10 2.3.2 Snorts Structure11 2.42.4 TheThe CategoryCategory andand CharacteristicsCharacteristics ofof FirewallFirewall 1212 2.4.1 Packet Filter Firewall.12 2.4.2 Application Gateway Firewall12 2.4.3 Compound Firewall13 2.4.4 Operation System with Firewall.14 2.4.5 Firewalls anti-attack ability and Limitations14 2.4.6 Basic Terms14 2.52.5 ChapterChapter SummarySummary 1515 Chapter 3 Snorts Deployment and Analysis.16 3.13.1 SnortsSnorts DeploymentDeployment 1616 3.1.1 Snorts Installation16 3.1.2 Configure with Snort Files.17 3.1.2 Snorts Connection with Database.17 3.23.2 MakeMake UseUse ofof SnortSnort 1818 3.2.1 Operation Snort18 3.2.2 Cooperate with BASE.19 3.33.3 AnalysisAnalysis SnortsSnorts AlertAlert InformationInformation 2121 3.3.1 Rebuild Alert Information from Database.22 3.3.2 Alerts Detail22 3.3.3 Solution about How to deal with Alert Information.24 3.43.4 ChapterChapter SummarySummary 2525 Chapter 4 Implement of Packet Filter Firewall.26 4.14.1 IntroductionIntroduction 2626 4.24.2 MyFirewallMyFirewall StructureStructure 2626 4.34.3 MyFirewallsMyFirewalls WorkWork FlowFlow 2727 4.44.4 AnalysisAnalysis ofof CoreCore CodeCode 2929 4.54.5 ChapterChapter SummarySummary 3030 Chapter 5 MyIPSs Design and Implement31 5.15.1 SystemSystem DesignDesign 3131 5.1.1 UI Design.31 5.1.2 Structure Design.32 5.1.3 Database Design.33 5.25.2 DetailedDetailed DesignDesign 3434 5.2.1 Intrusion Detection Module.34 5.2.2 Alert Listen Module.36 5.2.3 Intrusion Deception Module and Packet Filter Module38 5.2.4 UI Beautification.42 5.35.3 TheThe ExperimentalExperimental ResultsResults andand DiscussDiscuss RelatedRelated IssuesIssues 4242 5.45.4 ChapterChapter SummarySummary 4545 Chapter 6 Summary .46 References48 Acknowledgement.49 基于 Snort 的入侵防御系统实现 1 第一章第一章 绪论绪论 1.1 选题背景选题背景和研究意义和研究意义 信息化高度发达的今天,数据通信网络日益普及,信息的获取和交换日趋便利。与此同 时,它也为网络攻击提供了新的途径与平台,网络安全因此受到了极大的威胁,但是,传统的 防火墙和 IDS 有着自身的明显不足。根据 Vandyke Software (美国网络安全软件开发商) 2003 年的调查显示,在目前网络安全事件的受害者中, 86%的用户使用了防火墙, 42%的用户使用了 入侵检测系统1( Intrusion Detection System, IDS)。目前的问题是,安全模型在变化:在越来 越多可以穿越防火墙的流量中,夹带着攻击,即面向应用的攻击。 大部分防火墙检查的层次主要集中在传输层以下,即使是优秀的防火墙也只能提供一小 部分深度检测能力2。当企业服务器接受了这些“糖衣炮弹”后,攻击者就可以此为跳板,向 企业内网发送大量的攻击性报文。一旦这些人在服务器上留下“rootkit”、 “back door”等后门, 那么它就可以在任何时间、任何地点无限制的访问企业整个信息系统。 而 IDS 系统是作为一个旁观者监控网络中的流量信息,同时记录下可疑的流量。IDS 相 当于一个安装在轿车上的报警器,每天会产生大量的报警信息,然而,大多数是误报。虽然 如此,却又不能对其置之不理,因为真正的攻击信息可能夹杂其中。所以需要专门有富有专 业知识的人员对大量的信息进行分析,然后人工采取响应措施。在整个过程中,一但有一环 节出错,就给了入侵者可乘之机。 在这种情况下,入侵防御系统( Intrusion Prevention System, IPS)作为一种全新的技术应运 而生。IPS 技术可以深入分析各种协议报文,从中找出隐藏的攻击数据,对恶意报文进行丢 弃以阻断攻击,并且通过报警、联动、阻断等手段直接或间接的保护网络3。和传统技术相 比,IPS 的优点是当它检测到攻击企图后,它会自动地将攻击包丢掉或采取措施将攻击源阻 断。 IPS 智能响应的特质可以即时有效地处理攻击信息,这对于目前复杂多变的网络环境是 十分重要的。随着时代发展,IPS 在网络安全领域意义越来越大,政府、学校和银行机构都 逐渐开始部署 IPS。可以说,谁能在 IPS 技术上占据优势,谁就能成为未来几年网络安全领 域的领跑者。 基于 Snort 的入侵防御系统实现 2 1.2 入侵防御软件的发展历程入侵防御软件的发展历程 说到入侵防御系统,不能不提他的前身入侵检测系统。本节从入侵检测系统的起源谈起, 介绍到近年来入侵防御系统出现这段期间的发展历程。 1.2.1 入侵检测系统的起源入侵检测系统的起源 一般意义上,业界将 James P. Anderson 在 1980 年发布的那篇Computer Security Threat Monitoring and Surveillance作为入侵检测概念的最早起源,在这篇文章里,不仅将威胁分为 了外部渗透、内部渗透和不法行为三种,还创造性的提出了将审计技术应用到对威胁的检测 上来。没错,虽然不论厂商还是用户,都是先开发/拥有入侵检测产品,而后再考虑审计产品, 但从单纯的技术上来说,入侵检测技术的确是起源于审计技术,所不同的是,入侵检测更关 注“坏”的事件,而审计产品则更多关注“好”事件。 但这只是一个概念的起步,一直到 1986 年 Dorothy Denning 等人才在其论文 An Intrusion Detection Model 中给出了一个入侵检测的抽象模型 IDES(入侵检测专家系统),并在 1988 年 开发出一个 IDES 系统。 在这个模型的基础上,1990 年加州大学戴维斯分校的 L.T.Heberlein 等人开发出了第一个 真正意义上的入侵检测系统 NSM(Network Security Monitor),在这个实物模型中,第一次采 用了网络实时数据流而非历史存档信息作为检测数据的来源,这为入侵检测系统的产品化做 出了巨大的贡献:再也不需要将各式各样的审计信息转化为统一格式后才能分析了,入侵检 测开始逐步脱离“审计”的影子。入侵检测系统发展史翻开了新的一页,两大阵营正式形成: 基于网络的 IDS 和基于主机的 IDS。 1.2.2 入侵检测系统的成长与发展入侵检测系统的成长与发展 1988 年之后,美国开展对分布式入侵检测系统(DIDS)的研究,将基于主机和基于网 络的检测方法集成到一起。DIDS 是分布式入侵检测系统历史上的一个里程碑式的产品。 上世纪 90 年代中期,商业入侵检测产品初现端倪,1994 年出现了第一台入侵检测产品: ASIM。而到了 1997 年,Cisco 将网络入侵检测集成到其路由器设备中,同年,ISS 推出 Realsecure,入侵检测系统正式进入主流网络安全产品阶段。 在这个时期,入侵检测通常被视作防火墙的有益补充,这个阶段用户已经能够逐渐认识 到防火墙仅能对 4 层以下的攻击进行防御,而对那些基于数据驱动攻击或者被称为深层攻击 基于 Snort 的入侵防御系统实现 3 的威胁行为无能为力。厂商们用得比较多的例子就是大厦保安与闭路监控系统的例子,防火 墙相当于保安,入侵检测相当于闭路监控设备,那些绕过防火墙的攻击行为将在“企图作恶” 时,被入侵检测系统逮个正着。 而后,在 20012003 年之间,蠕虫病毒大肆泛滥,红色代码、尼姆达、震荡波、冲击波 此起彼伏。由于这些蠕虫多是使用正常端口,除非明确不需要使用此端口的服务,防火墙是 无法控制和发现蠕虫传播的,反倒是入侵检测产品可以对这些蠕虫病毒所利用的攻击代码进 行检测(就是前面提到的滥用检测,将针对漏洞的攻击代码结合病毒特征做成事件特征,当发 现有该类事件发生,就可判断出现蠕虫。),一时间入侵检测名声大振,和防火墙、防病毒一 起并称为“网络安全三大件” 。 1.2.3 入侵防御系统的出现入侵防御系统的出现 正当入侵检测概念如日中天之际,2003 年 GARTNER 的一篇入侵检测已死的文章, 带来了一个新的概念:入侵防御。在此之前,防火墙产品之所以不能做 4 层以上的分析,有 一个原因就是分析性能跟不上,入侵检测产品由于采用旁路部署方式,对数据实时性的要求 不是很高。当硬件发展和软件算法都足以支撑串行设备进行深层分析的时候,串接在网络中, 对应用层的威胁行为也能发现并防御的产品需求就呼之欲出了。一时间,在各大网络安全论 坛都对 IPS 将能否取代 IDS 展开了激烈的讨论。 事实上,自 2002 年 IPS 概念传入国内起,IPS 这个新型的产品形态就不断地受到挑战4。 当时各大安全厂商、客户都对 IPS 的兴趣都不太大,有人提出这样的观点是:在 IDS 基础上 发展起来的 IPS 产品,在没能解决 IDS 固有问题:“误报”和“滥报”的前提下,是无法得 到推广应用的。 现在 IPS 的市场份额比起前几年已经大幅上升,但是和拥有近 20 年应用历史的 IDS 相比, IPS 的技术和市场都尚未成熟。虽然所以在相当长一段时间内,IDS 与 IPS 技术仍将保持并 驾齐驱的局面。这也是新旧事物共存的一个必然过程。 但是我们可以看到,IDS 的工作方式决定了其缺乏实时响应能力的缺陷,IPS 弥补了这个 缺陷,实现了动态保护。虽然 IPS 目前也存在一些问题,比如没有解决 IDS 系统遗留下来的 “误报” 、 “滥报” ,而且在线接入的工作方式对它的性能提出了苛刻的要求。但是从时代发展 的趋势来看,IPS 的缺点是技术性的,随着技术的进步,IPS 成为网络安全防护的主流工具是 必然的。可以说,谁能够突破技术上的困难,开发出优秀的 IPS 产品,谁在未来的 10 年内, 基于 Snort 的入侵防御系统实现 4 能够占据网络安全领域的领导地位。 1.3 国内外发展现状国内外发展现状 国内安全厂商对 IPS 的开发起步较晚,直到 2005 年 9 月才由绿盟科技推出了第一款具有 自主知识产权的 IPS 产品冰之眼网络入侵保护系统 ICEYE NIPS,打破了国外产品垄断 的局面。 国内目前对于 IPS 研究处于领先地位的是启明星辰,它的入侵防御产品天清系列融 合了基于攻击躲避原理的阻断方法与基于攻击特征的阻断方法,提高了对深层攻击行为的识 别能力,而且对攻击变种,SQL 注入等无法通过特征判断的攻击行为也能实现精准阻断。 国外的 IPS 巨头则比较多,IBM、McAfee、ISS、TippingPoint、赛门铁克均在此领域有 所建树。其中 TippingPoint 起步较早,在 04 年由世界领先的网络与安全测试机构 NSS Group 组织的性能测试中独领风骚,荣获金牌奖。它的产品 UnityOne 是一个由最新型的网络处理器 技术组成的一个高度专业化的硬件式入侵检测防御平台。在具有千兆处理速度的同时处理延 迟不到一微秒,且具有高度的检测和阻挡准确性。随后多家网络安全公司加快了研发的步伐, 呈现出百花齐放的局面。McAfee 旗下产品 McAfee IntruShield 在 2003 年第四季度2005 年第 一季度保持到 IPS 全球收入第一名的好成绩。而 IBM 在 2006 年收购 ISS 后,IBM ISS 旗下 产品以高达 22%的全球份额成为这一领域的领跑厂商。 以上提到的所有公司都是从 IDS 产品做起,他们在看到 IPS 这一块巨大的潜力之后,都 先后进行了 IPS 产品的研发及推广。其中最具有代表的就是 IBM ISS,它从占据统治地位的 入侵检测设备领域转移到入侵防御速度之迅速,令整个市场都惊叹不已。而且同时推出了高 端和低端的 IPS 产品也证明了 IBM ISS 的产品开发的决心。 从市场上来看,IDS/IPS 产品正在网络安全领域扮演着越来越重要的角色。国内的市场 销售额从 2003 年的 2.75 亿元,到 2004 的 3.8 亿元,再到 2005 年的 5. 5 亿元,增长比突破 了 40%。赛迪顾问最新发布的“2006 年第二季度中国网络安全产品市场分析报告”中显示,2006 年第二季度,中国网络安全产品市场总体规模达 11.37 亿元,比 2006 年第一季度增长 23.2%。 根据世界级咨询公司 Frost Source create_mysql; 基于 Snort 的入侵防御系统实现 18 Grant all on *.* to “snort”localhost” (3)用同样的方法创建 snort_archive 表 如表 3-2 第三条所示,我们取消掉 output database 项的注释,并将参数改为 alert, mysql, user=snort password=snorttest dbname=snort host=localhost encoding=ascii detail=full(其中 alert 参数表示仅仅将警报信息存入数据库) 。这样,Snort 与数据库联系的通道就建立起来了。 (数 据库内容如图 3-1 所示) 图图 3-1:Snort 数据库的清单数据库的清单 3.2 Snort 的使用的使用 首先在控制台运行 Snort,随后通过 BASE 分析引擎来观看 Snort 捕获到的数据。 基于 Snort 的入侵防御系统实现 19 3.2.1 Snort 的运行的运行 Snort 是控制台方式运行的应用程序,其使用的功能由命令行传入的参数决定。在此段落 对本项目中需要用到的命令做一些解释。 常用命令:snort -i 4 -dev -c c:snortetcsnort.conf -l c:snortlog -h /24 参数解释: -i 用来指定捕获数据包使用的网卡,在多网卡的情况下需要先用-W 参数来查看本机的 网卡列表,确认正在连接网络所使用的网卡,因为本机安装了虚拟机,所以物理网卡排在列 表在第四,故使用-i 4。 dev 嗅探所有类型的数据包,并且给出数据包的详细信息。 -c 指定配置文件所在路径。 -l 指定 log 文件所在路径。 -h 启用混杂模式,对一个网段进行监听。 输入 snort -i 4 -dev -c c:snortetcsnort.conf -l c:snortlog -h /24,Snort 开始运行, 捕获数据的同时按照配置文件的设置将警报信息存入数据库。 运行效果如图 3-2 所示: 基于 Snort 的入侵防御系统实现 20 图图 3-2:Snort 运行显示运行显示 3.2.2 BASE 分析引擎分析引擎 从上一节的运行结果来看,Snort 通过命令控制台的输出信息不太友好,而储存在数据库 中的数据还不了解其内容,不利于我们进行分析工作。为了对 Snort 的报警信息进行研究, 首先需要一个直观的可视化界面。 为了达到这个目的,本项目以 BASE 分析引擎为参考来分析 Snort 数据。BASE 即基本分 析和安全引擎,是一个基于 WEB 的 GUI(图形用户界面) 。这里使用的 WEB 平台为 Apache 服务器+PHP+ADODB 的组合,BASE 运行效果如图 3-3 所示: 基于 Snort 的入侵防御系统实现 21 图图 3-3:BASE 分析界面分析界面 如果数据库连接正常的话,运行 BASE 便会自动获取到 Snort 存入数据库的警报信息。 可以清楚的看到,右侧的图标对 Snort 捕获到的 TCP、UDP 和 ICMP 的数据包数量进行了统 计。而左侧列出了“警告数” , “来源 IP 地址数” , “单一 IP 连接数”等重要信息。 在本项目中使用 BASE 主要是通过一个直观的途径来阅读 Snort 的报警信息,单击“最 近 15 单项警告数”便可以进入警报分析页面,如图 3-4 所示: 基于 Snort 的入侵防御系统实现 22 图图 3-4:BASE 报警信息分析报警信息分析 这个页面中的数据就是本项目中分析 Snort 报警信息的依据,对信息的具体分析工作将 在下一段落展开。 3.3 Snort 报警信息分析报警信息分析 Snort 的检测是通过规则链进行的,能识别的事件数由规则库所决定。本项目使用的规则 库包含 44 个规则文件,可以认为 Snort 系统能够且仅能够识别出 44 种事件,对其响应生成 警报。然而 Snort 并没有对警报内容提供进一步的说明,其帮助文件也缺少这方面的内容, 这些信息是 Snort 的一个收费服务。本节内容为自行对警报进行的分析工作。 对警报的分析主要是围绕 Snort 存入数据库的内容展开。由于无法方便地获得攻击信息 的总表,所以在这个环节,分析的是捕获到静态的样本数据。 第一步需要分析,一条完整的警报记录是怎样存储在数据库中的。 第二步需要研究,每一种警报传递的信息是什么。 第三步需要归纳,建立一个处理警报信息的策略。 基于 Snort 的入侵防御系统实现 23 3.3.1 从数据库中还原警报信息从数据库中还原警报信息 当一条警报存入数据库的时候,它的关键内容分别存入了多张表中。此时数据库中存储 的是分类的统计性质的信息,而没有一个个体记录。在分析的起步阶段,必须要对个体信息 进行分析。在 BASE 中可以获取单条警报信息的完整记录,但是本项目直接调用的是 Snort, 所以需要参照着 BASE 分析的条目对 Snort 数据库中的警报信息进行还原。 通过对比 BASE 分析的数据和 Snort 数据库中的字段,可以获得以下信息: (1)一条警报记录的主键为 cid,它是记录的标识号。 (2)警报类别的信息存放在 signature 表中,警报类型标识号为 sig_id,与警报名称 sig_name 一一对应,sig_class_id 中存放事件分类编号。 (3)与警报相关的 IP 地址信息存放在 iphdr 表中,源地址用 ip_src 表示,目的地址用 ip_dst 表示,数据类型为 ulong 型的十进制整数。 (4)与协议相关的信息依据类别存放在 icmphdr,tcphdr 和 udphdr 中,每一张表只记录 与自己有关的警报信息。从这三张表的联合查询中可以获得一条警报的协议类型以及对 应的端口号 tcp_sport,tcp_dport 。 通过分析得知,如果要获得一条警报的关键信息,需要查询的表为 signature、iphdr、icmphdr,tcphdr 和 udphdr。需要查询的字段为 cid,sig_id,sig_name,sig_class_id,ip_src,ip_dst,tcp_sport 以及 tcp_dport。 3.3.2 警报的具体含义警报的具体含义 在分析完警报信息储存在数据库中的结构后,需要对其具体含义进行分析。这里所指的 具体含义主要包含警报所对应的攻击行为或事件情景。 通过上一节的分析,我们可以得到警报号,警报名称,事件类型,源 IP 地址,目的 IP 地址等警报内容信息。其中,源 IP 地址和目的 IP 地址可以直接拿来用,但是警报的其它消 息还需要我们进一步去分析。其中很重要的一点就是了解什么样的行为会触发这些警报,并 且了解那些行为代表什么样的攻击,使用什么漏洞以及特定针对什么端口等。经过数天对 Snort 报警信息的收集,已知的攻击类型以及相关统计数据如下表 3-3 所示: 基于 Snort 的入侵防御系统实现 24 表表 3-3:报警信息分析表:报警信息分析表 事件名称针对系统类型对应 端口 ATTACK-RESPONSES 403 Forbiddenall web server platforms WEB-CGI calendar accessall running CGI applications WEB-CGI icat accessall running CGI applications attempted- recon WEB-PHP remote include pathusing php WEB-IIS view source via translate headerall systems running Microsoft IIS WEB-IIS encoding accessall systems running Microsoft IIS WEB-IIS ping.asp accessall systems running Microsoft IIS web- application- activity 80 ICMP ping nmap SCAN UPnP service discover attempt network-scan ICMP Destination Unreachable Communication Administratively Prohibited ICMP Destination Unreachable Communication with Destination Host is Administratively BAD-TRAFFIC udp port 0 traffic misc-activity ICMP L3retriever Ping any attempted-rec none MS-SQL ping attemptall systems running MS-SQL servers attempted- recon MS-SQL probe response overflow attemptall systems running attempted- 1433 基于 Snort 的入侵防御系统实现 25 MS-SQL serversuser NETBIOS SMB IPC$ unicode share access using Samba for file sharing. NETBIOS SMB-DS IPC$ unicode share access using Samba for file sharing. protocol- command- decode NETBIOS SMB-DS repeated logon failureusing SMBunsuccessful- users 445 SNMP AgentX/tcp requestSNMP v1 protocol SNMP request udp SNMP request tcp 161 SNMP trap udp devices running SNMP daemons attempted- recon 162 3.3.3 报警信息处理方案报警信息处理方案 在对报警信息的初步分析中,我们发现,来自网络层的事件种类繁多,而且具有无视所 用的系统平台的特性。这些网络层事件非常容易引起 Snort 的报警,触发这些事件一般是因 为网络通信过程中的普通活动或者受到网络扫描。一般来说,这种类型的警报误报率比较高, 但是也有可能是受到网络攻击的前兆。对此类信息可以挑选发生率比较低的,因为被恶意扫 描而引起的事件,把响应方案设为进行全端口过滤,防止被对方继续恶意扫描。而对于误报 率比较高的事件,可以选择不处理。 由于所有的 web 服务器都需要开放 80 端口,所以针对 80 端口的攻击往往是最层出不穷 的,也是最具有威胁性的。通过分析,我们发现,针对 80 端口的攻击主要分为四类: (1)是针对所有 web 服务器的攻击,此类攻击一般通过 URL 注入来实现,需要利用 Unicode 或者服务器设置上的漏洞。因为此类攻击极高的危险性,所以现在一般对其防范很 好,已经很难成功了。 (2)是针对特定语言的攻击,比如利用过滤不严的 PHP 脚本处理 web 浏览器的输入, 从而使 PHP 引擎执行恶意行为。 (3)是针对应用程序的攻击,比如在 HTTP 请求中包含 CGI 的公共报头,将特定的信 息传递给正在运行的 CGI 程序。这种传递在某些情况下可能引起破坏。 基于 Snort 的入侵防御系统实现 26 (4)是针对 web 服务器种类的攻击,以上就有三例是面向 Microsoft IIS 的攻击。IIS 漏 洞百出的默认配置14以及大量的用于闯入 web 服务器的 ISAPI 过滤器将会对服务器的安全提 出巨大的挑战。 总之,在海量的报警信息中,来自 80 端口的事件威胁度很高,当发现此类报警时,采取 过滤目的 IP 对本机 80 端口的访问比较妥当。 除了来自网络层和 80 端口的事件以外,更是有各式各色的网络事件会引起 Snort 警报, 包括针对 SNMP 漏洞的攻击,针对 MS-SQL 漏洞的攻击,针对 SMB 文件共享服务的攻击等。 此类报警信息针对性较强,一般发生误报的概率较低,可以采取过滤目的 IP 对本机与该事件 相关的特定端口的访问的措施。 3.4 本章小节本章小节 本章介绍了如何在数据库中获得 Snort 的报警信息,并且在基本分析和安全引擎 BASE 的帮助下,对报警信息在数据库中的结构进行分析。从而进一步分析警报内容,提出处理警 报信息的方案,建立起响应机制的雏形。 通过对 Snort 报警信息的分析,了解到 Snort 给出的信息虽然较为全面,但都是未处理过 的原始数据,无法直接用来配置防火墙。比如说,需要封锁客户机对主机 80 端口的连接,那 么需要把过滤器的源端口填充为“过滤所有 TCP 和 UDP” ,而把目的端口填充为“80” 。但 是 Snort 中获取到的端口号“80”即可能出现在源的位置,也可能出现在目的的位置。这是 由 Snort 捕获到的事件类型决定的有些攻击是直接捕获(客户机出现在源位置) ,有些攻 击捕获的是主机给出的响应信息(客户机出现在目标位置) 。而 Snort 对这两类警报并没有给 出清晰的标识,所以我需要对每一个警报进行实验研究,从而制定响应策略。本章完整地描 述了对 Snort 的分析过程,其中所做的工作是由浅至深,层层深入的。至此分析工作基本完 成,从第四章开始主要阐述编码实现部分。 基于 Snort 的入侵防御系统实现 27 第四章第四章 包过滤式防火墙的实现包过滤式防火墙的实现 在分析完 Snort 的报警信息后,需要实现一个可以进行响应的包过滤式防火墙。在 Windows 下有许多开发防火墙的办法,我选择了使用较为方便的 Windows Filter API 来实现。 因为这是一个相对独立的模块,而且内容较多,所以单独使用一章来阐述我设计的包过滤式 防火墙 MyFirewall。 4.1 简介简介 Iphlpapi.dll 是 Windows IP 辅助 API 应用程序接口模块。它提供了一组自定义包过滤器的 库函数。我们调用 iphlpapi.dll 通过对一个 PF_FILTER_DESCRIPTOR 结构体进行填充,然后 绑定到本机 IP 上来实现过滤功能。这是一个被动的防火墙类,只有主程序调用它时它才会设 置过滤器。 4.2 MyFirewall 的结构的结构 MyFirewall 是我实现的一个 C+类,它的作用是对 Windows Filter API 进行封装(如图 4-1) 。在类内部处完成过滤器接口的创建,本机 IP 地址到接口的绑定,Filter 结构体与接口 的绑定与解绑定等过程中句柄的传递。并对静态参数进行处理,将使用起来繁琐的 API 方法 大大地简化,把十余项配置包过滤的参数简化为 AddFilter()方法传递的四个参数(源 IP 地址、 目的 IP 地址、端口号以及协议类型) ,使得主程序中可以方便地使用 API 提供的 filter 功能。 基于 Snort 的入侵防御系统实现 28 图图 4-1:MyFirewall 类视图类视图 4.3 MyFirewall 的工作流程的工作流程 在 Snort 发出的警报信息中,有些事件中本机的 IP 地址会出现在目的 IP 的位置。然而设 置防火墙时,本机 IP 需要填充在源 IP 位置才能实现过滤功能,所以,传递配置参数给防火 墙之前,需要有一个响应模块对数据集进行预处理,保证本机 IP 出现在参数源 IP 地址的位 置。除此之外,还要根据警报的事件号来获取它们对应的端口,以便填充过滤器的端口参数。 防火墙的工作流程如图 4-2 所示: 基于 Snort 的入侵防御系统实现 29 获取警报记录集 (Recordset) 判断是否为本机 响应信息 互换源IP地址 与目标IP地址 事件号转换为 相应端口 N Y 填充过滤器 结构

温馨提示

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

评论

0/150

提交评论