入侵检测系统设计论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(此文档为word格式,下载后您可任意编辑修改!)
摘要
入侵检测技术是对传统的安全技术(如防火墙)的合理补充。
它通过监视主机系统或网络,能够对恶意或危害计算机资源的行为进行识别和响应。
通过与其它的安全产品的联动,还可以实现对入侵的有效阻止。
入侵检测系统的研究和实现已经成为当前网络安全的重要课题。
本文从研究入侵技术入手,分析了入侵过程的各个阶段、各种入侵方法,总结了网络安全事故的根源。
然后,介绍了入侵检测方法的分类,分析了各种入侵检测方法和字符串匹配的算法。
研究表明基于规则的入侵检测系统是现在入侵检测系统设计的最主要的技术,基于这一理论,设计开发了一个基于规则匹配的网络数据包分析工具。
系统开发环境为VC++ 6.0,数据库采用MYSQL数据库。
通过该系统可以有效的实现对入侵的检测,并且具有用户友好性。
关键词:入侵检测;响应模块;规则匹配
目录
论文总页数:26页1 引言 (1)
1.1 背景 (1)
1.2 国内外研究现状 (1)
1.3 本文的主要工作 (1)
2 理论基础 (1)
2.1 入侵基本概念 (2)
2.1.1 安全与入侵的概念 (2)
2.1.2 入侵的步骤 (2)
2.1.3 黑客攻击的方法 (3)
2.1.4 安全威胁的根源 (6)
2.2 入侵检测技术 (6)
2.2.1 入侵检测的概念 (6)
2.2.2 入侵检测系统的基本结构构成 (7)
2.2.3 入侵检测的分类 (7)
2.2.4 入侵检测方法 (9)
2.3 BM算法 (11)
3 系统总体设计 (13)
3.1 系统概述 (13)
3.2 系统总体结构框架 (13)
3.3 开发环境 (14)
4 响应模块设计实现 (14)
4.1 规则库设计实现 (14)
4.2 事件分析设计与实现 (17)
4.2.1 规则解析 (17)
4.2.2 规则匹配流程 (18)
4.3 输出模块的设计 (19)
4.3.1 响应输出流程 (19)
4.3.2 日志数据库设计 (20)
4.4 模块集成实现 (20)
5 系统测试和分析 (21)
5.1 攻击检测测试 (21)
5.1.1 测试目的 (21)
5.1.2 测试过程 (21)
5.1.3 测试结果分析 (21)
5.2 误报和漏报测试 (22)
5.2.1 测试目的 (22)
5.2.2 测试过程 (22)
5.2.3 测试结果分析 (23)
结论 (23)
参考文献 (24)
致谢 (25)
声明 (26)
1引言
1.1背景
近年来,随着信息和网络技术的高速发展以及其它的一些利益的驱动,计算机和网络基础设施,特别是各种官方机构网站成为黑客攻击的目标,近年来由于对电子商务的热切需求,更加激化了各种入侵事件增长的趋势。
作为网络安全防护工具“防火墙”的一种重要的补充措施,入侵检测系统(Intrusion Detection System,简称 IDS)得到了迅猛的发展。
依赖防火墙建立网络的组织往往是“外紧内松”,无法阻止内部人员所做的攻击,对信息流的控制缺乏灵活性从外面看似非常安全,但内部缺乏必要的安全措施。
据统计,全球80%以上的入侵来自于内部。
由于性能的限制,防火墙通常不能提供实时的入侵检测能力,对于企业内部人员所做的攻击,防火墙形同虚设。
入侵检测是对防火墙及其有益的补充,入侵检测系统能使在入侵攻击对系统发生危害前,检测到入侵攻击,并利用报警与防护系统驱逐入侵攻击。
在入侵攻击过程中,能减少入侵攻击所造成的损失。
在被入侵攻击后,收集入侵攻击的相关信息,作为防范系统的知识,添加入知识库内,增强系统的防范能力,避免系统再次受到入侵。
入侵检测被认为是防火墙之后的第二道安全闸门,在不影响网络性能的情况下能对网络进行监听,从而提供对内部攻击、外部攻击和误操作的实时保护,大大提高了网络的安全性。
1.2国内外研究现状
入侵检测技术国外的起步较早,有比较完善的技术和相关产品。
如开放源代码的snort,虽然它已经跟不上发展的脚步,但它也是各种商业IDS的参照系;NFR公司的NID等,都已相当的完善。
虽然国内起步晚,但是也有相当的商业产品:天阗IDS、绿盟冰之眼等不错的产品,不过国外有相当完善的技术基础,国内在这方面相对较弱。
1.3本文的主要工作
本文从分析现有网络中存在的安全说起,指出了现有的网络所面临的安全威胁,主要介绍了基于特征(signature-based)的网络入侵检测技术,阐述了由入侵检测理论所构建的入侵检测平台,监测并分析网络、用户和系统的活动,识别已知的攻击行为,统计分析异常行为。
在本文的后面针对基于windows平台并基于特征(规则)的入侵检测系统响应模块的设计与实现作了详细的说明,阐述了什么是入侵检测、如何检测、如何响应等一系列问题,同时也给出了一套完整的设计思想和实现过程。
2理论基础
2.1入侵基本概念
2.1.1安全与入侵的概念
安全定义
广义的计算机安全的定义:主题的行为完全符合系统的期望。
系统的期望表达成安全规则,也就是说主体的行为必须符合安全规划对它的要求。
而网络安全从本质上讲就是网络上信息的安全,指网络系统的硬件、软件及其系统中数据的安全。
网络信息的传输、存储、处理和使用都要求处于安全的状态。
根据OSI狭义的系统与数据安全性定义:
1.机密性(Confidentiality):使信息不泄露给非授权的个人、实体和
进程,不为其所用;
2.完整性(Integrity):数据没有遭受以非授权的个人、实体和进程的
窜改,不为其所用;
3.可确认性(Accountability):确保一个实体的作用可以被独一无二地
跟踪到该实体;
4.可用性(Auailability):根据授权实体的请求可被访问与使用。
入侵定义
Anderson在80年代早期使用了“威胁”概念术语,其定义与入侵含义相同。
将入侵企图或威胁定义为未授权蓄意尝试访问信息、篡改信息、使系统不可靠或不能使用。
Heady给出另外的入侵定义:入侵是指有关试图破坏资源的完整性、机密性及可用性的活动集合。
Smaha从分类角度指出入侵包括尝试性闯入、伪装攻击、安全控制系统渗透、泄漏、拒绝服务、恶意使用六种类型。
2.1.2入侵的步骤
黑客通常采用以下的几个步骤来实现入侵目标主机的目的。
1、搜集信息:寻找目标主机并分析要攻击的环境。
2、实施入侵:获取帐号和密码,登录主机。
3、提升权限:黑客一旦获得目标主机普通用户的帐号,便可以利用一些登录工具进入目标主机,进入以后,他们会想方设法的到超级用户的权限,然后进行任意操作。
4、攻击活动的实施:黑客获取了超级用户权限后,就可以在目标系统上为所欲为。
根据各自不同的目的,黑客在攻克的目标系统上进行不同的破坏活动,例如窃取敏感资料、篡改文件内容,替换目标系统WWW服务的主页是黑客示威常
采用的手段。
5、清除日志记录:黑客在退出被攻克的目标前通常要进行一些善后处理。
2.1.3黑客攻击的方法
1、网络监听
网络监听最初是为了协助网络管理员监测网络传输的数据,排除网络故障而开发的技术,然而网络监听也给以太网安全带来了极大的隐患。
监听是通过将网络接口设为混杂模式,从而接收经过它的所有网络数据包,达到偷看局域网内其它主机的通讯的目的。
反监听的方法是:将网络分段,把不可信任的机器隔开以防止被监听;加密,大量的密文让黑客无所适从。
2、端口扫描
端口扫描的基本原理是扫描方通过向目标系统的不同端口发送具有特殊位的数据包,并记录目标做出的应答,通过分析得出关于目标的相关信息。
根据数据包的类型可分为:TCP扫描、UDP扫描、ICMP扫描。
其中TCP扫描包括:TCP connect()扫描、TCP SYN扫描、TCP SYN|ACK扫描、TCP ACK扫描、TCP FIN扫描、TCP空扫描、TCP Xmax树扫描(往目标端口发送一个设置了FIN|URG|PUSH位的分组。
);ICMP扫描包括:ICMP查询报文请求及应答扫描、ICMP差错报文扫描;UDP扫描包括:UDP端口不可达扫描等。
3、口令入侵
口令入侵是指攻击者使用合法的用户帐号和口令登录到目标主机,然后再实施攻击行为。
攻击者通过猜测、监听和破解用户口令等方法获得对主机或网络的访问权,登录目标系统访问资源,安装后门等。
防范方法:一方面强制用户选择安全的口令;另一方面限制口令文件的访问,例如只让管理员可读。
4、特洛伊木马
特洛伊木马程序是指非法驻留在目标系统中,提供隐秘的、非用户所希望的程序。
特洛伊木马程序可用于窃取目标系统的敏感信息(例如用户名和口令)、记录用户的键盘操作,直至远程控制目标系统。
特洛伊木马程序一般采用客户/服务器方式,驻留到目标系统中的程序作为服务器端,接收客户端(在黑客的主机上)的控制命令。
要利用特洛伊木马程序,关键一点是怎样让特洛伊木马程序能驻留到目标系统中去,这一般需要使用欺骗手段让目标系统上的用户执行一个程序或者某个动作从而完成特洛伊木马程序的安装。
黑客在成功入侵后也常在目标系统中安装特洛伊木马程序以便长期控制目标系统。
防范方法:经常检查系统中运行的服务或开启的端口号,如果陌生的服务程
序在运行或陌生的端口号被开启,就应该进一步查清是正常启动的新服务还是特洛伊木马程序。
特洛伊木马程序为了能在每次系统启动的时候自动启动,必须要修改注册表项,所以通过检查注册表也可以发现特洛伊木马程序,目前已有专用的防范软件来记录系统的状态及其修改并可擒获非法修改。
5、缓冲区溢出
缓冲区溢出就是向堆栈中分配的局部变量传递超长的数据,导致数据越界而覆盖它后面的堆栈区域。
黑客利用缓冲区溢出覆盖程序或函数的返回地址,当程序或函数返回时指针指向黑客设计的位置,使黑客的恶意代码得以执行而获得系统中的用户权限甚至特权用户权限。
缓冲区溢出是目前最常见的攻击收集。
缓冲区溢出攻击又可分为远程溢出攻击和本地溢出攻击,本地溢出攻击是黑客获得普通用户权限后提升自己权限采用的方法;远程溢出攻击是黑客获得普通用户权限后提升自己权限常采用的方法;远程溢出攻击则可以在没有系统的任何帐号的情况下获得系统中的用户权限,甚至直接获得特权用户权限。
防范缓冲区溢出的方法是在程序设计时记住进行越界检查。
6、拒绝服务DOS(Denial of Service)
拒绝服务是就攻击结果而言的,指目标主机不能为用户提供正常的服务,即破坏目标系统的可用性。
要达到这一目的,有几种不同的方法:服务超载、报文洪水攻击使系统变慢,以阻止处理常规工作、SYN、分布式拒绝服务攻击。
7、暗藏ICMP通道
ICMP (因特网控制报文协议)是IP层上的差错和控制协议。
Ping命令是利用ICMP的回应请求报文来探测一个目的机器是否可以连通和有响应。
任何一台机器接收到一个回应请求,都返回一个回应应答报文给原请求者。
因为ping 命令的数据报文几乎会出现在每个网络中,许多防火墙和网络都认为这种数据无危险而让其通过。
黑客正是利用了这一点,用ICMP数据包开一个暗藏的通道。
ICMP数据包有一选项可以包含一个数据段,尽管其中的有效信息通常是时间信息,实际上任何设备都不检查其数据内容,这样它包含任何数据,成为黑客传递信息的载体。
利用此通道,可以秘密向目标主机上的木马程序传递命令并在目标机器上执行,也可以将在目标主机上搜集到的信息传送给远端的黑客,作为一个秘密用户与用户、用户与机器间通信的方法。
防范的方法是设置ICMP数据包的智能过滤器。
8、欺骗
欺骗可以分为以下几种:
①IP欺骗
在UNIX网络中可以有被信任的主机。
如果一个主机将信任扩展到另一台主
机,那么两台主机上都有的相同名字的用户,可以从被信任的主机上登录到这台主机上,而不必提供口令。
信任也可被扩充到一些选中的机器上的不同用户,而最终可到任何主机上的任何用户。
除rlogin外,rpc,rdist,rsh等(称为R*命令)都可使用信任方案。
当从远程主机上启动任何R*命令,接收的主机仅检查发送机器的IP地址是否符合授权信任的主机,如果符合,命令就被执行;若不符合,就拒绝命令或要求口令。
由于Internet协议缺乏源IP地址认证,IP欺骗攻击就是利用这个弱点。
若入侵者的主机为illegal,目标主机为target,信任主机为friend,入侵者将illegal的IP地址改为friend的IP地址,即入侵者将发向目标主机的数据包中源地址改为被信任主机的地址,这样target就会相信illegal,允许它访问。
防范的方法是禁用基于IP地址的信任关系:将MAC与IP绑定等。
②路由欺骗
通过伪造或修改路由表来故意发送非本地报文以达到攻击目的。
路由欺骗的分为:基于ICMP的路由欺骗、基于RIP的路由欺骗、基于源路径的欺骗。
③DNS欺骗
DNS完成IP地址到域名之间的相互转换,从DNS服务器返回到响应一般为Internet上所有的主机所信任。
黑客只需先于域名服务器所发送给客户机一个伪造的响应数据报就可欺骗客户机连接到非法的主机上,或者先在服务器验证一个可信任的客户机名的IP地址时欺骗服务器。
防范方法是用转化得到的IP地址或域名再次作反向转换验证。
④Web欺骗
Web欺骗通过创建某个WWW网站的一个复制图像,从而达到欺骗该网络用户的目的。
如果用户访问这个假冒的网站,从用户角度来说感觉不到任何差别,但是用户的一举一动都在黑客的监视之下,用户提交的任何敏感信息(例如信用卡的帐号和密码)都成了黑客的猎物。
台湾的某个电子商务网站就曾遭到黑客冒充,造成大量用户的信用卡密码被盗。
为了实施Web欺骗,黑客必须引诱用户去访问这个假冒的网站,一般有以下方法:利用前面介绍的DNS欺骗;创建错误的Web 索引,指示给搜索引擎;把错误的WEB连接发送给用户。
防范的方法是:禁止浏览器中的Javascript、ActibeX功能,使黑客不能改写浏览器的信息栏来隐藏自己;通过浏览器提供的WEB属性或者直接查看HTML 源文件发现错误的URL。
⑤TCP会话劫取
TCP会话劫取是入侵者强行强占已经存在的连接。
入侵者监视一个会话已经通过口令或其他较强的身份验证之后,就抢占这个会话。
例如一个用户用login
或其他终端会话连接到远程主机上,身份验证之后,入侵者抢占该连接。
TCP会话劫取需要综合使用拒绝服务、监听和IP欺骗的方法。
2.1.4安全威胁的根源
五花八门的攻击方法让人眼花缭乱,那么为什么会有这么多的漏洞让黑客有机可乘呢?概括地说,安全威胁的根源主要是三个方面:
1.网络协议设计和实现中的漏洞
TCP/IP协议族在规则之初是为了方便地实现信息的共享,设计时注重的是开放和灵活,未能对安全性(身份鉴别和信息保密等)给予足够的考虑。
这在当时的历史条件下是适用的,但在今天这样商业和政府广泛参与、INTERNET普遍应用的条件下,INTERNET缺乏安全性的先天不足就给无孔不入的黑客许多可乘之机。
例如监听、暗藏的ICMP通道、SYN洪水、IP欺骗、DNS欺骗、TCP会话劫取、路由欺骗等都是利用了网络协议设计上的漏洞。
各种类型的TCP/IP协议的软件实现中的漏洞更是五花八门,例如著名的OOB攻击就是利用了WINDOWS操作系统的早期版本中TCP/IP协议栈实现上的一个漏洞。
2.计算机软件设计和实现中的疏漏
包括作为计算机核心的操作系统和作为支撑软件的编译器和数据库管理系统,也包括提供服务的应用程序等,这些软件往往由于功能复杂、规模庞大,又没有安全理论的指导或安全原则未能贯穿始终,甚至有的在设计之初就没有考虑安全问题,导致了诸如缓冲区溢出、符号连接和后门等各种各样的攻击手段,这些漏洞一旦被发现,就可对系统的安全构成致命的威胁。
3. 系统和网络使用过程中的错误配置及误操作
完善的安全防范体系包括安全准则的正确执行,人为疏忽会造成系统错误配置。
如果配置不当,攻击者就可以很容易突破防线,获得非授权访问能力甚至是系统特权。
由此可见,只要杜绝了计算机系统在设计、实现和使用上的错误,黑客就束手无策了,这也是计算机工作者梦寐以求的一个理想。
但是,经验证明程序错误和其它人为错误造成的安全隐患是不可能完全避免的。
在这样的条件下,具有主动防御能力的入侵检测技术就显的尤为重要。
2.2入侵检测技术
2.2.1入侵检测的概念
1980年4月,在James P.Anderson为美国空军做的题为:《计算机安全威胁监控与监视》(“Computer Security Threat Monitoring and Surveillance”)的技术报告中,首次提出了入侵(威胁 threat)的概念:潜在
的有预谋未经授权访问信息、操作信息、致使系统不可靠或无法使用的企图。
Heady认为入侵是指试图破坏资源的完整性、机密性及可用性的行为集合。
关于入侵检测的概念,还有许多从不同角度的定义。
入侵检测是对发生在计算机系统或网络中的事件进行监控及对入侵信号的分析过程。
使监控和分析过程自动化的软件或硬件产品称为入侵检测系统(Intrusion Detection System),简称IDS。
一个完整的入侵检测系统必须具有:经济性、时效性、安全性、可扩展性的特点。
2.2.2入侵检测系统的基本结构构成
CIDF(Common Intrusion Detection Frame,公共入侵检测框架)提出了通用模型,将入侵检测系统分为四个基本组件:事件产生器、事件分析器、响应单元和事件数据库,见下图。
输入:原始事件源
图2.1公共入侵检测框架(CIDF)的体系结构
(1)事件产生器(Event generators)
事件产生器是入侵检测系统中负责原始数据采集的部分,它对数据流、日志文件等进行追踪,然后将收集到的原始数据转换为事件,并向系统的其他部分提供此事件。
(2)事件分析器(Event analyzers)
事件分析器接收事件信息,然后对它们进行分析,判断是否是入侵行为或异常现象,最后把判断的结果转换为警告信息。
(3)事件数据库(Response units )
事件数据库是存放各种中间和最终数据的地方。
(4)响应单元(Response units )
响应单元根据警告信息做出反应,如切断连接、改变文本属性等强烈的反应,也可能是简单地报警。
它是入侵检测系统中的主动武器。
2.2.3入侵检测的分类
根据原始数据的来源分类:
(1)基于主机(host-based)的入侵检测系统
该系统获取的数据来源于运行该系统所在的主机。
它通过监视和分析主机的审计记录和日志文件来检测入侵。
基于主机的入侵检测系统主要用于保护运行关键应用的服务器。
由于需要在主机上安装软件,针对不同的系统、不同的版本需安装不同的主机引擎,安装配置较为复杂,同时对系统的运行和稳定性都会造成影响。
(2)基于网络(network-based)的入侵检测系统
该系统获取的数据来源是网络上传输的数据包。
它通过监听网络上的所有分组来采集数据,分析可疑现象。
基于网络的入侵检测系统主要用于实时监控网络上的关键路径(某一共享网段)。
只需把它安装在网络的监听端口上,对网络的运行影响较小。
(3)混合型入侵检测系统
毋庸质疑,混合型就是既基于主机又基于网络。
基于主机的和基于网络的IDS具有互补性,基于网络的入侵检测能够客观地反映网络活动,特别是能够监视到系统审计的盲区;而基于主机的入侵检测能够更加准确地监视系统中的各种活动。
由于近些年来,混合式病毒攻击的活动更为猖獗,单一的基于主机或者单一的基于网络的IDS无法抵御混合式攻击,因此,采用混合型的入侵检测系统可以更好的保护系统。
根据分析方法分类
(1)误用检测(特征检测 signature-based)
误用检测是基于已知的系统缺陷和入侵模式,所以又称为特征检测。
误用检测是对不正常的行为建模,这些不正常的行为是被记录下来的确认的误用和攻击。
通过对系统活动的分析,发现与被定义好的攻击特征相匹配的事件或事件集合。
该检测方法可以有效地检测到已知攻击,检测精度高,误报少。
但需要不断更新攻击的特征库,系统灵活性和自适应性较差,漏报较多。
商用IDS多采用该种检测方法。
(2)异常检测(anomaly-based)
异常检测是指能根据异常行为和使用计算机资源的情况检测出入侵的方法。
它试图用定量的方式描述可以接受的行为特征,以区分非正常的、潜在的入侵行为。
也就是,异常检测是对用户的正常行为建模,通过正常行为与用户的行为进行比较,如果二者的偏差超过了规定阈值则认为该用户的行为是异常的。
异常检测的误报较多。
目前,大多数的异常检测技术还处于研究阶段,基本没有用于商业IDS中。
根据体系结构分类
(1)集中式入侵检测系统
集中式IDS有多个分布在不同主机上的审计程序,仅有一个中央入侵检测服务器。
审计程序将当地收集到的数据踪迹发送给中央服务器进行分析处理。
随着服务器所承载的主机数量的增多,中央服务器进行分析处理的数量就会猛增,而且一旦服务器遭受攻击,整个系统就会崩溃。
(2)等级式(部分分布式)入侵检测系统
等级式IDS中定义了若干个等级的监控区域,每个IDS负责一个区域,每一
级IDS只负责所监控区的分析,然后将当地的分析结果传送给上一级IDS。
等级式IDS也存在一些问题:首先,当网络拓扑结构改变时,区域分析结果的汇总机制也需要做相应的调整;其次,这种结构的IDS最后还是要将各地收集的结果传送到最高级的检测服务器进行全局分析,所以系统的安全性并没有实质性的改进。
(3)分布式(协作式)入侵检测系统
分布式IDS是将中央检测服务器的任务分配给多个基于主机的IDS,这些IDS 不分等级,各司其职,负责监控当地主机的某些活动。
所以,其可伸缩性、安全性都等到了显著的提高,并且与集中式IDS相比,分布式IDS对基于网络的共享数据量的要求较低。
但维护成本却提高了很多,并且增加了所监控主机的工作负荷,如通信机制、审计开销、踪迹分析等。
分布式IDS是本文研究一个重点。
根据时效性分类
(1)脱机分析:就是在行为发生后,对产生的数据进行分析,而不是在行为发生时进行分析。
如对日志的审核、对系统文件的完整性检查等。
(2)联机分析:就是在数据产生或者发生改变的同时对其进行检查,以发现攻击行为,这种方式一般用于对网络数据的实时分析,并且对系统资源要求比较高。
不同的分类方法体现的是对入侵检测系统不同侧面的理解。
入侵检测的核心在于对事件的分析,所以分析分类方法是较重要的。
2.2.4入侵检测方法
1、模式匹配
模式匹配是传统的、最简单的入侵检测方法。
该方法需要建立一个攻击特征库,检查接收到的数据中是否包含特征库中的攻击特征,从而判断是否受到攻击。
它的算法简单、准确率高,但是只能检测到已知攻击,对已知攻击稍加修改就可以躲过检测,漏报现象严重,模式库需要不断更新。
对于高速大规模的网络来说,由于要分析处理大量的数据包,该方法的速度就成为了问题。
2、协议分析
协议分析是对模式匹配的智能扩展,它利用网络协议的高度规则性快速探测攻击的存在。
它的提出弥补了模式匹配技术的一些不足,如计算量大、探测准确率低等。
另外,协议分析还可以探测碎片攻击。
例如:假设袭击执行的基础协议是虚构的BGS协议,攻击要求非法变量foo必须传递到BGS型字段中。
如果BGS 协议允许隔字节为空,那么模式匹配将无法发现fx00ox00ox00,相反,协议分析则能够跳过空字节,如期发出警报。
3、专家系统。