一种WFP+NDISFilter组合驱动实现网络底层过滤的方法技术

技术编号:22172934 阅读:45 留言:0更新日期:2019-09-21 13:38
本发明专利技术公开了一种WFP+NDISFilter组合驱动实现网络底层过滤的方法,涉及计算机终端安全管理领域;该方法包括①WFP驱动层获取进程和网络连接信息,将两者关联可判断数据包是否为过滤规则中指定进程的数据包,该层不做过滤处理;②NDISFilter驱动层过滤网络数据,当数据包经过该层,通过进程关联规则和过滤规则处理数据包拦截或放行;③某进程对网络连接的创建和释放信息都在WFP驱动层监控并获取,都下发给NDISFilter驱动层,通过该信息添加或删除进程关联规则。该方法在操作系统最底层实现数据包的监控和过滤,不存在被特殊网络技术手段绕过的可能性,兼容性和稳定性更好且提高数据包过滤的效率和准确度。

A WFP+NDISFilter Composite Drive Method to Realize Network Bottom Filtration

【技术实现步骤摘要】
一种WFP+NDISFilter组合驱动实现网络底层过滤的方法
本专利技术涉及计算机终端安全管理领域,尤其涉及一种WFP+NDISFilter组合驱动实现网络底层过滤的方法。
技术介绍
在企事业单位办公电脑中,经常存储着一些涉及本单位机密的信息和数据,因此对这些信息数据的保护以及对办公电脑自身的保护就很重要。电脑自身和机密数据安全防护有很多种防护方式和途径,其中最重要的一条是要防止通过网络入侵的行为进行信息数据窃取和破坏,这样就需要对办公电脑进行网络层的安全防护。实现上述目标的一种比较有效的方法,就是对接入网络的电脑的网络数据包(可指定发送给某一进程或从某一进程发出的数据包)进行检测和过滤,拦截非法地址对本机敏感数据的访问、对敏感软件的操作和对重要设置的修改甚至破坏等非法操作。目前常规的Windows操作系统下对网络数据包有效拦截做法主要有三种,分别是采用网络上层驱动(TDI)、网络底层驱动(NDIS)及网络上层和底层驱动结合(TDI+NDIS)进行监控并过滤。网络上层驱动过滤(TDI)技术在操作系统所处的位置较为接近内核层,较难被流量绕过,所以可以获得较好的拦截效果,这也是当前最主流的网络流量拦截方法。但该种方法因为不是工作在系统底层驱动,仍然存在被绕过的可能性,而且由于需要对操作系统的驱动层进行监控和修改,技术难度较高,容易导致系统蓝屏等故障,影响系统的稳定性。而网络底层驱动过滤(NDIS)技术则是在操作系统底层网络驱动处对网络流量进行检测和拦截,不存在被绕过的可能性,因此其具有最佳的拦截效果。但是该技术难度最高,对底层驱动操作不当极易造成蓝屏死机等状况,一般厂商没有长时间的积累,都无法保证使用该技术的稳定性和可靠性,因此业界采用该种方式的最少。加上该种方式无法关联流量对应的系统进程,也使其实用性存在一定争议。另外,随着Windows操作系统自身的发展,尤其是发展到Windows10操作系统以后,原有的TDI和NDIS网络驱动过滤技术不再被操作系统支持,为在新系统下实现稳定、可靠、高效、安全的网络流量过滤,也需要升级到新的网络过滤技术。
技术实现思路
本专利技术的目的在于提供一种WFP+NDISFilter组合驱动实现网络底层过滤的方法,从而解决现有技术中存在的前述问题。为了实现上述目的,本专利技术采用的技术方案如下:一种组合驱动实现网络底层过滤的方法,包括以下步骤:S1,当主机有系统进程创建网络连接时,WFP驱动层获取进该网络连接的相关信息,同时NDISFilter驱动层则创建一个通讯状态机,用于接收应用层下发的过滤策略和WFP传递来的网络连接策略;S2,所述WFP驱动层将获取得到的网络连接的相关信息存入网络连接策略中,并将所述网络连接策略复制到WFP驱动层构造的IRP请求中,然后再将该IRP请求发送给所述NDISFilter驱动层创建的通讯状态机中;S3,所述NDISFilter驱动层获取所述WFP驱动层下发的网络连接策略和应用层下发的网络过滤策略并保存,如果该网络连接策略和该网络过滤策略已存在则不重复存入;S4,当有数据包通过该主机的NDISFilter驱动层时,所述NDISFilter驱动层将数据包和网络连接策略、网络过滤策略进行匹配,根据匹配结果对数据包拦截或放行,完成过滤过程。优选地,步骤S1和S2中所述的网络连接的相关信息包括协议、本地IP、本地端口、本次连接所属的进程PID和进程名。优选地,所述的网络连接策略包括网络连接策略ID、网络连接协议、网络连接本地IP、网络连接本地端口、本次网络连接所属的进程PID和进程名。优选地,步骤S3和步骤S4中所述的网络过滤策略包括网络过滤策略ID、网络过滤协议、网络过滤过滤标志位、网络过滤源IP、网络过滤目的IP、网络过滤源端口、网络过滤目的端口、网络过滤进程匹配标志位、网络过滤进程名。优选地,步骤S4具体包括:S41,当网络过滤策略中的协议、源IP地址、目的IP地址、源端口、目的端口匹配通过,则继续匹配网络过滤策略中的进程匹配标志位;否则设置数据包拦截总标志为0;S42,当进程匹配标志位存在,则数据包继续匹配网络连接策略中的协议、本地IP、本地端口,网络连接策略中的进程名匹配网络过滤策略的进程名;否则设置数据包拦截总标志为0;S43,当步骤S42中过程匹配通过并且过滤标志为阻止则设置数据包拦截总标志位为1,否则设置数据包拦截总标志为0;S44,重复S41、S42、S43过程直到网络过滤策略全部匹配完成,如果数据包拦截总标志位为1,则拦截数据包;否则,放行数据包。优选地,步骤S4中具体的匹配原则包括:1)数据包进入NDISFilter驱动层,判断数据包源IP和目的IP是否匹配通过网络过滤策略的源IP和目的IP,若是,则进入步骤2);否则,进入步骤7);2)继续监测数据包源端口和目的端口是否匹配通过网络过滤策略的源端口和目的端口,若是,则进入步骤3);否则,进入步骤7);3)确定进程匹配标志NameFlag是否为1,若是,则进入步骤4);否则,进入步骤7;4)继续监测网络过滤策略中的进程名和网络连接各项策略中的进程名是否匹配通过,若是,则进入步骤5);否则,进入步骤7);5)确定该数据包的方向,如果是进入本机的数据包,则将数据包的协议、目的IP、目的端口作为匹配项;如果是从本机发出的数据包,则将数据包的协议、源IP、源端口作为匹配项;该数据包的所述的匹配项是否匹配通过网络连接规则的协议、本地IP、本地端口,若是,则进入步骤6);否则,进入步骤7);6)最后确认过滤标志位是否为1,若是,则设置数据包拦截标志位LastRule为1;否则,则设置拦截总标志位LastRule为0,进入步骤7);7)检测是否匹配全部网络过滤规则,若否,则进入步骤1);若是,则检测标志位LastRule是否为1,若是,则拦截数据包;否则,放行数据包。优选地,该方法还包括:S5,当被过滤进程关闭或者被过滤进程中的网络连接关闭时,所述WFP驱动层也将获取的网络连接信息存入网络连接策略并下发到所述NDISFilter驱动层中,所述NDISFilter驱动层获取该网络连接策略,依次匹配所有已存的网络连接策略,一旦匹配上则将已存储的网络连接策略删除。值得注意到,本专利技术中采用WFP+NDISFilter组合驱动实现网络底层过滤原理如下:①WFP驱动层获网络连接信息并存入网络连接策略,该策略可判断数据包是否为网络连接中所属进程的数据包,该层不做过滤处理;②NDISFilter驱动层过滤网络数据,当数据包经过该层,通过进程关联规则和网络过滤规则匹配数据包,处理数据包拦截或放行;③某进程对网络连接的创建和释放信息都在WFP驱动层监控并获取,都下发给NDISFilter驱动层,通过该信息添加或删除网络连接策略。本专利技术的有益效果是:本专利技术首次提出了一种WFP+NDISFilter组合驱动实现网络底层过滤的方法,完全支持WindowsVista及以后的系统,兼容性和稳定性更好;而且其在操作系统最底层实现数据包的监控和过滤,不存在被特殊网络技术手段绕过的可能性;另外该方法能够对指定进程的数据包过滤,提高了数据包过滤的效率和准确度。附图说明图1是实施例1中WFP+NDISFilter驱动组合框架图;图2是本文档来自技高网
...

【技术保护点】
1.一种组合驱动实现网络底层过滤的方法,其特征在于,包括以下步骤:S1,当主机有系统进程创建网络连接时,WFP驱动层获取进该网络连接的相关信息,同时NDISFilter驱动层则创建一个通讯状态机,用于接收应用层下发的过滤策略和WFP传递来的网络连接策略;S2,所述WFP驱动层将获取得到的网络连接的相关信息存入网络连接策略中,并将所述网络连接策略复制到WFP驱动层构造的IRP请求中,然后再将该IRP请求发送给所述NDISFilter驱动层创建的通讯状态机中;S3,所述NDISFilter驱动层获取所述WFP驱动层下发的网络连接策略和应用层下发的网络过滤策略并保存,如果该网络连接策略和该网络过滤策略已存在则不重复存入;S4,当有数据包通过该主机的NDISFilter驱动层时,所述NDISFilter驱动层将数据包和网络连接策略、网络过滤策略进行匹配,根据匹配结果对数据包拦截或放行,完成过滤过程。

【技术特征摘要】
1.一种组合驱动实现网络底层过滤的方法,其特征在于,包括以下步骤:S1,当主机有系统进程创建网络连接时,WFP驱动层获取进该网络连接的相关信息,同时NDISFilter驱动层则创建一个通讯状态机,用于接收应用层下发的过滤策略和WFP传递来的网络连接策略;S2,所述WFP驱动层将获取得到的网络连接的相关信息存入网络连接策略中,并将所述网络连接策略复制到WFP驱动层构造的IRP请求中,然后再将该IRP请求发送给所述NDISFilter驱动层创建的通讯状态机中;S3,所述NDISFilter驱动层获取所述WFP驱动层下发的网络连接策略和应用层下发的网络过滤策略并保存,如果该网络连接策略和该网络过滤策略已存在则不重复存入;S4,当有数据包通过该主机的NDISFilter驱动层时,所述NDISFilter驱动层将数据包和网络连接策略、网络过滤策略进行匹配,根据匹配结果对数据包拦截或放行,完成过滤过程。2.根据权利要求1所述的组合驱动实现网络底层过滤的方法,其特征在于,步骤S1和S2中所述的网络连接的相关信息包括协议、本地IP、本地端口、本次连接所属的进程PID和进程名。3.根据权利要求1所述的组合驱动实现网络底层过滤的方法,其特征在于,所述的网络连接策略包括网络连接策略ID、网络连接协议、网络连接本地IP、网络连接本地端口、本次网络连接所属的进程PID和进程名。4.根据权利要求1所述的组合驱动实现网络底层过滤的方法,其特征在于,步骤S3和步骤S4中所述的网络过滤策略包括网络过滤策略ID、网络过滤协议、网络过滤过滤标志位、网络过滤源IP、网络过滤目的IP、网络过滤源端口、网络过滤目的端口、网络过滤进程匹配标志位、网络过滤进程名。5.根据权利要求1所述的组合驱动实现网络底层过滤的方法,其特征在于,步骤S4具体包括:S41,当网络过滤策略中的协议、源IP地址、目的IP地址、源端口、目的端口匹配通过,则继续匹配网络过滤策略中的进程匹配标志位;否则设置数据包拦截总标志为0;S42,当进程匹配标志位存在,则数据包继续匹配网络连接策略中的协议、本地IP、本地端口,网络连接策略中的进程...

【专利技术属性】
技术研发人员:周宇杨贺许凯王洋
申请(专利权)人:北京众谊越泰科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1