CN102195972B - 利用wfp拦截网络数据的方法 - Google Patents

利用wfp拦截网络数据的方法 Download PDF

Info

Publication number
CN102195972B
CN102195972B CN201110072859.XA CN201110072859A CN102195972B CN 102195972 B CN102195972 B CN 102195972B CN 201110072859 A CN201110072859 A CN 201110072859A CN 102195972 B CN102195972 B CN 102195972B
Authority
CN
China
Prior art keywords
port
layer
data
filter
wfp
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201110072859.XA
Other languages
English (en)
Other versions
CN102195972A (zh
Inventor
于晓军
万雪松
赵辰清
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STRONG UNION TECHNOLOGY Co Ltd
Original Assignee
STRONG UNION TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by STRONG UNION TECHNOLOGY Co Ltd filed Critical STRONG UNION TECHNOLOGY Co Ltd
Priority to CN201110072859.XA priority Critical patent/CN102195972B/zh
Publication of CN102195972A publication Critical patent/CN102195972A/zh
Application granted granted Critical
Publication of CN102195972B publication Critical patent/CN102195972B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种利用WFP拦截网络数据的方法,属于网络安全领域,包括以下步骤:S1、开启Windows内核中WFP过滤引擎的会话,在会话中增加一个子层,并且在WFP过滤引擎的ALE和传输层分别注册一个标注,将标注添加到子层中,设置标注的过滤信息,所述过滤信息包括过滤条件;S2、在ALE的标注中设置回调函数,并在回调函数中得到端口和进程的对应关系,并根据进程策略判定这个端口的数据是否能成功发送,接下来记录这个端口能够发送数据;S3、在传输层的标注中设置过滤回调函数,对过滤回调函数中的数据包进行解析,解析出数据包对应的端口,根据S2中记录的信息判断数据包对应的端口能否发送数据。本发明实现简单、安装方便,可兼容任意第三方的安全网络产品。

Description

利用WFP拦截网络数据的方法
技术领域
本发明涉及网络安全领域,尤其涉及一种利用WFP拦截网络数据的方法。
背景技术
目前网络数据的安全监控软件可以设在很多层次,根据ISO的七层结构(包括应用层、表示层、会话层、传输层、网络层、链路层、物理层),可以设在比如NDIS(Network Driver Interface Specification,网络驱动接口规范)的协议层、中间层以及TDI层(传输层)或者应用层。它们都能够过滤特定进程的网络数据,对这些数据以及发包进程进行安全扫描,以便决定这些网络数据是否继续发送等。这些方法足可以帮助我们阻止不安全进程的第三方通信软件发送非法数据,防止盗窃本地数据。
但是这些方法都存在一定的缺陷,比如说SPI(服务提供者接口)过滤,任何工具都可以恢复原来的注册表,使其失去监控的作用。对于TDI过滤来说,对WIN7的兼容性几乎没有,并且该方法极其复杂,更不能过滤ICMP(Internet Control Message Protocol,Internet控制消息协议)包。NDIS HOOK的缺陷在于在不同的平台上面,它的接收函数、发送函数等一系列的API偏移不一样。NDIS IMD的缺陷在于编程的复杂度远远超过了任何一个,而且不能兼容3G网络,WiFi网络。并且NDIS IMD方法不提供对进程标识(PID)的访问,也就是说我们无法得到网络数据对应的进程信息。更不能通过KeGetCurrentID来得到PID,因为网络模块的实现方式是异步的,即当前的PID并不是发送数据包的进程。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何提供一种实现方法简单、安装方便,可兼容任意第三方的安全网络产品的拦截网络数据的方法。
(二)技术方案
为解决上述技术问题,本发明提供了一种利用WFP拦截网络数据的方法,包括以下步骤:
S1、开启一个Windows内核中WFP过滤引擎的会话,然后在该会话中增加一个子层,并且在WFP过滤引擎的ALE层和传输层分别注册一个标注,将两个标注添加到所述子层中,然后设置所述两个标注的过滤信息,所述过滤信息包括过滤条件;
S2、在ALE层的标注中设置回调函数,并在回调函数中得到端口和进程的对应关系,并根据进程策略来判定这个端口的数据是否能成功发送,接下来记录这个端口能否发送数据,以便接下来查询使用;
S3、在传输层的标注中设置过滤回调函数,对所述过滤回调函数中的数据包进行解析,解析出该数据包对应的端口,然后根据S2中记录的信息来判断该数据包对应的端口能否发送数据。
所述过滤条件是拦截所有发送的数据。
在步骤S2中,在回调函数中,把端口和该端口能否发送数据记录下来。
所述进程策略为:如果进程路径在进程白名单中,则放行这个数据包,否则不放行这个数据包。
(三)有益效果
本发明通过利用了现有的过滤引擎(只需要设置这个过滤引擎的过滤条件即可)实现了对特定进程的网络数据的拦截,实现方法简单,可以兼容普通网线上网、无线网卡、无线上网卡等应用。并且加载简单,安装时不会有断网现象,且可以与第三方安全厂商兼容。
附图说明
图1是本发明的方法流程图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细说明。以下实施例用于说明本发明,但不用来限制本发明的范围。
如图1所示,本发明实施例如下:
1)使用FwpmEngineOpen0 API打开一个回会话(session)。也就是说我们将要注册标注(callout)到WFP(Windows Filter Platform,Windows过滤平台)过滤引擎,首先要开启一个会话。
2)使用FwpmTransactionBegin0 API来说明已经开始一个注册的标注(callout)驱动。
3)使用FwpmSublayerAdd0 API增加一个子层,以便NDIS能够很快地找到我们将要注册的标注(callout)。
4)先使用FwpsCalloutRegester0 API在ALE layer(ApplicationLayer Enforcement layer,应用程序层执法层)注册一个标注(callout)。
5)使用FwpmCalloutAdd0增加这个标注(callout)到过滤引擎的上述3)中增加的子层中。
6)使用FwpmFilterAdd0来对这个加入到过滤引擎的标注(callout)设置过滤条件。在此考虑了所有数据包IP地址的种类,比如单播地址、多播地址、任播地址、有效地址、未指定的地址(0.0.0.0)等等,这样就可以拦截所有发送出去的数据包。
7)重复4)-6)一次,完成在传输层注册一个新的标注(callout),然后执行步骤8)。
8)使用FwpmTransactionCommit0 API提交这个会话。
9)在ALE层的标注中设置回调函数,并且在回调函数中得到端口和进程的对应关系,并根据进程策略来判定这个端口的数据是否能成功发送,接下来记录这个端口能否发送数据,以便10)查询使用。
10)在传输层的标注中设置,在所设置的过滤回调函数中解析出数据包对应的端口,然后根据9)中的记录的信息来判断该端口能否发送数据。进程策略为:如果进程路径在进程白名单中,则放行这个数据包,否则不放行这个数据包。另外对于系统的发包进程一律放行,不然系统很多功能无法使用,比如系统升级。
需要说明的是,在ALE层注册callout是为了拦截到数据包的时候可以查询该数据包对应的PID(进程标识),而在这一层拦截数据包只会拦截到这个连接的第一个数据包,对于之后的数据包都不会拦截到。为了达到拦截所有数据包的目的,必须要拦截所有发送出去的包,即在传输层注册自己的callout。
由以上实施例可以看出,本发明通过利用了现有的过滤引擎实现了对特定进程的网络数据的拦截,实现方法简单,可以兼容普通网线上网、无线网卡、无线上网卡等应用。并且加载简单,安装时不会有断网现象,且可以与第三方安全厂商兼容。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。

Claims (4)

1.一种利用WFP拦截网络数据的方法,其特征在于,包括以下步骤:
S1、开启一个Windows内核中Windows过滤平台WFP过滤引擎的会话,然后在该会话中增加一个子层,并且在WFP过滤引擎的应用程序层执法层ALE层和传输层分别注册一个标注,将这两个标注添加到所述子层中,然后设置所述两个标注的过滤信息,所述过滤信息包括过滤条件;
S2、在ALE层的标注中设置回调函数,并在回调函数中得到端口和进程的对应关系,并根据进程策略来判定这个端口的数据是否能成功发送,接下来记录这个端口能否发送数据,以便接下来查询使用;
S3、在传输层的标注中设置过滤回调函数,对所述过滤回调函数中的数据包进行解析,解析出该数据包对应的端口,然后根据S2中记录的信息来判断该数据包对应的端口能否发送数据。
2.如权利要求1所述的方法,其特征在于,所述过滤条件是拦截所有发送的数据。
3.如权利要求1所述的方法,其特征在于,在步骤S2中,在回调函数中,把端口和该端口能否发送数据记录下来。
4.如权利要求1~3任一项所述的方法,其特征在于,所述进程策略为:如果进程路径在进程白名单中,则放行这个数据包,否则不放行这个数据包。
CN201110072859.XA 2011-03-24 2011-03-24 利用wfp拦截网络数据的方法 Active CN102195972B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110072859.XA CN102195972B (zh) 2011-03-24 2011-03-24 利用wfp拦截网络数据的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110072859.XA CN102195972B (zh) 2011-03-24 2011-03-24 利用wfp拦截网络数据的方法

Publications (2)

Publication Number Publication Date
CN102195972A CN102195972A (zh) 2011-09-21
CN102195972B true CN102195972B (zh) 2014-05-07

Family

ID=44603359

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110072859.XA Active CN102195972B (zh) 2011-03-24 2011-03-24 利用wfp拦截网络数据的方法

Country Status (1)

Country Link
CN (1) CN102195972B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104022924A (zh) * 2014-07-02 2014-09-03 浪潮电子信息产业股份有限公司 一种http通信内容检测的方法
CN105656943B (zh) * 2016-03-15 2019-07-05 上海缔安科技股份有限公司 一种应用数据拦截系统及方法
CN109347817B (zh) * 2018-10-12 2021-06-25 厦门安胜网络科技有限公司 一种网络安全重定向的方法及装置
CN110266732B (zh) * 2019-07-24 2020-05-08 北京众谊越泰科技有限公司 一种WFP+NDISFilter组合驱动实现网络底层过滤的方法
CN110417771B (zh) * 2019-07-25 2021-07-09 福建天晴在线互动科技有限公司 一种通过驱动自动化拦截Windows自动更新的方法
CN113783897B (zh) * 2021-11-11 2022-06-24 北京持安科技有限公司 一种跨网络访问进程流量管理方法、系统、设备及介质
CN116193001B (zh) * 2023-02-16 2023-11-03 中国人民解放军61660部队 一种用于实现NDIS6-Hooking的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1574792A (zh) * 2003-06-06 2005-02-02 微软公司 用于执行网络防火墙的基于多层的方法
CN1574839A (zh) * 2003-06-06 2005-02-02 微软公司 多层防火墙结构
CN101650768A (zh) * 2009-07-10 2010-02-17 深圳市永达电子股份有限公司 基于自动白名单的Windows终端安全保障方法与系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7920478B2 (en) * 2008-05-08 2011-04-05 Nortel Networks Limited Network-aware adapter for applications

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1574792A (zh) * 2003-06-06 2005-02-02 微软公司 用于执行网络防火墙的基于多层的方法
CN1574839A (zh) * 2003-06-06 2005-02-02 微软公司 多层防火墙结构
CN101650768A (zh) * 2009-07-10 2010-02-17 深圳市永达电子股份有限公司 基于自动白名单的Windows终端安全保障方法与系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于WFP 系统的网络反黄系统过滤驱动研究;左黎明等;《华东交通大学学报》;20080630;第25卷(第3期);第74-77页 *
左黎明等.基于WFP 系统的网络反黄系统过滤驱动研究.《华东交通大学学报》.2008,第25卷(第3期),第74-77页.

Also Published As

Publication number Publication date
CN102195972A (zh) 2011-09-21

Similar Documents

Publication Publication Date Title
CN102195972B (zh) 利用wfp拦截网络数据的方法
JP4174392B2 (ja) ネットワークへの不正接続防止システム、及びネットワークへの不正接続防止装置
CN102761534B (zh) 实现媒体接入控制层透明代理的方法和装置
TWI334714B (en) Discovery method for network devices
CN103609089B (zh) 一种防止附连到子网的主机上拒绝服务攻击的方法及装置
CN102480729A (zh) 无线接入网中防止假冒用户的方法及接入点
EP2124398A1 (en) A method and system for controlling network access
CN102263788A (zh) 一种用于防御指向多业务系统的DDoS攻击的方法与设备
CN101321102A (zh) Dhcp服务器的检测方法与接入设备
CN102594834B (zh) 网络攻击的防御方法及装置、网络设备
WO2012014509A1 (ja) 不正アクセス遮断制御方法
US20110176437A1 (en) Traffic volume monitoring system
CN100493065C (zh) 使用即时消息软件的数据检测网络地址转换设备的方法
CN104519012A (zh) 基于sip协议的通信网攻击的检测方法及系统
CN101599889B (zh) 一种以太网交换设备中防止mac地址欺骗的方法
CN101895529A (zh) 一种在驱动层判断tcp/ip包所属进程的方法
CN101888370B (zh) 防止IPv6地址被欺骗性攻击的装置与方法
CN101197836B (zh) 一种数据通讯控制方法以及数据通讯控制装置
CN102497380A (zh) 一种内网数据包过滤方法
CN106713355A (zh) 一种基于pc端的网络过滤方法及客户端pc
CN101330495B (zh) 一种在计算机网络内实现非对等访问的控制方法和控制系统
CN105959284A (zh) 一种报文过滤系统及方法
US7876691B2 (en) Testing method for network device
CN105187388B (zh) 使用集中器实现网络安全隔离的方法及集中器
CN101043329B (zh) 一种防止网络攻击的方法和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant