一种终端应用通信数据获取与分析的方法及装置与流程

文档序号:15171650发布日期:2018-08-14 18:00阅读:247来源:国知局

本发明涉及计算机通信领域,尤其涉及一种终端应用通信数据获取与分析的方法及装置。



背景技术:

安卓手机在进行数据通信过程中,通常通过安卓系统设置的无线网代理服务器进行数据传输,而一旦通信方法中设置了“proxy.no_proxy”,那传输的数据包就能绕过代理工具,使其无法捕获到数据包,要想让代理工具获取到通信内容并进行分析,必须要对安卓手机进行root,获得超级管理员权限,而root过的手机又会存在安全隐患。

在root环境下,借助一些工具例如使用tcpdump捕获网络通信,再通过导入wireshark工具进行分析,可以实现对通信数据的分析,但手机root会带来的安全问题。而在非root环境下,发明人并未发现可以捕获数据包,并对数据包进行进行分析的相关技术。这样,在非root环境下,就难以保障网络通信内容的安全性。



技术实现要素:

本发明实施例提供了一种终端应用通信数据获取与分析的方法及装置,能够获取终端应用的通信数据,并分析应用通信数据安全性,解决了现有的非root环境下,终端应用通信难以保障通信安全的问题。

第一方面,提供了一种终端应用通信数据获取与分析的方法,包括:

创建虚拟专用网络,通过虚拟网络设备的接口获取网络通信数据;

解析所述网络通信数据,并对解析后的所述网络通信数据进行分析。

第二方面,提供了一种终端应用通信数据获取与分析的装置,包括:

获取模块:用于创建虚拟专用网络,通过虚拟网络设备的接口获取网络通信数据;

解析模块:用于解析所述网络通信数据,并对解析后的所述网络通信数据进行分析。

第三方面,提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述方法的步骤。

第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述方法的步骤。

本发明实施例中,通过创建虚拟专用网络,利用接口获取通信数据并对通信数据进行分析,克服了非root环境下的通信安全的问题,使得在非root环境下,也能获取终端应用的通信数据,并对通信数据分析,避免终端应用发送恶意攻击数据对服务器造成的损害,从而保障了非root环境下的通信安全,同时还可以获知终端应用业务逻辑方面信息。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例一提供的终端应用通信的网络架构图;

图2为本发明实施例二提供的终端应用通信数据获取与分析的方法的实现流程图;

图3为本发明实施例三提供的ssl通信数据获取的方法的流程示意图;

图4为本发明实施例四提供的解析通信数据的实现流程图;

图5为本发明实施例五提供的分析通信数据的实现流程图;

图6为本发明实施例六提供的终端应用通信数据获取与分析的方法的具体流程图;

图7为本发明实施例七提供的终端应用通信数据获取与分析的装置的结构示意图;

图8为本发明实施例八提供的终端设备的结构示意图。

具体实施方式

本发明实施例提供了一种控制内容实时刷新的方法及装置,用于在动态界面上进行数据内容的实时显示和刷新,保障界面显示效率。

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

实施例一:

请参阅图1,本发明实施例提供的终端应用通信的网络架构图,包括:应用服务器11和终端设备12,以及应用服务器11与终端设备12之间的连接通道13。

所述应用服务器11为web应用程序提供一种简单的和可管理的对系统资源的访问机制,所述终端设备12上安装的应用程序可通过连接通道13访问到存放在应用服务器11上的资源。

可选的,所述终端设备12包括但不限于手机、笔记本电脑、平板电脑。

优选的,所述终端设备12安装android操作系统。

所述连接通道13,即网络接入方式包括无线和有线两种。优选的,本发明实施例采用无线接入,并通过在公用网络上建立专用网络,进行加密通讯,也即建立虚拟专用网络(vpn),实现对数据的远程访问。

优选的,本发明实施例中获取的是终端设备12上的应用程序发送的网络通信数据。

实施例二:

请参阅图2,本发明实施例提供的终端应用通信数据获取与分析的方法的实现流程图,包括以下步骤:

s201、创建虚拟专用网络,通过虚拟网络设备的接口获取网络通信数据;

所述虚拟专用网络(vpn),是一种远程访问技术,即在公用网络上架设专用网络,访问到应用服务器的资源,vpn可以通过服务器、硬件、软件等多种方式实现。通常终端设备会通过vpn服务器来进行远程数据访问,但对于非root的终端设备,是无法获取到vpn服务器通道内数据包,所以,本发明实施例提供的方法中创建了自定义的vpn服务。

优选的,本发明实施例中的终端设备使用的是android系统。使用android系统api自定义一个vpn服务,系统会为vpn服务建立一个普通权限可以读写的接口。所述普通权限即非root环境下的权限,

可选的,所述虚拟网络设备为tun设备,是工作在ip层的一个虚拟的点对点设备,对于系统用户来说它相当于物理网卡,能够对网络数据包实时封装。可以通过socket对它进行数据的发送和接收,通过tun接口就可以读写经过tun设备上的通信数据。

s202、解析所述网络通信数据,并对解析后的所述网络通信数据进行分析。

可选的,所述解析所述网络通信数据具体为:对所述网络通信数据的进行解析,获得应用服务器的地址、端口号和uid,根据uid获取应用程序的名称,读取所述网络通信数据的内容,并保存解析后的所述网络通信数据。

可选的,上述获取应用服务器信息,主要通过读取系统中文件/proc/net/tcp、/proc/net/tcp6、/proc/net/udp、/proc/net/udp6获得。以上过程为三层的网络协议tcp/ip向四层的网络协议tcp/udp解析。

所述解析后的网络通信数据即为应用程序产生的请求数据,所述请求数据的数据包去掉ip首部、tcp首部就是数据内容,所述分析就是根据所述数据内容,确定网络通信数据的安全性。

实施例三:

在图2的基础上,图3示出了当终端应用采用ssl通信时,获取终端应用通信数据的方法,详述如下:

所述ssl(安全套接层)通信是为保障网络通信安全以及数据完整性提供的一种安全协议。所述采用ssl通信即采用https(超文本传输协议)进行数据传输,https就是http与ssl/tls的组合,用以加密通讯并对网络服务器进行身份鉴定。

当确定终端应用31使用ssl通信时,在所述终端设备34上安装自签名证书,建立所述自签名证书与所述终端应用31的连接,并建立所述自签名证书与应用服务器33的连接。

所述自签名证书是由服务器自己颁发给自己,用以证明自己身份的数字签名。所述安装过程前包括:生成私钥、生成csr(证书签名请求)、删除私钥中的密码、生成自签名证书,以上步骤可通过程序实现。

图3所示的协议栈32是终端应用31与应用服务器33通信数据的中转站,用以完成数据的接收与转发,当使用ssl通信时,安装自签名证书是为了使用私钥解密通信数据,即解析通信数据。上述过程还包括对解密后的数据保存,并将所述保存的数据加密转发。具体的,获取终端应用31的网络通信数据,通过使用自签名证书的协议栈32解析所述网络通信数据,可选的,对于应用服务器传来的通信数据同样可以用使用自签名证书的协议栈32进行解析。

在本发明提供的实施例中可见即使对于加密了的通信数据,非root环境下同样可以完成捕获与解析。

实施例四:

结合图2中s202,图4详述了解析终端应用通信数据的具体流程,如下:

s401、根据tcp/ip协议的rfc定义进行代码移植,创建自定义tcp/ip协议栈。

rfc(远程功能调用)能够实现函数模块的调用,即使调用者与被调用函数是在不同系统。通过rfc接口可以完成特定程序模块的代码移植操作。并由所述移植的代码,来定义tcp/ip协议栈,所述定义协议栈可以自行设定相关参数。

所述自定义tcp/ip协议栈主要用于解析获取的用户通信数据,即数据包。还包括对解析后保存的应用通信数据,进行组包转发。

s402、对所述网络通信数据的进行解析,获得应用服务器的地址、端口号和uid,读取所述网络通信数据的数据内容,并保存解析后的所述网络通信数据。

上述解析过程主要是对tcp/ip协议层数据解析,解析获得的数据包括但不限于应用服务器的地址、端口号、uid等,还包括源地址、端口号等。可选的,可以根据获得的uid,获取到对应的应用程序的名称、端口以及其它相关应用信息,用于后续对应用程序的综合分析。所述读取的数据内容为除去tcp首部、ip首部外的应用数据,即通信传输的信息主体。

可选的,所述保存解析后的所述网络通信数据还包括对达到应用数量的数据进行清理,删除一定量不具备分析价值的数据。

可选的,保存所述数据内容后还包括对其进行数据分析、组包转发。

实施例五:

结合图2中s202,图5详述了分析终端应用通信数据的实现流程,包括:

s501、分析判断是否存在安全隐患。

对经过解析的应用通信数据,读取到数据内容,对所述数据内容进行分析。所述分析内容主要判断通信数据是否存在病毒、假冒、未授权、不能识别且难以确定安全性等恶意攻击数据。

可选的,所述分析过程还包括对终端应用、数据内容、目标服务器综合记录分析,分析获知终端应用业务逻辑方面信息,同时分析用户习惯、流量等方面数据,用于深度学习及大数据分析。

s502、将所述应用通信数据发送到应用服务器。

当确定所述通信数据是安全的,就将解析后保存下来的数据转发出去,这样能够保证应用程序与应用服务器之间的通信。

所述转发过程主要通过与应用服务器建立socket连接,socket本质是编程接口,对tcp/ip的封装。socket在建立网络连接时使用的,在连接成功时,应用程序两端都会产生一个socket实例,操作这个实例,完成所需的会话,也即可以进行通信。

s503、拦截所述应用通信数据通信数据,并发送安全警告到终端界面。

当确定所述通信数据是不安全,将拦截所述通信数据,识别发送该数据的终端应用,并产生安全警告。所述拦截指的是对截获的数据不进行转发,可选的,所述拦截过程可以在重新确定应用通信数据安全后,转发出去。

可选的,当识别的终端应用发送的存在安全隐患的数据的次数达到一定数量,将对所述终端应用发送的数据进行屏蔽,并对用户进行警告。

可选的,当不能确定所述通信数据安全性时,可根据所述终端应用历史通信数据、所述终端应用安全性以及可识别数据内容综合分析判断。

实施例六:

下面将结合实际使用终端应用过程,以捕获一个通信数据包为例,参见图6,详述如下:

终端应用61产生请求数据要传送到应用服务器64,远距离传输的请求数据即通信数据,需要建立网络连接,可选的所述连接是通过无线方式实现的,该连接是通过tcp完成的。连接建立后,会发送数据包,传统数据通过vpn进行传输时,使用tunnel协议为其提供一个安全路径。这样的话就无法捕获到数据包,除非获得root权限。

本发明实施例中,通过创建自定义的vpn服务,避免连接到vpn服务器,这样通过tun接口62就能读取到网络通信数据。所述通信数据是三层的tcp/ip协议定义的数据包,需要通过自定义tcp/ip协议栈63进行解析,解析出四层的tcp/udp协议数据:

对于udp协议,由于其协议的无连接性,可以解析出应用服务器地址、端口、传输的数据等,然后建立到应用服务器的socket连接,发送要传输的数据;对于tcp协议,由于其协议的有状态性,需要保存协议分包的序列号(sequencenumber)和确认号(acknowledgenumber),用来构造正确的tcp数据包发送到应用服务器。

除了ip首部与tcp首部的地址、端口等信息外,数据包中还包含的实际数据信息,也即是应用与应用服务器产生的交互数据,通过数据分析函数65进行分析,判断是否存在安全隐患,以及其它方面的分析,所述的数据信息会保存备份。对于确认不存在安全隐患的数据信息,会组包转发到应用服务器64,应用服务器会根据请求做出反馈。

可选的,上述过程还包括:接收应用服务器64发送的数据,解析并读取所述数据,保存所述数据后转发到终端应用61上。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

实施例七:

上面主要描述了一种终端应用通信数据获取与分析的方法,下面将对一种终端应用通信数据获取与分析的装置进行详细描述。

图7示出了本发明实施例提供的终端应用通信数据获取与解析的装置的结构示意图。

获取模块71:用于创建虚拟专用网络,通过虚拟网络设备的接口获取网络通信数据;

解析模块72:用于解析所述网络通信数据,并对解析后的所述网络通信数据进行分析。

优选的,所述解析模块72还包括:解析子模块和分析模块。所述解析子模块用于通过协议栈解析数据包,所述分析模块用于对解析的通信数据进行分析。

实施例八:

图8是本发明实施例提供的终端应用通信数据获取与分析的终端设备的结构示意图。所述终端设备,为具备显示屏的移动计算机设备,包括但不限于智能手机、智能手表、笔记本、平板电脑、pos机甚至包括车载电脑。如图8所示,该实施例提供的终端设备为手机,包括:射频(radiofrequency,rf)电路810、无线模块820、处理器830、存储器840、输入单元850、显示单元860以及其他部件,本领域技术人员可以理解,图8中示出的手机结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

下面结合图8对手机的各个构成部件进行具体的介绍:

rf电路810可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器830处理;另外,将设计上行的数据发送给基站。通常,rf电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(lownoiseamplifier,lna)、双工器等。此外,rf电路810还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(globalsystemofmobilecommunication,gsm)、通用分组无线服务(generalpacketradioservice,gprs)、码分多址(codedivisionmultipleaccess,cdma)、宽带码分多址(widebandcodedivisionmultipleaccess,wcdma)、长期演进(longtermevolution,lte))、电子邮件、短消息服务(shortmessagingservice,sms)等。

无线模块820是基于短距离无线传输技术,手机通过无线模块820可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。可以理解的是,在本发明实施例中无线模块820,是手机应用数据传输的主要方式,通过无线模块可以实现对应用服务器的访问。

处理器830是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器840内的软件程序和/或模块,以及调用存储在存储器840内的数据,执行终端的各种功能和处理数据,从而对终端进行整体监控。可选的,处理器830可包括一个或多个处理单元;优选的,处理器830可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器830中。

存储器840可用于存储软件程序以及模块,处理器830通过运行存储在存储器840的软件程序以及模块,从而执行终端的各种功能应用以及数据处理。存储器840可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器840可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

输入单元850可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元850可包括触摸屏、摄像头、扫描仪以及其他输入设备,可用于收集用户在显示屏上的触摸操作(比如用户使用手指、触笔等任何适合的物体在触摸屏上的操作),并根据预先设定的程式驱动相应的连接装置。其中,用户在使用过程中通过输入单元850发出指令,处理器830接收到指令后,调用无线模块820与应用服务器进行通信。可选的,触摸屏可包括触摸检测装置和触摸控制器两个部分。此外,输入单元850还可以包括其他输入设备,具体地,包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。

显示单元860可用于显示由用户输入的信息或提供给用户的信息以及终端的各种菜单。显示单元860可包括显示面板,可选的,可以采用液晶显示器(liquidcrystaldisplay,lcd)、有机发光二极管(organiclight-emittingdiode,oled)等形式来配置显示面板。进一步的,触摸屏可覆盖显示面板,当触摸屏检测到在其上或附近的触摸操作后,传送给处理器830以确定触摸事件的类型,随后处理器830根据触摸事件的类型在所述显示面板上提供相应的视觉输出。虽然在图8中,输入单元850与显示单元860是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将输入单元850与显示单元860集成而实现手机的输入和输出功能。

尽管未示出,手机还可以包括摄像头、蓝牙模块、传感器等,在此不再赘述。

在本发明实施例中,该终端所包括的处理器830还具有以下功能:终端应用通信数据采集与分析的方法,包括:

创建虚拟专用网络,通过虚拟网络设备的接口获取网络通信数据;

解析所述网络通信数据,并对解析后的所述网络通信数据进行分析。

进一步的,其特征在于,所述网络通信数据为非root环境下终端应用发送到应用服务器上的数据。

进一步的,其特征在于,所述解析所述网络通信数据前还包括:根据tcp/ip协议的rfe定义进行代码移植,创建自定义tcp/ip协议栈。

进一步的,其特征在于,所述解析所述网络通信数据具体为:

对所述网络通信数据的进行解析,获得应用服务器的地址、端口号和uid,读取所述网络通信数据的数据内容,并保存解析后的所述网络通信数据。

进一步的,其特征在于,所述创建虚拟专用网络,通虚拟网络设备的接口获取网络通信数据还包括:

当确定终端应用使用ssl通信时,在所述终端上安装自签名证书,建立所述自签名证书与所述终端应用的连接,并建立所述自签名证书与应用服务器的连接。

进一步的,其特征在于,所述对解析后的所述网络通信数据进行分析还包括:

根据对解析后的所述网络通信数据的分析结果,判断所述网络通信数据是否存在安全隐患,当确定所述网络通信数据不存在安全隐患时,将所述网络通信数据发送到应用服务器。

进一步的,其特征在于,所述根据对解析后的所述网络通信数据的分析结果,判断所述网络通信数据是否存在安全隐患还包括:

当确定所述网络通信数据存在安全隐患时,拦截所述网络通信数据,并发送安全警告到终端界面。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各实施例的模块、单元和/或方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1