毕业设计论文个人入侵检测系统的实现含源程序代码doc.docx
- 文档编号:10973812
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:31
- 大小:82.29KB
毕业设计论文个人入侵检测系统的实现含源程序代码doc.docx
《毕业设计论文个人入侵检测系统的实现含源程序代码doc.docx》由会员分享,可在线阅读,更多相关《毕业设计论文个人入侵检测系统的实现含源程序代码doc.docx(31页珍藏版)》请在冰豆网上搜索。
毕业设计论文个人入侵检测系统的实现含源程序代码doc
源程序代码等全套设计联系QQ各专业都有
分类号:
TP393UDC:
D10621-408-(2007)5862-0
密级:
公开编号:
成都信息工程学院
学位论文
个人入侵检测系统的实现
论文作者姓名:
金国强
申请学位专业:
计算机科学与技术
申请学位类别:
工学学士
指导教师姓名(职称):
熊淑华(副教授)
论文提交日期:
2007年6月9日
个人入侵检测系统的实现
摘要
入侵检测系统(IDS)可以对系统或网络资源进行实时检测,及时发现闯入系统或网络的入侵者,也可预防合法用户对资源的误操作。
本论文从入侵检测的基本理论和入侵检测中的关键技术出发,主要研究了一个简单的基于网络的windows平台上的个人入侵检测系统的实现(PIDS,PersonalIntrusionDetectionSystem)。
论文首先分析了当前网络的安全现状,介绍了入侵检测技术的历史以及当前入侵检测系统的关键理论。
分析了Windows的网络体系结构以及开发工具Winpcap的数据包捕获和过滤的结构。
最后在Winpcap系统环境下实现本系统设计。
本系统采用异常检测技术,通过Winpcap截取实时数据包,同时从截获的IP包中提取出概述性事件信息并传送给入侵检测模块,采用量化分析的方法对信息进行分析。
系统在实际测试中表明对于具有量化特性的网络入侵具有较好的检测能力。
最后归纳出系统现阶段存在的问题和改进意见,并根据系统的功能提出了后续开发方向。
关键词:
网络安全;入侵检测;数据包捕获;PIDS
ImplementationofPersonalIntrusionDetectionSystem
Abstract
TheIntrusionDetectionSystem(IDS)candetectthesystemorthenetworkresourcesonthereal-time,discovertheintruderwhointendstoenterintoasystemoranetworkwithoutwarrantintimeandpreventusersfromwrongoperation.Basedonthebasictheoryoftheintrusiondetectionandthecoretechnologyofintrusiondetection,awayoftherealizationofasimplePersonalIntrusionDetectionSystem(PIDS),whichbasedonWindowsplatform,iswellresearched.Thecurrentsecuritystatusofthenetworkisanalyzedfirstly,andthenthehistoryofintrusiondetectiontechnologyandthecurrentcoretheoryoftheintrusiondetectionsystemareintroduced.Atlast,thenetworkarchitectureonWindowsaswellasthestructureofcapturingandfilteringdatapacketsbyWinpcap,atoolondevelopmentisintroduced.Afterthat,thesystemisrealizedundertheWinpcapsystemenvironment.Theabnormaldetectiontechnologyisusedinthesystem.AftercatchingdatapacketswithWinpcapinreal-time,extractingprobabilisticinformationabouteventsfromtheinterceptedIPpacketsandsendingthemtotheintrusiondetectionmodule,informationisanalyzedbymethodofquantitativeanalysis.Inactualsystemtesting,thesystemshowsagoodabilityondetectingthequantitativecharacteristicsofnetworkintrusion.Finally,theexistedproblemsandoursuggestionduringthisstageissummedupandaccordingtothefunctionofthesystem,thepropositionisgivenaboutthefuturedirection.
Keywords:
Networksecurity,Intrusiondetection,Packagecatching,PIDS
论文总页数:
24页
1引言
1.1网络安全概述
1.1.1网络安全问题的产生
可以从不同角度对网络安全作出不同的解释。
一般意义上,网络安全是指信息安全和控制安全两部分。
国际标准化组织把信息安全定义为“信息的完整性、可用性、保密性和可靠性”;控制安全则指身份认证、不可否认性、授权和访问控制。
互联网与生俱有的开放性、交互性和分散性特征使人类所憧憬的信息共享、开放、灵活和快速等需求得到满足。
网络环境为信息共享、信息交流、信息服务创造了理想空间,网络技术的迅速发展和广泛应用,为人类社会的进步提供了巨大推动力。
然而,正是由于互联网的上述特性,产生了许多安全问题:
(1)信息泄漏、信息污染、信息不易受控。
例如,资源未授权侵用、未授权信息流出现、系统拒绝信息流和系统否认等,这些都是信息安全的技术难点。
(2)在网络环境中,一些组织或个人出于某种特殊目的,进行信息泄密、信息破坏、信息侵权和意识形态的信息渗透,甚至通过网络进行政治颠覆等活动,使国家利益、社会公共利益和各类主体的合法权益受到威胁。
(3)网络运用的趋势是全社会广泛参与,随之而来的是控制权分散的管理问题。
由于人们利益、目标、价值的分歧,使信息资源的保护和管理出现脱节和真空,从而使信息安全问题变得广泛而复杂。
(4)随着社会重要基础设施的高度信息化,社会的“命脉”和核心控制系统有可能面临更大的威胁。
1.1.2网络信息系统面临的安全威胁
目前网络信息系统面临的安全威胁主要有:
(1)非法使用服务:
这种攻击的目的在于非法利用网络的能力,网络上的非授权访问应该是不可能的。
不幸的是,用于在网络上共享资源及信息的工具、程序存在许多安全漏洞,而利用了这些漏洞就可以对系统进行访问了。
(2)身份冒充;这种攻击的着眼点在于网络中的信任关系,主要有地址伪装IP欺骗和用户名假冒。
(3)数据窃取:
指所保护的重要数据被非法用户所获取,如入侵者利用电磁波辐射或搭线窃听等方式截获用户口令、帐号等重要敏感信息。
(4)破坏数据完整性:
指通过非法手段窃得系统一定使用权限,并删除、修改、伪造某些重要信息,以干扰用户的正常使用或便于入侵者的进一步攻击。
1.1.3对网络个人主机的攻击
对方首先通过扫描来查找可以入侵的机器,即漏洞探测;接着确定该机器的IP地址;然后利用相应的攻击工具发起某种攻击。
网络嗅探,嗅探器是一种网络监听工具(如:
sniffer),该工具利用计算机网络接口可以截获其他计算机的数据信息。
嗅探器工作在网络环境的底层,它会拦截所有正在网络上传送的数据,并且通过相应的软件实时分析这些数据的内容,进而明确所处的网络状态和整体布局。
在合理的网络中,嗅探器对系统管理员而言至关重要,通过嗅探器可以监视数据流动情况以及网络传输的信息,从而为管理员判断网络问题、管理网络提供宝贵的信息。
然而,如果黑客使用嗅探器,他可以获得和系统管理员同样重要而敏感的信息,(如:
在某局域网上,嗅探器可以很轻松地截获在网上传送的用户姓名、口令、信用卡号码和帐号等)从而对网络安全构成威胁。
其工作原理是:
在一个共享介质的网络中(如以太网),一个网段上的所有网络接口均能访问介质上传输的所有数据。
每个网络接口的硬件地址与其他网络接口的硬件地址不同,同时每个网络至少还有一个广播地址。
广播地址并不对应于某个具体的网络接口,而是代表所有网络接口。
当用户发送数据时,这些数据就会发送到局域网上所有可用的机器。
在一般情况下,网络上所有的机器都可以“听”到通过的流量,但对不属于自己的数据的硬件地址不予响应。
换句话说,工作站A不会捕获属于工作站B的数据,而是简单地忽略这些数据。
当发送者希望引起网络中所有主机操作系统的注意时,他就使用“广播地址”。
因此,在正常情况下,一个合法的网络接口应该只响应这样两种数据帧:
一是帧的目标区域具有和本地网络接口相匹配的硬件地址,二是帧的目标区域具有“广播地址”。
在接收到上面两种情况的数据帧时,主机通过CPU产生硬件中断,该中断能引起操作系统注意,然后将帧中所包含的数据传送给系统作进一步处理。
而嗅探器就是一种能将本地计算机状态设成“混杂(Promiscuous)”状态的软件,当本机处于这种方式时,该机具备“广播地址”,它对所有遭遇到的每一个帧都产生硬件中断以便提醒操作系统处理流经该网段的每一报文包。
在该方式下,网络接口就可以捕获网络上所有数据帧,从而可以达到监听的目的。
拒绝服务攻击(DenialofService,简称DoS),是指占据大量的共享资源(如:
处理器、磁盘空间、CPU、打印机),使系统没有剩余的资源给其他用户,从而使服务请求被拒绝,造成系统运行迟缓或瘫痪。
其攻击目的是为完成其他攻击做准备。
其攻击原理是:
在拒绝服务攻击中,恶意用户向服务器传送众多要求确认的信息,使服务器里充斥着这种无用的信息。
所有这些请求的地址都是虚假的,以至于服务器试图回传时,却无法找到用户。
服务器于是暂时等候,有时超过一分钟,然后再切断连接。
服务器切断连接后,攻击者又发送新一批虚假请求,该过程周而复始,最终使网站服务器充斥大量要求回复的信息,消耗网络带宽或系统资源,导致网络或系统不胜负荷以至于瘫痪而停止提供正常的网络服务。
典型的DOS攻击技术,如TCP/SYN攻击,该攻击作为一种拒绝服务攻击存在的时间己经有20多年了。
但是,随着技术的不断进步,SYN攻击也不断被更多黑客所了解并利用。
其原理是基于连接时的三次握手,如果黑客机器发出的包的源地址是一个虚假的IP地址,ISP主机发出的确认请求包ACK/SYN就找不到目标地址,如果这个确认包一直没找到目标地址,那么也就是目标主机无法获得对方回复的ACK包。
而在缺省超时的时间范围内,主机的一部分资源要花在等待这个ACK包的响应上,假如短时间内主机接到大量来自虚假IP地址的SYN包,它就要占有大量的资源来处理这些错误的等待,最后的结果就是系统资源耗尽以致瘫痪。
特洛伊木马来源于希腊神话,讲述的是通过木马血屠特洛伊城的故事。
这一故事形象地说明了木马程序的特点。
在计算机安全学中,特洛伊木马指的是一种计算机程序,它表面上具有某种有用的功能,实际上却隐藏着可以控制用户计算机系统,危害系统安全的破坏性指令,特洛伊木马代表了一种程度较高的危险。
当这种程序进入系统后,便有可能给系统带来危害。
在特洛伊木马程序中插入的代码在别的程序中依然能存在,但只在藏身的程序中进行破坏性活动。
代码能够在主程序的特权范围内从事任何破坏行为,使用自身或者其他程序进行操作。
其工作原理实质是,特洛伊木马只是一个网络客户/服务程序。
网络客户/服务模式的原理是一台主机(服务器)提供服务,另一台主机(客户机)接受服务。
作为服务器的主机一般会打开一个默认的端口并进行监听,如果有客户机向服务器这一端口提出连接请求,服务器上的相应程序就会自动运行,来应答客户机的请求,此程序称为守护进程。
对于木马来说,被控制端是一台服务器,控制端则是一台客户机。
黑客经常用欺骗手段引诱目标对象运行服务器端程序,黑客一旦成功地侵入了用户的计算机后,就会在计算机系统中隐藏一个会在Windows启动时悄悄运行的程序,采用服务器/客户机的运行方式,从而达到在用户上网时控制用户计算机的目的。
1.2入侵检测技术及其历史
1.2.1入侵检测(IDS)概念
1980年,詹姆斯·安德森(JamesP.Anderson)第一次系统阐述了入侵检测的概念,并将入侵行为分为外部滲透、内部滲透和不法行为三种,还提出了利用审计数据监视入侵活动的思想。
Anderson将入侵尝试或威胁定义为:
潜在的、有预谋的、XX的访问信息、操作信息、致使系统不可靠或无法使用的企图。
而入侵检测的定义为:
发现非授权使用计算机的个体(如“黑客”)或计算机系统的合法用户滥用其访问系统的权利以及企图实施上述行为的个体。
执行入侵检测任务的程序即是入侵检测系统。
入侵检测系统也可以定义为:
检测企图破坏计算机资源的完整性,真实性和可用性的行为的软件。
入侵检测系统执行的主要任务包括:
监视、分析用户及系统活动;审计系统构造和弱点;识别、反映已知进攻的活动模式,向相关人士报警;统计分析异常行为模式;评估重要系统和数据文件的完整性;审计、跟踪管理操作系统,识别用户违反安全策略的行为。
入侵检测一般分为三个步骤:
信息收集、数据分析、响应。
入侵检测的目的:
(1)识别入侵者;
(2)识别入侵行为;(3)检测和监视以实施的入侵行为;(4)为对抗入侵提供信息,阻止入侵的发生和事态的扩大。
1.2.2入侵检测系统的分类
现有的IDS的分类,大都基于信息源和分析方法。
为了体现对IDS从布局、采集、分析、响应等各个层次及系统性研究方面的问题,在这里采用五类标准:
控制策略、同步技术、信息源、分析方法、响应方式。
1.按照控制策略分类
控制策略描述了IDS的各元素是如何控制的,以及IDS的输入和输出是如何管理的。
按照控制策略IDS可以划分为,集中式IDS、部分分布式IDS和全部分布式IDS。
在集中式IDS中,一个中央节点控制系统中所有的监视、检测和报告。
在部分分布式IDS中,监控和探测是由本地的一个控制点控制,层次似的将报告发向一个或多个中心站。
在全分布式IDS中,监控和探测是使用一种叫“代理”的方法,代理进行分析并做出响应决策。
2.按照同步技术分类
同步技术是指被监控的事件以及对这些事件的分析在同一时间进行。
按照同步技术划分,IDS划分为间隔批任务处理型IDS和实时连续性IDS。
在间隔批任务处理型IDS中,信息源是以文件的形式传给分析器,一次只处理特定时间段内产生的信息,并在入侵发生时将结果反馈给用户。
很多早期的基于主机的IDS都采用这种方案。
在实时连续型IDS中,事件一发生,信息源就传给分析引擎,并且立刻得到处理和反映。
实时IDS是基于网络IDS首选的方案。
3.按照信息源分类
按照信息源分类是目前最通用的划分方法,它分为基于主机的IDS、基于网络的IDS和分布式IDS。
基于主机的IDS通过分析来自单个的计算机系统的系统审计踪迹和系统日志来检测攻击。
基于主机的IDS是在关键的网段或交换部位通过捕获并分析网络数据包来检测攻击。
分布式IDS,能够同时分析来自主机系统日志和网络数据流,系统由多个部件组成,采用分布式结构。
4.按照分析方法分类
按照分析方法IDS划分为滥用检测型IDS和异常检测型IDS。
滥用检测型的IDS中,首先建立一个对过去各种入侵方法和系统缺陷知识的数据库,当收集到的信息与库中的原型相符合时则报警。
任何不符合特定条件的活动将会被认为合法,因此这样的系统虚警率很低。
异常检测型IDS是建立在如下假设的基础之上的,即任何一种入侵行为都能由于其偏离正常或者所期望的系统和用户活动规律而被检测出来。
所以它需要一个记录合法活动的数据库,由于库的有限性使得虚警率比较高。
5.按照响应方式分类
按照响应方式IDS划分为主动响应IDS和被动响应IDS。
当特定的入侵被检测到时,主动IDS会采用以下三种响应:
收集辅助信息;改变环境以堵住导致入侵发生的漏洞;对攻击者采取行动(这是一种不被推荐的做法,因为行为有点过激)。
被动响应IDS则是将信息提供给系统用户,依靠管理员在这一信息的基础上采取进一步的行动。
1.2.3入侵检测模型
美国斯坦福国际研究所(SRI)的,该模型的检测方法就是建立用户正常行为的描述模型,并以此同当前用户活动的审计记录进行比较,如果有较大偏差,则表示有异常活动发生。
这是一种基于统计的检测方法。
随着技术的发展,后来人们又提出了基于规则的检测方法。
结合这两种方法的优点,人们设计出很多入侵检测的模型。
通用入侵检测构架(CommonIntrusionDetectionFramework简称CIDF)组织,试图将现有的入侵检测系统标准化,CIDF阐述了一个入侵检测系统的通用模型(一般称为CIDF模型,如图1所示)。
它将一个入侵检测系统分为以下四个组件:
事件产生器(eventgenerators),用e盒表示;
事件分析器(eventanalyzers),用a盒表示;
响应单元(responseunits),用r盒表示;
事件数据库(eventdatabases),用d盒表
它将需要分析的数据通称为事件,事件可以是基于网络的数据包也可以是基于主机的系统日志中的信息。
事件产生器的目的是从整个计算机环境中获得事件,并向系统其它部分提供此事件。
事件分析器分析得到的事件并产生分析结果。
响应单元则是对分析结果做出反应的功能单元,它可以做出切断连接、修改文件属性等强烈反应。
事件数据库是存放各种中间和最终数据的地方的通称,它可以是复杂的数据库也可以是简单的文本文件。
图1CIDF入侵检测模型
1.2.4入侵检测过程分析
过程分为三部分:
信息收集、信息分析和结果处理。
(1)信息收集:
入侵检测的第一步是信息收集,收集内容包括系统、网络、数据及用户活动的状态和行为。
由放置在不同网段的传感器或不同主机的代理来收集信息,包括系统和网络日志文件、网络流量、非正常的目录和文件改变、非正常的程序执行。
(2)信息分析:
收集到的有关系统、网络、数据及用户活动的状态和行为等信息,被送到检测引擎,检测引擎驻留在传感器中,一般通过三种技术手段进行分析:
模式匹配、统计分析和完整性分析。
当检测到某种误用模式时,产生一个告警并发送给控制台。
(3)结果处理:
控制台按照告警产生预先定义的响应采取相应措施,可以是重新配置路由器或防火墙、终止进程、切断连接、改变文件属性,也可以只是简单的告警。
1.2.5入侵检测的发展历史
1980年JamesPAnderson在给一个保密客户写的一份题为《计算机安全威胁监控与监视》的技术报告中指出,审计记录可以用于识别计算机误用,他把威胁进行了分类,第一次详细阐述了入侵检测的概念。
1984年到1986年乔治敦大学的DorothyDenning和SRI公司计算机科学实验室的PeterNeumann研究出了一个实时入侵检测系统模型—IDES(IntrusionDetectionExpertSystems入侵检测专家系统),是第一个在一个应用中运用了统计和基于规则两种技术的系统,是入侵检测研究中最有影响的一个系统。
1989年,加州大学戴维斯分校的ToddHeberlein写了一篇论文《ANetworkSecurityMonitor》,该监控器用于捕获TCP/IP分组,第一次直接将网络流作为审计数据来源,因而可以在不将审计数据转换成统一格式的情况下监控异种主机,网络入侵检测从此诞生。
1.3个人入侵检测系统的定义
个人入侵检测系统(PIDS),以网络数据包作为分析数据源,采用异常检测分析方法。
它只分析处理与个人主机有关的IP数据包,它保护的是个人主机系统。
1.4系统研究的意义和方法
综上,当个人用户接入Internet时,个人机的安全就将面临着攻击威胁。
因此,个人用户的重要数据、机密文件等需要安全保护。
静态的防御措施,如个人防火墙等,已不能满足个人用户的需求,个人用户需要一个更全面的个人安全防范体系。
如果把入侵检测技术应用到个人机的安全防范中,它将与个人防火墙一起为个人用户提供一个更安全的动态防范体系。
本文阐述的就是在Windows下实现个人入侵检测系统(PIDS)。
本系统采用基于网络的异常检测方法的入侵检测技术,使用量化分析的方法来检测用户的行为。
在总结出的正常行为规律的基础上,检查入侵和滥用行为特征与其之间的差异,以此来判断是否有入侵行为。
2个人入侵检测系统的设计
2.1数据包捕获模块
网络入侵检测系统要分析的对象是网络中的数据包。
所以我们就需要对流经网络的数据包捕获并加以分析,这样才能得到实现入侵检测的功能。
对于不同的操作系统有许多不同的数据包捕获方法。
在本系统中,采用了windows下的Winpcap网络驱动开发包,它是Windows平台下的一个免费、公共的网络驱动开发包。
开发Winpcap这个项目的目的在于为Win32应用程序提供访问网络底层的能力。
它提供了以下的各项功能:
1、捕获原始数据报,包括在共享网络上各主机发送/接收的以及相互之间交换的数据报
2、在数据报发往应用程序之前,按照自定义的规则将某些特殊的数据报过滤掉
3、在网络上发送原始的数据报
4、收集网络通信过程中的统计信息
Winpcap由三个模块构成:
NPF,packet.dll,wpcap.dll。
前一个工作在内核层,后两个工作在用户层。
第一个模块是内核部分NPF(NetgroupPacketFilter),在Win95/98中它是一个VXD(虚拟设备驱动程序文件)文件,在WinNT/Win2000下是一个SYS文件。
它的主要功能是过滤数据包,并把这些数据包原封不动地传给用户态模块。
当然也添加了一些系统特定的标志(比如时间戳管理)。
这个过程中包括了一些操作系统特有的代码。
第二个模packet.dll用来在不同的Win32平台下提供一个通用的公共的包驱动接口。
事实上,不同版本的Windows平台在内核层模块和用户进程之间的接口不完全相同,packet.dll用于解决这些不同。
提供了一套系统独立的API,调用packet.dll的程序能够运行在不同版本的Windows平台上而无需重新编译。
packet.dll还有一些附加的功能。
它可执行一些低层操作:
如:
获得网卡名字,动态装载驱动,得到比如机器的网络掩码、硬件冲突等一些系统特定的信息。
Packet.dll和NPF都是系统相关的,在Win95/98和WinNT/2000等不同系统架构Packet.dll会相应有些变化。
第三个模块wpcap.dll是系统无关的,它提供了更高层、抽象的函数。
它包括了一些比如过滤器生成、用户级缓冲等其它的高层函数,增加了比如统计和包发送等更高级的特性。
因此程序员能处理两种类型的API:
一套原始函数集,包含在packet.dll中,直接与内核层调用匹配;另一套高层函数由wpcap.dll提供,便于用户调用,功能更强大。
程序员能随意使用wpcap.dll,但只能在受限的环境中直接使用packet.dll.
总的说来,Packet.dll直接映射了内核的调用。
Wpcap.dll提供了更加友好、功能更加强大的函数调用。
Winpcap的具体结构图2所示:
图2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 个人 入侵 检测 系统 实现 源程序 代码 doc