核心层网络封包截获技术应用毕业设计Word文件下载.docx
- 文档编号:22189896
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:26
- 大小:544.62KB
核心层网络封包截获技术应用毕业设计Word文件下载.docx
《核心层网络封包截获技术应用毕业设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《核心层网络封包截获技术应用毕业设计Word文件下载.docx(26页珍藏版)》请在冰豆网上搜索。
通过对原理的说明,使读者了解实现这项技术的具体方法。
最后,为了实现这项技术并对前面提出的原理进行验证设计了相关的软件,本文对这个软件作了系统分析和系统设计,最终并实现了该软件。
通过测试,证明了其具有在核心层截获封包,在应用层分析封包的功能,也验证了本文所探讨的原理的正确性和重要性。
关键词:
网络安全核心层封包截获
TheTechnolotyofPacketInterceptioninKernelLayers
Abstract:
Becausethenetworksecurityproblemshavegonefrombadtoworse,computerusersbegintonoticenetworksecuritytechnologyandnetworksecurityproducts.Amongallkindsofsecuritytechnologies,thetechnologyofpacketinterceptioninkernellayerisveryimportantforitisthebasisforpacketfilterfirewallanditiswidelyusedinpacketfiltering,protocolconversion,interceptionofmessageanalysisandnetworksniffering.Therefor,Idevotemyselftostudyingonthetechnologyofthepacketinterceptioninkernellayer.Inthisarticle,firstly,thepresentsituationofthistechnolonyisdescribedtotellreaderwhyIstudyonit.Secondly,principlesofpacketinterceptionaretoldaboutindetail.Inthisdetaileddescriptionpart,theconceptoftheLSP,thetheoryoftheLSPandtheusageofLSPareintroducedinmoredetail.What’smore,Ialsoexplainmanyaspectsofthenetworkdriversinkenellayerandtellreaderhowtoimplementtheinterception.Thus,readercanunderstandthetechnologyofpacketinterceptioninkernellayeraccurately.Finally,toimplementandcheckoutthetechnologyIhavediscussed,IcompilethesoftwarenamedNetFilterwhichisanalyzedanddesignedsystematicallyinthisarticle.Bytesting,thesoftwarecaninterceptpacketsinkenellayerandanalyzepacketinapplicationlayer.
Keywords:
networksecuritykernellayerpacketinterception
目录
1概述1
1.1研究目的和意义1
1.2研究背景2
1.2.1国内现状2
1.2.2国外现状2
1.3主要贡献3
1.4文章的结构4
2预备知识及原理说明4
2.1分层服务提供者(LSP)4
2.1.1分层服务提供者(LSP)的概念4
2.1.2分层服务提供者(LSP)的原理4
2.1.3分层服务提供者(LSP)的用途——用户级封包截获5
2.2核心层网络驱动和NDIS网络驱动程序5
2.2.1核心层(KernelMode)概述5
2.2.2核心层网络驱动6
2.2.3NDIS网络驱动程序6
2.3核心层网络封包截获技术7
2.3.1Windows网络系统体系结构8
2.3.2用户模式下的网络数据过滤9
2.3.3内核模式下的网络数据过滤10
2.3.4应用层封包截获与核心层封包截获11
3NetFilter系统分析11
3.1需求分析11
3.2功能说明12
3.2.1网络访问监视12
3.2.2应用层过滤规则12
3.2.3核心层过滤规则13
3.2.4系统设置13
4NetFilter系统设计13
4.1系统总体设计13
4.1.1系统的工作流程13
4.1.2系统的功能模块14
4.2系统详细设计14
4.2.1系统关键类15
4.2.2系统重要数据结构15
4.2.3系统重要模块详细设计16
5.NetFilter系统实现17
5.1开发平台17
5.1.1WindowsServer2003DDK18
5.1.2DbgView18
5.1.3MicosoftVisualC++6.018
5.1.4MicosoftVisualVisio200318
5.2模块实现18
5.2.1SYS模块18
5.2.2添加应用层规则19
6NetFilter系统测试与运行20
6.1测试20
6.1.1单元测试20
6.1.2功能测试21
6.1.3系统综合测试21
6.2系统运行21
7结束语23
8致谢23
参考文献24
1概述
1.1研究目的和意义
随着网络的普及,安全问题正在威胁着每一个网络用户。
由于黑客攻击和信息泄露等安全问题并不像病毒直截了当地对系统进行破坏,而是故意隐藏自己的行动,所以往往不能引起人们的重视。
但是,一旦网络安全问题发生,通常会带来严重的后果。
因此,利用网络安全技术及产品来加强安全意识,并及早防范是非常必要的。
在网络安全技术中,核心层网络封包截获技术有着很重要的作用。
1、核心层网络封包截获技术是包过滤防火墙的技术基础。
包过滤防火墙是PC机上使用的主流防火墙,核心层包过滤技术为之提供设置规则表,按照规则表检查数据包并对其施行相关动作(如放行,拒绝等)。
2、核心层网络封包截获技术应用于协议转换。
当网络类型不同(比如以太网、令牌环),彼此不认识对方的帧格式,单纯依靠数据链路层协议无法实现两个网络的相互连接。
因此这个问题需在网络层上进行解决:
方法是在不同的网络类型中分别设置两个网关,网关需要核心层封包过滤技术的支持,获取封包以后在转化为相应的协议。
3、核心层网络封包截获技术用作包过滤器。
按照不同的参数设置,如IP地址段,地址掩码等。
这一项技术的核心同样需要核心层封包技术的支持。
4、核心层网络封包截获技术应用于截取报文分析。
在网络层截获数据包,并对其进行源地址、源端口以及内容的分析。
5、核心层网络封包截获技术应用于网络嗅探技术。
嗅探(Sniffer)技术是网络安全攻防技术中很重要的一种。
对黑客来说,通过嗅探技术能以非常隐蔽的方式攫取网络中的大量敏感信息,与主动扫描相比,嗅探行为更难被察觉,也更容易操作。
对安全管理人员来说,借助嗅探技术,可以对网络活动进行实时监控,并进行发现各种网络攻击行为。
6、核心层网络封包截获技术应用于个人网络安全工具。
根据管理者设置的安全规则把守网络,提供访问控制,信息过滤等功能,帮助用户抵挡网络入侵和攻击,防止信息泄露。
总的来所,核心层网络封包截获技术有着相当大的应用前景。
它在技术上对很多网络安全技术提供支持;
同时,也是许多商业网络安全产品中必要的知识。
当我们掌握了这项技术了后,开发防火墙,嗅探器等安全软件就会变得容易。
所以我们有必要学习和探究这项技术。
1.2研究背景
1.2.1国内现状
在国内的产品中使用这项技术的有很多的例子,例如我们耳熟能详的“360安全卫士”、以及“瑞星”、“江民”等杀毒软件中提供的“实时监控系统”都无一例外的采用了这项技术。
因为他们都需要实时的监控网络的情况,实时的对应用服务进行监控。
对我来说,印象最深刻的是“360安全卫士”的实时保护功能。
它提供了琳琅满目的各种防火墙,比如“漏洞防火墙”、“系统防火墙”、“木马防火墙”、“网页防火墙”、“U盘防火墙”以及“ARP防火墙”等。
让我对奇虎公司的专注精神尤为佩服。
若我们撇开以上各个防火墙的具体功能,把注意力放在实现方法上,发现其中哪一个也离不开“核心层网络封包截获技术”的支持。
因为这些防火墙中大多数采用的监控方法是:
当数据包从网络到达NIC后,继而截取分析包,最后判断这个应用是否是危险的;
或者根据服务调用下层驱动时,通过在驱动上添加截获分析功能了解你的服务是否是合法的。
图1360安全卫士实时监控图
使用过“360安全卫士”的用户,对图1的提示框应该不会陌生,它提示您——现在Google的更新软件正在工作(装入服务),询问您允许它工作还是阻止它工作。
这是比较典型的利用这项技术进行网络安全防范的例子。
1.2.2国外现状
国外产品中使用“核心层网络封包截获技术”的最好的例子是NetworkGeneral公司的Sniffer这款软件,中文名字是嗅探器。
首先了解Sniffer的基本功能:
1、网络安全的保障与维护
(1)对异常的网络攻击的实时发现与告警;
(2)对高速网络的捕获与侦听;
(3)全面分析与解码网络传输的内容;
2、面向网络链路运行情况的监测
(1)各种网络链路的运行情况;
(2)各种网络链路的流量及阻塞情况;
(3)网上各种协议的使用情况;
(4)网络协议自动发现;
(5)网络故障监测;
3、面向网络上应用情况的监测
(1)任意网段应用流量、流向;
(2)任意服务器应用流量、流向;
(3)任意工作站应用流量、流向;
(4)典型应用程序响应时间;
(5)不同网络协议所占带宽比例;
(6)不同应用流量、流向的分布情况及拓扑结构;
Sniffer是嗅探器中的重要产品,除了这三种基本功能外,它还有很多独特而专业的功能,Sniffer是网络分析产品中的首选工具。
除了Sniffer外,国外种类繁杂的包过滤防火墙产品也都相应的有核心层网络封包截获技术的支持,所以我们有必要了解和学习这一技术为以后的网络安全学习打下基础。
总之,纵观国内外的产品,这项技术不乏有相当成功的事例;
可在国内,我们还没有这方面知识的完备描述和相关资料。
这让一个初次接触网络编程的学生感到很困难,不仅是由于对网络编程体系知识的不了解,其次资料的匮乏也是一个重要的原因;
另外,不容忽视的一点,这项技术涉及到Windows驱动程序的开发,这使包括我在内的很多初学者都很茫然,一度不知道何从下手,因为驱动程序开发需要大量经验的积累和调试,若出意外,小者系统死机,系统崩溃也是常发生的事情。
所以本文尽自己最大的努力学习和研究了这项技术,希望提升自己,也希望有同样需求的人士可以参考与指正。
1.3主要贡献
本文就核心层网络封包截获技术进行了探究。
通过测试,证明了其具有在核心层截获封包,在应用层分析封包的功能。
1.4文章的结构
本文共为八个主要部分:
第一部分是概述,这部分主要说明了核心层网络封包截获技术研究的必要性和重要性,主要从市场和技术两个角度说明为什么进行这项研究。
第二部分是研究前必要的预备知识和原理说明,在研究这项技术前我们必须有一些预备知识,才能更好的理解和讨论这项技术。
第三部分是NetFilter系统分析,主要使用层次方框图等说明本系统包括的主要功能。
第四部分是系统设计,说明了系统的工作流程和代码的主要组成部分。
并通过系统关键类和主要数据结构来说明系统的详细设计。
第五部分是系统实现,主要通过程序流程图对本系统的几个主要的功能模块的实现进行详细的说明。
第六部分是系统测试与运行,说明该系统开发在这些方面所做的工作。
第七部分是总结篇,对该系统进行了综述性的评述,并提出了系统可能存在的不足及解决方案。
最后是本文所参考的各种有价值的资料列表。
2预备知识及原理说明
在研究“核心层网络封包截获技术应用”时,有必要了解一些预备知识,用以更好的理解核心层封包截获的原理和实现过程。
这些预备知识包括“分层服务提供者”,“核心层网络驱动”和“NDIS网络驱动程序”等。
2.1分层服务提供者(LSP)
2.1.1分层服务提供者(LSP)的概念
LSP的全称是LayeredServiceProvider,中文名为“分层服务提供程序”。
简而言之,LSP就是TCP/IP协议等的接口。
LSP为应用程序提供建立连接,传输数据,流量控制,出错控制等相关的服务。
LSP本身是DLL,使用之前将其安装在Winsock目录中。
以便创建套接字的应用程序不必知道此LSP的任何细节就能调用它。
2.1.2分层服务提供者(LSP)的原理
用户在创建套接字时,套接字创建函数(如socket)会在Winsock目录中寻找合适的协议,然后调用此协议的提供者导出函数完成各种用户需要的功能。
如果将自己编写的LSP安装在Winsock目录中,让用户调用编者的服务提供者,再由编者的服务提供者调用下层提供者。
这样一来,便可以截获所有的Winsock调用了。
图2LSP原理图
LSP导出一些与WinsockAPI相对应的函数,如WSPStartUp,WSPSentTo等。
如图2所示。
Winsock库加载服务提供者之后,便是依靠调用这些函数来实现相关的WinsockAPI(如WSASocket等)的。
2.1.3分层服务提供者(LSP)的用途——用户级封包截获
LSP是实现用户级数据封包截获的有力工具,它可以用来编写监视系统网络通讯情况的Sniffer(嗅探器);
在生活中,我们看见LSP最常用的用途是“浏览器劫持”。
在封包截获技术上,根据所有与网络交换的信息都必须通过LSP这个原理,从而使它可以监视使用者的信息。
当然,除了LSP这种方法可以实现用户级封包截获技术外,还有Windows2000/XP封包过滤接口也支持这项功能,然而由于Windows2000/XP封包过滤接口的限制太多,本文便采用了LSP的方法实现用户级封包截获。
2.2核心层网络驱动和NDIS网络驱动程序
2.2.1核心层(KernelMode)概述
有许多功能在用户模式(UserMode)下是实现不了的,如原始MAC数据的发送和诊断,这个时候我们必须开发核心层的驱动,也称为内核模式下的驱动来解决问题。
图3CPU特权层和操作系统用户模式、内核模式关系图
CPU特权层和操作系统用户模式、内核模式的关系
如图3所示,Ring0的特权最高,也就是说可以执行任意的代码,而Ring3特权最低,只能执行有限的代码。
Windows将内核模式运行在CPU的Ring0层,而将用户模式运行在CPU的Ring3层,所以核心层的组件可以进行所有权限的操作。
当然由于本文探讨的“核心封包截获技术”是对核心级的操作,就必须要使用到核心层网络驱动;
相应的开发核心驱动来配合实现目的功能。
2.2.2核心层网络驱动
Windows的产品使用了由ISO开发的基于7层网络模型的体系结构。
ISO开放式系统互连(OSI)参考模型将网络描述为:
“一系列的协议层,每层都有一组特定的功能,他们向上层提供特定服务的同时,隐藏了这些服务实现的细节。
一个明确的相邻层之间的接口定义了下层向上层提供的服务,以及如何访问这些服务”。
在核心层,网络驱动程序实现了OSI参考模型中的4层:
物理层,链路层,网络层和传输层。
这样它可以完成相应层功能。
2.2.3NDIS网络驱动程序
NDIS是NetworkDriverInterfaceSpecification(网络驱动接口标准)的缩写,它为网络驱动抽象了网络硬件,指定了分层网络驱动间的标准接口,因此,它为上层驱动(如网络传输)抽象了管理硬件的下层驱动。
NDIS也维护了网络驱动的状态信息和参数,这包括一些函数和指针等。
NDIS支持3中类型的驱动,它们是微端口(Miniport)驱动,中间层(Intermediate)驱动和协议(Protocol)驱动。
如图4所示:
图4NDIS支持的三种驱动图
1、微端口(Miniport)驱动:
是指常说的网卡驱动,它负责管理网卡,包括通过网卡发送和接收数据,它也为上层驱动提供接口。
微端口驱动一般由硬件提供商提供。
2、中间层(Intermediate)驱动:
中间层协议驱动(Intermediate)介于NDIS的协议层驱动(Protocol)和微端口驱动(Miniport)之间。
是基于链路层和网络层之间的驱动。
他导出一系列的虚拟适配器,对用户来说,跟真实的物理网卡一样,对于上层的协议驱动来说,当它向这个虚拟适配器发送封包或者请求时,中间层驱动将这些封包和请求传播到下层微端口驱动。
当下层微端口驱动向上指示接受封包或者状态时,中间层驱动向上将这些封包、状态传播到绑定在虚拟适配器上的协议驱动。
这样利用它来实现对核心层的封包截获,并且他能实现对所有封包的截获。
3、协议(Protocol)驱动:
即网络协议,它位于NDIS体系的最高层,经常用作实现传输协议堆栈的传输驱动中的最底层驱动。
总之,对NDIS有了必要的认识后,我们可以发现利用NDIS的中间层驱动来实现核心级上的封包过滤是很好的办法,它能够截获所有的网络数据包(如果是以太网那就是以太帧)。
2.3核心层网络封包截获技术
核心层网络封包截获技术主要应用于过滤,转换协议,截取报文分析等。
在讨论这项技术前,有必要详尽的了解Windows网络系统体系结构;
而后再研究用户模式下的网络数据过滤和内核模式下的网络数据过滤。
2.3.1Windows网络系统体系结构
1.图5是用户模式下的网络系统体系结构
WindowsSocket1.1API
WindowsSocket2.0API
图5用户模式下的网络系统体系结构图
通过观察上图不难发现,用户模式下的网络系统由一些列的DLL相互支持完成,上层应用程序调用下层的服务DLL,继而再继续调用更下层的服务DLL。
最终形成一个完整的网络体系结构。
2.内核模式下的网络系统体系结构图
内核模式下的网络系统是由一系列的服务驱动构成,比如由NDIS(网络驱动接口标准)构成的网络系统。
Miniport驱动导出虚拟网卡连接到实际的网卡,Intermediate驱动在下层调用Miniport驱动的服务,并为上层协议驱动导出服务。
NDIS为TCP/IP提供了驱动服务,是网络系统体系结构中非常重要的部分。
弄懂了内核模式下的网络系统体系结构,我们发现在系统中为TCP/IP协议提供驱动的服务,简称为TCP/IPDriver,这个驱动服务在整个网络系统体系结构中有着非常重要的作用,通过他不仅仅可以实现PacketFilter技术,同样的IP路由也由它提供着支持,另外的一个重要应用就是FirewallHOOK。
具体结构如图6所示:
图6内核模式下的网络系统体系结构图
2.3.2用户模式下的网络数据过滤
首先认识一下网络通信程序,最常见的网络通信程序是QQ。
如图7所示:
图7通信程序QQ的网络传输数据原理图
从此例子可以看出,所有的网络通信程序在通信前都需要调用下层的驱动或者服务,如果将自己编写的LSP放在Winsock目录下,让用户不知不觉的调用LSP导出的一些列服务(函数),再由LSP调用下层的服务,于是我们便可以在LSP上跟踪用户的网络服务请求,从而实现用户模式下的网络数据过滤。
在这里使用的关键技术就是前面谈到的分层服务提供者LSP。
2.3.3内核模式下的网络数据过滤
首先引入以图8示例:
图8一般网络通信程序传输数据原理图
通过上图以及前面对于核心层网络驱动的介绍,我们可以看出,需要在内核模式下实现封包截获就需要编写内核模式下的驱动服务。
这样,需要进行任何网络活动的应用程序都需要加载这项服务,在这个驱动程序上就可实现核心层的封包截获任务。
前面讨论了NDIS,本篇使用NDIS的中间层驱动服务,根据它导出的一些列虚拟网卡我们可以较容易的实现对经过真实NIC(网卡)的所有网络数据进行截获。
2.3.4应用层封包截获与核心层封包截获
图9核心层与应用层网络封包截获实现原理图
如图9所示,最终为了实现应用层和核心层的双重封包截获,我们可以采用这样的方法。
在应用层实现封包截获,本文使用了SPI中的LSP技术,在核心层实现封包截获本文使用了NDIS中的中间层驱动。
这样便可以构造一个比较合理的封包截获系统。
3NetFilter系统分析
3.1需求分析
在本文中,利用核心层网络封包截获技术设计了NetFilter软件。
图10NetFilter层次结构图
如图10所以,NetFilter具有在核心层截获封包,在应用层归结到具体应用分析封包的功能;
并对所有进出系统的数据包进行检查,以阻止那些不符合既定规则的数据包的传输。
NetFilter能够基于数据包使用的协议(如TCP),数据包的源地址,数据包的目的地址,端口
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 核心 网络 封包 截获 技术 应用 毕业设计