版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、个人入侵检测系统的实现(有源程序代码)源程序代码等全套设计联系174320523各专业 都有分类号:TP393 U D C:D10621-408-2007 5862-0密 级:公 开 编 号:20038031288成都信息工程学院学位论文个人入侵检测系统的实现论文作者姓名:金国强申请学位专业:计算机科学与技术申请学位类别:工学学士指导教师姓名(职称):熊淑华(副教授)论文提交日期:2007年6月9日个人入侵检测系统的实现摘要入侵检测系统(IDS)可以对系统或网络资源进行实时检测,及时发现闯入 系统或网络的入侵者,也可预防合法用户对资源的误操作。本论文从入侵检测的 基本理论和入侵检测中的关键技术
2、出发,主要研究了一个简单的基于网络的 windows平台上的个人入侵检测系统的实现PIDS,Personal Intrusion Detection System。论文首先分析了当前网络的安全现状,介绍了入侵检测技术 的历史以及当前入侵检测系统的关键理论。分析了 Windows的网络体系结构以及 开发工具Winpcap的数据包捕获和过滤的结构。最后在Winpcap系统环境下实现 本系统设计。本系统采用异常检测技术,通过Winpcap截取实时数据包,同时从截 获的IP包中提取出概述性事件信息并传送给入侵检测模块,采用量化分析的方 法对信息进行分析。系统在实际测试中表明对于具有量化特性的网络入侵具
3、有较 好的检测能力。最后归纳出系统现阶段存在的问题和改进意见,并根据系统的功 能提出了后续开发方向。关键词:网络安全;入侵检测;数据包捕获;PIDSImplementation of Personal Intrusion Detection System AbstractThe Intrusion Detection System IDS can detect the system or the network resources on the real-time, discover the intruder who intends to enter into a system or a ne
4、twork without warrant in time and prevent users from wrong operation. Based on the basic theory of the intrusion detection and the core technology of intrusion detection, a way of the realization of a simple Personal Intrusion Detection System PIDS, which based on Windows platform, is well researche
5、d. The current security status of the network is analyzed firstly, and then the history of intrusion detection technology and the current core theory of the intrusion detection system are introduced. At last, the network architecture on Windows as well as the structure of capturing and filtering dat
6、a packets by Winpcap, a tool on development is introduced. After that, the system is realized under the Winpcap system environment. The abnormal detection technology is used in the system. After catching data packets with Winpcap in real-time, extracting probabilistic information about events from t
7、he intercepted IP packets and sending them to the intrusion detection module, information is analyzed by method of quantitative analysis. In actual system testing, the system shows a good ability on detecting the quantitative characteristics of network intrusion. Finally, the existed problems and ou
8、r suggestion during this stage is summed up and according to the function of the system, the proposition is given about the future direction.Keywords: Network security, Intrusion detection, Package catching, PIDS目录论文总页数:24页1引言 1网络安全概述11.1.1网络安全问题的产生11.1.2网络信息系统面临的安全威胁11.1.3对网络个人主机的攻击2入侵检测技术及其历史31.2.
9、1入侵检测(IDS)概念31.2.2入侵检测系统的分类41.2.3入侵检测模型51.2.4入侵检测过程分析61.2.5入侵检测的发展历史6个人入侵检测系统的定义7系统研究的意义和方法72个人入侵检测系统的设计 7数据包捕获模块 7数据解析模块11数据分析模块 12分析结果记录13报警处理模块133个人入侵检测系统的实现13系统的总体结构 13 TOC o 1-5 h z 数据包捕获模块实现14解码数据包模块实现15分析数据包模块实现16分析结果记录并告警204个人入侵检测系统的应用实例分析21结论22参考文献22致谢23声明24引言网络安全概述网络安全问题的产生可以从不同角度对网络安全作出不同
10、的解释。一般意义上,网络安全是指 信息安全和控制安全两部分。国际标准化组织把信息安全定义为“信息的完整性、 可用性、保密性和可靠性”;控制安全则指身份认证、不可否认性、授权和访问 控制。互联网与生俱有的开放性、交互性和分散性特征使人类所憧憬的信息共 享、开放、灵活和快速等需求得到满足。网络环境为信息共享、信息交流、信息 服务创造了理想空间,网络技术的迅速发展和广泛应用,为人类社会的进步提供 了巨大推动力。然而,正是由于互联网的上述特性,产生了许多安全问题:1信息泄漏、信息污染、信息不易受控。例如,资源未授权侵用、未授权 信息流出现、系统拒绝信息流和系统否认等,这些都是信息安全的技术难点。2在网
11、络环境中,一些组织或个人出于某种特殊目的,进行信息泄密、信 息破坏、信息侵权和意识形态的信息渗透,甚至通过网络进行政治颠覆等活动, 使国家利益、社会公共利益和各类主体的合法权益受到威胁。3网络运用的趋势是全社会广泛参与,随之而来的是控制权分散的管理 问题。由于人们利益、目标、价值的分歧,使信息资源的保护和管理出现脱节和 真空,从而使信息安全问题变得广泛而复杂。4随着社会重要基础设施的高度信息化,社会的“命脉”和核心控制系统 有可能面临更大的威胁。网络信息系统面临的安全威胁目前网络信息系统面临的安全威胁主要有:1非法使用服务:这种攻击的目的在于非法利用网络的能力,网络上的非 授权访问应该是不可能
12、的。不幸的是,用于在网络上共享资源及信息的工具、程 序存在许多安全漏洞,而利用了这些漏洞就可以对系统进行访问了。2身份冒充;这种攻击的着眼点在于网络中的信任关系,主要有地址伪装 IP欺骗和用户名假冒。3数据窃取:指所保护的重要数据被非法用户所获取,如入侵者利用电磁 波辐射或搭线窃听等方式截获用户口令、帐号等重要敏感信息。4破坏数据完整性:指通过非法手段窃得系统一定使用权限,并删除、修 改、伪造某些重要信息,以干扰用户的正常使用或便于入侵者的进一步攻击。对网络个人主机的攻击对方首先通过扫描来查找可以入侵的机器,即漏洞探测;接着确定该机器 的IP地址;然后利用相应的攻击工具发起某种攻击。网络嗅探,
13、嗅探器是一种网络监听工具(如:sniffer),该工具利用计算机 网络接口可以截获其他计算机的数据信息。嗅探器工作在网络环境的底层,它会 拦截所有正在网络上传送的数据,并且通过相应的软件实时分析这些数据的内容, 进而明确所处的网络状态和整体布局。在合理的网络中,嗅探器对系统管理员而 言至关重要,通过嗅探器可以监视数据流动情况以及网络传输的信息,从而为管 理员判断网络问题、管理网络提供宝贵的信息。然而,如果黑客使用嗅探器,他可 以获得和系统管理员同样重要而敏感的信息,(如:在某局域网上,嗅探器可以很 轻松地截获在网上传送的用户姓名、口令、信用卡号码和帐号等从而对网络安全 构成威胁。其工作原理是:
14、在一个共享介质的网络中如以太网,一个网段上的所有 网络接口均能访问介质上传输的所有数据。每个网络接口的硬件地址与其他网络 接口的硬件地址不同,同时每个网络至少还有一个广播地址。广播地址并不对应 于某个具体的网络接口,而是代表所有网络接口。当用户发送数据时,这些数据就 会发送到局域网上所有可用的机器。在一般情况下,网络上所有的机器都可以 “听”到通过的流量,但对不属于自己的数据的硬件地址不予响应。换句话说, 工作站A不会捕获属于工作站B的数据,而是简单地忽略这些数据。当发送者希 望引起网络中所有主机操作系统的注意时,他就使用“广播地址”。因此,在正常 情况下,一个合法的网络接口应该只响应这样两种
15、数据帧:一是帧的目标区域具 有和本地网络接口相匹配的硬件地址,二是帧的目标区域具有“广播地址”。在接 收到上面两种情况的数据帧时,主机通过CPU产生硬件中断,该中断能引起操作 系统注意,然后将帧中所包含的数据传送给系统作进一步处理。而嗅探器就是一 种能将本地计算机状态设成“混杂Promiscuous状态的软件,当本机处于这种 方式时,该机具备“广播地址”,它对所有遭遇到的每一个帧都产生硬件中断以便 提醒操作系统处理流经该网段的每一报文包。在该方式下,网络接口就可以捕获 网络上所有数据帧,从而可以达到监听的目的。拒绝服务攻击Denial of Service,简称DoS,是指占据大量的共享资源
16、(如:处理器、磁盘空间、CPU、打印机),使系统没有剩余的资源给其他用户,从而 使服务请求被拒绝,造成系统运行迟缓或瘫痪。其攻击目的是为完成其他攻击做 准备。其攻击原理是:在拒绝服务攻击中,恶意用户向服务器传送众多要求确认的 信息,使服务器里充斥着这种无用的信息。所有这些请求的地址都是虚假的,以至 于服务器试图回传时,却无法找到用户。服务器于是暂时等候,有时超过一分钟, 然后再切断连接。服务器切断连接后,攻击者又发送新一批虚假请求,该过程周而 复始,最终使网站服务器充斥大量要求回复的信息,消耗网络带宽或系统资源,导 致网络或系统不胜负荷以至于瘫痪而停止提供正常的网络服务。典型的DOS攻击 技术
17、,如TCP/SYN攻击,该攻击作为一种拒绝服务攻击存在的时间己经有20多年 了。但是,随着技术的不断进步,SYN攻击也不断被更多黑客所了解并利用。其原 理是基于连接时的三次握手,如果黑客机器发出的包的源地址是一个虚假的IP 地址,ISP主机发出的确认请求包ACK/SYN就找不到目标地址,如果这个确认包一 直没找到目标地址,那么也就是目标主机无法获得对方回复的ACK包。而在缺省 超时的时间范围内,主机的一部分资源要花在等待这个ACK包的响应上,假如短 时间内主机接到大量来自虚假IP地址的SYN包,它就要占有大量的资源来处理这 些错误的等待,最后的结果就是系统资源耗尽以致瘫痪。特洛伊木马来源于希腊
18、神话,讲述的是通过木马血屠特洛伊城的故事。这 一故事形象地说明了木马程序的特点。在计算机安全学中,特洛伊木马指的是一 种计算机程序,它表面上具有某种有用的功能,实际上却隐藏着可以控制用户计 算机系统,危害系统安全的破坏性指令,特洛伊木马代表了一种程度较高的危险。 当这种程序进入系统后,便有可能给系统带来危害。在特洛伊木马程序中插入的 代码在别的程序中依然能存在,但只在藏身的程序中进行破坏性活动。代码能够 在主程序的特权范围内从事任何破坏行为,使用自身或者其他程序进行操作。其 工作原理实质是,特洛伊木马只是一个网络客户/服务程序。网络客户/服务模式的原理是台主机服务器提供服务,另一台主机客户机接
19、受服务。作为服务器的主机一般会打开一个默认的端口并进行监听,如果有客户机向服务器这一端口提 出连接请求,服务器上的相应程序就会自动运行,来应答客户机的请求,此程序称 为守护进程。对于木马来说,被控制端是一台服务器,控制端则是一台客户机。黑 客经常用欺骗手段引诱目标对象运行服务器端程序,黑客一旦成功地侵入了用户 的计算机后,就会在计算机系统中隐藏一个会在Windows启动时悄悄运行的程序, 采用服务器/客户机的运行方式,从而达到在用户上网时控制用户计算机的目的。入侵检测技术及其历史入侵检测(IDS)概念1980年,詹姆斯?安德森(James P.Anderson)第一次系统阐述了入侵检测 的概念
20、,并将入侵行为分为外部?透、内部?透和不法行为三种,还提出了利用审计 数据监视入侵活动的思想。Anderson将入侵尝试或威胁定义为:潜在的、有预谋的、未经授权的访 问信息、操作信息、致使系统不可靠或无法使用的企图。而入侵检测的定义为: 发现非授权使用计算机的个体(如“黑客”)或计算机系统的合法用户滥用其访问 系统的权利以及企图实施上述行为的个体。执行入侵检测任务的程序即是入侵检 测系统。入侵检测系统也可以定义为:检测企图破坏计算机资源的完整性,真实性 和可用性的行为的软件。入侵检测系统执行的主要任务包括:监视、分析用户及系统活动;审计系 统构造和弱点;识别、反映已知进攻的活动模式,向相关人士
21、报警;统计分析异常 行为模式;评估重要系统和数据文件的完整性;审计、跟踪管理操作系统,识别用 户违反安全策略的行为。入侵检测一般分为三个步骤:信息收集、数据分析、响应。入侵检测的目的:1识别入侵者;2识别入侵行为;3检测和监视以实施的入侵行为;4为对抗入侵提供信息,阻止入侵的发生和事态的扩大。入侵检测系统的分类现有的IDS的分类,大都基于信息源和分析方法。为了体现对IDS从布局、 采集、分析、响应等各个层次及系统性研究方面的问题,在这里采用五类标准: 控制策略、同步技术、信息源、分析方法、响应方式。按照控制策略分类控制策略描述了 IDS的各元素是如何控制的,以及IDS的输入和输出是如 何管理的
22、。按照控制策略IDS可以划分为,集中式IDS、部分分布式IDS和全部 分布式IDS。在集中式IDS中,一个中央节点控制系统中所有的监视、检测和报 告。在部分分布式IDS中,监控和探测是由本地的一个控制点控制,层次似的将报 告发向一个或多个中心站。在全分布式IDS中,监控和探测是使用一种叫“代理” 的方法,代理进行分析并做出响应决策。按照同步技术分类同步技术是指被监控的事件以及对这些事件的分析在同一时间进行。按 照同步技术划分,IDS划分为间隔批任务处理型IDS和实时连续性IDS。在间隔批 任务处理型IDS中,信息源是以文件的形式传给分析器,一次只处理特定时间段 内产生的信息,并在入侵发生时将结
23、果反馈给用户。很多早期的基于主机的IDS 都采用这种方案。在实时连续型IDS中,事件一发生,信息源就传给分析引擎,并 且立刻得到处理和反映。实时IDS是基于网络IDS首选的方案。按照信息源分类按照信息源分类是目前最通用的划分方法,它分为基于主机的IDS、基于 网络的IDS和分布式IDS。基于主机的IDS通过分析来自单个的计算机系统的系 统审计踪迹和系统日志来检测攻击。基于主机的IDS是在关键的网段或交换部位 通过捕获并分析网络数据包来检测攻击。分布式IDS,能够同时分析来自主机系 统日志和网络数据流,系统由多个部件组成,采用分布式结构。按照分析方法分类按照分析方法IDS划分为滥用检测型IDS和
24、异常检测型IDS。滥用检测 型的IDS中,首先建立一个对过去各种入侵方法和系统缺陷知识的数据库,当收 集到的信息与库中的原型相符合时则报警。任何不符合特定条件的活动将会被认 为合法,因此这样的系统虚警率很低。异常检测型IDS是建立在如下假设的基础 之上的,即任何一种入侵行为都能由于其偏离正常或者所期望的系统和用户活动 规律而被检测出来。所以它需要一个记录合法活动的数据库,由于库的有限性使 得虚警率比较高。按照响应方式分类按照响应方式IDS划分为主动响应IDS和被动响应IDS。当特定的入侵 被检测到时,主动IDS会采用以下三种响应:收集辅助信息;改变环境以堵住导致 入侵发生的漏洞;对攻击者采取行
25、动(这是一种不被推荐的做法,因为行为有点过 激)。被动响应IDS则是将信息提供给系统用户,依靠管理员在这一信息的基础上 米取进一步的行动。入侵检测模型美国斯坦福国际研究所(SRI)的/.ning于1986年首次提出一种入侵检测模型,该模型的检测方法就是建立用户正常行为的描述模型,并以此同当前用 户活动的审计记录进行比较,如果有较大偏差,则表示有异常活动发生。这是一种 基于统计的检测方法。随着技术的发展,后来人们又提出了基于规则的检测方法。 结合这两种方法的优点,人们设计出很多入侵检测的模型。通用入侵检测构架 (Common Intrusion Detection Framework 简称 CI
26、DF)组织,试图将现有的入侵检 测系统标准化,CIDF阐述了一个入侵检测系统的通用模型(一般称为CIDF模型, 如图1所示)。它将一个入侵检测系统分为以下四个组件:事件产生器(event generators),用e盒表示;事件分析器(event analyzers),用a盒表示;响应单元(responseunits),用r盒表示;事件数据库(event databases),用d盒表它将需要分析的数据通称为事件,事件可以是基于网络的数据包也可以 是基于主机的系统日志中的信息。事件产生器的目的是从整个计算机环境中获得 事件,并向系统其它部分提供此事件。事件分析器分析得到的事件并产生分析结 果。
27、响应单元则是对分析结果做出反应的功能单元,它可以做出切断连接、修改 文件属性等强烈反应。事件数据库是存放各种中间和最终数据的地方的通称,它 可以是复杂的数据库也可以是简单的文本文件。图1 CIDF入侵检测模型入侵检测过程分析过程分为三部分:信息收集、信息分析和结果处理。1信息收集:入侵检测的第一步是信息收集,收集内容包括系统、网络、 数据及用户活动的状态和行为。由放置在不同网段的传感器或不同主机的代理来 收集信息,包括系统和网络日志文件、网络流量、非正常的目录和文件改变、非正常的程序执行。2信息分析:收集到的有关系统、网络、数据及用户活动的状态和行为等 信息,被送到检测引擎,检测引擎驻留在传感
28、器中,一般通过三种技术手段进行分 析:模式匹配、统计分析和完整性分析。当检测到某种误用模式时,产生一个告警 并发送给控制台。3结果处理:控制台按照告警产生预先定义的响应采取相应措施,可以是 重新配置路由器或防火墙、终止进程、切断连接、改变文件属性,也可以只是简 单的告警。入侵检测的发展历史1980年James P Anderson在给一个保密客户写的一份题为计算机安 全威胁监控与监视的技术报告中指出,审计记录可以用于识别计算机误用,他把 威胁进行了分类,第一次详细阐述了入侵检测的概念。1984年到1986年乔治敦 大学的Dorothy Denning和SRI公司计算机科学实验室的Peter N
29、eumann研究出 了一个实时入侵检测系统模型? IDES Intrusion Detection Expert Systems 入 侵检测专家系统,是第一个在一个应用中运用了统计和基于规则两种技术的系统, 是入侵检测研究中最有影响的一个系统。1989年,加州大学戴维斯分校的Todd Heberlein写了一篇论文A Network Security Monitor,该监控器用于捕获 TCP/IP分组,第一次直接将网络流作为审计数据来源,因而可以在不将审计数据 转换成统一格式的情况下监控异种主机,网络入侵检测从此诞生。个人入侵检测系统的定义个人入侵检测系统(PIDS),以网络数据包作为分析数据
30、源,采用异常检测分析方法。它只分析处理与个人主机有关的IP数据包,它保护的是个人主机系统。系统研究的意义和方法综上,当个人用户接入Internet时,个人机的安全就将面临着攻击威胁。 因此,个人用户的重要数据、机密文件等需要安全保护。静态的防御措施,如个人 防火墙等,已不能满足个人用户的需求,个人用户需要一个更全面的个人安全防 范体系。如果把入侵检测技术应用到个人机的安全防范中,它将与个人防火墙一 起为个人用户提供一个更安全的动态防范体系。本文阐述的就是在Windows下实现个人入侵检测系统PIDS。本系统采用 基于网络的异常检测方法的入侵检测技术,使用量化分析的方法来检测用户的行 为。在总结
31、出的正常行为规律的基础上,检查入侵和滥用行为特征与其之间的差 异,以此来判断是否有入侵行为。个人入侵检测系统的设计数据包捕获模块网络入侵检测系统要分析的对象是网络中的数据包。所以我们就需要对 流经网络的数据包捕获并加以分析,这样才能得到实现入侵检测的功能。对于不 同的操作系统有许多不同的数据包捕获方法。在本系统中,采用了 windows下的 Winpcap网络驱动开发包,它是Windows平台下的一个免费、公共的网络驱动开 发包。开发Winpcap这个项目的目的在于为Win32应用程序提供访问网络底层的 能力。它提供了以下的各项功能:1、捕获原始数据报,包括在共享网络上各主机发送/接收的以及相
32、互之间 交换的数据报2、在数据报发往应用程序之前,按照自定义的规则将某些特殊的数据报过滤掉3、在网络上发送原始的数据报4、收集网络通信过程中的统计信息Winpcap由三个模块构成:NPF, packet.dll, wpcap.dll。前一个工作在 内核层,后两个工作在用户层。第一个模块是内核部分 NPF Netgroup Packet Filter,在Win95/98中它是一个VXD(虚拟设备驱动程序文件)文件,在 WinNT/Win2000下是一个SYS文件。它的主要功能是过滤数据包,并把这些数据 包原封不动地传给用户态模块。当然也添加了一些系统特定的标志比如时间戳管 理。这个过程中包括了一
33、些操作系统特有的代码。第二个模packet.dll用来在 不同的Win32平台下提供一个通用的公共的包驱动接口。事实上,不同版本的 Windows平台在内核层模块和用户进程之间的接口不完全相同,packet.dll用于 解决这些不同。提供了一套系统独立的API,调用packet.dll的程序能够运行在 不同版本的Windows平台上而无需重新编译。packet.dll还有一些附加的功能。 它可执行一些低层操作:如:获得网卡名字,动态装载驱动,得到比如机器的网络 掩码、硬件冲突等一些系统特定的信息。Packet.dll和NPF都是系统相关的,在 Win95/98和WinNT/2000等不同系统架
34、构Packet.dll会相应有些变化。第三个 模块wpcap.dll是系统无关的,它提供了更高层、抽象的函数。它包括了一些比 如过滤器生成、用户级缓冲等其它的高层函数,增加了比如统计和包发送等更高 级的特性。因此程序员能处理两种类型的API: 一套原始函数集,包含在 packet.dll中,直接与内核层调用匹配;另一套高层函数由wpcap.dll提供,便于 用户调用,功能更强大。程序员能随意使用wpcap.dll,但只能在受限的环境中直 接使用 packet.dll.总的说来,Packet.dll直接映射了内核的调用。Wpcap.dll提供了更加友 好、功能更加强大的函数调用。Winpcap的
35、具体结构图2所示:图2 Winpcap的具体结构正如在Windows网络体系结构中所阐释的,Win32网络架构基于 NDISNetwork Drive Interface Specification 网络驱动程序接口标准。NDIS 工作在Windows内核网络部分的最底层。捕获进程核心必须工作在内核层,先于 协议栈之前处理包。BPF被网卡驱动程序直接调用,要求NIC设备驱动程序遵从 一些所谓的“ BPFBerkeley Packet Filter驱动规范”。换句话说,它需要设备驱 动可以直接调用BPF Tap函数,能控制所有经过网卡的包发送或接收,能对过滤后 的包进行复制。当使用Winpcap
36、进行捕获时,这种方法明显不行。因为Windows 与BPF驱动规范有些不同:Windows不允许为了增加捕获功能而改变操作系统和 NIC驱动。因此,Winpcap把Network Tap作为协议驱动放置在NDIS结构的上方。 NDIS没有从NPF中完全分离出底层,不能自动支持不同的介质类型,故需要以这 种方式构建。与NDIS的交互使NPFNetGroup Packet Filter比原始的BPF更加 复杂,BPF通过一条简单的回调函数与系统交互;在另一方面,NPF是协议栈的一 部分,就同其它网络协议一样与操作系统交互。然而,NPF获得了更好的执行效果, 其Tap比BPF还要运行得快。同BPF
37、一样,当包静止时NPF把过滤器放入NIC驱 动内存中。另一个优化措施是NPF的同步操作。异步调用不支持,因此用户级存 取经常被阻塞。NPF不需要设置用户级访问缓冲队列,这使驱动运行得更快。图3显示了 NPF在NDIS结构中的位置:可以看出Winpcap也是用的NDIS,它将自己注册为一个协议处理驱动。 在原代码的driverentry里面能看到。NPF是Winpcap中的核心部分,它完成了 大部分的工作:将数据包发送到网络中并导出捕获的数据包,交由用户程序分析 处理。图 3 NDIS 内 NPFWinpcap中NPF的实现由于是以协议驱动程序的模式来实现的,虽然从性 能上看来并不是最始数据的完
38、全访问。不同的Windows系统有不同的NDIS版 本,NPF兼容Win2K及其后续的WinXP版本下的NDIS5,也兼容其他Windows平台 下的NDIS3版本NPF与操作系统之间的通信通常是异步的,NPF提供了一系列的 回调函数供操作系统在需要时调用。NPF提供了应用程序所有I/O操作的回调函 数,如:open,close,read,write 等。NPF与NDIS之间的通信也是异步的.一些事件如当数据包到达时是通过回 调函数通知NPF这个例子中是Packetes tapo,并且,NPF与NDIS和NIC驱动之间 的通信是非阻塞函数来实现的。当NPF调用NDIS函数时,调用立即返回;当处
39、理 完毕时,NDIS再调用一个特定的函数通知NPF.NPF对所有的底层操作都提供了回 调函数。图4显示了 NPF的基础结构及其在Winpcap中的工作模式。图4 NPF协议驱动Winpcap中过滤进程由用户级部分开始。它能接收一组用户定义的过滤 规则例如接收所有的UDP数据包,把它编译成一套伪指令(例如,如果是IP包且协 议类型等这些指令等于17.就返回“True),把这些指令发送到内核层过滤器,最 后激活代码。内核层过滤器必须能够执行这些指令;此外,它需要一个“BPF虚拟 机”来执行伪代码从而对所有到来的包进行操作。这个核心层和BPF兼容的过滤 器是Winpcap获得良好性能的关键。NPF不
40、同于BPF的一个重要的结构差别就是 选择了一个环形缓冲区作为核心缓冲区.这有利于数据包快的复制。但这种机制 更难于管理。因为复制的数据不再有固定的大小Libpcap中,用户缓冲区和核心 缓冲区都是32K。当数据从内核缓冲区传送到用户缓冲区时,相同数量的包被复 制到内核缓冲区中。它们是同步更新的,而不是在之后。由于内核部分较之缓冲 区传送有更高的优先级,能独占CPU时,故复制过程从用户层开始能释放掉缓冲 区已传送的部分。环形缓冲区允许所有的容量来存放数据包,前面谈到的一对 BPF交换缓冲区只能用一半的容量。整个缓冲区可以用一条简单的Read指令读 取,肯定减少了系统调用和在用户、内核模式之间上下
41、文切换的次数。因为一次 上下文切换需要保护现场仅CPU描述符和任务状态段的开销就接近数百个字节, 大批的传送会减少进程的开销。但是一个太大的用户缓冲区不会带来任何好处。 当可分配内存太大时,上下文切换的开销反而可忽略不计了。Winpcap的核心缓 冲区比BPF的大,通常为1M。一个小缓冲区会影响捕获进程。尤其在一段时间里 应用进程读取数据的速度不如捕获进程,而且数据要被传送到磁盘,网络流量在 激增。内核缓冲区和用户缓冲区都能在运行时间里改变。数据解析模块在本模块的设计中,主要涉及了三方面的知识:windows网络体系结构、 TCP/IP协议,数据的封装和分用过程。TCP/IP 参考模 型与 I
42、SOInternational Standards Organization 的 OSIOpen Systems Interconnection Reference Model 参考模型相比,要简单实 用得多,也是目前广泛使用的网络参考模型。在TCP/IP参考模型中没有明确的数 据链路层和物理层,而是将它们合为较为抽象的“网络设备互连”作为硬件基础,随主机和网络的不同而不同。这种模型的应用范围较广,既可用于广域网.也可用 于局域网。TCP/IP协议族,有很多协议。当应用程序用TCP传送数据是,数据被送入协议栈中,然后逐个通过每一 层直到被当作一串比特流送入网络。然后逐个通过每一层直到被当作一串
43、比特流 送入网络。其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部 信息)。TCP传给IP的数据单元称作TCP报文段或简称为TCP段(TCP segment) o IP传给网络接口层的数据单元称作IP数据报。通过以太网传输的比特流称作帧 Frame。这就是通常说的数据的封装过程。当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上 升,同时去掉各层协议加上的报文首部。每层协议盒都要去检查报文首部中的协 议标识,以确定接收数据的上层协议。这个过程称作分用(Demultiplexing)。IP是TCP/IP协议族中最为核心的协议。所有的TCP、UDP、ICMP及IGMP 数据
44、都以IP数据报格式传输IP提供不可靠、无连接的数据报传送服务。IP各域的含义如下:版本:当前IP协议的版本号,本论文采用的版本号为4;首部长度:以32bit为单位的包头长度;服务类型:规定对本数据报的处理方式,比如优先权等;总长:以Byte为单位的整个IP数据报长度;标识:信源主机赋予每个IP数据报的唯一标识符号,用于控制分片及其 重组;标志和片偏移:同样用于控制分片及其重组;生存时间:设置本数据报的最大生存时间,以秒为单位;协议:表示创建本IP数据报数据区数据的高层协议的类型,如TCP,UDP 等;头标校验和:用于保证头标数据的完整性;源IP地址和目的IP地址:分别指发送本数据报的主机IP地
45、址和接受本 数据报的主机的IP地址;选项:用于控制和测试,是IP数据报中可选的部分,包含“源路径”、“路 径记录”、“时间戳”等几种类型。TCP协议是网络中应用最为广泛的协议,许多的应用层协议都是在建立 在TCP协议之上的。TCP协议头部信息如下:源端口 :发送端TCP端口号;目的端口:接收端TCP端口号;序号:指出段中数据在发送端数据流中的位置;确认号:指出本机希望下一个接收的字节的序号;头标长度:以32bit为单位的段头标长度,针对变长的“选项”域设计 的;码位:指出段的目的与内容,不同的各码位置位有不同的含义;窗口:用于通告接收端接收缓冲区的大小;校验和:这是可选域,置0表示未选,全1表
46、示校验和为伍;紧急指针:当码位的URG置位时,指出紧急指针的序号;UDP协议是英文User Datagram Protocol的缩写,即用户数据报协议,主要用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统 在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。UDP协议从问 世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但 是即使是在今天,UDP仍然不失为一项非常实用和可行的网络传输层协议。UDP 数据报各域的意义与TCP段中相应的域相同。只有校验和有些不同,除UDP数据 报本身外,它还覆盖一个附加的“伪头标”。这个伪头标来自于IP报头,包括:源
47、 IP地址、信宿IP地址、协议类型、UDP长度及填充域。数据分析模块本系统采用异常检测量化分析方法,把检测规则和属性以数值形式表示。 在检测中,采用计数方法来描述用户和系统行为某种属性,这些计数值只能在一 定范围内变化。例如:系统允许有限的不成功注册次数、一种特定类型的网络连 接数、企图访问文件的次数、访问文件或目录次数和访问网络系统次数。这个数 值检测以一个相对固定的时间间隔例如1小时来度量用户的行为。在本系统中, 分析器对解析的数据包计算每一个包的异常值,一旦发现异常值越限,则认为发 生了异常攻击,就将该包信息存入数据库中。异常值由用户的行为的历史情况来 决定。基本思想是,一般情况下,同一
48、个用户在一定时间内连接本机的端口数较少, 如果这个连接数突然增大,这个地址的异常值就增高。应当说,这并不是网络人侵 的严格定义,它只是反映出被检测的数据包的“异常”程度。例如因网络问题而 使来自同一个IP地址的数据突然增多时,这种检测方法可能会认为对方有异常 行为。分析结果记录用数据库记录异常数据包信息,用于以后的分析与检查。报警处理模块将数据库中的信息及时响应,确定入侵的类型并进行报警。个人入侵检测系统的实现系统的总体结构PIDS总体设计如图5:图5 PIDS总体设计系统捕获网络中的数据包,解码IP、TCP、UDP的头部各字段的信息,然后 对解码后的数据进行分析统计,并对其做出判断。系统将入
49、侵信息记录入数据库,并通过告警窗口显示。数据包捕获模块实现PIDS的数据包捕获是通过调用Winpcap中的动态库函数实现的。使用 pcap_findalldevs函数获取网络设备链表。获取失败终止程序并打印出错误报 告,成功就打印出所有网络设备信息以供选择。在选择好进入的网络设备后,对该 网络设备进行相应的配置,然后使用pcap_loop函数捕获数据包。首先获得网卡信息:/*返回网络设备的链表,以供选择*/ifpcap_findalldevs&alldevs, errbuf -1fprintfstderr,Error in pcap_findalldevs: %sn”, errbuf; exi
50、tl;/*选择列表*/fordalldevs; d; dd-nextprintf%d. %sn, +i, d-name;if d-descriptionprintf %sn, d-description;elseprintf No description availablen”;ifi0printfnNo interfaces found! Make sure WinPcap is installed.n”;return -1;printfEnter the interface number 1-%d:,i;scanf%d, &inum;接下来根据所选择的数据进入该网卡:fordalldevs
51、, i0; i inum-1 ;dd-next, i+;对选择的网卡进行属性定义:adhandle pcap_open_lived-name, / 网卡名字65536,/ 65536表示对所有数据捕获0, 网卡为混杂模式1, /抓包时间间隔errbuf / error buffer设置过滤规则packet_filter ip|udp”;连接并设置过滤器:pcap_compileadhandle, &fcode, packet_filter, 1, netmask;pcap_setfilteradhandle, &fcode;最后使用回调函数捕获并解析数据包:pcap_loopadhandle, 0, packet_handler, NULL;解码
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年天津职业大学招聘真题
- 2025年贵州黄平舞源文旅发展有限公司招聘真题
- 2025年河北保定阜平中学选聘专任教师考试真题
- 特种设备使用安全风险告知书
- 水利局水资源管理实施细则
- 事业单位与公务员面试真题(含答案)
- 教师有偿补课排查自查问题及整改措施
- 教学督导工作实施细则
- 小学主题班会课件:团结一心共享成功
- 电商运营数据管理标准化流程指南
- 潍坊高密市人民医院招聘考试真题2025
- 2025年甘肃人力资源服务股份有限公司面向社会招聘浙能集团甘肃有限公司古浪黄花滩新能源项目制工作人员笔试历年参考题库附带答案详解
- 2026年企业所得税汇算清缴新政与纳税调整
- 2025年中级会计职称中级会计实务考试真题及答案
- 证券投资基金销售业务信息管理平台管理规定全文
- 健康体检随访工作制度范本
- 2026年中级注册安全工程师《其他安全实务》考前冲刺训练试卷及参考答案详解(综合卷)
- 水利水电工程单元工程施工质量检验表与验收表(SLT631.7-2025)
- 商贸公司工作制度大全
- (2025年)NICE指南:老年人和50岁及以上高危人群跌倒的评估和预防(NG.249)解读
- 2025-2026学年北京市顺义区九年级(上)期末英语试卷
评论
0/150
提交评论