[发明专利]利用WFP拦截网络数据的方法有效
申请号: | 201110072859.X | 申请日: | 2011-03-24 |
公开(公告)号: | CN102195972A | 公开(公告)日: | 2011-09-21 |
发明(设计)人: | 于晓军;万雪松;赵辰清 | 申请(专利权)人: | 北京思创银联科技股份有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 王莹 |
地址: | 100098 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 利用 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)中增加的子层中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京思创银联科技股份有限公司,未经北京思创银联科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110072859.X/2.html,转载请声明来源钻瓜专利网。