CN103414725A - 用于检测和过滤数据报文的方法和设备 - Google Patents
用于检测和过滤数据报文的方法和设备 Download PDFInfo
- Publication number
- CN103414725A CN103414725A CN2013103670833A CN201310367083A CN103414725A CN 103414725 A CN103414725 A CN 103414725A CN 2013103670833 A CN2013103670833 A CN 2013103670833A CN 201310367083 A CN201310367083 A CN 201310367083A CN 103414725 A CN103414725 A CN 103414725A
- Authority
- CN
- China
- Prior art keywords
- data message
- detection
- described data
- user
- rule
- 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.)
- Pending
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明提供了基于安卓(“Android”)智能终端的用于流量检测和过滤的方法和设备。该方法包括:a)在操作***的数据报文发送接口和/或数据报文接收接口处拦截待发送和/或已接收的数据报文;b)根据一个或多个检测规则,对所述数据报文进行匹配;以及c)针对与所述一个或多个检测规则中的至少一个检测规则相匹配的数据报文,执行与所述至少一个检测规则相对应的过滤处理。
Description
技术领域
本发明总体上涉及数据通信领域,更具体地涉及用于检测和过滤数据报文的方法和设备。
背景技术
随着移动通信终端的广泛应用,其已经成为了当今社会的人们在生产生活中不可或缺的重要组成部分,而针对移动设备的网络数据监管也自然成为了公众关注的研究课题。
作为移动通信终端的主流开发平台之一,在安卓(Android)平台的基础上已经开发出了大量不同类型的应用。而这些应用中的部分应用在实现其基本功能的基础上,出于商业利益或其他因素的驱动,可能会在用户不知情的情况下,在***后台产生正常功能之外的额外网络访问和数据下载请求,进而产生额外流量。其直接导致的结果就是用户流量被无端消耗,同时产生不必要的流量费用。
目前对网络流量(数据报文)的主流检测技术基本上集中在应用层,其通过对应用的访问行为进行分析来实现数据报文的检测和过滤。通过这种方式,必须在与应用(app)的具体属性进行关联后,才能对应用的安全与否进行分析和判断。从而,无法在底层针对应用产生的非法流量和请求进行分析,进而进行阻断。而只能从应用相关性方面进行安全检查,而无法从流量数据包角度对访问流量进行安全分析和监控。
发明内容
为了解决上述问题,提供了本发明的用于检测和过滤数据报文的方法和设备。
根据本发明的第一方面,提供了一种用于检测和过滤数据报文的方法。该方法包括:a)在操作***的数据报文发送接口和/或数据报文接收接口处拦截待发送和/或已接收的数据报文;b)根据一个或多个检测规则,对所述数据报文进行匹配;以及c)针对与所述一个或多个检测规则中的至少一个检测规则相匹配的数据报文,执行与所述至少一个检测规则相对应的过滤处理。
在一些实施例中,拦截待发送和/或已接收的数据报文的步骤包括:使用钩子函数来拦截待发送和/或已接收的数据报文。
在一些实施例中,所述方法在步骤a)和步骤b)之间还包括:判断所述数据报文是否完整:如果所述数据报文完整,则继续执行后续步骤;否则,直接丢弃所述数据报文并结束所述方法。
在一些实施例中,每一个检测规则包括以下至少一项:应用协议;目标地址;源地址;以及应用名称。
在一些实施例中,对所述数据报文进行匹配的步骤包括:如果所述数据报文是待发送的数据报文,则根据所述数据报文的源端口来确定发送所述数据报文的应用的应用名称,然后将所述数据报文的应用协议、所述数据报文的目标地址、所述数据报文的源地址、以及所述应用名称中至少一项与所述一个或多个检测规则中的至少一个检测规则的相应项进行比较,以确定所述数据报文是否匹配所述一个或多个检测规则中的至少一个检测规则。
在一些实施例中,对所述数据报文进行匹配的步骤包括:如果所述数据报文是已接收的数据报文,则根据所述数据报文的目标端口来确定要接收所述数据报文的应用的应用名称,然后将所述数据报文的应用协议、所述数据报文的目标地址、所述数据报文的源地址、以及所述应用名称中至少一项与所述一个或多个检测规则中的至少一个检测规则的相应项进行比较,以确定所述数据报文是否匹配所述一个或多个检测规则中的至少一个检测规则。
在一些实施例中,所述过滤处理包括以下各项之一:允许匹配的数据报文通过;以及禁止匹配的数据报文通过。
在一些实施例中,所述方法还包括:向用户提供用于设置和查看所述一个或多个检测规则的能力。
在一些实施例中,所述方法还包括:向用户提供用于设置和查看所述过滤处理的能力。
在一些实施例中,在检测到匹配的数据报文的情况下,所述方法还包括:记录与匹配的数据报文相关的日志。
在一些实施例中,所述方法还包括:向用户提供用于查看所述日志的能力。
根据本发明的第二方面,提供了一种用于检测和过滤数据报文的设备。该设备包括:拦截单元,用于在操作***的数据报文发送接口和/或数据报文接收接口处拦截待发送和/或已接收的数据报文;匹配单元,用于根据一个或多个检测规则,对所述数据报文进行匹配;以及过滤单元,用于针对与所述一个或多个检测规则中的至少一个检测规则相匹配的数据报文,执行与所述至少一个检测规则相对应的过滤处理。
在一些实施例中,所述拦截单元还用于:使用钩子函数来拦截待发送和/或已接收的数据报文。
在一些实施例中,所述设备还包括:判断单元,用于判断所述数据报文是否完整:如果所述数据报文完整,则继续执行后续步骤;否则,直接丢弃所述数据报文。
在一些实施例中,每一个检测规则包括以下至少一项:应用协议;目标地址;源地址;以及应用名称。
在一些实施例中,所述匹配单元还用于:如果所述数据报文是待发送的数据报文,则根据所述数据报文的源端口来确定发送所述数据报文的应用的应用名称,然后将所述数据报文的应用协议、所述数据报文的目标地址、所述数据报文的源地址、以及所述应用名称中至少一项与所述一个或多个检测规则中的至少一个检测规则的相应项进行比较,以确定所述数据报文是否匹配所述一个或多个检测规则中的至少一个检测规则。
在一些实施例中,所述匹配单元还用于:如果所述数据报文是已接收的数据报文,则根据所述数据报文的目标端口来确定要接收所述数据报文的应用的应用名称,然后将所述数据报文的应用协议、所述数据报文的目标地址、所述数据报文的源地址、以及所述应用名称中至少一项与所述一个或多个检测规则中的至少一个检测规则的相应项进行比较,以确定所述数据报文是否匹配所述一个或多个检测规则中的至少一个检测规则。
在一些实施例中,所述过滤处理包括以下各项之一:允许匹配的数据报文通过;以及禁止匹配的数据报文通过。
在一些实施例中,所述设备还包括:用户界面,用于向用户提供用于设置和查看所述一个或多个检测规则的能力。
在一些实施例中,所述设备还包括:用户界面,用于向用户提供用于设置和查看所述过滤处理的能力。
在一些实施例中,所述设备还包括:日志单元,用于在检测到匹配的数据报文的情况下,记录与匹配的数据报文相关的日志。
在一些实施例中,所述设备还包括:用户界面,用于向用户提供用于查看所述日志的能力。
使用本发明的方法和设备,能够针对应用的网络行为在底层直接进行流量分析和控制,从而实现速度更快、效率更高的数据报文处理功能。
附图说明
通过下面结合附图说明本发明的优选实施例,将使本发明的上述及其它目标、特征和优点更加清楚,其中:
图1是示出了根据本发明实施例的移动通信终端中的示例网络协议栈的框图。
图2是示出了根据本发明实施例的示例数据报文处理过程。
图3是示出了根据本发明实施例的用于检测和过滤数据报文的方法的示例流程图。
图4是示出了根据本发明实施例的用于检测和过滤数据报文的设备的示例的功能框图。
在本发明的所有附图中,相同或相似的结构均以相同或相似的附图标记标识。
具体实施方式
下面参照附图对本发明的优选实施例进行详细说明,在描述过程中省略了对于本发明来说是不必要的细节和功能,以防止对本发明的理解造成混淆。以下,以本发明应用于无线移动通信***的场景为例,对本发明进行了详细描述。但本发明并不局限于此,本发明也可以应用于固定通信***、有线通信***,或者应用于无线移动通信***、固定通信***、有线通信***等的任意混合结构。就移动通信***而言,本发明并不局限于所涉及的各个移动通信终端的具体通信协议,可以包括(但不限于)2G、3G、4G、5G网络,WCDMA、CDMA2000、TD-SCDMA***等,不同的移动终端可以采用相同的通信协议,也可以采用不同的通信协议。本发明并不局限于移动终端的具体操作***,可以包括(但不限于)iOS、Windows Mobile、Symbian、Android等,不同的移动终端可以采用相同的操作***,也可以采用不同的操作***。特别地,在本发明的以下实施例中,使用基于安卓(“Android”)平台开发的移动通信终端作为示例,来说明本发明的理念。然而,应当理解的是:实际上可以使用任何移动或固定通信终端来实现本发明的各实施例,本发明不受限于具体使用的硬件、软件(包括操作***)、固件、或它们的组合等。
首先,参考附图图1来说明根据本发明的一些示例实施例的移动通信终端100中的示例网络协议栈的框图。如图1所示,移动通信终端100中具有用于处理数据报文的网络协议栈110。在开放式***互联(Open System Interconnection,下文中简称为OSI)7层参考模型下,该协议栈110也相应地包括7个协议层,即:物理层111、数据链路层112、网络层113、传输层114、会话层115、表示层116和应用层117。在本实施例中,我们主要关注的是协议栈110的网络层113、传输层114和应用层117。
网络层113对应于OSI参考模型中的第3层(层3),其介于传输层114和数据链路层112之间。基于数据链路层112提供的在两个相邻端点之间传输数据帧的功能,网络层113进一步管理网络中的数据通信,将数据设法从源节点经过若干个中间节点传送到目标节点,从而向传输层114提供最基本的端到端的数据传输服务。当前互联网中最为主流也最为著名的网络层协议是网际协议(Internet Protocol,下文中简称为IP)版本4和版本6(IPv4和IPv6)。数据报文的IP报头中提供了当前数据报文的源IP地址、目标IP地址等相关信息。当然,数据报文中的网络层协议也可以是其他协议,例如ICMP、IGMP、IPX等等。请注意,本发明不限于上面列出的各种网络层协议。
传输层114对应于OSI参考模型中相对重要和关键的一层,其是唯一负责总体数据传输和数据控制的一层。传输层114提供用于端到端的交换数据的机制。传输层114为会话层115、表示层116和应用层117等上三层提供可靠的传输服务,向网络层113提供可靠的目标节点信息。由于世界上各种通信网络在性能上存在着很大差异(例如,电话交换网、分组交换网、公用数据交换网、局域网等通信网络都可互连,但它们提供的吞吐量、传输速率、数据延迟、通信费用等各不相同),因此对于会话层115等高层来说,要求具有性能稳定的接口。传输层114就承担了这一功能。它采用分流/合流、复用/解复用等技术来调节上述通信网络的差异,使会话层115感受不到这种差别。此外,传输层114还要具备差错恢复、流量控制等功能,以向会话层115屏蔽通信网络在这些方面的细节与差异。传输层114面对的数据对象不是网络地址和主机地址,而是和会话层115的界面端口。当前互联网中最为主流也最为著名的传输层协议是传输控制协议(TransportControl Protocol,下文中简称为TCP)和用户数据报协议(UserDatagram Protocol,下文中简称为UDP)。数据报文的TCP报头或UDP报头中提供了当前数据报文的源端口地址、目标端口地址等相关信息。当然,数据报文中的传输层协议也可以是其他协议,例如AH、ESP、GRE、SCTP等等。请注意,本发明不限于上面列出的各种传输层协议。
应用层117对应于OSI参考模型的第7层。应用层117直接和应用程序的本地进程交互并提供常见的网络应用服务。应用层117也向表示层116发出请求。应用层117是OSI参考模型的最高层,其是直接为应用进程提供服务的。其作用是在实现多个***应用进程相互通信的同时,完成一系列业务处理所需的服务。在当前的互联网中,存在着大量标准化的或自定义的应用层协议。其中,较为知名的应用层协议包括:HTTP(超文本传输协议)、FTP(文件传输协议)、SMTP(简单邮件传输协议)等等。每个应用层协议具有自己的协议格式,通常需要通过分析数据报文的应用层报头来确定该数据报文所承载的数据具有哪种应用层协议格式。当然,数据报文中的应用层协议也可以是其他协议,例如BT、DNS、DHCP、IMAP、POP3等等。请注意,本发明不限于上面列出的各种应用层协议。
稍后我们将结合图2来具体描述本发明的实施例如何使用上述这些信息:例如,源IP地址、目标IP地址、源端口、目标端口、应用协议等。
接下来,回到图1,将继续描述在本实施例中移动通信终端100如何利用其网络协议栈110来处理接收到的数据报文和/或要发送的数据报文。在本实施例中,移动通信终端100的网络协议栈110各层的具体处理操作可以分布在不同的硬件、软件模块、固件模块上。
例如,物理层111的处理操作通常是由移动通信终端100的通信子模块来负责的。此外,在本实施例中,由于移动通信终端100是基于安卓平台开发的,而安卓平台是类Linux***,其通常可被分为内核空间(kernel space)和用户空间(user space)。数据链路层112、网络层113、传输层114、会话层115等层的操作主要是在内核空间中实现的,用户通过***调用(system calls)来调用内核空间中的函数接口,进而处理这些层的事务。而表示层116和应用层117的操作基本上是在用户空间中由用户自己实现的,用户需要自行编写处理函数来处理这两个层中的事务。当然,在其他实施例中,可以采用针对处理操作的其它内核空间/用户空间分布方式,本发明不限于上述分布方式。例如,会话层115的相关处理可以由用户在用户空间通过调用安卓***的底层***调用来自行实现。
在本实施例中,如图1左侧箭头所示,当承载数据报文的通信信号经过通信网络进入移动通信终端100时,其首先进入由通信子模块负责的物理层111。在物理层111中,通信子模块将该通信信号转换为通常意义下的数据报文(例如,根据通信信号的电压高低、***时钟频率等将模拟信号转换为数字信号等)。然后可以通过在移动通信终端100的主处理器上运行的通信子模块驱动程序提供的接口,将该数据报文上交至在内核空间中运行的网络协议栈110的数据链路层112。数据链路层112根据数据报文中的数据链路层报头(例如,MAC(媒体访问控制)协议报头),对其进行数据链路层112的处理,然后可以将其上交至网络层113。网络层113进而根据其网络层报头(例如,IP报头),对其进行网络层113的处理,然后可以将其上交至传输层114。类似地,传输层114根据其传输层报头(例如,TCP报头或UDP报头),对其进行传输层114的处理。然后,可以根据传输层报头中指定的端口号,将该数据报文传递给与该端口号绑定(或监听该端口)的应用程序的本地进程,并由该本地进程来进行各种后续处理(会话层115、表示层116、以及应用层117处理)。
相应地,如图1右侧箭头所示,当移动通信终端100想要向通信网络发送数据报文时,其可以通过其上的应用程序来调用会话层115、表示层116、以及应用层117的处理,生成具有应用层117、表示层116、和/或会话层115的协议报头的数据报文,并将其下发给传输层114,并由传输层114根据下发时传入的参数,为该数据报文添加传输层协议报头(例如,TCP报头或UDP报头)并执行相应处理,然后下发给网络层113。以此类推,最后将添加了网络层协议报头和数据链路层协议报头的该数据报文通过移动通信终端100的通信子模块转换为实际的物理信号,并向通信网络发送。
因此,为了基于数据报文的源、目标、应用名称、应用协议等进行匹配和过滤,且由于各种应用在具体实现方式、特征的不同,因此在本实施例中,需要对安卓***的内核进行修改,以能够在底层(相对于应用层117而言,例如网络层113、传输层114等)对数据报文进行匹配和过滤。
例如,一个由恶意第三方开发的恶意应用可能在其提供的游戏软件的正常功能之外,还在游戏软件中内置了一个附加流量发生器,用于产生引起用户额外费用的附加流量。而该附加流量的目标地址是该恶意第三方的服务器,则用户(或安全应用提供商)可能希望通过对该目标地址进行匹配,找到移动通信终端100中所有要去往该目标地址的数据报文,并对其进行拦截。因此,需要对安卓***的内核进行修改,以在正常数据报文的处理过程中,加入对该目标地址的匹配和过滤的处理功能。下面将结合图2来详细描述向内核中***功能的示例具体方式。
在详细说明图2的实施例之前,将首先简要说明钩子(hook)函数。在计算机编程中,术语“钩子”涵盖了用于通过拦截在软件组件之间传递的函数调用、消息、或事件来改变或增加操作***、应用程序、或其它软件组件的行为的技术。而处理这种被拦截的函数调用、事件或消息的代码就被称为钩子函数。钩子通常用于各种目标,包括对功能进行调试和对功能进行扩展。其示例可以包括在键盘或鼠标事件传递到应用程序之前拦截它们,或者拦截***调用(system call),以监视或修改应用程序或其它组件的功能。在本发明的下述实施例中,为了方便说明,将使用钩子函数来实现在***内核中修改原始的数据报文处理流程的目标。
如图2所示,实线箭头示出了原始的数据报文处理流程。当通过通信子模块的驱动程序提供的接口从通信子模块向***内核传递数据报文时,数据报文首先到达内核中的数据报文接收接口220。在本实施例的基于安卓平台的示例操作***中,该数据报文接收接口220可以例如是内核源代码中的与网络数据本地输入(LOCAL_IN)处理相关的函数。然后根据该数据报文的各个不同级别的报头,例如IP报头、TCP/UDP报头等,将该数据报文定向至在本地处理器上执行的程序的相应本地进程210。例如,可以将承载HTTP数据的数据报文(其TCP报头的端口号可以为常用HTTP端口80)传递给与本机的80端口绑定的程序的进程,例如浏览器。从而,实现对从网络上接收到的数据报文(网页数据)的正确处理。
另一方面,当本地进程210想要向通信子模块传递数据报文时,数据报文首先到达内核中的数据报文发送接口230。在本实施例的基于安卓平台的示例操作***中,该数据报文发送接口230可以例如是内核源代码中的与网络数据本地输出(LOCAL_OUT)处理相关的函数。然后根据调用该相关函数时传入的各个参数,可以向该数据报文添加各个不同级别的报头,例如IP报头、TCP/UDP报头等,然后将该数据报文定向至通信子模块的驱动程序提供的接口,并最终传递给通信子模块的硬件设备。例如,可以将承载HTTP数据并指定了目标地址、目标端口的数据报文传递给驱动程序提供的通信接口,并由通信子模块向网络发送。从而,实现用于向网络发送数据报文的正确处理。
如前所述,为了实现如本发明的实施例所示的功能,需要使用钩子函数来扩展现有的标准数据报文处理流程。为此,在数据报文接收处理侧,首先应当使用钩子函数在原始的数据报文接收接口220处增加数据报文接收清理模块240,以拦截接收到的数据报文。例如,在一个实施例中,通过在内核初始化时注册数据报文接收清理模块240(钩子函数),并在启动内核的网络模块时将该模块加载到内核空间中。类似地,也使用钩子函数在原始的数据报文发送接口230处增加数据报文发送清理模块250,以拦截要发送的数据报文。
在加载了数据报文接收清理模块240和数据报文发送清理模块250之后,图2中针对数据报文的标准处理过程就变为由虚线表示的过程。即,在一些实施例中,当数据报文从通信子模块传递到数据报文接收接口220时,其不再直接被传递到本地进程210处,而是先要经过数据报文接收清理模块240的处理。类似地,当数据报文从本地进程210向数据报文发送接口230传递时,其先要经过数据报文发送清理模块250的处理。当然,在其他实施例中,数据报文接收清理模块240和数据报文发送清理模块250的位置不限于上述位置。例如,在另一些实施例中,可以在数据报文接收接口220之前、之中或之后添加数据报文接收清理模块240。在又一些实施例中,可以在数据报文发送接口230之前、之中或之后添加数据报文发送清理模块250。因此实际上,只要能够实现本发明的在底层对数据报文进行检测和过滤的功能,这两个模块可以出现在数据报文处理流程的任意所需位置上。
在加载数据报文接收清理模块240和/或数据报文发送清理模块250时,首先根据在移动通信终端100的存储器(例如,SD卡、CF卡等)上存储的预先由用户设定的一个或多个匹配(检测)规则和相应过滤操作,在相应模块中建立各自的策略队列(匹配(检测)规则队列)。该匹配规则和过滤操作可以用加密方式(例如,DES)存储在移动通信终端100的存储器。
接下来,如结合图1所描述的,当数据报文到达数据报文接收清理模块240时,数据报文接收清理模块240(和/或数据报文接收接口220)可以首先检测数据报文的完整性,如果该报文不完整,则将其直接丢弃,并继续后续报文的接收。如果报文完整,则数据报文接收清理模块240根据数据报文的传输层协议报头(例如,TCP报头或UDP报头)的目标端口,确定本地进程中与该目标端口绑定的应用的进程(或监听该目标端口的应用的进程),并相应确定应用名称和/或应用协议。例如,当数据报文的目标端口是80时,根据***中的配置文件(例如,Linux***下的“/etc/service”或类似配置文件)和/或实际监听80端口的进程(以及对应的应用名称、应用协议,例如浏览器),可以确定该数据报文的预期接收应用的应用名称和/或应用协议。当然,也可以根据该数据报文的应用协议报头来确定其使用的应用协议。此外,根据数据报文的IP报头,可以确定该数据报文的源IP地址、目标IP地址。
在确定了上述这些项(例如,源IP地址、目标IP地址、源端口、目标端口、应用协议、应用名称等)中的一项或多项之后,可以根据用户预先设定的一个或多个匹配规则来进行数据报文匹配。例如,用户可以预先设定以下若干条匹配规则:(1)针对源IP地址是已知的恶意第三方IP地址(例如,192.168.1.222),目标IP地址是本机,且目标端口是21(即,常用FTP端口),应用协议是FTP,且应用名称是virus.exe的数据报文,其相应的过滤处理是“禁止匹配的数据报文通过”(即,丢弃(“DROP”)或拒绝(“REJECTED”));(2)针对源地址是例如192.168.1.211,目标IP地址是本机,且目标端口是80,应用协议是HTTP,且应用名称是Internet Explorer的数据报文,其相应的过滤处理是“允许匹配的数据报文通过”(即,接受(“ACCEPTED”));以及(3)针对应用协议是P2P协议(例如,EMULE、BT等协议)的数据报文,其相应的过滤处理是“禁止匹配的数据报文通过”(即,丢弃(“DROP”)或拒绝(“REJECTED”))。可见,匹配规则中可以包括上述各项中的部分项(至少一项),而不一定是针对所有项的匹配。
另一方面,当数据报文到达数据报文发送清理模块250时,数据报文发送清理模块250根据数据报文的源端口,确定本地进程210中与该源端口绑定的应用的进程(或通过该源端口发送数据报文的应用的进程),并相应确定应用名称和/或应用协议。例如,当数据报文的源端口是10000时,根据与端口10000绑定的进程(以及对应的应用名称、应用协议,例如分别是Internet Explorer、HTTP协议),可以确定该数据报文的发送应用的应用名称(例如,Internet Explorer)和/或应用协议(例如,HTTP协议)。此外,根据数据报文的IP报头,可以确定该数据报文的源IP地址、目标IP地址。
在确定了上述这些项中的一项或多项之后,可以根据用户预先设定的一个或多个匹配规则来进行数据报文匹配。例如,用户可以预先设定以下若干条匹配规则:(1)针对目标IP地址是已知的恶意第三方IP地址(例如,192.168.1.200),源IP地址是本机,且源端口是10001,应用协议是RTP,且应用名称是virus.exe的数据报文,其相应的过滤处理是“禁止匹配的数据报文通过”(即,丢弃(“DROP”)或拒绝(“REJECTED”));(2)针对目标IP地址是例如192.168.1.195,源IP地址是本机,且源端口是1500,应用协议是HTTP,且应用名称是Internet Explorer的数据报文,其相应的过滤处理是“允许匹配的数据报文通过”(即,接受(“ACCEPTED”));以及(3)针对应用协议是P2P协议(例如,EMULE、BT等协议)的数据报文,其相应的过滤处理是“禁止匹配的数据报文通过”(即,丢弃(“DROP”)或拒绝(“REJECTED”))。
当然,可以设置的匹配规则和对应过滤处理的数目不限于上述实施例中的三条,而可以是任意数目。而匹配规则中所设置的匹配条目也不限于上述源IP地址、目标IP地址、源端口、目标端口、应用协议、应用名称等项。实际上,可以仅设置这些项中的一项或多项,或设置这些项之外的一个或多个其它项(例如,源MAC地址、目标MAC地址、服务类型(TOS)、服务质量(QoS)、VLAN等等)、或它们的组合。实际上,只要是数据报文中各报头所包括的字段,均可以成为匹配规则中的可比较项。
此外,出于处理速度的考虑,对数据报文与匹配规则的这些匹配项的比较可以发生在内核空间中,但也可以发生在用户空间、部分在内核空间且部分在用户空间中。此外,为了方便用户查看/添加/修改/删除匹配规则,针对匹配规则的这些处理可以发生在用户空间中。例如,在本实施例中,这些处理可以使用安卓平台提供的软件开发包(SDK)和JAVA语言来实现。通过向用户提供相关用户界面,可以让用户查看/添加/修改/删除数据报文检测和过滤策略。
在一个实施例中,该策略可以包括例如[应用协议、应用名称、目标地址、源地址、控制开关]。其中,应用协议、应用名称、目标地址、源地址等项上面已经进行了详细描述,而控制开关即为针对与前面4项匹配的数据报文的过滤操作。当控制开关设为允许时,则当检测到匹配的数据报文时,允许该数据报文通过,例如,传递给本地进程或向网络发送。当控制开关设为禁止时,则当检测到匹配的数据报文时,不允许该数据报文通过,例如,直接丢弃该数据报文。
此外,这些策略可以并行匹配、顺序匹配、或以其他任意方式进行匹配。例如,在使用顺序匹配的情况下,当数据报文满足第一条匹配规则时,其直接根据与第一条匹配规则相对应的过滤操作(控制开关)来处理,而无需考虑后续的匹配规则。又例如,在使用并行匹配的情况下,将数据报文与所有匹配规则逐一匹配,并根据所有匹配规则的相对应的过滤操作的组合来确定相应过滤操作(例如,根据“允许”和“禁止”的数目哪一个更多来确定最终过滤操作的结果)。本发明不限于上述各种策略处理方式。
此外,可以根据配置匹配规则的时间顺序向用户显示部分或全部匹配策略(规则)及其对应过滤操作。
此外,可以向用户提供与数据报文检测和过滤相关的日志。例如,当检测到匹配的数据报文时,数据报文接收清理模块240和/或数据报文发送清理模块250可以在指定存储位置(例如,移动通信终端100的SD卡)上存储与该数据报文相关的日志。例如,该数据报文的源IP地址、目标IP地址、源端口、目标端口、应用协议、应用名称、以及相应处理结果(例如,允许还是禁止)。因此,用户可以通过提供的用户界面来查看在SD卡上存储的数据报文相关日志,从而用户可以确定例如是否被恶意第三方攻击、阻止了本地什么应用的去往哪个IP地址的流量等等。
此外,在一些实施例中,该日志可以是使用DES加密的,以防止第三方进行查看、修改等。此外,在一些实施例中,在写入日志文件时,可能需要首先进行文件写锁操作,以保证文件内容的一致性。例如,由于在内核中很多进程并发地接收和/或发送数据报文,为了保证日志中记录的完整性、一致性等,需要在每次写入日志文件时,对日志文件加上写锁(write lock),以防止多个进程同时向该文件写入。
图3是示出了根据本发明实施例的数据报文检测和过滤方法300的流程图。如图3所示,数据报文检测和过滤方法300可以包括步骤S310、S320和S330,其中,部分步骤可以单独执行或组合执行,以及可以并行执行或顺序执行,并不局限于图3所示的具体操作顺序。在一些实施例中,数据报文检测和过滤方法300可以由图1所示的移动通信终端100或安装在移动通信终端100中的客户端来执行。
图4是示出了根据本发明实施例的用于检测和过滤数据报文的移动通信终端100的框图。如图4所示,终端100可以包括:拦截单元410、匹配单元420以及过滤单元430。
拦截单元410用于在操作***的数据报文发送接口和/或数据报文接收接口处拦截待发送和/或已接收的数据报文。在一些实施例中,拦截单元410可以是移动通信终端100的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与移动通信终端100的网络接口(例如,以太网卡、调制解调器、无线收发信机等)相配合,拦截从网络接口接收到的数据报文。此外,其也可以拦截从本地进程向网络接口发送的数据报文。
匹配单元420用于根据一个或多个检测规则,对数据报文进行匹配。在一些实施例中,匹配单元420可以是移动通信终端100的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与移动通信终端100的存储器(例如,SD卡、CF卡等)相配合,读取存储器中存储的一个或多个检测规则,并根据该一个或多个检测规则,对数据报文进行匹配。
过滤单元430用于针对与一个或多个检测规则中的至少一个检测规则相匹配的数据报文,执行与该至少一个检测规则相对应的过滤处理。过滤单元430可以是移动通信终端100的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与移动通信终端100的存储器(例如,SD卡、CF卡等)相配合,读取存储器中存储的相应过滤处理,并针对匹配的数据报文,执行该相应过滤处理。
此外,移动通信终端100还可以包括:判断单元、用户界面和/或日志单元等。判断单元用于判断接收到的数据报文是否完整:如果数据报文完整,则继续执行后续步骤;否则,直接丢弃数据报文。用户界面用于:向用户提供用于设置和查看(例如,查看/添加/修改/删除)一个或多个检测规则的能力、向用户提供用于设置和查看过滤处理的能力、和/或向用户提供用于查看日志的能力。日志单元用于在检测到匹配的数据报文的情况下,记录与匹配的数据报文相关的日志。这几个单元均为可选单元,因此并未在附图中示出,且其具体功能操作与上面描述中对应部分相同。
以下将结合图3和图4,对根据本发明实施例的用于数据报文检测和过滤的方法300和移动通信终端100进行详细的描述。
在步骤S310中,可以由移动通信终端100的拦截单元410在操作***的数据报文发送接口和/或数据报文接收接口处拦截待发送和/或已接收的数据报文。
在步骤S320中,可以由移动通信终端100的匹配单元420根据一个或多个检测规则,对数据报文进行匹配。
在步骤S330中,可以由移动通信终端100的过滤单元430针对与一个或多个检测规则中的至少一个检测规则相匹配的数据报文,执行与该至少一个检测规则相对应的过滤处理。
在一些实施例中,步骤S310可以包括:使用钩子函数来拦截待发送和/或已接收的数据报文。
在一些实施例中,在步骤S310和步骤S320之间还可以包括:判断数据报文是否完整:如果数据报文完整,则继续执行后续步骤;否则,直接丢弃数据报文并结束方法300。
在一些实施例中,每一个检测规则可以包括以下至少一项:应用协议;目标地址;源地址;以及应用名称。
在一些实施例中,步骤S420可以包括:如果数据报文是待发送的数据报文,则根据数据报文的源端口来确定发送数据报文的应用的应用名称,然后将数据报文的应用协议、数据报文的目标地址、数据报文的源地址、以及应用名称中至少一项与一个或多个检测规则中的至少一个检测规则的相应项进行比较,以确定数据报文是否匹配一个或多个检测规则中的至少一个检测规则。
在一些实施例中,步骤S420可以包括:如果数据报文是已接收的数据报文,则根据数据报文的目标端口来确定要接收数据报文的应用的应用名称,然后将数据报文的应用协议、数据报文的目标地址、数据报文的源地址、以及应用名称中至少一项与一个或多个检测规则中的至少一个检测规则的相应项进行比较,以确定数据报文是否匹配一个或多个检测规则中的至少一个检测规则。
在一些实施例中,过滤处理可以包括以下各项之一:允许匹配的数据报文通过;以及禁止匹配的数据报文通过。
在一些实施例中,方法300还可以包括:向用户提供用于设置和查看所述一个或多个检测规则的能力。
在一些实施例中,方法300还可以包括:向用户提供用于设置和查看所述过滤处理的能力。
在一些实施例中,在检测到匹配的数据报文的情况下,方法300还可以包括:记录与匹配的数据报文相关的日志。
在一些实施例中,方法300还可以包括:向用户提供用于查看日志的能力。
至此已经结合优选实施例对本发明进行了描述。应该理解,本领域技术人员在不脱离本发明的精神和范围的情况下,可以进行各种其它的改变、替换和添加。因此,本发明的范围不局限于上述特定实施例,而应由所附权利要求所限定。
Claims (22)
1.一种用于检测和过滤数据报文的方法,包括:
a)在操作***的数据报文发送接口和/或数据报文接收接口处拦截待发送和/或已接收的数据报文;
b)根据一个或多个检测规则,对所述数据报文进行匹配;以及
c)针对与所述一个或多个检测规则中的至少一个检测规则相匹配的数据报文,执行与所述至少一个检测规则相对应的过滤处理。
2.根据权利要求1所述的方法,其中,拦截待发送和/或已接收的数据报文的步骤包括:使用钩子函数来拦截待发送和/或已接收的数据报文。
3.根据权利要求1所述的方法,其中,所述方法在步骤a)和步骤b)之间还包括:
判断所述数据报文是否完整:
如果所述数据报文完整,则继续执行后续步骤;
否则,直接丢弃所述数据报文并结束所述方法。
4.根据权利要求1所述的方法,其中,每一个检测规则包括以下至少一项:
应用协议;
目标地址;
源地址;以及
应用名称。
5.根据权利要求4所述的方法,其中,对所述数据报文进行匹配的步骤包括:如果所述数据报文是待发送的数据报文,则根据所述数据报文的源端口来确定发送所述数据报文的应用的应用名称,然后将所述数据报文的应用协议、所述数据报文的目标地址、所述数据报文的源地址、以及所述应用名称中至少一项与所述一个或多个检测规则中的至少一个检测规则的相应项进行比较,以确定所述数据报文是否匹配所述一个或多个检测规则中的至少一个检测规则。
6.根据权利要求4所述的方法,其中,对所述数据报文进行匹配的步骤包括:如果所述数据报文是已接收的数据报文,则根据所述数据报文的目标端口来确定要接收所述数据报文的应用的应用名称,然后将所述数据报文的应用协议、所述数据报文的目标地址、所述数据报文的源地址、以及所述应用名称中至少一项与所述一个或多个检测规则中的至少一个检测规则的相应项进行比较,以确定所述数据报文是否匹配所述一个或多个检测规则中的至少一个检测规则。
7.根据权利要求1所述的方法,其中,所述过滤处理包括以下各项之一:
允许匹配的数据报文通过;以及
禁止匹配的数据报文通过。
8.根据权利要求1所述的方法,还包括:向用户提供用于设置和查看所述一个或多个检测规则的能力。
9.根据权利要求1所述的方法,还包括:向用户提供用于设置和查看所述过滤处理的能力。
10.根据权利要求1所述的方法,其中,在检测到匹配的数据报文的情况下,所述方法还包括:记录与匹配的数据报文相关的日志。
11.根据权利要求10所述的方法,还包括:向用户提供用于查看所述日志的能力。
12.一种用于检测和过滤数据报文的设备,包括:
拦截单元,用于在操作***的数据报文发送接口和/或数据报文接收接口处拦截待发送和/或已接收的数据报文;
匹配单元,用于根据一个或多个检测规则,对所述数据报文进行匹配;以及
过滤单元,用于针对与所述一个或多个检测规则中的至少一个检测规则相匹配的数据报文,执行与所述至少一个检测规则相对应的过滤处理。
13.根据权利要求12所述的设备,其中,所述拦截单元还用于:使用钩子函数来拦截待发送和/或已接收的数据报文。
14.根据权利要求12所述的设备,其中,所述设备还包括:
判断单元,用于判断所述数据报文是否完整:
如果所述数据报文完整,则继续执行后续步骤;
否则,直接丢弃所述数据报文。
15.根据权利要求12所述的设备,其中,每一个检测规则包括以下至少一项:
应用协议;
目标地址;
源地址;以及
应用名称。
16.根据权利要求15所述的设备,其中,所述匹配单元还用于:如果所述数据报文是待发送的数据报文,则根据所述数据报文的源端口来确定发送所述数据报文的应用的应用名称,然后将所述数据报文的应用协议、所述数据报文的目标地址、所述数据报文的源地址、以及所述应用名称中至少一项与所述一个或多个检测规则中的至少一个检测规则的相应项进行比较,以确定所述数据报文是否匹配所述一个或多个检测规则中的至少一个检测规则。
17.根据权利要求15所述的设备,其中,所述匹配单元还用于:如果所述数据报文是已接收的数据报文,则根据所述数据报文的目标端口来确定要接收所述数据报文的应用的应用名称,然后将所述数据报文的应用协议、所述数据报文的目标地址、所述数据报文的源地址、以及所述应用名称中至少一项与所述一个或多个检测规则中的至少一个检测规则的相应项进行比较,以确定所述数据报文是否匹配所述一个或多个检测规则中的至少一个检测规则。
18.根据权利要求12所述的设备,其中,所述过滤处理包括以下各项之一:
允许匹配的数据报文通过;以及
禁止匹配的数据报文通过。
19.根据权利要求12所述的设备,还包括:用户界面,用于向用户提供用于设置和查看所述一个或多个检测规则的能力。
20.根据权利要求12所述的设备,还包括:用户界面,用于向用户提供用于设置和查看所述过滤处理的能力。
21.根据权利要求12所述的设备,其中,所述设备还包括:日志单元,用于在检测到匹配的数据报文的情况下,记录与匹配的数据报文相关的日志。
22.根据权利要求21所述的设备,还包括:用户界面,用于向用户提供用于查看所述日志的能力。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013103670833A CN103414725A (zh) | 2013-08-21 | 2013-08-21 | 用于检测和过滤数据报文的方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013103670833A CN103414725A (zh) | 2013-08-21 | 2013-08-21 | 用于检测和过滤数据报文的方法和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103414725A true CN103414725A (zh) | 2013-11-27 |
Family
ID=49607711
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013103670833A Pending CN103414725A (zh) | 2013-08-21 | 2013-08-21 | 用于检测和过滤数据报文的方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103414725A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103823757A (zh) * | 2014-03-11 | 2014-05-28 | 国家电网公司 | P2p平台批量调试方法及装置 |
CN103973817A (zh) * | 2014-05-29 | 2014-08-06 | 上海斐讯数据通信技术有限公司 | 一种屏蔽互联网信息推送的***及其方法 |
CN104269810A (zh) * | 2014-10-13 | 2015-01-07 | 北京四方继保自动化股份有限公司 | 一种继电保护装置抑制网络冗余数据方法 |
CN104852833A (zh) * | 2015-06-04 | 2015-08-19 | 上海斐讯数据通信技术有限公司 | Linux***中网络协议栈管理方法及*** |
WO2016070568A1 (zh) * | 2014-11-04 | 2016-05-12 | 华为技术有限公司 | 报文发送方法及装置 |
CN106533930A (zh) * | 2016-12-30 | 2017-03-22 | 深圳天珑无线科技有限公司 | 移动终端应用消息推送方法及装置 |
CN106850657A (zh) * | 2017-02-27 | 2017-06-13 | 郑州云海信息技术有限公司 | 一种高效的ip地址匹配方法 |
CN107104905A (zh) * | 2017-06-23 | 2017-08-29 | 北京星网锐捷网络技术有限公司 | 并行流量控制方法及装置 |
CN107483508A (zh) * | 2017-09-30 | 2017-12-15 | 北京东土军悦科技有限公司 | 报文过滤方法、装置、设备及存储介质 |
CN110866037A (zh) * | 2019-11-19 | 2020-03-06 | 中国民航信息网络股份有限公司 | 一种报文的过滤方法及装置 |
CN114070624A (zh) * | 2021-11-16 | 2022-02-18 | 北京天融信网络安全技术有限公司 | 一种报文监测的方法、装置、电子设备及介质 |
CN114900350A (zh) * | 2022-04-29 | 2022-08-12 | 北京元数智联技术有限公司 | 报文传输方法、装置、设备、存储介质及程序产品 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101068229A (zh) * | 2007-06-08 | 2007-11-07 | 北京工业大学 | 一种基于网络过滤器的内容过滤网关实现方法 |
US20120039332A1 (en) * | 2010-08-12 | 2012-02-16 | Steve Jackowski | Systems and methods for multi-level quality of service classification in an intermediary device |
US20120230202A1 (en) * | 2011-03-07 | 2012-09-13 | Oracle International Corporation | Virtual network interface with packet filtering hooks |
-
2013
- 2013-08-21 CN CN2013103670833A patent/CN103414725A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101068229A (zh) * | 2007-06-08 | 2007-11-07 | 北京工业大学 | 一种基于网络过滤器的内容过滤网关实现方法 |
US20120039332A1 (en) * | 2010-08-12 | 2012-02-16 | Steve Jackowski | Systems and methods for multi-level quality of service classification in an intermediary device |
US20120230202A1 (en) * | 2011-03-07 | 2012-09-13 | Oracle International Corporation | Virtual network interface with packet filtering hooks |
Non-Patent Citations (1)
Title |
---|
庞有祥: "网络层内容过滤防火墙***的研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103823757B (zh) * | 2014-03-11 | 2016-05-04 | 国家电网公司 | P2p平台批量调试方法及装置 |
CN103823757A (zh) * | 2014-03-11 | 2014-05-28 | 国家电网公司 | P2p平台批量调试方法及装置 |
CN103973817A (zh) * | 2014-05-29 | 2014-08-06 | 上海斐讯数据通信技术有限公司 | 一种屏蔽互联网信息推送的***及其方法 |
CN104269810A (zh) * | 2014-10-13 | 2015-01-07 | 北京四方继保自动化股份有限公司 | 一种继电保护装置抑制网络冗余数据方法 |
CN104269810B (zh) * | 2014-10-13 | 2017-06-20 | 北京四方继保自动化股份有限公司 | 一种继电保护装置抑制网络冗余数据方法 |
CN105635067B (zh) * | 2014-11-04 | 2019-11-15 | 华为技术有限公司 | 报文发送方法及装置 |
WO2016070568A1 (zh) * | 2014-11-04 | 2016-05-12 | 华为技术有限公司 | 报文发送方法及装置 |
CN105635067A (zh) * | 2014-11-04 | 2016-06-01 | 华为技术有限公司 | 报文发送方法及装置 |
US10791127B2 (en) | 2014-11-04 | 2020-09-29 | Huawei Technologies Co., Ltd. | Packet transmission method and apparatus |
CN104852833A (zh) * | 2015-06-04 | 2015-08-19 | 上海斐讯数据通信技术有限公司 | Linux***中网络协议栈管理方法及*** |
CN106533930A (zh) * | 2016-12-30 | 2017-03-22 | 深圳天珑无线科技有限公司 | 移动终端应用消息推送方法及装置 |
CN106850657A (zh) * | 2017-02-27 | 2017-06-13 | 郑州云海信息技术有限公司 | 一种高效的ip地址匹配方法 |
CN107104905A (zh) * | 2017-06-23 | 2017-08-29 | 北京星网锐捷网络技术有限公司 | 并行流量控制方法及装置 |
CN107483508A (zh) * | 2017-09-30 | 2017-12-15 | 北京东土军悦科技有限公司 | 报文过滤方法、装置、设备及存储介质 |
CN110866037A (zh) * | 2019-11-19 | 2020-03-06 | 中国民航信息网络股份有限公司 | 一种报文的过滤方法及装置 |
CN110866037B (zh) * | 2019-11-19 | 2022-09-20 | 中国民航信息网络股份有限公司 | 一种报文的过滤方法及装置 |
CN114070624A (zh) * | 2021-11-16 | 2022-02-18 | 北京天融信网络安全技术有限公司 | 一种报文监测的方法、装置、电子设备及介质 |
CN114070624B (zh) * | 2021-11-16 | 2024-01-23 | 北京天融信网络安全技术有限公司 | 一种报文监测的方法、装置、电子设备及介质 |
CN114900350A (zh) * | 2022-04-29 | 2022-08-12 | 北京元数智联技术有限公司 | 报文传输方法、装置、设备、存储介质及程序产品 |
CN114900350B (zh) * | 2022-04-29 | 2024-02-20 | 北京元数智联技术有限公司 | 报文传输方法、装置、设备、存储介质及程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103414725A (zh) | 用于检测和过滤数据报文的方法和设备 | |
CN102763382B (zh) | 前端***和前端处理方法 | |
EP2461520B1 (en) | Service-centric communication network monitoring | |
CN101933290B (zh) | 基于流信息对网络设备上的acl进行配置的方法 | |
US8149705B2 (en) | Packet communications unit | |
CN109347817A (zh) | 一种网络安全重定向的方法及装置 | |
CN104767748B (zh) | Opc服务器安全防护*** | |
CN102301660A (zh) | Tcp通信方案 | |
CA2949466C (en) | Communication apparatus, communication method, and communication system | |
CN105591967A (zh) | 一种数据传输方法和装置 | |
EP3641248B1 (en) | Traffic optimization device, communication system, traffic optimization method, and program | |
CN106506409B (zh) | 一种网管交换机的管理方法及网管交换机 | |
CN100550829C (zh) | 通过监控链路状态重新启用端口 | |
CN102347932A (zh) | 一种数据报文的处理方法及*** | |
FR2961367A1 (fr) | Systeme et methode de gestion de flux securises entre plusieurs sites distants | |
EP1445892A2 (en) | Dynamic callback packet filtering gateway | |
CN104410576A (zh) | 混合式条件策略路由***及方法 | |
CN101160867A (zh) | 分组处理装置、通信***、分组处理方法和执行所述方法的程序 | |
CN109617866B (zh) | 工控***主机会话数据过滤方法和装置 | |
CN110417679B (zh) | 规避旁路阻断的方法、装置和*** | |
CN103428295B (zh) | 一种对等网络应用的监控方法与*** | |
CN117278360B (zh) | 基于虚拟专用网络的网络通信方法、装置以及存储介质 | |
JP5121789B2 (ja) | データ伝送システム及びコンピュータ | |
CN117938408A (zh) | 一种在Android设备中实施动态访问控制的方法和*** | |
CN116546040A (zh) | 用于针对一个或多个分布式宽带网络网关(bng)用户平面设备提供bng控制平面的集成bng设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20131127 |