网络安全监控系统的设计与实现毕业论文.doc_第1页
网络安全监控系统的设计与实现毕业论文.doc_第2页
网络安全监控系统的设计与实现毕业论文.doc_第3页
网络安全监控系统的设计与实现毕业论文.doc_第4页
网络安全监控系统的设计与实现毕业论文.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

四川理工学院毕业设计(论文) 网络安全监控系统的设计与实现学 生:赵 平学 号:08021050225专 业:电子信息科学与技术班 级:2008级02班指导教师:李晓花 四川理工学院自动化与电子信息学院二O一二年六月摘要 点对点(p2p)文件共享软件的广泛应用对现有的网络安全造成严重的影响。对针对这些问题,该文设计了P2P文件共享监控系统。系统采用分布式防护的方法,安全策略由管理员集中定义,但安全策略的实施位于各个终端之上。与现有监控手段相比,避免了可能造成的性能瓶颈,具有更好的可扩展性,能实现更细的策略控制力度。 关键词:点对点;文件共享;安全监控 Abstract The widely used p2p file share software has include a significant threat to the modern network security.A p2p file share monitor system is presented .The system employs the way of distributed ,but it performs at each network performance bottlenecks and achievses finegranularity access control. Key words :peer topeer ;file share ;security monitor第1章 引言 当前基于p2p(peer-to-peer对等网络)技术的internet应用领域越来越多,如BT,eMule,POCO,Vagaa等,由于采用多点共享和传输技术使网络资源传输速度大为提高,从而得到了广泛应用。P2P网络中的节点在共享一个文件时,将文件进行分片并将文件和分片信息保存在一个流(Torrent)类型文件中。其他用户在下载文件时,会根据流(Torrent) 文件的信息,在一节点将文件的部分分片下载下来,然后在其他下载了该文件的节点之间共享自己已经下载的分片,互通有无,从而实现文件的快速分发。由于每个节点在下载文件的同时也在为其他用户上传该文件的分片,所以整体来看,不会随着用户数的增加而降低下载速度,反而下载的人越多,速度越快。BT(BitTorrent)就是一种基于P2P文件共享的无结构网络协议。P2p在加强网络上人的交流,文件交换,服务共享,分布式计算等方面已经充分显示出了其强大的技术优势,同时也带来新的网络安全问题,如p2p信息共享与知识产权保护,因此我们不得不设计一针对p2p安全隐患的监控系统,以下主要以p2p文件共享监控为例进行介绍。第二章2.1 p2p的介绍 因为本文主要针对的是p2p文件共享的监控,所以我们应该首先来了解什么叫p2p,以及为什么要设置监控系统来对其进行一定的监控,它所存在的问题是什么。2.1.1P2P的定义对等(网络,计算);端到端以非集中方式使用分布式资源来完成关键任务的一类系统和应用资源包括计算能力、数据(存储和内容)、网络带宽和场景(计算机、人和其它资源)关键任务可能是分布式计算、数据/内容共享,通信和协同、或平台服务典型位置:因特网边界或ad-hoc网内巨大的扩展力通过低成本交互来聚合资源,导致整体大于部分之和。低成本的所有权和共享使用现存的基础设施、削减和分布成本匿名和隐私允许对等端在其数据和资源上很大的自治控制2.1.2p2p存在的安全缺陷 P2P网络采用的分布式结构在扩展性和灵活性的同时,也使它面临着巨大的安全挑战:它需要在没有中心节点的情况下,提供身份验证,授权,数据信息的安全传输,数字签名,加密等机构。但目前的p2p技术距离实现这一目标尚有一定的距离,它本身存在的一些安全缺陷阻碍其得到进一步应用。下面介绍一些主要的p2p安全缺陷。 (1)一个恶意的服务器可以接受主服务器的文档副本,然后向用户发送修改过的信息。它还可以在接受了主服务器的副本后拒绝服务,造成“服务否认”。更为隐患的攻击是不分配给副本足够的资源。 (2)现行的大多数p2p系统并没有在节点间建立信任关系,只是采用一定的机制防范恶意行为。例如,有的方案并不阻止一个节点共享一个其内容与其描述并不匹配的文件,用户必须自己解决因下载其他节点的文件带来的不安全因素。 (3)在获取资源的时候我们首先需要保证所下载的资源正是我们需要的资源在最好的情况下,我们还要确定所下载的资源只包含有符合需求的文件,也就是说没有其他不需要或是不希望有的垃圾文件。但是在目前已实现的p2p系统中,不存在中心服务器提供的基于内容的鉴别,资源共享严重依赖于资源提供者和需求者之间的相互信任,事实上只能保证所请求资源的标志与希望的标志一致。这也使的一些垃圾文件伪装成正常文件进行传播。2.2文件路由 因为应用p2p技术对文件进行共享时需要对文件设置一安全的访问路由,所以下面我们先介绍文件路由,然后来介绍策略路由的相关概念。2.2.1 文件路由模式 每个网上Peer分配一个随机ID,并知道其他Peers的给定号码当共享文件发布到系统上时,根据文件名字和内容Hash成为ID每个Peer将根据该ID向该文件路由该过程重复执行,直到最近的PeerID是现行Peer的ID(形成环路)每个路由操作还保持文件副本在本地当Peer请求某文件时,该请求将用该文件的ID到达Peer,过程重复直到发现文件副本,最终文件下载到请求源端2.2.2 4个算法实现文件路由 Chord/CAN/Tapestry/Pastry目标相同 减少路由到指定文件的P2P跳数;减少每个Peer必须保持的路由状态。算法异同 算法的跳数与Peer群组的大小相关;都指出算法能以高概率完成;方法上的差别很小。Chord 每个Peer保持LogN其他Peer的踪迹(N是群组的全部Peer数)。当Peer加入或离开时,高优化算法版本仅需关注LogN个Peers的变化。CAN 每个Peer保持少于LogN个其他Peers的踪迹,在插入和删除时仅这些Peers受影响。其路由表较小,但到达的路径较长可能更适合动态通信。Tapestry与Pastry很相似 除减少跳数外,还积极削减每个P2P跳上的时延。2.3策略路由2.3.1策略路由概念所谓策略路由,顾名思义,即是根据一定的策略进行报文转发,因此策略路由是一种比目的路由更灵活的路由机制。在路由器转发一个数据报文时,首先根据配置的规则对报文进行过滤,匹配成功则按照一定的转发策略进行报文转发。这种规则可以是基于标准和扩展访问控制列表,也可以基于报文的长度;而转发策略则是控制报文按照指定的策略路由表进行转发,也可以修改报文的IP优先字段。因此,策略路由是对传统IP路由机制的有效增强。策略路由能满足基于源IP地址、目的IP址、协议字段,甚至于TCP、UDP的源、目的端口等多种组合进行选路。简单点来说,只要IP standard/extended ACL 能设置的,都可以做为策略路由的匹配规则进行转发。策略路由(Policy Route)是指在决定一个IP包的下一跳转发地址或是下一跳缺省IP地址时,不是简单的根据目的IP地址决定,而是综合考虑多种因素来决定。如可以根据DSCP字段、源和目的端口号,源IP地址等来为数据包选择路径。策略路由可以在一定程度上实现流量工程,使不同服务质量的流或者不同性质的数据(语音、FTP)走不同的路径。基于策略的路由为网络管理者提供了比传统路由协议对报文的转发和存储更强的控制能力。传统上,路由器用从路由协议派生出来的路由表,根据目的地址进行报文的转发。基于策略的路由比传统路由能力更强,使用更灵活,它使网络管理者不仅能够根据目的地址而且能够根据协议类型、报文大小、应用或I P源地址来选择转发路径。策略可以定义为通过多路由器的负载平衡或根据总流量在各线上进行报文转发的服务质量(Q o S )。2.3.2路由的实现原理策略路由的流程 首先来介绍策略路由的流程,见图1入口数据包策略路由Permit有匹配条目?策略路由? Yes Yes Yes 正常路由(基本目标) 图1使用Route-map来配置策略路由的流程策略路由只对入口数据包有效。应用策略路由,必须要指定策略路由使用的路由映射,并且要创建路由映射。一个路由映射由很多条策略组成,每个策略都定义了1个或多个的匹配规则和对应操作。一个接口应用策略路由后,将对该接口接收到的所有包进行检查,不符合路由映射任何策略的数据包将按照通常的路由转发进行处理,符合路由映射中某个策略的数据包就按照该策略中定义的操作进行处理。策略路由对报文的发送接口、下一跳的配置是基于多转发表实现的。策略路由的处理流程 策略路由的处理流程包括流模式和逐包模式,下面分别介绍流模式与逐包模式。流模式,第一个包查路由转发表,如果存在路由,将该路由项以source、dest、tos、入接口等索引放置到cache中,以后同样的流就可以直接查cache。对于低端路由器,所有操作由CPU内存处理,对于中高端设备,一般由NP 和Asic芯片完成处理。 逐包模式,每个包都进行查表后才进行转发。流模式流程图见图2 图2 路由器流模式及逐包模式切换命令分别如下:ip route-cache policy 开启快速交换策略路由就是流模式no ip route-cache policy 关闭该功能就是逐包模式 Route-map原理与执行.1 Routemap的理解 route-map是由一组match字句和set字句构成,他实际上是访问控制列表的一个超集。当需做策略路由的报文匹配route-map中的match字句定义的规则时,将按照set字句的配置决定该报文的路由方式,包括设置报文的优先权字段,设置报文的下一跳,设置报文的发送接口。什么叫做Routemap,类似于复杂的Access-list自顶向下地处理,一旦有一条匹配,则立刻结束route-map查找,Route-map每个条目都被赋予编号,可以任意地插入或删除条目。当使用策略路由时,首先定义重分布路由映射,一个路由映射可以由很多策略组成,策略按序号大小排列,只要符合了前面策略,就退出路由映射的执行。 由于路由映射中每个策略都有其编号,故可以方便的插入或删除。.2 Route-map 的执行语句route-map test permit 10match x y zmatch aset bset croute-map test permit 20match qset rdeny all(系统隐含)If (x or y or z) and athen set (b and c)else if qthen set relse set nothing route-map-name 给路由图定义一个便于记忆的名字。redistribute 路由进程配置命令是通过该名字引用路由图的。一个路由图可以定义多个路由图策略,一个路由图策略对应一个序号。 permit (可选)如果定义了permit关键字,又符合match定义的匹配规则。则set命令对重分布路由进行控制;对于策略路由,set命令将对数据包转发进行控制。并退出路由图的操作。 如果定义了permit关键字,而不符合match定义的匹配规则。则将进入第二个路由图策略进行操作。直到最终执行了set命令。 deny(可选)如果定义了deny关键字,又符合match定义的匹配规则。则不会执行任何操作,该路由图策略不允许进行路由重分布或策略路由,而且退出路由图操作。 如果定义了deny关键字,而不符合match定义的匹配规则。则将进入下一个路由图策略进行操作。直到最终执行了set命令。 sequence-number路由图策略对应的序号。低序号的策略优先得到使用,因此需要注意序号的设置。2.4策略路由配置模拟软件Boson Netsim Boson NetSim有两个组成部分:Boson Network Designer(实验拓扑图设计软件)和Boson NetSim(实验环境模拟器)。Boson NetSim安装结束以后,在桌面上会产成两个图标:Boson Network Designer和Boson NetSim。其中Boson Network Designer用来绘制网络拓扑图,Network Designer可让用户构建自己的网络结构或在实验中查看网络拓扑结构。我们就是通过这个组件搭建自己的免费实验室的。Boson NetSim用来进行设备配置练习,是最重要的组件,用户可以选择网络拓扑结构中不同的路由、交换设备并进行配置,也就是说输入指令、切换设备都是在Control Panel中进行。全部的配置命令均在这个组件中输入。Boson Netsim是一款Cisco路由器,交换机模拟程序。它的出现给那些正在准备CCNA,CCNP考试却苦于没有实验设备,实验环境的备考者提供了实践联的有力环境。Boson算得上是目前最流行的,操作最接近真实环境的模拟工具。可以毫不夸张地说,它就是真实设备的缩影。与真实实验相比,使用它省去了我们制作网线连接设备,频繁变换CONSOLE线,不停地往返于设备之间的环节。同时,它的命令也和最新的Cisco的IOS保持一致,它可以模拟出Cisco的中端产品35系列交换机和45系列路由器。它还具备一项非常强大的功能,那就是自定义网络拓扑结构及连接。通过Boson我们可以随意构建网络,PC、交换机、路由器都可被模拟出来,而且它还能模拟出多种连接方式(如PSTN、ISDN、PPP等)2.5NDIS NDIS是基于X86平台操作系统网卡驱动程序必须遵守的设计框架。他将NDIS驱动程序中的一些公用代码提取出来,使NDIS驱动程序只需要利用和硬件有关的少量代码。NDIS中间层驱动介于协议层与小端口层之间,IMD对上面的协议层表现了一个模拟的微端口网卡结构,而对于下面的网卡则表现为一个协议层的结构,他能截获所有的网络数据包。NDIS中间层驱动应用广泛,除了对数据包拦截与过滤外,还可以实现VPN。NAT。PPPoe.以及网络负载均衡等。因此,研究NDIS中间驱动程序的实现很有意义。NDIS中间层驱动程序位于网卡驱动与协议驱动之间,同时具有MINIport和PROTOCOL两种驱动程序接口。因此他在驱动层结构的中间层。它既与上层协议驱动程序通行又与下层端口驱动程序通信。上层协议驱动程序是通过NDIS调用函数进行通信。而对于下层驱动程序,中间驱动程序就像是一个协议驱动程序。下图就描述了这种NDIS分层结构。见图3NDISTransport driverProtocol XxxMediaxMiniport XxxMediaxIntermediate driverProtocol XxxMediayMiniport XxxMediayNIC DriverNIC 图3 第三章 总体设计3.1监控系统功能 针对p2p文件共享带来的安全问题,本文设计了p2p文件共享监控系统。监控系统实现的主要功能如下所示: (1)对主机所在局域网内的各个主机上的文件共享进行一定的监控。当有文件进行传输时,根据管理员自己定义的具体安全策略做出相应的操作,如允许或拒绝传输。 (2)文件安全策略是由该局域网的管理员进行集中定义,但进行具体操作时是要分配到各个主机监控终端执行。系统的防范不仅仅依赖于网络边界单个检查点,消除了网络性能的瓶颈,容易实施针对特价协议的包过滤,实现对特定应用程序的安全策略。 (3)对文件的传输行为提供日志和审计功能,系统记录下安全日志,于此同时也可以对日志进行查询统计,生成报表有助于管理员的审计。3.2监控系统模块 文件共享监控系统的设计与实现包括六块子系统:(1) GUI(图形用户接口)(2) 监控中心(3) 终端监控程序(4) NDIS(驱动中间层)(5) 非法文件下载报警(6) 非法文件共享报警 系统模块见附录图3P2p文件共享监控系统NDIS终端监控程序监控中心GUI非法文件共享报警非法文件下载报警 图3 3.3系统工作流程 系统工作流程NDIS驱动GUI监控中心终端主控程序 策略设置 分发策略 策略传入 数 据 包 过 滤 日志传出 提交日志 日志审计 图4 现在我们来介绍系统系统工作的流程,在p2p文件共享监控系统中,首先该局域网的管理员通过GUI(图形用户接口)对局域网内的各个用户的p2p文件共享安全策略进行集中定义,然后监控中心将定义好的安全策略发送到各个主机终端主控程序,然后再由主控程序交给内核的驱动程序程序执行相关的操作。在此过程中要由NDIS(Network Driver Interface Specification,即网络驱动接口规范)驱动截获来自主控程序的数据包,按策略过滤数据包并生成日志再传给终端主控程序。最后监控中心收集处理各个主机的日志信息,向管理员提供日志查询和审计功能。经过日志审计之后将所得的数据分析结果传给GUI,在GUI中做出相应的反应,如果审计结果与GUI的策略设置不附,则会触发报警模块,非法文件共享报警,或者是非法文件下载报警模块会发出报警信号。提醒管理员。下面给出了系统工作时的子模块的作用。 3.4每块模块的作用 3.4.1GUI GUI的广泛应用是当今计算机发展的重大成就之一,他极大地方便了非专业用户的使用。INMS系统的GUI作为整个网管的用户接口,负责所有数据的呈现与网管系统后台各模块做必要的信息交互,在本系统中它的主要作用就是有助于管理员对整个局域网里的集中管理,并且管理员可以根据自己的需要登录到监控中心自己定义局域网内的文件共享的安全策略。3.4.1监控中心 监控中心将管理员定义好的文件安全策略存储起来,而且为了取得终端的安全策略,终端主控程序将终端ID等信号发送到监控中心。于此同时将所配置的安全策略分发到各个终端主控程序。 3.4.2终端主控程序 为了便于策略的执行,监控系统将用户和其使用的主机绑定。当在主机上安装终端监控程序时,自动生成一个终端ID,用于表示使用该主机及其用户。以后管理员通过设置的用户策略与其用户和终端ID联系起来。如果管理员尚未创建该用户的策略,则取默认策略,通常是禁止文件传输。中间层驱动程序就可以依据取得的策略对数据包过滤。3.4.3NDIS为了对局域网内主机的p2p文件传输行为进行监控,需要能够截获和过滤终端发送和接收的数据包,通过数据包的截获与过滤,进行数据分析。并生成日志报表和日志审计,供管理员参考。这是通过NDIS Hook Driver来实现的。第4章 详细设计4.1设计流程 我们已经介绍了本系统的工作流程,以及每个子系统的作用。现在我们来详细的介绍此监控系统的详细设计。因为INMS的GUI是CMIN02移动智能网的一个重要组成部分,INMS提供友好的人机界面,因此,INMS可以认为是CMIN02系统的网元管理系统或操作维护中心。INMS系统的开发是为了达到网管新规范的要求,使网管软件功能强大,界面友好,更方便的提供给用户使用,它被认为是管理智能网的有效手段。作为网管系统,他对外提供各种管理功能,主要包括配置管理,告管理,性能管理,报表管理,用户管理,权限管理等功能。因此我们可以根据GUI的这些功能对局域网进行一定的管理。因为对文件进行访问时,要记录下访问日志,以有助于管理员对每个文件的访问情况有所了解。这样管理员能够更好的管理局域网。4.2GUI模块的生成与功能实现 GUI还具有配置管理的功能,配置管理模块负责收集设备的各种软件硬件配置信息,提供给网管模块查询。配置管理相制当的重要,它初始化网络,并配置网络,以使其提供网络服务。配置管理是一组对辨别,定义,控制和监视组成一个通信网络的对象所必要的相关功能,目的是为了实现某个特定功能或网络性能达到最优。这包括: (1)设置开放系统中有关路由操作的参数,如IP。 (2)被管对象和被管对象所在组名字的管理。 (3)初始化或被管对象。 (4)根据要求收集系统当前状态的有关信息。 (5)获取系统重要变化的信息。 (6)更改系统的配置。 GUI还具有告警管理,本系统中如果遇到非法文件的下载,等其他非法操作时报警管理模块会做出相应的反应,通知管理员,然而在本系统如何设置报警管理。告警派单功能由GUI与网管系统后台模块alarminfor共同完成。 告警派单功能包括两部分:派单规则定义;告警派单呈现。下面针对这方面进行描述。主要包括:(1)新派单告警级别:管理员指定产生的派单告警程度;这里主要是指进行非法文件下载所带来的影响的严重程度。(2)派单告警处理人:该字段用于跟短信接口连接,发送短信给指定的处理人,这里指管理员本人。(3)告警累计条数:当alarminfor 模块判断达到这里定义的条数之后即发送派单告警,并连接短信接口发送短信。(4)累计时间:指出现累计条数告警的时间长度。(5)告警描述:该字段比较重要,用户几乎要能从这个字段中判别出告警的产生原因及建议的处理方法,这里我们将告警的产生原因设置为有非法文件的下载,将处理方法设置为禁止其传输。4.3策略路由的设置我们在GUI中设置好了日志记录,告警,以及配置管理之后,这时就需要对文件共享设置安全策略了,如何进行安全路由配置,我们在这里介绍一种路由配置软件CISCO BOSONNETsim下配置策略路由。具体步骤如下: 1)定义重分布路由图,一个路由图可以由好多策略组成,策略按序号大小排列,只要符合了前面策略,就退出路由图的执行;Router(config)#route-map route-map-name permit | deny sequence 定义路由图Router(config)#no route-map route-map-name permit | deny sequence 删除路由图 2)定义路由图每个策略的匹配规则或条件;定义匹配规则,只有符合规则的数据包才进行策略路由,如果没有配置匹配规则,则所有数据包都符合规则。要定义策略的匹配规则,在路由图配置模式中执行以下:Route(config-route-map)#match ip address access-list-number 匹配访问列表中的地址Route(config-route-map)#match length min-length max-length 匹配数据包大小范围 3)定义满足匹配规则后,路由器对符合规则的数据包进行IP优先值和下一跳的设置。要定义匹配规则后的操作,在路由图配置模式中执行以下命令:Router(config-route-map)#set default interface interface-type interface-number设置数据包的输出接口,Router(config-route-map)#set ip default next-hop ip-address设置数据包的下一跳IP地址,Router(config-route-map)#set ip next-hop ip-address设置数据包的下一跳IP地址Router(config-route-map)#set ip precedenceprecedence| critical | flash | flash-override |immediate | internet | network | priority |routine设置数据包IP优先值 set ip next-hop和set ip default next-hop命令十分类似,但是操作的顺序完全不同。set ip next-hop命令使得路由器首先检查策略路由,不符合策略后使用路由表进行数据包转发处理;set ip default next-hop命令使得路由器首先检查路由表,若发现没有明确路由则使用策略路由进行数据包转发处理。流程图见图5: 图5 IP数据包报头优先值的设置,网络流量大时,优先值高的流量可以得到优先处理。缺省情况下,RGNOS是不对IP报头的优先值进行修改的,会保持其原有的值。 在应用策略路由时,可以对IP报头的优先值进行设置。当这些携带一定优先值的数据包到达其它路由器时,如果该路由器启用了队列机制,优先值高的数据包会得到优先处理,其服务质量就得到了保证。如果没有启用队列机制,优先值将没有任何意义,所有数据包的发送按照FIFO(先进先出)的方式进行处理。优先值的设置可以用名字或者数字,名字命名来自RFC 791,其对应关系如下0 Routing1 Priority2 Immediate3 Flash4 flash-override5 Critical6 Internet7 Network 4)在指定接口中应用路由图。要配置到达路由器接口数据包的策略路由,在接口配置模式中执行以下命令:Router(config-if)#ip policy route-map route-map 在接口应用策略路由说明路由器本身产生的数据包,通常是不要应用策略路由,如果路由器本身产生的数据包也要应用策略路由,在全局配置模式中执行以下命令:Router(config)#ip local policy route-map route-map 应用本地策略路由接口上应用策略时,缺省情况下,IP报文快速转发也支持策略路由转发。如果要关闭策略路由的快速转发功能,可以有以下命令:Router(config-if)#no ip route-cache policy 在接口上关闭策略路由快速转发功能。4.4监控中心模块功能实现 设置好安全策略后,将这些策略发送到监控中心,监控中心将管理员配置的策略存储下来,以便下次进行文件共享时对其进行监控,与此同时监控中心将管理员定义的安全策略分发到终端主控程序,而主控程序将进行相关的操作。在监控中心将策略分发给终端之前,要先取得终端的安全策略,终端主控程序将ID等信号发送到监控中心,监控中心依据终端ID检索到相应的策略信息发送给该终端,如果管理员尚未创建该用户策略,则取默认策略,通常是禁止文件传输。而终端的ID是通过将用户和其使用的主机绑定,当在主机上安装终端监控程序时,自动生成一个终端ID,用于标示使用该主机及其用户,以后管理员通过GUI设置的用户策略与其用户和终端ID联系起来。而监控中心还有一个重要的功能就是记录各个终端的日志数据,并对日志数据进行统计分析,审计,产生各种报表,并将这些日志报表传输给GUI,管理员就可以清楚的看到当前整个局域网的工作状态。4.5NDIS模块的功能实现4.5.1NDIS的结构功能在监控中心将策略分发给终端主控程序后,中间层驱动程序就可以依据取得的策略对数据包过滤。为了对局域网内主机的P2P文件传输行为进行监控,需要能够截获和过滤终端发送和接送的数据包,那是如何实现的呢。首先NDIS hook driver 是通过挂接NDIS中派发函数来实现数据报的拦截过滤。那NDIS是如何实现数据包的截获与过滤的呢.NDIS中包括三部分的驱动程序,NDIS微端口驱动程序,NDIS中间层驱动程序,NDIS传输协议驱动程序。这三个部分分别实现自己的功能。NDIS的功能有两个(1) 管理一个网络接口卡 ,包括通过网络接口卡发送接收数据。 (NIC) (2) 提供与高层驱动程序之间的接口。微端口驱动程序通过库与它的高层驱动程序 NDISNIC通信。库提供了一整套函数函数,这些函数 NDIS (NdisXxx)封装了微端口需要调用的所有操作系统函数。同时微端口必须提供一组入口点( 函数),使NDIS可以为了自己的目的或代表高层驱动程序而访问微端口时进行调用。NDIS中间驱动程序位于微端口驱动程序和传输协议驱动程序之间。既与上层协议驱动又与下层微端口驱动通信。在下边界,中间层驱动程序提供了协议入口点函(ProtocolXxx数, 调用这些函数传递底层微端口请求。对于下层微 ) NDIS端口驱动程序,中间层驱动程序就像一个传输协议驱动程序。在上边界,中间层驱动程序提供了微端口入口点函数, 调用这些函数,传递一个或多个 (MiniportXxx ) NDIS上层协议驱动的请求。对于上层协议驱动程序,中间层驱动程序就像一个微端口驱动序。NDIS传输协议驱动程序通过调用函数将高层 NDIS NDISXxx的数据包发送到低层驱动程序中。协议驱动程序提供了一套入口点( 函数), 为了自己的目的或代表 ProtocolXxx NDIS下层驱动调用这些函数向上指示接收数据包。开发者基于 的标准接口和层次结构,给 注册 NDIS NDIS一个具有标准上下边界入口的中间层驱动程序,就可以对网络数据包进行过滤。4,5,2数据包过滤与截获的具体步骤: 首先协议驱动程序在系统启动的时候会调用Ndis.sys所提供的Ndisregisterprotocol函数就可以在协议注册时挂接其派发函数。所有向其他的操作系统组件提供接口的程序都有EXport Table ,里面保存了这些接口的地址,下面我们来实现注册函数的挂接,首先我们通过ZwQuerySystemlnformation函数获得系统的所有核心句柄表,然后线性收搜索到Ndis的句柄,在句柄中含有其所在内存的所有地址的信息。在得到Ndis.sys的基地址后,然后按照文件的PE格式获得表格的内存地址。最后搜索表格找到函数地址并查找表格然后找到NdisRegisterProtocol函数的地址,并对其进行修改,将其改为本文所提供的函数地址。在修改NdisRegisterProtocol函数地址时,进行协议注的册,执行流程将转入其被挂接的函数my_NdisRegister Protocol 。接下来 NDIS Hook Driver 的要做以下的工作;(1)在my_NdisRegisterProtocol 中实现对数据包派发函数的挂接。(2)在NDIS 协议驱动程序所填写的2张表中(NDIS_PROTOCOL_CHARA CTERISTICS 和NDIS_MINIPORT_CHARACTERISTICS )存有派发函数的入口地址,这时我们通过调用NDIS函数NdisRegisterProtocol进行注册。然后这时我们通过my_NdisRegister Protocol ,在里面修改这些表中的派发函数入口地址,将派发函数入口地址改为拦截过滤函数的地址,然后我们再进行协议驱动的注册,协议驱动的注册也是通过调用NdisRegisterProtocol注册的。这样不管是需要接收还是发送这些协议的数据包时,首先被调用的是拦截过滤函数。而数据包进行分析过滤就是在NdisRegisterProtocol中实现的,通过数据的分析过滤后如果系统允许通过则继续调用正常的系统派发函数接收或发送。 当网络数据包在NDIS驱动程序中被截获后,然后这时根据P2P软件通信时使用的协议特征对数据包进行处理。因此在实现本系统之前,我们应该先对常用的P2P 文件共享软件的通信协议特征BitTorrent, MSN进行分析。当监控系统通过NDIS驱动对数据包实现截获后,结合P2P 软件的协议特征进行数据分析,如果这些数据包是P2P 通信数据包则依据策略对其进行处理。 运行于终端之上的监控程序分为终端主控程序和NDIS驱动程序2 部分。在应用层运行的是终端主控程序,而在内核层 NDIS运行的是驱动程序。NDIS 驱动程序和终端主控程序之间需要进行一些通信,主控程序在接收到监控中心分发的策略后需要将策略交给驱动程序,而当驱动程序捕捉到违规数据包时这里主要是指非法文件的下载,这时需要通知应用程序记录日志并产生报警。应用程序和设备驱动程序的通信之间的通信包括2 个方面: (1)应用程序传送数据给设备驱动程序 这部分实现比较容易,首先应用程序在使用如DeviceIoControl() 、ReadFile()、WriteFile()这样的Win32 函数来实现与设备驱动程序之间的通信之前。要先通过CreateFile()函数获取设备驱动程序的句柄,在驱动程序按如下方式指定用户消息的处理例程: DriverObject-MajorFunctionIRP_MJ_CREATE = DriverObject-MajorFunctionIRP_MJ_CLOSE = DriverObject-MajorFunctionIRP_MJ_DEVICE_ CONTROL = SOFT_IoControl; 在SOFT_IoControl中接收应用程序发来的IOCTL消息,按不同的消息进行相应的处理。 IrpSp = IoGetCurrentIrpStackLocation (Irp); FunctionCode=IrpSp-Parameters.DeviceIoControl.IoControlCode; switch (FunctionCode) / 处理应用程序发来的各种IOCTL (2)设备驱动程序给应用程序发送消息 在监控系统中使用事件方式来实现驱动向应用程序的消息发送。在事件方式下,首先应用程序先创建事件,然后可以使用前面所介绍的DeviceIoControl() 的方法。将事件句柄传给驱动程序。接着再创建一个辅助线程,等待事件的有信号状态,自己则接着干其他事情。驱动程序获得该事件的句柄后,将它转换成能够使用的事件指针,并存储起来以便后面使用。可以使用ObReference ObjectByHandle来引用该事件对象。当驱动程序有事件告诉应用程序时就将事件设置为有信号状态,这样应用程序的辅助线程即可马上知道这个消息并采取相应的处理。运用NDIS进行数据包的截获与过滤的程序见附录:4.6 日志和审计 P2P 文件共享监控系统提供了日志和审计功能。日志系统记录局域网内各个主机的P2P 文件共享行为,并能对日志信息进行查询统计生成安全报告,供管理员审计。日志审计的具体实现过程如下: (1)NDIS 驱动程序在截获过滤数据包时记录用户的P2P 文件共享日志,然后将这些信息传给用户模式下的终端主控程序。 (2)主控程序将收集到的信息分析处理,产生日志并发送给监控中心。同时在对一些关键信息做本地留存,以便以后查询。 (3)监控中心负责收集、记录、处理局域网内部各个终端提交的用户操作信息。并可对一些危险程度高的行为产生及时报警。 (4)管理员需要对日志查询或审计时,监控中心解析查询审计条件,对日志数据库进行一些处理,生成安全报告提交给管理员。 第五章 总结 本系统主要针对的是当前广泛应用于商务、政务、公司、学校等机构的p2p对等网络技术中所带来的安全问题而设置的此系统。因为对等网络技术中主要是资源的共享,在进行资源共享时,有些资源是用户不想得到的,或者是可能会给用户带来一定的资源的安全威胁。然而用户在使用对等网络技术进行资源共享时,又不能识别哪些是有用资源,哪些是危险资源。这完全依赖于提供资源者与用户之间的相互信任。并且有些公司的资源库里有公司的敏感资源,例如商业机密,这涉及到了公司的产权问题,所以想这一类的资源公司都是非常重视的。所以我设计了本系统,可以通过本系统对资源共享时进行一定的监控,这样就大大的提高了资源共享的安全性。本系统还存在着一定的问题,还有待改善,希望各位读者给予一定的建议。参考文献 以下实现的功能是将每一个协议程序所填写的NDIS_PROTOCOL_CHARACTERISTICS表里的派发函数指向自己的函数:struct _NDIS_PROTOCOL_BLOCKPNDIS_OPEN_BLOCK OpenQueue; / queue of opens for this protocolREFERENCE Ref; / contains spinlock for OpenQueueUINT Length; / of this NDIS_PROTOCOL_BLOCK structNDIS50_PROTOCOL_CHARACTERISTICS ProtocolCharacteristics;/ handler addressesstruct _NDIS_PROTOCOL_BLOCK * NextProtocol; / Link to nextULONG MaxPatternSize;#if defined(NDIS_WRAPPER)/ Protocol filters/struct _NDIS_PROTOCOL_FILTER * ProtocolFilterNdisMediumMax+1;WORK_QUEUE_ITEM WorkItem; / Used during NdisRegisterProtocol to/ notify protocols of existing drivers.KMUTEX Mutex; / For serialization of Bind/Unbind requestsPKEVENT DeregEvent; / Used by NdisDeregisterProtocol#endif;typedef struct _NDIS_PROTOCOL_BLOCK NDIS_PROTOCOL_BLOCK, *PNDIS_PROTOCOL_BLOCK;EXPORTVOIDNdisRegisterProtocol(OUT PNDIS_STATUS Status,OUT PNDIS_PROTOCOL_BLOCK NdisProtocolHandle, /*注意NDIS_HANDL

温馨提示

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

最新文档

评论

0/150

提交评论