基于NDIS中间层的网络数据包拦截技术及实现
- 格式:pdf
- 大小:475.73 KB
- 文档页数:4
防火墙的数据包拦截方式小结网络防火墙都是基于数据包的拦截技术之上的。
在Windows下,数据包的拦截方式有很多种,其原理和实现方式也千差万别。
总的来说,可分为“用户级”和“内核级”数据包拦截两大类。
用户级下的数据包拦截方式有:* Winsock Layered Service Provider (LSP)。
* Win2K 包过滤接口(Win2K Packet Filtering Interface)。
* 替换Winsock动态链接库 (Winsock Replacem ent DLL)。
内核级下的数据包拦截方式有:* TDI过滤驱动程序 (TDI-Filter Driver)。
* NDIS中间层驱动程序 (NDIS Intermediate Driver)。
* Win2K Filter-Hook Driver。
* Win2K Firewall-Hook Driver。
* NDIS-Hook Driver。
在这么多种方式面前,我们该如何决定采用哪一种作为自己项目的实现技术?这需要对每一种方式都有一个大致的了解,并清楚它们各自的优缺点。
技术方案的盲目选用往往会带来一些技术风险。
以自己为例,我需要在截包的同时得到当前进程文件名,也就是说,需向用户报告当前是哪个应用程序要访问网络。
在选用Win2K Filter-Hook Driver这一方案之后(很多小型开源项目都采用这一方案),便开始编码。
但之后发现Win2K Filter-Hook Driver的截包上下文处于内核进程中,即IRQL >= DISPATCH_LEVEL,根本无法知道当前应用程序的名字。
相比之下,TDI-Filter Driver和NDIS-Hook Driver则可以得知这些信息。
其中TDI-Filter Driver比NDIS-Hook Driver更能准确地获知当前应用程序文件名,后者的接收数据包和少数发送数据包的场景仍然处于内核进程中。
网络安全中的拦截技术及其实际效果随着互联网的发展,网络安全问题日益凸显,各种恶意软件、黑客攻击、网络诈骗等问题层出不穷,给网络安全带来严峻挑战。
为了保障信息的安全,各个国家和企业采取了多种方法进行网络安全防护,其中拦截技术是一种常用的手段。
本文将从拦截技术的定义、分类和实际效果三个方面进行探讨。
一、拦截技术的定义拦截技术是指利用软硬件或网络设备,在传输、接收或处理网络数据的过程中,对其中包含的特定数据、信息或流量进行识别、拦截和过滤。
一般来说,拦截技术主要用于保护网络安全、限制网络访问、监管网络内容等方面。
拦截技术的实现原理可以通过网络协议分析、流量过滤、协议屏蔽等多种方式实现。
其中,网络协议分析是指对数据包的各个层级进行解析和分类,识别其中的特定信息;流量过滤是指在网络传输过程中,根据一定的规则对数据包进行过滤和筛选;协议屏蔽是指识别并屏蔽特定的网络协议及其相关数据流量,达到限制网络访问、保护计算机安全的目的。
二、拦截技术的分类在实际应用中,拦截技术可以根据其具体功能和应用场景进行分类。
下面列举几种常见的拦截技术分类。
1、URL过滤URL过滤是一种常用的拦截技术,主要用于限制网络访问,防止用户访问包含有害或不良信息的网站。
URL过滤技术主要通过对访问的URL进行分析和筛选,采用黑白名单的方式进行控制。
黑名单列表中包括一些危险的网站地址,当用户尝试访问这些网站时,就会被迫停止访问;白名单列表中包括一些安全的网站地址,用户只能访问这些列表中的地址。
2、应用层协议过滤应用层协议过滤技术主要是基于协议屏蔽实现的,它可以识别并阻止特定的协议类型和相关数据流量,在保护计算机免受恶意攻击的同时,可以限制网络访问。
应用层协议过滤技术可以识别常见的协议类型,如HTTP、SMTP、FTP等,并通过限制这些协议的流量来实现拦截。
3、流量过滤流量过滤是指根据数据包的源IP地址、目的IP地址、源端口号、目的端口号等多种信息对数据流量进行筛选和过滤的技术。
NDIS中间层驱动包截获技术摘要:简要概括了NDIS的概念,阐述了NDIS的工作流程,详细说明了如何编写NDIS中间层驱动程序以获得网络封包的详细信息。
并且给出了一些代表性的示例代码,供读者参考。
一.NDIS驱动模型简介NDIS(Network Driver InterfaceSpecification)是网络驱动程序接口规范的简称。
它横跨传输层、网络层和数据链路层,定义了网卡或网卡驱动程序与上层协议驱动程序之间的通信接口规范,屏蔽了底层物理硬件的不同,使上层的协议驱动程序可以和底层任何型号的网卡通信。
NDIS为网络驱动程序创建了一个完整的开发环境,只需调用NDIS 函数,而不用考虑操作系统的内核以及与其他驱动程序的接口问题,从而使得网络驱动程序可以从与操作系统的复杂通讯中分离,极大地方便了网络驱动程序的编写。
另外,利用NDIS的封装特性,可以专注于一层驱动的设计,减少了设计的复杂性,同时易于扩展驱动程序栈。
防火墙的开发一般采用的是中间驱动程序。
通过NDIS中间层驱动,我们可以截获来自网卡的所有原始数据包。
图1则是NDIS中间层驱动的工作过程图图1NDIS中间层驱动程序是工作在MINIPROT和PROTOCOL接口之间的,驱动程序必须向下导出一个PROTOCOL接口,向上导出一个MINIPORT接口。
将自己创建的驱动程序插入到网卡驱动程序与传输驱动程序之间。
如此一来,当下层的网卡驱动程序接收到数据后会通过MINIPORT接口发送到我们导出的PROTOCOL接口上,NDIS中间层驱动程序便接收到了来自网卡的数据并调用我们准备好的回调函数处理数据包信息。
接着NDIS中间层驱动在处理数据包完毕后再继续把数据通过导出的MINIPROT接口向PROTOCOL接口发送。
这样就完成了一个截获数据包的过程。
二.NDIS中间层驱动的工作流程在开始学习NDIS中间层驱动之前,我们有必要了解下NDIS是怎样工作的。
当然这就包括了它的接收数据包的流程了。
基于NDIS的网络监控技术研究摘要:由于ndis中间驱动程序位于网卡和协议驱动程序之间,负责与网络的数据包交换,所以它可以截获较底层的封包。
本文描述了基于ndis网络监控体系结构,通过中间过滤驱动实现了对底层网络数据的监控,提出基于ndis中间驱动进行包过滤的原理,工作流程及实现方法,并依据相应的匹配算法和异常检测算法对从底层来的数据包进行包过滤,从而提高系统的监听效率,减轻高层应用对数据包的分析处理负担。
关键词:ndis中间层驱动程序,bslt匹配算法,异常检测,数据包过滤规则中图分类号:u672文献标识码: a 文章编号:一、前言近几年来,随着网络基础建设的完善,网络应用也迅速扩大,网络的迅速发展,给我们的工作和生活带来了巨大的改变。
然而,随着越来越多的用户接入互联网,网络信息安全问题却日益困扰和影响用户对互联网络的信任和使用。
由于互联网发展的历史原因,tcp/ip协议及http、ftp等基于tcp/ip协议的各种应用层协议,在协议设计之初均未考虑安全传输问题。
国际标准组织虽陆续推出了ssl、http1.1等具有安全传输能力的应用层协议,但作为应用层承载协议的tcp/ip协议仍存在着固有的安全缺陷,造成至今未能有彻底的、低成本的、不需硬件支持的互联网安全传输解决方案。
正是由于网络传输存在安全问题,如今攻击网络系统和窃取信息已经不需要什么高深的技巧,越来越多的黑客加入到网络攻击技术的研究行列中,给网络安全带来越来越多的安全隐患。
利用ndis中间驱动可以在网卡驱动程序和传输驱动程序之间插入一层自己的处理,从而可以从截获网络封包并重新进行封包、加密、网络地址转换及过滤等操作。
由于ndis中间驱动程序位于网卡和传输驱动程序之间所以它可以截获较为底层的封包从而可以完成更为低级的操作以及用来编写网络安全软件安全系数也高。
二、基于ndis网络监控系统体系结构的分析ndis[3](network driver interface specification,网络驱动程序接口规范)是微软公司为windows系列平台开发网络驱动程序而制定的。
1引言从应用角度看,防火墙基本上可以分为两种:网络级的防火墙和个人防火墙。
由于Windows操作系统是目前使用最为广泛的PC操作系统,因此在Windows操作系统下开发的个人防火墙产品数不胜数。
然而,所有基于Windows操作系统的个人防火墙,其核心技术一般是基于Windows操作系统下网络数据包的拦截技术。
但是这些技术或多或少的存在着某些缺陷,如基于SPI(ServiceProviderInterface)技术的只能捕获应用层的数据,基于TDI(TransportDriversInterface)技术的不能接收更为底层的数据包(如ICMP),基于中间层驱动程序技术的防火墙安装却又十分麻烦,而且很容易造成网络瘫痪。
而这里讨论的NDIS HOOK技术则很好的避免了这些问题。
首先介绍了NDIS的结构与NDID HOOK原理,然后论述了Windows2000/NT操作系统下如何利用NDIS HOOK(并非中间层驱动程序)技术来实现个人防火墙的方法。
2NDIS系统结构图1NDIS拓扑结构NDIS(NetworkDriverInterfaceSpecification)是Mi crosoft和3Com公司开发的网络驱动程序接口规范。
它为Windows下网络驱序程序的开发带来许多方便,编写符合NDIS规范的驱动程序时,只要调用NDIS函数,而不用考虑操作系统的内核以及与其他驱动程序的接口问题,为操作系统对不同网络的支持提供了方便。
Windows使用NDIS函数库实现NDIS接口,所有的网络通信最终必须通过NDIS完成。
NDIS 负责上下层驱动程序间服务原语和驱动程序入口之间的转换,分派消息通知,保证符合NDIS 的驱动程序无需知道其它驱动程序的入口就可以与之通信。
NDIS横跨传输层、网络层和数据链路层,NDIS的结构如图1所示。
由图1可以看出,微软提供了以下几种标准接口编程方式:(1)小端口驱动程序(Miniportdrivers)(2)中间驱动程序(Intermediatedrivers)(3)协议驱动程序(Protocoldrivers)(4)TDI传输层过滤驱动程序TDIFilter,常见的TcpFilterDriver即属此类。
NDIS数据过滤的实现及应用
李宇飞;关钦;李豪;蔡志豪
【期刊名称】《信息网络安全》
【年(卷),期】2013(000)004
【摘要】为了实现网络通信中的数据过滤,利用Windows网络驱动程序接口规范(NDIS)提供的标准开发接口,文章在分析比较几种实现方案后,选取内核实现方案,即在数据链路层与网络层之间添加中间层,从而实现数据过滤.以IP地址作为对象进行测试,结果显示能够很好地限制其他电脑对本主机的访问,证明该方案可行且稳定.在此基础上,文章还预测了该方案的应用前景.
【总页数】4页(P46-49)
【作者】李宇飞;关钦;李豪;蔡志豪
【作者单位】西安电子科技大学通信工程学院,陕西西安710071;西安电子科技大学通信工程学院,陕西西安710071;西安电子科技大学电子工程学院,陕西西安710071;西安电子科技大学电子工程学院,陕西西安710071
【正文语种】中文
【中图分类】TP393.08
【相关文献】
1.CDMA2000 1x EV-DO网络分组域监测系统数据过滤模块实现 [J], 卢叶舟;张治中;陈祥;潘勇
2.GPRS网络Gb/Gn接口数据过滤与分流的实现 [J], 席兵;韩盈盈
3.基于网格的最优网格数据过滤机制研究及实现 [J], 冯晓刚;陈崇成;唐丽玉
4.NDIS驱动程序研究和基于NDIS网络监测程序实现 [J], 孙华领; 顾景文
5.终端匿名器数据过滤模块的分析与实现 [J], 周彦伟;吴振强;肖梁;王宁
因版权原因,仅展示原文概要,查看原文内容请购买。
基于NDIS的网络诱骗技术的原理及实现
苗凤君;郭清宇;李玉玲
【期刊名称】《河南科学》
【年(卷),期】2005(023)002
【摘要】网络诱骗技术是对传统网络防御手段的有效补充,通过将网络攻击者引向伪造的、虚假的信息资源,达到保护网络中真正有价值信息资源的目的. 本文介绍了网络诱骗技术的原理,并利用NDIS底层驱动来实现网络数据包的截获,防范外部对本地主机的入侵,为发现攻击和阻断攻击也提供了相应的工具和技术.
【总页数】4页(P267-270)
【作者】苗凤君;郭清宇;李玉玲
【作者单位】中原工学院计算机科学系,河南,郑州,450007;中原工学院计算机科学系,河南,郑州,450007;中原工学院计算机科学系,河南,郑州,450007
【正文语种】中文
【中图分类】TQ323.1
【相关文献】
1.基于WinDis32技术实现网络通信监测 [J], 左洪明
2.基于WinDis32技术实现网络通信监测 [J], 刘贺扬
3.基于入侵诱骗技术的网络安全研究与实现 [J], 杨奕
4.基于NDIS中间层的网络数据包拦截技术及实现 [J], 彭亮亮
5.基于NDIS中间层的网络数据包拦截技术及实现 [J], 裴林;曹斌
因版权原因,仅展示原文概要,查看原文内容请购买。
基于Windows内核态个人防火墙的设计与实现作者:何映覃以威李丹来源:《现代电子技术》2012年第06期摘要:为了提高防火墙对非法数据包的拦截能力,增强Windows主机上网的安全性,设计并实现了一个基于Windows内核态的个人防火墙。
它由应用程序和驱动程序2部分组成,其中应用程序负责对数据包进行实时监控以及安全规则实现,并向用户报告防火墙的运行状态或安全事件;基于NDIS中间层驱动程序对数据包进行拦截,采用设备输入和输出控制(IOCTL)方法实现内核态进程与用户态进程间的通信。
测试结果表明,该防火墙能在Windows平台下稳定运行,能够有效拦截非法数据包。
关键词:防火墙; NDIS;中间层驱动; Passthru;进程间通信中图分类号:文献标识码:A文章编号:Design and implementation of personal firewall based on Windows kernel modeHE(College of Physical Science and Technoloy, Guangxi Normal University, Guilin 541004, China)Abstract:In order to improve the firewall′s ability to intercept illegal packets and enhace the security of the host running a Windows OS, a personal firewall was designed and implemented based on Windows kenel mode. It consists of two main parts: application programs which runs in user mode, and driver programs which runs in kernel mode. The received packets are monitoredthe security rules are implemented with the former, and the packets are intercepted with the latterefined IOCTL. The test results show that this firewall can run stably on Windows platform and can effectively intercept all the illegal packets.Keywords:收稿日期:引言防火墙在网络安全防护中具有重要作用,从应用的角度来看,防火墙可以分为企业级防火墙和个人防火墙[1]。
一种基于NDIS网络数据包过滤器的设计杨永杰;冯军;谢正光【摘要】网络数据包的过滤广泛应用于信息安全产品的研发中,如防火墙、入侵检测系统、病毒防范等.分析网络驱动程序接口规范NDIS(Network Driver Interface Specification)的体系结构和相关驱动,设计并实现了一种基于 NDIS Intermediate Driver的网络数据包过滤器.实验结果表明,该网络数据包过滤器具有很高的实用价值.【期刊名称】《计算机应用与软件》【年(卷),期】2010(027)007【总页数】3页(P100-101,151)【关键词】NDIS;过滤器;数据包;中间驱动【作者】杨永杰;冯军;谢正光【作者单位】南通大学电子信息学院,江苏,南通,226007;南通大学电子信息学院,江苏,南通,226007;南通大学电子信息学院,江苏,南通,226007【正文语种】中文0 引言随着互连网技术的迅速发展和Windows操作系统的广泛应用,使得在Windows 操作系统下进行网络安全通信成为研究的重要领域,网络安全问题也日益突出,网络数据包的捕获和过滤便作为保护网络免遭入侵的一种必不可少的手段,越来越多地应用在实际的生活中。
目前计算机系统的互联基本采用TCP/ IP协议,由于历史和技术等原因,TCP/IP从提出到实施,并没有考虑数据传输的安全问题,其数据在网络传输过程中,很容易被窃取或篡改。
为了建立数据传输的安全性,本文利用微软的DDK(Device Driver Kit)进行NDIS中间驱动程序编程,设计了一个基于NDIS中间驱动的网络数据包过滤器,并通过相关的实验验证该数据包过滤器的正确性。
1 NDIS体系结构和标准开发接口NDlS是网络驱动程序接口规范的简称。
它横跨传输层、网络层和数据链路层,定义了网卡或网卡驱动程序与上层协议驱动程序之问的通信接口规范,屏蔽了底层物理硬件的不同,使上层的协议驱动程序和底层任何型号的网卡都能通信[1]。