CN111224893A - 一种基于vpn的安卓手机流量采集与标注系统及方法 - Google Patents

一种基于vpn的安卓手机流量采集与标注系统及方法 Download PDF

Info

Publication number
CN111224893A
CN111224893A CN201911400640.0A CN201911400640A CN111224893A CN 111224893 A CN111224893 A CN 111224893A CN 201911400640 A CN201911400640 A CN 201911400640A CN 111224893 A CN111224893 A CN 111224893A
Authority
CN
China
Prior art keywords
flow
android
traffic
vpn
application
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
Application number
CN201911400640.0A
Other languages
English (en)
Inventor
陈曙晖
王鑫
王飞
赵双
李振兴
李京秦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201911400640.0A priority Critical patent/CN111224893A/zh
Publication of CN111224893A publication Critical patent/CN111224893A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • H04L12/4675Dynamic sharing of VLAN information amongst network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2483Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/30Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information
    • H04L63/302Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information gathering intelligence information for situation awareness or reconnaissance

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Technology Law (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明公开了一种基于VPN的安卓手机流量采集与标注系统及方法。本发明采用VPN客户端监测安卓手机应用的所有网络访问请求,并将所产生的流量导出进行分析,无需root即可安装使用,让大规模的安装部署成为可能;利用安卓系统软件包管理的UID机制实现网络流与具体应用的匹配,从而达到流量标注的目的。本发明客户端‑服务器的设计极大提升了流量采集与标注的效率与可扩展性,能够在用户体验不受影响的前提下收集安卓设备的网络流量与流量相关的信息,实现在大规模流量采集的基础上获取应用、设备级别的流量分类标签数据。由于本发明采用客户端从移动流量的产生源头出发,通过操作系统提供的网络流的精确源头信息来标注流量,能够提高流量标注的准确性。

Description

一种基于VPN的安卓手机流量采集与标注系统及方法
技术领域
本发明涉及移动网络数据采集与标注技术领域,特别是涉及一种基于VPN的安卓手机流量采集与标注系统及方法。
背景技术
移动互联网用户量庞大,移动应用数量巨大,人们生活中方方面面都与之相关联,催发了与之有关的诸多研究方向及领域。而要展开对移动网络的研究,首先面对的问题就是如何大规模地采集移动网络数据。得到了经过采集的大规模的数据的同时,又要求有与被采集流量数据密切关联的标签信息。“流量采集与标注系统”应当能够很好的满足这些需求。
现有的主流移动流量采集手段是被动流量采集,被动流量采集多使用在关键网络节点上,比如网络服务提供商的骨干网络节点,或者其他某些属于特定组织团体的对公众提供网络接入服务的网络接口。通过这种方式人们能够大规模地捕获移动流量数据,但是却无法提供关于这些流量的具体信息,对于流量研究提供的帮助有限。
现有的流量标注手段主要是采用DPI(Deep Packet Inspection,深度包检测)技术实现的,即利用已有的DPI工具,基于现有的应用特征数据库来对流量进行分类。由于特征库的时效性和不完整性,这种标注手段很难做到完全准确,甚至对未知应用类型的陌生流量是完全不适用的。
发明内容
本发明的目的是提供一种基于VPN的安卓手机流量采集与标注系统及方法,以解决现有的流量采集与标注方法无法提供流量具体信息或者信息不完整,导致流量标注不准确、适用范围小的问题。
为实现上述目的,本发明提供了如下方案:
一种基于VPN的安卓手机流量采集与标注系统,所述安卓手机流量采集与标注系统包括:安卓手机、虚拟专用网络VPN客户端以及云服务端;
所述安卓手机内安装有应用以及所述VPN客户端;所述应用包括系统应用和用户应用;所述VPN客户端利用安卓开发套件中提供的VPN接口实现;
所述VPN客户端接管所述安卓手机内安装的所述应用的所有网络访问请求,代替所述应用与远程云服务器建立通信连接;
所述云服务端与多个所述VPN客户端进行通信。
可选的,所述VPN客户端根据不同协议代理转发所述网络访问请求的网络数据包;所述不同协议包括Internet控制报文协议ICMP、传输控制协议TCP和用户数据报协议UDP。
一种基于VPN的安卓手机流量采集与标注方法,所述安卓手机流量采集与标注方法基于所述的安卓手机流量采集与标注系统,所述安卓手机流量采集与标注方法具体包括:
采用VPN客户端监测安卓手机内安装的应用的网络访问请求;所述应用包括系统应用和用户应用;
所述VPN客户端将所述网络访问请求产生的流量以流量文件形式导出并存储;
所述VPN客户端根据所述流量文件生成对应的日志文件并发送至云服务端;
所述云服务端接收多个所述VPN客户端发送的多个流量文件及对应的日志文件,并根据所述流量文件及所述日志文件生成目标应用的通信流量。
可选的,所述VPN客户端将所述网络访问请求产生的流量以流量文件形式导出并存储,具体包括:
所述VPN客户端在代理转发所述网络访问请求的网络数据包时,将所述网络访问请求产生的流量拷贝一份导出,并以pcap格式的流量文件形式进行存储。
可选的,所述VPN客户端根据所述流量文件生成对应的日志文件并发送至云服务端,具体包括:
所述VPN客户端通过读取所述安卓手机的安卓系统中的/proc/net/tcp及/proc/net/udp文件来获取所述流量对应的UID;
通过所述安卓系统的包管理应用程序接口API将所述UID映射到具体的应用,得到所述流量与所述应用之间的映射关系;
所述VPN客户端采用应用名称-流五元组列表的形式将实时获取到的所述流量与所述应用之间的映射关系写入到一个日志文件中去,并与期间内捕获的所述流量文件同时上传至所述云服务端。
可选的,所述云服务端根据所述流量文件及所述日志文件生成目标应用的通信流量,具体包括:
所述云服务端对所有pcap格式的所述流量文件进行元数据和流信息提取,提取出以流为单位的数据内容;所述以流为单位的数据内容包括流的五元组、数据包方向和时间序列、payload字节流、传输层安全协议TLS字段;
将提取到的所述以流为单位的数据内容与所述日志文件进行比对,统计生成所述目标应用的通信流量。
可选的,在所述云服务端根据所述流量文件及所述日志文件生成目标应用的通信流量之后,还包括:
所述云服务端根据所述目标应用的通信流量进行流量特征提取,提出所述目标应用的流量特征;
根据所述流量特征指导未知流量的分类。
可选的,在所述云服务端根据所述流量文件及所述日志文件生成目标应用的通信流量之后,还包括:
所述云服务端根据所述目标应用的通信流量判断所述目标应用是否存在泄露用户隐私的行为。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明提供一种基于VPN的安卓手机流量采集与标注系统及方法,本发明一方面采用VPN客户端监测用户应用及系统应用在内的所有网络访问请求,并能够将所产生的流量以pcap文件的形式导出进行分析,无需root即可安装使用,这让大规模的安装部署成为可能;另一方面利用安卓系统软件包管理的UID机制实现网络流与具体应用的匹配,从而达到流量标注的目的;而客户端-服务器的设计则极大提升了流量采集与标注的效率与可扩展性,能够在用户体验不受影响的前提下收集安卓设备的网络流量与流量相关的信息,实现在大规模流量采集的基础上获取应用、设备级别的流量分类标签数据的目标。更为重要的是,由于本发明采用客户端从移动流量的产生源头出发,通过操作系统提供的网络流的精确源头信息来标注流量,可以实现100%的准确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的基于VPN的安卓手机流量采集与标注系统的结构图;
图2为本发明提供的基于VPN的安卓手机流量采集与标注方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种基于VPN的安卓手机流量采集与标注系统及方法,以解决现有的流量采集与标注方法无法提供流量具体信息或者信息不完整,导致流量标注不准确、适用范围小的问题。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1为本发明提供的基于VPN的安卓手机流量采集与标注系统的结构示意图。参见图1,本发明所述安卓手机流量采集与标注系统包括:安卓手机1、VPN(Virtual PrivateNetwork,虚拟专用网络)客户端2以及云服务端3。
所述安卓手机1内安装有应用以及所述VPN客户端2。所述应用包括系统应用和用户应用。所述VPN客户端2利用安卓开发套件中提供的VPN接口实现。
本发明所述安卓手机流量采集与标注系统的核心是利用Android SDK(softwaredevelopment kit,软件开发工具包)(Android 4.0及以上版本)提供给开发者的VPN服务API(ApplicationProgramming Interface,应用程序接口)–VpnService类,创建一个TUN虚拟网络接口,这种方式只需要申请一个BIND_VPN_SERVICE的用户权限而无需root。通过配置内部的地址和路由规则,使设备的所有网络通信流量导向该虚拟网络接口,该接口实际上是一个可供用户空间操作的特殊文件描述符,每一次读取和写入的内容则是一个发送或接收的数据包,对其进行读写便获取到了系统及应用的全部网络通信内容。
所述VPN客户端2接管所述安卓手机1内安装的所述应用的所有网络访问请求,代替所述应用与远程云服务器建立通信连接。
为了维持设备正常网络访问的功能,VPN客户端2需要代替每一类应用与远程服务器建立通信连接。由于TUN接口获取的是纯IP(InternetProtocol,网际互连协议)数据包,VPN客户端2实现了网络层和传输层的转发功能,建立新的Socket(套接字)维持所有网络流与目标服务器之间的通信。具体地,所述VPN客户端2解析每一个IP数据包的payload得到传输层的信息和载荷,再根据不同协议进行处理转发,主要支持ICMP(Internet ControlMessage Protocol,Internet控制报文协议)、TCP(Transmission Control Protocol,传输控制协议)和UDP(UserDatagramProtocol,用户数据报协议)三种协议。
为了便于采集手机应用流量,所述VPN客户端2在代理转发网络数据包时会拷贝一份按格式写入文件缓存起来,文件类型采用最常见的数据包存储格式pcap,每隔一段固定时间,缓存的流量文件会尝试通过WIFI上传至云服务端3进行汇总分析。
作为VPN客户端2的核心功能之一,流量标注旨在获取手机的每一条网络流(TCP或UDP)与具体产生应用之间的映射,可以借助标识应用程序的UID(Useridentifier,用户ID)来实现。具体地,所述VPN客户端2首先通过读取安卓系统中的/proc/net/tcp及/proc/net/udp文件来获取网络流对应的UID,然后再通过安卓系统的包管理API(ApplicationProgramming Interface,应用程序接口)将UID映射到具体的应用。VPN客户端2会以“应用名称-流五元组列表”的形式将实时获取到的流与应用之间的关系写入到一个日志文件中去,并会与期间内捕获的流量文件同时上传至云服务端3。
所述云服务端3与多个安卓手机1上安装的所述VPN客户端2进行通信。系统的云端服务器3负责接收多个VPN客户端2上传的流量文件和日志文件,并结合两者对流量进行离线分析和处理。首先对所有pcap格式的原始流量文件进行元数据和流信息提取,提取出包括流的五元组、数据包方向和时间序列、payload字节流、TLS(Transport Layer Security,传输层安全协议)等协议字段内容等以流为单位的数据内容;然后将提取到的以流为单位的数据内容与日志文件进行比对,按照具体应用对它们进行归类,得到目标应用对应的通信流量;最后将分类后的流量数据应用到具体业务中去,如流量特征提取和隐私泄露发现等。
本发明提供的一种基于VPN的安卓手机流量采集与标注系统,可以监测用户应用及系统应用在内的所有网络访问请求,并能够将所产生的流量以pcap文件的形式导出进行分析,同时系统VPN客户端2可以获取到每一类应用的网络访问日志,结合流量和日志信息,云服务端3可以快捷筛选出某一目标应用的所有通信流量。
所述基于VPN的安卓手机流量采集与标注系统利用VPN客户端2完成用户手机流量信息的原始捕获工作,并结合云服务端3实现流量采集和标注任务。其中VPN客户端2的设计实现优于已有的大部分手机网络工具软件,无需root即可安装使用,开启VPN服务能保持高效的网络访问,整体对用户透明。此优点主要得益于采用了官方VPN接口并高效实现了对所有网络流量的接管。便捷高效的VPN客户端2设计为大规模安装使用提供了可能,结合云服务端3服务器的集中式采集和标注,大大提升了系统的可用性和可扩展性。
此外,本发明系统通过分布式客户端-服务器的方式进行组织,在用户体验不受影响的前提下收集安卓设备的网络流量与流量相关的信息,并上传服务器进行集中标注和分析处理,实现了在大规模流量采集的基础上获取应用、设备级别的流量分类标签数据的目标。
基于本发明所述的基于VPN的安卓手机流量采集与标注系统,本发明还提供一种基于VPN的安卓手机流量采集与标注方法。图1为本发明提供的基于VPN的安卓手机流量采集与标注方法的流程图。参见图1,本发明所述安卓手机流量采集与标注方法具体包括:
步骤201:采用VPN客户端监测安卓手机内安装的应用的网络访问请求。
本发明所述安卓手机流量采集与标注方法的核心是利用Android SDK(Android4.0及以上版本)提供给开发者的VPN服务API–VpnService类,创建一个TUN虚拟网络接口,这种方式只需要申请一个BIND_VPN_SERVICE的用户权限而无需root。通过配置内部的地址和路由规则,使安卓手机设备的所有网络通信流量导向该虚拟网络接口,该接口实际上是一个可供用户空间操作的特殊文件描述符,每一次读取和写入的内容则是一个发送或接收的数据包,对其进行读写便获取到了系统及应用的全部网络通信内容。
其中TUN是一项技术概念,简单讲是操作系统内核中的一类模拟网络层的虚拟网络设备。不同于普通靠硬件网卡实现的设备,这种虚拟的网络设备全部用软件实现,并向运行于操作系统上的软件提供与硬件的网络设备完全相同的功能。本发明所使用的VpnService是应用程序扩展和构建自己的VPN解决方案的基类。通常,它会创建一个虚拟网络接口(也就是TUN),配置地址和路由规则,然后将文件描述符返回给应用程序。从描述符的每次读取都会得到要发送的路由到网络接口的数据包。每次对描述符的写操作都会注入一个从网络接口接收的数据包。该接口在Internet协议(IP)上运行,因此数据包始终以IP报文头开头。通过VpnService.Builder中的addAddress和addRoute方法配置虚拟网络接口的地址和路由规则,使安卓设备的所有网络通信流量导向该虚拟网络接口。根据上述TUN虚拟网络接口的定义和性质,它的外在表现与实际收发网络数据包的硬件网卡一致,区别在于它是操作系统内核虚拟出来的(实际中在开发者看来只是一个文件描述符),并且工作在网络协议栈的第三层即网络层,又因为通过路由规则已将手机所有产生的流量(包括系统软件和用户安装的软件产生的流量)导向了这个接口,因此VPN客户端2可以很方便地通过读写这个虚拟接口获得所有的网络通信内容。这里的所有网络通信内容就是指整个手机联网所产生的流量,即包括所有系统软件与用户APP进行网络通信产生的数据包。
为了维持设备正常网络访问的功能,VPN客户端2需要代替每一类应用与远程服务器建立通信连接,所述应用包括系统应用和用户应用。所述远程服务器是与应用APP进行实际通信的互联网中服务器的总称,如淘宝APP会与其业务端服务器等一系列远程服务器产生通信。
由于TUN接口获取的是纯IP数据包,VPN客户端2(简称客户端)实现了网络层和传输层的转发功能,建立新的Socket维持所有网络流与目标服务器之间的通信。TUN工作在网络协议栈中的第三层,即网络层,因此所有流经此处的流量数据包都是纯IP数据包,即每个包的最外层是网络层的IP报文头。所以,为了维持应用的正常通信,客户端2需要对所有数据包的网络层(IP协议头部)和传输层(网络层的下一层,ICMP、TCP/UDP协议头部)进行解析,根据解析的结果在客户端2上创建新的Socket套接字与远程服务器建立连接。本发明中出现的名词“网络流”(Traffic Flow)是网络领域中的一个基础概念,这里是指五元组<协议类型、源IP地址、目的IP地址、源端口号、目的端口号>相同的一系列数据包,通常也代表了一条网络会话的内容。图1中RAW是未经处理、也未经压缩的格式,/dev/dunX表示设备TUN接口。用户态是指只能受限的访问内存,且不允许访问外围设备;CPU的能力被剥夺,CPU资源可以被其他程序获取。核心态是指CPU可以访问内存所有数据,包括外围设备,例如硬盘,网卡;CPU也可以将自己从一个程序切换到另一个程序。
具体地,所述VPN客户端2解析每一个IP数据包的payload得到传输层的信息和载荷,再根据不同协议进行处理转发,主要支持ICMP、TCP和UDP三种协议。
本发明将安卓手机1中的所有通信流量导向VPN客户端2的虚拟接口的直接目的是为了采集到这部分流量,为了维持安卓手机1的正常通信,就需要客户端2解析所有流量的数据包内容,即IP协议以及它下面的ICMP、TCP和UDP协议字段,解析出了目标IP地址、目标端口号等信息,就可以创建新的套接字与远程目标服务器进行通信。这样就相当于,手机1上的所有应用与VPN客户端2进行通信,客户端2同时与这些应用所访问的远程服务器进行通信,这里客户端2实际中还承担了一个代理的角色。
步骤202:所述VPN客户端将所述网络访问请求产生的流量以流量文件形式导出并存储。
为了便于采集手机应用流量,所述VPN客户端2在代理转发网络数据包时会拷贝一份按格式写入文件缓存起来,文件类型采用最常见的数据包存储格式pcap,每隔一段固定时间,缓存的流量文件会尝试通过WIFI上传至云服务端3进行汇总分析。本发明采用的pcap格式是一种原始流量数据包存储格式,具体格式为[24字节文件头+(16字节packet包头+packet数据1)+(16字节packet包头+packet数据2)…]。
所述步骤202具体包括:
所述VPN客户端2在代理转发所述网络访问请求的网络数据包时,将所述网络访问请求产生的流量拷贝一份导出,并以pcap格式的流量文件形式进行存储。每隔一段固定时间,存储的流量文件会通过WIFI上传至云服务端3进行汇总分析。
步骤203:所述VPN客户端根据所述流量文件生成对应的日志文件并发送至云服务端。
作为VPN客户端2的核心功能之一,流量标注旨在获取手机的每一条网络流(TCP或UDP)与具体产生应用之间的映射,可以借助标识应用程序的UID来实现。具体地,所述VPN客户端2首先通过读取安卓系统中的/proc/net/tcp及/proc/net/udp文件来获取网络流对应的UID,然后再通过安卓系统的包管理API将UID映射到具体的应用。VPN客户端2会以“应用名称-流五元组列表”的形式将实时获取到的流与应用之间的关系写入到一个日志文件中去,并会与期间内捕获的流量文件同时上传至云服务端3。
其中/proc/net/tcp及/proc/net/udp是Linux操作系统内核中记录所有TCP和UDP连接信息的重要接口文件,由于Android操作系统也是基于Linux内核的,其上也有这两类接口。从中可以读取到包括连接状态、源目IP地址、源目端口号、UID等一系列重要的TCP、UDP连接的信息。这个接口类似于TUN虚拟接口,就是一个文件描述符,可以在程序中直接读取。UID(User identifier,用户ID)是Linux操作系统中的一个概念,是为用户所分配的一个数字。Android系统在安装应用时会为每个软件包提供不同的Linux用户ID,相当于赋予每类应用一个身份标识,这个标识在软件包生命周期内是不会变的。而/proc/net/tcp及/proc/net/udp两个接口正好提供了每条连接所属UID的信息。因此可以通过读取安卓系统中的/proc/net/tcp及/proc/net/udp文件来获取网络流对应的UID,然后再通过安卓系统的包管理API将UID映射到具体的应用。安卓系统的包管理API具体指PackageManager类下的getApplicationInfo()方法,通过这个方法可以获取到安卓系统为每个应用所分配的UID。UID映射到具体应用后,再根据之前得到的每一条网络流(TCP/UDP连接)与UID的对应关系,就可以得出网络流与具体应用之间的对应关系,这里“网络流”直接可以用流的五元组来指代。
所述步骤203具体包括:
所述VPN客户端2通过读取所述安卓手机1的安卓系统中的/proc/net/tcp及/proc/net/udp文件来获取所述流量对应的UID;
通过所述安卓系统1的包管理应用程序接口API将所述UID映射到具体的应用,得到所述流量与所述应用之间的映射关系;
所述VPN客户端2采用应用名称-流五元组列表的形式将实时获取到的所述流量与所述应用之间的映射关系写入到一个日志文件中去,并与期间内捕获的所述流量文件同时上传至所述云服务端3。
网络通信过程中不同应用会不断产生许多条不同的流,为了将所有这些流与其所属应用的关系记录下来,本发明采用“应用1:流1,流2,流3…;应用2:流1,流2,流3…;应用3:……”这样的“应用名称-流五元组列表”形式将它们的映射关系写入到一个日志文件中去。这个“日志文件”的内容就是一个“应用名称:流五元组”形式的列表,这个日志文件是上传服务器3后进行流量标注的重要依据。
步骤204:所述云服务端接收多个所述VPN客户端发送的多个流量文件及对应的日志文件,并根据所述流量文件及所述日志文件生成目标应用的通信流量。
所述云服务端3与多个安卓手机1上安装的所述VPN客户端2进行通信。系统的云端服务器3负责接收多个VPN客户端2上传的流量文件和日志文件,并结合两者对流量进行离线分析和处理。首先对所有pcap格式的原始流量文件进行元数据和流信息提取,提取出包括流的五元组、数据包方向和时间序列、payload字节流、TLS等协议字段内容等以流为单位的数据内容;然后将提取到的以流为单位的数据内容与日志文件进行比对,按照具体应用对它们进行归类,得到目标应用对应的通信流量;最后将分类后的流量数据应用到具体业务中去,如流量特征提取和隐私泄露发现等。
所述步骤204具体包括:
所述云服务端3对所有pcap格式的所述流量文件进行元数据和流信息提取,提取出以流为单位的数据内容;所述以流为单位的数据内容包括流的五元组、数据包方向和时间序列、payload字节流、传输层安全协议TLS字段;
将提取到的所述以流为单位的数据内容与所述日志文件进行比对,统计生成所述目标应用的通信流量。
所述以流为单位的数据内容很容易通过已有的工具软件从原始流量文件(pcap)中分析提取出来,而进一步利用客户端2所生成的流与应用的映射关系(日志文件),就可以最终为所有流量打上应用标签,从而统计生成某个目标应用的通信流量。
针对独属于某类应用的流量进行分析,可以进一步挖掘出此类应用的一些流量特征信息,如“字符串指纹”等,这对未知流量的分类具有指导作用。另外还可以通过发现一些敏感数据来得知此类应用是否存在泄露用户隐私的行为。
因此在所述步骤204云服务端根据所述流量文件及所述日志文件生成目标应用的通信流量之后,还包括:
所述云服务端2根据所述目标应用的通信流量进行流量特征提取,提出所述目标应用的流量特征;根据所述流量特征指导未知流量的分类。
所述云服务端2根据所述目标应用的通信流量判断所述目标应用是否存在泄露用户隐私的行为。
本发明首先利用安卓开发套件中提供的VPN接口实现一个本地VPN客户端2,该客户端2将接管所有系统和用户应用的网络请求,并掌握所有手机1本地产生的网络通信内容;然后客户端2将获取到的网络通信数据包复制一份以特殊文件的形式进行缓存;客户端2通过读取系统关键文件并结合安卓的包管理工具,将实时的网络流与产生它的具体应用进行映射,映射得到的关系列表写入一份日志文件;客户端2定时将一段时间内缓存的网络数据包文件(流量文件)连同相应的日志文件上传至配置好的远程云服务器端3;云服务器端3可与多个手机客户端2进行通信,上传的流量和流日志文件将在这里进行汇总分析处理,最终实现安卓手机流量的采集与标注。
本发明利用客户端2完成用户手机流量信息的原始捕获工作,并结合服务器3实现流量采集和标注任务。其中客户端2的设计实现优于已有的大部分手机网络工具软件,无需root即可安装使用,开启VPN服务能保持高效的网络访问,整体对用户透明,此优点主要得益于采用了官方VPN接口并高效实现了对所有网络流量的接管。便捷高效的客户端设计为大规模安装使用提供了可能,结合服务器的集中式采集和标注,大大提升了系统的可用性和可扩展性。
现有的大多数安卓手机端网络监控与流量采集工具在非用户态下工作,需要手机的root权限,安装使用极不方便,少数无需root的工具也缺少原始流量采集与标注的功能。本发明一方面使用安卓操作系统原生VPN服务接口实现用户态下流量的采集,无需root即可安装使用,这让大规模的安装部署成为可能;另一方面利用安卓系统软件包管理的UID机制实现网络流与具体应用的匹配,从而达到流量标注的目的;而客户端-服务器的设计则极大提升了流量采集与标注的效率与可扩展性,客户端2可以对用户做到尽量友好和透明,一系列处理工作交由服务器3来完成。因此本发明通过分布式客户端2-服务器3的方式进行组织,在用户体验不受影响的前提下能够收集安卓设备的网络流量与流量相关的信息,并上传服务器3进行集中标注和分析处理,实现在大规模流量采集的基础上获取应用、设备级别的流量分类标签数据的目标。更为重要的是,由于本发明采用客户端2从移动流量的产生源头出发,通过操作系统提供的网络流的精确源头信息来标注流量,可以实现100%的准确性。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

Claims (8)

1.一种基于VPN的安卓手机流量采集与标注系统,其特征在于,所述安卓手机流量采集与标注系统包括:安卓手机、虚拟专用网络VPN客户端以及云服务端;
所述安卓手机内安装有应用以及所述VPN客户端;所述应用包括系统应用和用户应用;所述VPN客户端利用安卓开发套件中提供的VPN接口实现;
所述VPN客户端接管所述安卓手机内安装的所述应用的所有网络访问请求,代替所述应用与远程云服务器建立通信连接;
所述云服务端与多个所述VPN客户端进行通信。
2.根据权利要求1所述的安卓手机流量采集与标注系统,其特征在于,所述VPN客户端根据不同协议代理转发所述网络访问请求的网络数据包;所述不同协议包括Internet控制报文协议ICMP、传输控制协议TCP和用户数据报协议UDP。
3.一种基于VPN的安卓手机流量采集与标注方法,其特征在于,所述安卓手机流量采集与标注方法基于权利要求1所述的安卓手机流量采集与标注系统,所述安卓手机流量采集与标注方法具体包括:
采用VPN客户端监测安卓手机内安装的应用的网络访问请求;所述应用包括系统应用和用户应用;
所述VPN客户端将所述网络访问请求产生的流量以流量文件形式导出并存储;
所述VPN客户端根据所述流量文件生成对应的日志文件并发送至云服务端;
所述云服务端接收多个所述VPN客户端发送的多个流量文件及对应的日志文件,并根据所述流量文件及所述日志文件生成目标应用的通信流量。
4.根据权利要求3所述的安卓手机流量采集与标注方法,其特征在于,所述VPN客户端将所述网络访问请求产生的流量以流量文件形式导出并存储,具体包括:
所述VPN客户端在代理转发所述网络访问请求的网络数据包时,将所述网络访问请求产生的流量拷贝一份导出,并以pcap格式的流量文件形式进行存储。
5.根据权利要求4所述的安卓手机流量采集与标注方法,其特征在于,所述VPN客户端根据所述流量文件生成对应的日志文件并发送至云服务端,具体包括:
所述VPN客户端通过读取所述安卓手机的安卓系统中的/proc/net/tcp及/proc/net/udp文件来获取所述流量对应的UID;
通过所述安卓系统的包管理应用程序接口API将所述UID映射到具体的应用,得到所述流量与所述应用之间的映射关系;
所述VPN客户端采用应用名称-流五元组列表的形式将实时获取到的所述流量与所述应用之间的映射关系写入到一个日志文件中去,并与期间内捕获的所述流量文件同时上传至所述云服务端。
6.根据权利要求5所述的安卓手机流量采集与标注方法,其特征在于,所述云服务端根据所述流量文件及所述日志文件生成目标应用的通信流量,具体包括:
所述云服务端对所有pcap格式的所述流量文件进行元数据和流信息提取,提取出以流为单位的数据内容;所述以流为单位的数据内容包括流的五元组、数据包方向和时间序列、payload字节流、传输层安全协议TLS字段;
将提取到的所述以流为单位的数据内容与所述日志文件进行比对,统计生成所述目标应用的通信流量。
7.根据权利要求6所述的安卓手机流量采集与标注方法,其特征在于,在所述云服务端根据所述流量文件及所述日志文件生成目标应用的通信流量之后,还包括:
所述云服务端根据所述目标应用的通信流量进行流量特征提取,提出所述目标应用的流量特征;
根据所述流量特征指导未知流量的分类。
8.根据权利要求6所述的安卓手机流量采集与标注方法,其特征在于,在所述云服务端根据所述流量文件及所述日志文件生成目标应用的通信流量之后,还包括:
所述云服务端根据所述目标应用的通信流量判断所述目标应用是否存在泄露用户隐私的行为。
CN201911400640.0A 2019-12-30 2019-12-30 一种基于vpn的安卓手机流量采集与标注系统及方法 Pending CN111224893A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911400640.0A CN111224893A (zh) 2019-12-30 2019-12-30 一种基于vpn的安卓手机流量采集与标注系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911400640.0A CN111224893A (zh) 2019-12-30 2019-12-30 一种基于vpn的安卓手机流量采集与标注系统及方法

Publications (1)

Publication Number Publication Date
CN111224893A true CN111224893A (zh) 2020-06-02

Family

ID=70827904

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911400640.0A Pending CN111224893A (zh) 2019-12-30 2019-12-30 一种基于vpn的安卓手机流量采集与标注系统及方法

Country Status (1)

Country Link
CN (1) CN111224893A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112532734A (zh) * 2020-12-02 2021-03-19 建信金融科技有限责任公司 报文敏感信息检测方法和装置
CN112804251A (zh) * 2021-02-01 2021-05-14 哈尔滨工业大学 一种基于userId的Android应用流量过滤方法与系统
CN115242763A (zh) * 2021-04-16 2022-10-25 京东科技控股股份有限公司 一种终端应用的网络流量采集方法、系统及相关装置
CN115426299A (zh) * 2022-10-20 2022-12-02 深圳红途科技有限公司 无特征数据标识方法、装置、计算机设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104484259A (zh) * 2014-11-25 2015-04-01 北京奇虎科技有限公司 应用程序的流量监控方法、装置和移动终端
CN106101015A (zh) * 2016-07-19 2016-11-09 广东药科大学 一种移动互联网流量类别标记方法和系统
CN108401262A (zh) * 2018-02-06 2018-08-14 武汉斗鱼网络科技有限公司 一种终端应用通信数据获取与分析的方法及装置
WO2019062479A1 (zh) * 2017-09-29 2019-04-04 中兴通讯股份有限公司 报文处理方法、装置、存储介质及终端

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104484259A (zh) * 2014-11-25 2015-04-01 北京奇虎科技有限公司 应用程序的流量监控方法、装置和移动终端
CN106101015A (zh) * 2016-07-19 2016-11-09 广东药科大学 一种移动互联网流量类别标记方法和系统
WO2019062479A1 (zh) * 2017-09-29 2019-04-04 中兴通讯股份有限公司 报文处理方法、装置、存储介质及终端
CN108401262A (zh) * 2018-02-06 2018-08-14 武汉斗鱼网络科技有限公司 一种终端应用通信数据获取与分析的方法及装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112532734A (zh) * 2020-12-02 2021-03-19 建信金融科技有限责任公司 报文敏感信息检测方法和装置
CN112532734B (zh) * 2020-12-02 2023-11-21 建信金融科技有限责任公司 报文敏感信息检测方法和装置
CN112804251A (zh) * 2021-02-01 2021-05-14 哈尔滨工业大学 一种基于userId的Android应用流量过滤方法与系统
CN115242763A (zh) * 2021-04-16 2022-10-25 京东科技控股股份有限公司 一种终端应用的网络流量采集方法、系统及相关装置
CN115426299A (zh) * 2022-10-20 2022-12-02 深圳红途科技有限公司 无特征数据标识方法、装置、计算机设备及存储介质

Similar Documents

Publication Publication Date Title
CN111224893A (zh) 一种基于vpn的安卓手机流量采集与标注系统及方法
CN103609071B (zh) 用于通过多连接中间装置跟踪应用层流的系统和方法
CN106101015B (zh) 一种移动互联网流量类别标记方法和系统
CN103765851B (zh) 用于到任何服务的透明的层2重定向的系统和方法
EP2240854B1 (en) Method of resolving network address to host names in network flows for network device
CN104904160A (zh) 用于数据流的应用流的系统和方法
Saadallah et al. CCNx for Contiki: implementation details
CN111543038A (zh) 使用中间设备流拼接的网络流拼接
CN104394211A (zh) 一种基于Hadoop用户行为分析系统设计与实现方法
CN103477611A (zh) 用于n层高速缓存重定向的系统和方法
CN103392314A (zh) 用于可扩展的n核统计信息聚合的系统和方法
CN110661807A (zh) IPv6地址的自动化采集方法及装置
CN111557087A (zh) 使用业务流拼接发现中间设备
Oluwabukola et al. A Packet Sniffer (PSniffer) application for network security in Java
Uramová et al. Packet capture infrastructure based on Moloch
Liu et al. Mobilegt: A system to collect mobile traffic trace and build the ground truth
CN116458120A (zh) 保护网络资源免受已知威胁
Voronov et al. Determining OS and applications by DNS traffic analysis
Su et al. Mobile traffic identification based on application's network signature
Liu et al. A System for Linking Ground Truth to Mobile Network Traffic
Turk et al. Real time wireless packet monitoring with raspberry Pi sniffer
Ikebe et al. An integrated distributed log management system with metadata for network operation
CN105447077B (zh) 基于OpenFlow的查询词抽取方法及系统
CN111225389A (zh) 一种移动数据流量处理的方法及装置
Farhat et al. Measuring and Analyzing DoS Flooding Experiments

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20200602

RJ01 Rejection of invention patent application after publication