一种数据拦截方法及装置与流程

文档序号:12865968阅读:331来源:国知局
本发明涉及计算机
技术领域
:,特别涉及一种数据拦截方法及装置。
背景技术
::防火墙是指隔离在本地网络与外界网络之间的一道执行控制策略的防御系统,其通过对所有进出网络的数据流进行拦截处理,以实现网络安全。目前,基于android(安卓系统)的原有配置文件,可以通过系统自带防火墙以拦截数据。但是,自带防火墙的数据拦截规则不变更改,故现有实现方式的数据拦截效果较差。技术实现要素:本发明提供了一种数据拦截方法及装置,能够保证数据拦截效果。为了达到上述目的,本发明是通过如下技术方案实现的:第一方面,本发明提供了一种数据拦截方法,确定设置有至少一个hook点的netfilter框架;还包括:利用所述netfilter框架获取外部发来的网络数据包;所述网络数据包通过任一所述hook点时,均执行:利用预先设置好的该hook点对应的链表规则,对所述网络数据包执行相应拦截处理。进一步地,每一个所述hook点中均包括有nat、mangle、raw、filter、security这5个表中的任意一个或多个;其中,所述nat、mangle、raw、filter、security这5个表中的任意一个表中,均包括有pre_routing、local_in、fprward、local_out和post_routing这5条链中的任意一条或多条;其中,所述pre_routing、local_in、fprward、local_out和post_routing这5条链中的任意一条链中,均包括有至少一个iptables命令;针对每一个所述hook点,由该hook点中包括的至少一个表及各表中包括的至少一个链,组成该hook点对应的链表规则。进一步地,所述执行相应拦截处理包括:放回网络协议栈并向上层递交、经修改后放回网络协议栈、丢弃中的任意一种。进一步地,所述利用所述netfilter框架获取外部发来的网络数据包,包括:在配置的安卓开发环境下,利用所述netfilter框架获取外部经有序广播而发来的网络数据包。第二方面,本发明提供了一种数据拦截装置,包括:确定单元,用于确定设置有至少一个hook点的netfilter框架;获取单元,用于利用所述netfilter框架获取外部发来的网络数据包;处理单元,用于所述网络数据包通过任一所述hook点时,均执行:利用预先设置好的该hook点对应的链表规则,对所述网络数据包执行相应拦截处理。进一步地,每一个所述hook点中均包括有nat、mangle、raw、filter、security这5个表中的任意一个或多个;其中,所述nat、mangle、raw、filter、security这5个表中的任意一个表中,均包括有pre_routing、local_in、fprward、local_out和post_routing这5条链中的任意一条或多条;其中,所述pre_routing、local_in、fprward、local_out和post_routing这5条链中的任意一条链中,均包括有至少一个iptables命令;针对每一个所述hook点,由该hook点中包括的至少一个表及各表中包括的至少一个链,组成该hook点对应的链表规则。进一步地,所述处理单元,具体用于执行放回网络协议栈并向上层递交、经修改后放回网络协议栈、丢弃中的任意一种。进一步地,所述获取单元,具体用于在配置的安卓开发环境下,利用所述netfilter框架获取外部经有序广播而发来的网络数据包。第三方面,本发明提供了一种可读介质,包括执行指令,当存储控制器的处理器执行所述执行指令时,所述存储控制器执行上述任一所述的数据拦截方法。第四方面,本发明提供了一种存储控制器,包括:处理器、存储器和总线;所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述存储控制器执行上述任一所述的数据拦截方法。本发明提供了一种数据拦截方法及装置,该方法包括:确定设置有至少一个hook点的netfilter框架;利用该netfilter框架获取外部发来的网络数据包;该网络数据包通过任一hook点时,均执行:利用预先设置好的该hook点对应的链表规则,对该网络数据包执行相应拦截处理。根据实际需求,可以利用iptable命令对netfilter框架中的链表规则进行修改,且修改操作简单方便。利用基于netfilter框架的防火墙以拦截数据,故本发明能够保证数据拦截效果。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明一实施例提供的一种数据拦截方法的流程图;图2是本发明一实施例提供的另一种数据拦截方法的流程图;图3是本发明一实施例提供的一种数据拦截装置的示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。如图1所示,本发明实施例提供了一种数据拦截方法,可以包括以下步骤:步骤101:确定设置有至少一个hook点的netfilter框架。步骤102:利用所述netfilter框架获取外部发来的网络数据包。步骤103:所述网络数据包通过任一所述hook点时,均执行:利用预先设置好的该hook点对应的链表规则,对所述网络数据包执行相应拦截处理。本发明实施例提供了一种数据拦截方法,确定设置有至少一个hook点的netfilter框架;利用该netfilter框架获取外部发来的网络数据包;该网络数据包通过任一hook点时,均执行:利用预先设置好的该hook点对应的链表规则,对该网络数据包执行相应拦截处理。根据实际需求,可以利用iptable命令对netfilter框架中的链表规则进行修改,且修改操作简单方便。利用基于netfilter框架的防火墙以拦截数据,故本发明实施例能够保证数据拦截效果。在本发明的一个实施例中,每一个所述hook点中均包括有nat、mangle、raw、filter、security这5个表中的任意一个或多个;其中,所述nat、mangle、raw、filter、security这5个表中的任意一个表中,均包括有pre_routing、local_in、fprward、local_out和post_routing这5条链中的任意一条或多条;其中,所述pre_routing、local_in、fprward、local_out和post_routing这5条链中的任意一条链中,均包括有至少一个iptables命令;针对每一个所述hook点,由该hook点中包括的至少一个表及各表中包括的至少一个链,组成该hook点对应的链表规则。详细地,对于上述5个表,raw表可以用于数据跟踪处理,mangle表可以用于数据包的重构,nat表可以用于网络地址转换,filter表可以用于包过滤,security表可以用于安全处理。详细地,对于上述5条链,pre_routing链可以表示为数据包进入路由表之前;local_in链,或称input链,可以表示为通过路由表后目的地为本机;fprward链可以表示为通过路由表后,目的地不为本机;local_out链,或称output链,可以表示为由本机产生,向外转发;post_routing链可以表示为发送到网卡接口之前。在本发明一个实施例中,raw表中可以包括pre_routing、local_out这2条链;mangle表中可以包括pre_routing、local_in、fprward、local_out和post_routing这5条链;nat表中可以包括pre_routing、local_in、local_out和post_routing这4条链;filter表中可以包括local_in、fprward、local_out这3条链;security表中可以包括local_in、fprward、local_out这3条链。其中,raw、mangle、nat、filter和security这5个表的优先级可以顺序递减。详细地,上述任意一条链均可以包括若干iptables命令,即包括若干的规则项,其中,源地址、目的地址、传输协议(如tcp(transmissioncontrolprotocol,传输控制协议)/udp(userdatagramprotocol,用户数据报协议)/icmp(internetcontrolmessageprotocol,internet控制报文协议))以及服务类型(如http(hypertexttransferprotocol,超文本传输协议)、snmp(simplenetworkmanagementprotocol,简单网络管理协议)等)就可以包含在这些规则项中。iptables作为这些规则项的配置工具,可以用于修改这些规则项,比如可以控制这些规则项的增加、删除、修改等操作,从而达成对网络数据包的控制。在本发明的一个实施例中,所述执行相应拦截处理包括:放回网络协议栈并向上层递交、经修改后放回网络协议栈、丢弃中的任意一种。在本发明的一个实施例中,iptables传输数据包的过程可以如下所述:当一个网络数据包从网络1进入网卡时,首先进入pre_routing链,内核根据该网络数据包的目的ip,判断是否需要将其转发出去;在判断结果为该网络数据包是进入本机的,则该网络数据包到达local_in链,其中,该网络数据包到达local_in链后,本机的任何进程都可以收到它,如此本机上运行的程序可以发送该网络数据包,以使其经过local_out链并到达post_routing链以输出;在判断结果为该网络数据包需要转发出去,且内核允许转发时,该网络数据包可以经过fprward链并到达到达post_routing链以输出。在本发明的一个实施例中,所述利用所述netfilter框架获取外部发来的网络数据包,包括:在配置的安卓开发环境下,利用所述netfilter框架获取外部经有序广播而发来的网络数据包。详细地,采用netfilter框架来实现网络数据包,如电话、短信等的防火墙拦截处理,通常需要使android广播处于有序广播的模式下。这是因为异步广播会被每个接受者收到,从而无法实现拦截,但在有序广播的模式下,只要终止广播就可以实现黑名单的拦截。如图2所示,本发明一个实施例提供了另一种数据拦截方法,该方法以基于netfilter的android防火墙为例,具体包括以下步骤:步骤201:配置安卓开发环境。详细地,netfilter是linux内核中进行数据包过滤、连接跟踪、地址转换等的主要实现框架。比如,当需要过滤特定的数据包或者需要修改数据包的内容再发送出去时,这些动作主要都在netfilter中完成。此外,iptables工具可以为用户空间和内核的netfilter模块通信的手段,iptables命令可以提供很多选项来实现过滤数据包的各种操作。如此,在定义数据包过滤规则时,并不需要去直接修改内核中的netfilter模块。详细地,若采用netfilter框架来实现网络防火墙,首先需要将安卓的开发环境配置好。如此,在netfilter代码安装好、项目结构建立好之后,可以以面向对象的方式调用netfilter所带有的iptable工具命令并进行防火墙的搭建。步骤202:确定设置有5个hook点的netfilter框架。详细地,对于netfilter框架中设置的任一hook点,一个hook点中可以包括若干表,且每一个表中可以包括若干链,每一条链中包括有iptables命令,这些iptables命令的规则项即可组成该hook点的链表规则,且该链表规则用于对各网络数据包执行相应拦截处理。在本发明一个实施例中,为了在启动时就能够直接调用已经定义好的iptable规则,需要重写onreceive方法。在另一个java文件中对常量数据进行定义,并配置生成iptable脚本文件,生成app信息等。同时为解决iptable规则存放问题,可以利用android中的sharepreference来存储配置信息的数据类型。假设网络协议为ipv4,可以在netfilter框架中设置5个hook点。步骤203:在配置的安卓开发环境下,利用设置的netfilter框架获取外部经有序广播而发来的每一个网络数据包。详细地,当基于netfilter的android防火墙用于安卓手机时,外部发来的网络数据包可以为短信、电话等。为保证安卓手机的信息安全性,需要利用建立的防火墙对每一个网络数据包执行拦截处理。步骤204:针对获取到的任一网络数据包,该网络数据包通过任一hook点时,均执行:利用预先设置好的该hook点对应的链表规则,对该网络数据包执行相应拦截处理。详细地,拦截处理可以为放回网络协议栈并向上层递交、经修改后放回网络协议栈、丢弃中的任意一种。由上述内容可知,基于netfilter的android防火墙数据拦截方法,可以达到预期的网络权限控制作用,能够对电话和短信黑名单进行过滤。如图3所示,本发明一个实施例提供了一种数据拦截装置,包括:确定单元301,用于确定设置有至少一个hook点的netfilter框架;获取单元302,用于利用所述netfilter框架获取外部发来的网络数据包;处理单元303,用于所述网络数据包通过任一所述hook点时,均执行:利用预先设置好的该hook点对应的链表规则,对所述网络数据包执行相应拦截处理。在本发明一个实施例中,每一个所述hook点中均包括有nat、mangle、raw、filter、security这5个表中的任意一个或多个;其中,所述nat、mangle、raw、filter、security这5个表中的任意一个表中,均包括有pre_routing、local_in、fprward、local_out和post_routing这5条链中的任意一条或多条;其中,所述pre_routing、local_in、fprward、local_out和post_routing这5条链中的任意一条链中,均包括有至少一个iptables命令;针对每一个所述hook点,由该hook点中包括的至少一个表及各表中包括的至少一个链,组成该hook点对应的链表规则。在本发明一个实施例中,所述处理单元303,具体用于执行放回网络协议栈并向上层递交、经修改后放回网络协议栈、丢弃中的任意一种。在本发明一个实施例中,所述获取单元302,具体用于在配置的安卓开发环境下,利用所述netfilter框架获取外部经有序广播而发来的网络数据包。此外,本发明一个实施例还提供了一种可读介质,包括执行指令,当存储控制器的处理器执行所述执行指令时,所述存储控制器执行上述任一所述的数据拦截方法。本发明一个实施例还提供了一种存储控制器,包括:处理器、存储器和总线;所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述存储控制器执行上述任一所述的数据拦截方法。上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。综上所述,本发明的各个实施例至少具有如下有益效果:1、本发明实施例中,确定设置有至少一个hook点的netfilter框架;利用该netfilter框架获取外部发来的网络数据包;该网络数据包通过任一hook点时,均执行:利用预先设置好的该hook点对应的链表规则,对该网络数据包执行相应拦截处理。根据实际需求,可以利用iptable命令对netfilter框架中的链表规则进行修改,且修改操作简单方便。利用基于netfilter框架的防火墙以拦截数据,故本发明实施例能够保证数据拦截效果。2、本发明实施例中,基于netfilter的android防火墙数据拦截方法,可以达到预期的网络权限控制作用,能够对电话和短信黑名单进行过滤。需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个〃····〃”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质中。最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1