CN111510429B - 一种安卓系统应用推广中流量劫持的分析检测方法及系统 - Google Patents
一种安卓系统应用推广中流量劫持的分析检测方法及系统 Download PDFInfo
- Publication number
- CN111510429B CN111510429B CN202010166601.5A CN202010166601A CN111510429B CN 111510429 B CN111510429 B CN 111510429B CN 202010166601 A CN202010166601 A CN 202010166601A CN 111510429 B CN111510429 B CN 111510429B
- Authority
- CN
- China
- Prior art keywords
- hijacking
- information
- apk
- client
- detection
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/12—Detection or prevention of fraud
- H04W12/121—Wireless intrusion detection systems [WIDS]; Wireless intrusion prevention systems [WIPS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种安卓系统应用推广中流量劫持的分析检测方法及系统,该检测方法可分为服务器端和客户端两个部分,在检测过程中,由客户端收集数据并提交到服务器端,在服务器端开发者可进行多方面的数据分析,掌握流量劫持的各项特征。本发明在利用众包技术来确保收集数据的高可用性和正确性的同时,结合部分下载技术有效降低了客户端的探测流量,可显著减少参与者的流量开销并提高流量劫持探测效率;发现劫持后,在服务器端可以利用大数据技术分析劫持行为的来源、严重程度以及劫持方式等,从而对相关恶意渠道进行责任追溯,保障了开发者和正常渠道推广商的利益,也保护了用户下载过程中的数据安全。
Description
技术领域
本发明属于计算机和通信技术领域,具体涉及一种安卓系统下应用推广中流量劫持的分析检测方法及系统。
背景技术
随着智能手机的快速普及以及与之相关的手机应用市场的高速发展,如何高效且及时地将自己开发的应用推广给目标用户成为了应用开发商重点关注的问题,许多开发者每年都要为了获取客户而付出巨额的推广费用。在Android(安卓)系统下,除了在由Google官方维护的应用市场GooglePlay内以及开发商自己维护的网站上进行推广活动,应用开发商还可以通过各类第三方应用市场以及不同的第三方网络广告联盟(网盟)进行应用推广。这些通过第三方来进行推广自己应用的方式被统称为应用推广渠道,不同的推广渠道会采用不同的推广方式来帮助应用开发者获取新用户,各自也有不同的计费策略,但他们的目的都是为了使尽可能多的用户通过他们自己的渠道来安装相应的应用。在推广周期结束后,应用开发者会根据该渠道产生的应用安装量给予渠道拥有者一定的推广费用。
在正常情况下,用户可以自行选择从某一种渠道获取自己需要的应用,然而,在应用推广的过程中,一些恶意的渠道推广商为了获取更多的渠道推广报酬,会采取多种不法手段来增加自己的应用安装量,从而劫持用户的正常下载请求,具体表现为:用户从被劫持渠道下载的应用可以被劫持为从劫持渠道下载的同一应用,甚至是其他与用户需求不相关的应用。前者对用户来说难以察觉,但却影响了被劫持渠道的合法利益,由于计费策略的不同,很可能还给应用开发者带来了额外的费用开销,后者则会给用户带来巨大的困惑,不仅造成了流量浪费,并且被篡改的下载数据有机会直接导致安全威胁,同时也给开发者带来了隐含存在的巨大经济损失和名誉损失。因此,研究如何有效检测Android系统下应用推广过程中潜在的流量劫持问题具有深远意义。
发明内容
发明目的:本发明提供一种安卓系统应用推广中流量劫持的分析检测方法及系统,通过众包达成广泛探测,解决常规检测方案在应用推广过程中流量劫持问题内的局限性,意在及时、有效地检测恶意渠道推广商的推广劫持行为,保护开发者和正常渠道推广商的合法利益,保障用户的数据安全以及互联网服务提供者下载服务的可靠性,维护网络空间安全。
技术方案:本发明所述的一种安卓系统应用推广中流量劫持的分析检测方法,包括以下步骤:
(1)对于每一条从客户端发来的检测记录,比较客户端和服务器从相同的应用原始URL下载地址获取的APK文件信息、APK嵌入的推广渠道信息是否在同一应用的相同版本上一致,如果一致,则该次检测中未发生流量劫持,将该记录放入本地基准用户数据库中,辅助对其他记录的判断;否则进行步骤(2);
(2)若APK文件信息或APK嵌入的推广渠道信息不一致或无法在APK中找到推广渠道信息,则存在流量劫持行为,此时根据本地基准数据库中的基准数据集和具体嵌入的推广渠道信息判断流量劫持替换的内容为某一推广渠道,若APK中不存在推广渠道信息则根据APK签名信息判断流量劫持替换的内容为其他某种应用;
(3)从本地基准数据库和本地基准用户数据库的已有记录中,检出所有与当前发生流量劫持的检测记录具有相同应用原始URL下载地址的记录,查询在这些记录中是否存在与本次检测记录具有相似重定向地址的其他记录;如果不存在具有相似重定向地址的记录,则本次流量劫持基于HTTP重定向;如果存在具有相似重定向地址的记录,则继续比较所有具有相似重定向地址的记录中是否存在下载服务器IP地址与本次检测结果相同的记录,如果不存在下载服务器IP地址相同的记录,则本次劫持基于DNS劫持;如果存在下载服务器IP地址相同的记录,则本次劫持基于其他类型的攻击,可能原因包括由于网络运营商在下载过程中通过代理服务器对下载内容进行了直接替换;将本次检测记录放入本地流量劫持数据库中;
(4)将本地基准数据库、本地基准用户数据库与本地流量劫持数据库进行比较,提取具有相同路由起始IP地址的客户端路由信息,从未发生流量劫持和发生流量劫持的路由节点差异性上判断流量劫持发生的网络节点范围;
(5)分析流量劫持数据库,从该数据库中客户端的位置信息及公网IP地址信息,确定流量劫持发生的区域、网络环境和运营商归属;
(6)分析流量劫持数据库,从该数据库中特定区域的客户端反馈的下载时间,可判断流量劫持发生的开始时间和持续时间,从而估计该区域内流量劫持的危害程度。
进一步地,步骤(1)所述的APK文件信息主要包括文件的大小、APK的开发商公钥及签名信息。
进一步地,步骤(1)所述的APK嵌入的推广渠道信息的获取通过在HTTP请求中设置Range字段指定文件读取的起始位置和终止位置,从而下载部分所需数据,具体步骤如下:
(a)初次建立HTTP访问请求,正常设置各字段,不设置Range字段,通过下载服务器响应中的Content Length域确定所下载的APK文件大小lengthcontent,确定APK文件尾部位置;
(b)根据文件大小lengthcontent设置Range字段,数据长度lengthdownload=20bytes,起始位置offsetstart=lengthcontent–lengthdownload,终止位置offsetend=lengthcontent;再次建立HTTP请求,获取该部分数据,判断这部分文件中是否包含Central Directory的偏移量offsetcentraldirectory,如果找到则进行下一步,否则重复设置offsetstart=offsetstart-lengthdownload,offsetend=offsetstart+lengthdownload+3,并继续建立HTTP请求直到获得Central Directory的偏移量offsetcentraldirectory;
(c)根据Central Directory的偏移量offsetcentraldirectory,设置起始位置offsetstart=offsetcentraldirectory–24,终止位置offsetend=offsetcentraldirectory–1,建立HTTP请求,获取文件内容,判断其中是否包含魔数“APK Sig Block 42”,如果有,获取APKSigning Block的大小lengthsigningblock,其位于该文件块的第一个uint64中;如果未能找到魔数,则说明该APK未按照新签名方案标准格式生成,立即退出该下载流程;
(d)根据APK Signing Block的大小lengthsigningblock,设置起始位置offsetstart=offsetcentraldirectory–lengthsigningblock-8,终止位置offsetend=offsetcentraldirectory–25,建立HTTP请求,获取APK Signing Block的剩余部分内容,其中应包含以键值对顺序排列的签名信息;
(e)按照键值对ID-Value元组的顺序读取APK Signing Block中的内容,获取嵌入APK的应用推广渠道信息和APK文件的开发商公钥信息和签名信息。
本发明还提供一种安卓系统下应用推广中流量劫持的分析检测系统,包括服务器和客户端;所述服务器包括服务器端信息采集模块、数据存取模块、流量劫持分析检测模块;所述服务器端信息采集模块负责采集并及时更新为进行检测而必要的基准数据集,并将检测任务信息分发给所有向服务器发出请求的客户端;所述数据存取模块与本地数据库合作,存储和提供服务器端信息采集模块采集的基准数据集,及存储参与检测的所有客户端向服务器发送的采集到的数据集;所述流量劫持分析检测模块负责从不同视角展示数据库内的各方面数据,通过算法识别劫持是否发生并给出报告;所述客户端由客户端信息采集模块构成,所述客户端信息采集模块从服务器端获取具体检测任务,根据任务内容从互联网中采集信息,并将采集到的数据反馈到服务器端。
进一步地,所述客户端所采集的信息主要包括应用原始URL下载地址、APK嵌入的推广渠道信息、服务器IP地址、APK文件信息、采集时间、网络层路由信息、客户端ID、客户端公网IP地址、客户端位置信息以及可选的客户端设备信息。
有益效果:与现有技术相比,本发明的有益效果:1、本发明基于众包的检测方法来达成广泛检测,提高数据的可用性,解决常规流量劫持检测方案的局限性;2、利用APK文件格式和HTTP协议支持的断点重传技术,设计了一种高效的部分下载APK文件数据采集方案,有效降低检测节点在检测流量劫持过程中的流量消耗;3、基于收集到的数据,进一步设计了一套针对应用推广过程中的流量劫持的分析检测方法,可有效分析流量劫持的多项特征。
附图说明
图1为流量劫持分析检测系统框架示意图;
图2为流量劫持其中一种情况的示意图;
图3为基于断点续传机制的部分下载技术获取APK关键信息的流程图;
图4为流量劫持识别检测部分流程图。
具体实施方式
下面结合附图对本发明作进一步详细描述。
Android应用程序包APK(Android application package,APK)是一种用于Android操作系统的文件包格式,用来分发和安装移动应用以及中间件。其基于JAR和ZIP压缩文件格式,将编译好的字节码文件、资源文件和配置文件等按照一定规范打包在一起。为了避免APK文件在分发过程中被恶意伪造或篡改,APK在发布前均需要由开发商使用自己的私钥(private key)对应用进行签名,该私钥由开发商保留且不可公开,而公钥(publickey)和数字签名信息则保存在APK文件中META-INF文件夹下。Android安装器(PackageInstaller)会在安装或升级APK文件时对开发者的公钥进行验证,同时利用数字签名对文件的完整性进行检测。
在市场推广活动中,应用开发商为了区别来自不同渠道的安装,他们会为提供给不同的推广渠道的应用附加不同的额外信息(下称渠道信息或推广渠道信息),这些信息一般对应了渠道的身份或来源,开发商通过统计这些额外信息(例如应用第一次打开时可以向开发商服务器宣告渠道身份标识)即可较为准确地统计每一个应用推广渠道的推广量和推广质量。由于推广的需求,应用开发商往往会与多个渠道推广商进行签约,并且出于版本快速迭代的要求,向不同渠道推广商提供的应用需要经常进行反复编译打包,将渠道信息放入应用代码区的做法要求对多个渠道分别进行编译,较为低效,因此应用开发商会将渠道信息放在不受签名保护的META-INF目录下或APK继承自ZIP格式的Comment区域或是基于新签名方案APK Signature Scheme v2(Android 7.0引入)的APK Signing Block中以快速打包。由于公钥和数字签名在新签名方案中转移到APK Signing Block中,且对其他目录和区块进行签名保护,在新签名方案中仅后者快速打包的方法仍然有效。
应用推广过程中的流量劫持问题,如图2所示,往往具有以下特征:(1)区域性:流量劫持的发生通常发生在一些网络运营商的底层节点,是地区网络管理员或渠道推广商出于个人经济利益合作而产生的,由于地区管理员权限有限,因此流量劫持现象具有一定的区域性。(2)短期时效性:长期且持续存在的流量劫持行为容易被网络系统中的高层管理员或国家网络监管部门发现,因此流量劫持表现出一定随机性,通常不会持续很长时间。(3)针对性:推广过程中的流量劫持的目的是为了获取推广酬金,因此流量劫持往往针对特定的网络资源(例如个别需要推广的应用)进行,在其他网络活动中难以察觉。
如图1所示,本发明提供一种安卓系统应用推广中流量劫持的分析检测系统,包括构成众包基础参与者的客户端部分及进行任务发放和数据接收、数据分析的服务器端部分,如有必要,还可根据应用开发者需求加入其它参与者。客户端中主要包含客户端信息采集模块,服务器端主要包含服务器端信息采集模块、数据存取模块、流量劫持分析检测模块等。客户端可以独立App(应用)形式安装在用户手机上,或以可扩展实例形式伴随开发者的其他应用进行分发,提供数据收集、劫持测试等功能,服务器端各模块可由开发者自行决定如何部署,也可交由合作第三方进行部署,配合客户端进行协同工作,提供数据存储、数据访问、数据分析等功能。开发者通过数据分析,可以获得关于流量劫持的行为报告,从而定位劫持位置、确定发生劫持和进行劫持的渠道及可能的劫持手段等信息。
服务器由服务器信息采集模块、数据存取模块、流量劫持分析检测模块等构成,各组成模块充分解耦,因此如有需要,可根据开发者实际需求来增加或减少对应模块。
服务器端信息采集模块负责采集并及时更新为进行检测而必要的基准数据集,并将检测任务信息分发给所有向服务器发出请求的客户端。由于后续判断劫持需要参考基准数据集进行,因此及时更新来保持基准数据集的准确性是有必要的。
数据存取模块与本地数据库合作,负责数据的存取。除了存储和提供服务器端信息采集模块采集的基准数据集,同时也要存储参与检测的所有客户端向服务器发送的采集到的数据集。在进行后续流量劫持分析时,提供分析所需的数据。
流量劫持分析检测模块负责从不同视角展示数据库内的各方面数据,通过算法识别劫持是否发生并给出相关报告。
表1服务器端和客户端分别需要采集的信息
其中,服务器端信息采集模块在采集基准数据集时主要关注的信息如表1所示,每一条推广信息记录具体包含该推广渠道中应用原始URL下载地址(即该渠道应用对应的下载链接)、该APK内嵌入的推广渠道信息(即前文所述的可置于APK Signing Block内的渠道标识信息)、对应的推广渠道名称或来源(即对推广渠道的称呼)、下载服务器的IP地址、APK文件信息(例如APK的大小、APK内包含的开发商公钥和数字签名等)、采集时间(用来标记记录最后更新的时间)和网络层路由信息(包含了HTTP状态码信息、重定向信息以及到服务器的路由信息等)等。每一条推广信息记录对应了一个推广渠道,所有推广信息记录共同构成基准数据集。该数据集可由人工或程序自动方式进行维护,以保证所有渠道的APK基准信息最新。分发给客户端的检测任务需至少包含应用原始URL下载地址,其他基准数据集包含的信息可一并发送给客户端作为参考使用。
服务器端数据存取模块需将上述基准数据集存入本地数据库中,在客户端完成检测任务后负责接收客户端发送的结果,并且在劫持检测中提供所需数据,需具有一定的并发能力。
流量劫持分析检测模块可根据开发者需求展示数据库中的数据,并通过流量劫持识别算法检测流量劫持是否发生,若发生,则判断流量劫持产生的原因,属于HTTP重定向劫持、DNS劫持还是其他类型的攻击(例如互联网服务提供者发起的缓存替换)。
用户的下载是通过HTTP协议完成的,当用户进行HTTP访问时,服务器将对该访问请求返回三位数字构成的HTTP状态码来表示不同响应状态,常见的响应状态如200(请求成功)、404(请求失败,未找到请求内容)等,请求者则应根据响应码进行适当操作。当HTTP状态码首位为3时,表示发生重定向,此时下载服务会从服务器回应内容(Response)的Location域中提取到一个新的URL地址,并继续发起对该新链接的访问。重定向技术多用于网站维护,保持网络资源迁移后的继续可用,但也经常被用于进行网络审查和流量劫持,例如在本例中用户的下载可能通过HTTP重定向被劫持到恶意链接或恶意服务器,由于目前大量应用市场仍然以HTTP而非HTTPS下载服务为主,传统HTTP下载方式具有巨大的被劫持风险。
在用户通过域名形式访问特定网站和进行下载时,首先需要将域名转换为特定IP地址以进行后续访问,该IP即对应了网络上特定的服务器,其中存储了用户请求的资源,位置位于访问URL中的目录名上。从域名转换为IP的解析过程由层次化的域名服务器递归完成,而为了加快域名解析过程,网络运营商通常会设置自己的DNS服务器,用户在进行浏览时也会从底层节点开始向上逐层进行DNS查询,恶意攻击者可在这一过程中对运营商DNS服务器进行调整,从而发起DNS劫持攻击,将用户的访问引导至恶意服务器。
其他类型的攻击,例如由互联网服务提供者(Internet Service Provider,ISP)发起的缓存替换,可将为加速网络服务而提前缓存的应用内容进行直接替换,从而在不改变用户的访问过程的同时进行流量劫持。
流量劫持分析检测模块可判断发生的应用推广流量劫持是由以上哪一种劫持方式产生的,从而进行针对性的责任追溯,判断的依据除了由服务器信息采集模块采集的基准数据集,还有通过客户端收集的大量客户端数据集。
客户端主要由客户端信息采集模块构成,该模块负责从服务器端获取包含渠道推广链接等信息的检测任务,根据任务内容从互联网中采集相关的信息,并将采集到的数据反馈到服务器端。客户端所采集的信息如表1所示,其中包含应用原始URL下载地址、APK嵌入的推广渠道信息、服务器IP地址、APK文件信息、采集时间、网络层路由信息、客户端ID(用来区分不同客户端生成的全局唯一ID,也可通过其他等价形式体现)、客户端公网IP地址(该次检测发生的网络环境,对应运营商情况)、客户端位置信息以及可选的客户端设备信息(如果开发者关注对特定设备的流量劫持情况,可以根据需求加入)。在记录收集完成后,客户端将检测结果反馈到服务器端。
客户端需采集APK嵌入的推广渠道信息,因此需根据检测任务中的原始应用URL下载地址进行下载请求,获取对应APK的信息。为减少广泛、频繁的检测导致的大量流量开销,同时提高用户在检测进行时的用户体验,本发明引入基于HTTP断点重传机制的部分下载技术,对APK进行部分下载,获取其关键信息,需要说明的是,该部分下载技术对于服务器端信息采集模块同样适用,且受互联网上所有下载服务器支持。由于检测劫持仅关注APK嵌入的推广渠道信息和开发者公钥等信息,因此可在HTTP请求中设置合适的Range字段指定文件读取的起始位置和终止位置,从而下载部分所需数据。
如图3所示,以下以新签名方案为例,此例中客户端信息采集模块需采集的信息位于APK Signing Block内,基于部分下载获取APK嵌入的推广渠道信息的步骤如下:
(a)初次建立HTTP访问请求,正常设置各字段,不设置Range字段,通过下载服务器响应(Response)中的Content Length域确定所下载的APK文件大小(同时也是所需的APK文件信息之一)lengthcontent,确定APK文件尾部位置。
(b)根据文件大小lengthcontent设置Range字段,数据长度lengthdownload=20bytes,起始位置offsetstart=lengthcontent–lengthdownload,终止位置offsetend=
lengthcontent。再次建立HTTP请求,获取该部分数据,判断这部分文件中是否包含Central Directory的偏移量offsetcentraldirectory,如果找到则进行下一步,否则重复设置offsetstart=offsetstart-lengthdownload,offsetend=offsetstart+lengthdownload+3,并继续建立HTTP请求直到获得Central Directory的偏移量offsetcentraldirectory。需注意,设置offsetstart时,若第一次offsetstart<0,则将offsetstart设置为0,若第二次offsetstart<0,则说明未能从APK文件中获取所需信息,可判断该APK中不包含所需渠道信息或被劫持为其他应用,立即退出该下载流程。设置offsetend时,若offsetend>lengthcontent,则设置offsetend=lengthcontent,避免下载部分溢出。
(c)根据Central Directory的偏移量offsetcentraldirectory,设置起始位置offsetstart=offsetcentraldirectory–24,终止位置offsetend=offsetcentraldirectory–1,建立HTTP请求,获取文件内容,判断其中是否包含魔数“APK Sig Block42”,如果有,获取APKSigning Block的大小lengthsigningblock,其位于该文件块的第一个uint64中。如果未能找到魔数,则说明该APK未按照新签名方案标准格式生成,立即退出该下载流程。
(d)根据APK Signing Block的大小lengthsigningblock,设置起始位置offsetstart=offsetcentraldirectory–lengthsigningblock-8,终止位置offsetend=offsetcentraldirectory–25,建立HTTP请求,获取APK Signing Block的剩余部分内容,其中应包含以键值对顺序排列的签名信息。
(e)按照键值对ID-Value元组的顺序读取APK Signing Block中的内容,获取嵌入APK的应用推广渠道信息和APK文件的开发商公钥信息和签名信息。
客户端通过该流程获取所需信息,需说明的是,通过部分下载技术来减少流量开销的思想同样适用于应用采用传统的快速打包方案下流量劫持的检测过程中,但下载的部分位置有所区别,例如对于推广渠道信息置于META-INF文件夹内,可通过完整下载CentralDirectory,根据其中记录部分下载META-INF文件夹,从而获取其中的相关信息,对于推广渠道信息置于APK的Comment区域中,通过上述第(2)步即可获取Comment中所有内容。
根据客户端的网络状态,使用蜂窝网络或是不计费的无线网络,可动态地采取不同的探测频率及任务分发策略,进一步降低客户端流量负载,同时可以有针对性地检测不同网络运营商的网络情况。
前述服务器端流量劫持分析检测模块可通过APK内包含的开发商公钥信息及数字签名信息判断是否是不同的应用及相同应用在发布更新前后的不同版本。在获取基准数据集和用户端采集的数据集后,除了向开发者提供不同视角的数据以外,可使用流量劫持识别算法判断流量劫持是否发生,以及造成流量劫持的可能手段。
本发明还提供了一种安卓系统下应用推广中流量劫持的分析检测方法,具体检测过程如图4所示,包括以下步骤:
1、对于每一条从客户端发来的检测记录,比较客户端和服务器从相同的应用原始URL下载地址获取的APK文件信息(主要为文件的大小、APK的开发商公钥及签名信息等)、APK嵌入的推广渠道信息是否在同一应用的相同版本上一致,如果一致,则该次检测中未发生流量劫持,将该记录放入本地基准用户数据库中,辅助对其他记录的判断;否则进行下一步。
2、若APK嵌入的推广渠道信息不一致或无法找到推广渠道信息,则存在流量劫持行为,根据具体嵌入的推广渠道信息(若不存在则根据APK签名信息等)和基准数据集判断流量劫持替换的内容为某一推广渠道或其他应用。
3、分析当前检测记录,在本地基准数据库和本地基准用户数据库的已有记录中,是否存在其他具有相同应用原始URL下载地址、HTTP状态码信息和相似重定向地址(重定向地址中可能存在可忽略的参数域,例如访问时间参数)的记录。如果不存在具有相似重定向地址的记录,即这些信息中存在差异,则本次流量劫持基于HTTP重定向;否则,继续比较是否存在下载服务器IP地址相同的记录,如果不存在,则本次劫持基于DNS劫持;否则,本次劫持基于其他类型的攻击,可能原因包括由于网络运营商在下载过程中通过代理服务器对下载内容进行了直接替换。将该记录放入本地流量劫持数据库中。
安卓系统下应用推广中流量劫持的分析方法,具体如下:
1、将本地基准数据库、本地基准用户数据库与本地流量劫持数据库进行比较,提取具有相同路由起始IP地址的客户端路由信息,从未发生流量劫持和发生流量劫持的路由节点差异性上判断流量劫持发生的网络节点范围。从本地到达目标服务器的路径,通常由于不同的劫持方式(特别是HTTP重定向及DNS劫持时),可能会发生路由上的分叉,仅发生劫持的特殊节点所处的网络范围可能是由恶意攻击者控制的。
2、分析流量劫持数据库,从该数据库中客户端的位置信息及公网IP地址信息,确定流量劫持发生的区域、网络环境和运营商归属。
3、分析流量劫持数据库,从该数据库中特定区域的客户端反馈的下载时间,可判断流量劫持发生的开始时间和持续时间,从而估计该区域内流量劫持的危害程度。
通过以上流量劫持分析检测方法,流量劫持分析检测模块可有效地检测应用推广过程中发生的流量劫持,同时对流量劫持的发生区域、影响范围、持续时间、造成的损失大小、劫持方式和劫持内容有较为客观的评估。开发者通过该报告可对流量劫持的各项特征有所认识。
以独立应用形式存在的客户端可开发为直接安装在用户手机上的独立应用,显式告知用户如何参与检测以及测试的进度。该客户端仅作流量劫持检测分析使用,不包含其他功能,受检测应用来自不同企业、数量众多,均使用了基于新签名方案的快速打包策略。检测速度可自由调整,在该例中所有众包客户端每小时自动进行一次检测,可同时检测多个受检测应用,并向服务器发送检测报告,在检测时应用会显式告知用户当前检测进度。
具体应用中部分下载技术在客户端上有着明显良好的流量降低效果,以美团应用(版本号8.5.4_554)为例,该应用的原始APK大小为43.42MB(45542332bytes),通过引入部分下载技术提取所需信息,客户端需要下载的数据大小为1229bytes,具体如表2所示,仅为原始应用大小的0.0027%,该例证明了部分下载技术在下载过程中能够大幅减少下载流量,并提供良好的用户体验。
表2部分下载美团应用所需的数据大小
在检测网络层路由信息时,客户端可利用Android系统下Java原生的HttpURLConnection来控制和记录HTTP层的活动信息,例如重定向后的URL地址和IP地址。同时,客户端可利用Android系统下已有的ping命令,通过设置每次数据包的生存时间(Time To Live,TTL)来实现简易的Traceroute功能,在收到目标下载服务器的正常回应前,部分路由节点将由于TTL过低而向本机返回“Time to live exceeded”超时错误,从而本机能够记录下路由节点的各项情报,如IP地址等。
客户端可通过系统提供的接口来获取地理位置信息,在服务器端,也可通过客户端IP反查大致位置信息。部分位于区域子网络下的客户端可能无法获取自身的公网IP,可借由第三方服务,或是在发送检测报告时,由服务器记录该客户端对应的公网IP信息。
客户端同时收集时间信息以记录该次检测所发生的的时间及检测的时长,便于服务器端流量劫持分析检测模块进一步分析流量劫持与时间的相关性。
在客户端向服务器端请求检测任务以及回传检测结果时,均可使用压缩技术来进一步降低传输过程中的流量消耗。
服务器端可正常部署在开发者控制或维护的服务器上,另外,在本实施例中,由于服务器对自身使用的网络环境有较好的可控性,进而有效避免流量劫持的发生,因此可以获得具有较高参考价值的基准数据。但由于不同的地域和不同的网络环境将导致客户端采集到的数据与服务器存在差异性,例如应用下载服务器出于负载均衡等原因托管于地区内容分发网络(Content Delivery Network,CDN),使得收集到的IP地址很可能与服务器端不符,因此需要将客户端与服务器的数据从地理位置和网络运营商等方面综合进行分析,充分考虑检测数据的区域性,如有需要,可在客户端回报的检测结果显示有流量劫持时,在服务器端另外再次进行同一应用原始URL下载地址的检测或尝试发起对同一下载服务器IP地址的检测,降低检测的误报率。
客户端也可以可扩展Java实例的形式置入开发商的其他应用中,多用于已发行的商业软件情况下。在这种情况下,客户端实例可随软件运行于系统后台,且在用户授权的情况下静默运行,不会打扰用户的正常使用,提高用户体验。在另一实施例中,众包客户端通过可扩展Java实例的形式置入某开发商旗下的一款商业应用,受检测应用为该商业软件本身,并按照开发商自身计划分批次,每次不同比例客户端参与流量劫持检测。开发商充分利用该商业软件原本巨大的用户量基础,有效地获取了其应用关于流量劫持的各方面特征,并进行及时的责任追溯,避免经济损失。
Claims (5)
1.一种安卓系统应用推广中流量劫持的分析检测方法,其特征在于,包括以下步骤:
(1)对于每一条从客户端发来的检测记录,比较客户端和服务器从相同的应用原始URL下载地址获取的APK文件信息、APK嵌入的推广渠道信息是否在同一应用的相同版本上一致,如果一致,则该次检测中未发生流量劫持,将该记录放入本地基准用户数据库中,辅助对其他记录的判断;否则进行步骤(2);
(2)若APK文件信息或APK嵌入的推广渠道信息不一致或无法在APK中找到推广渠道信息,则存在流量劫持行为,此时根据本地基准数据库中的基准数据集和具体嵌入的推广渠道信息判断流量劫持替换的内容为某一推广渠道,若APK中不存在推广渠道信息则根据APK签名信息判断流量劫持替换的内容为其他某种应用;
(3)从本地基准数据库和本地基准用户数据库的已有记录中,检出所有与当前发生流量劫持的检测记录具有相同应用原始URL下载地址的记录,查询在这些记录中是否存在与本次检测记录具有相似重定向地址的其他记录;如果不存在具有相似重定向地址的记录,则本次流量劫持基于HTTP重定向;如果存在具有相似重定向地址的记录,则继续比较所有具有相似重定向地址的记录中是否存在下载服务器IP地址与本次检测结果相同的记录,如果不存在下载服务器IP地址相同的记录,则本次劫持基于DNS劫持;如果存在下载服务器IP地址相同的记录,则本次劫持基于其他类型的攻击;将本次检测记录放入本地流量劫持数据库中;
(4)将本地基准数据库、本地基准用户数据库与本地流量劫持数据库进行比较,提取具有相同路由起始IP地址的客户端路由信息,从未发生流量劫持和发生流量劫持的路由节点差异性上判断流量劫持发生的网络节点范围;
(5)分析流量劫持数据库,从该数据库中客户端的位置信息及公网IP地址信息,确定流量劫持发生的区域、网络环境和运营商归属;
(6)分析流量劫持数据库,从该数据库中特定区域的客户端反馈的下载时间,可判断流量劫持发生的开始时间和持续时间,从而估计该区域内流量劫持的危害程度。
2.根据权利要求1所述的一种安卓系统应用推广中流量劫持的分析检测方法,其特征在于,步骤(1)所述的APK文件信息主要包括文件的大小、APK的开发商公钥及签名信息。
3.根据权利要求1所述的一种安卓系统应用推广中流量劫持的分析检测方法,其特征在于,步骤(1)所述的APK嵌入的推广渠道信息的获取通过在HTTP请求中设置Range字段指定文件读取的起始位置和终止位置,从而下载部分所需数据,具体步骤如下:
(a)初次建立HTTP访问请求,正常设置各字段,不设置Range字段,通过下载服务器响应中的Content Length域确定所下载的APK文件大小lengthcontent,确定APK文件尾部位置;
(b)根据文件大小lengthcontent设置Range字段,数据长度lengthdownload=20bytes,起始位置offsetstart=lengthcontent–lengthdownload,终止位置offsetend=lengthcontent;再次建立HTTP请求,获取该部分数据,判断这部分文件中是否包含Central Directory的偏移量offsetcentraldirectory,如果找到则进行下一步,否则重复设置offsetstart=offsetstart-lengthdownload,offsetend=offsetstart+lengthdownload+3,并继续建立HTTP请求直到获得Central Directory的偏移量offsetcentraldirectory;
(c)根据Central Directory的偏移量offsetcentraldirectory,设置起始位置offsetstart=offsetcentraldirectory–24,终止位置offsetend=offsetcentraldirectory–1,建立HTTP请求,获取文件内容,判断其中是否包含魔数“APK Sig Block 42”,如果有,获取APK Signing Block的大小lengthsigningblock,其位于该文件块的第一个uint64中;如果未能找到魔数,则说明该APK未按照新签名方案标准格式生成,立即退出该下载流程;
(d)根据APK Signing Block的大小lengthsigningblock,设置起始位置offsetstart=offsetcentraldirectory–lengthsigningblock-8,终止位置offsetend=offsetcentraldirectory–25,建立HTTP请求,获取APK Signing Block的剩余部分内容,其中应包含以键值对顺序排列的签名信息;
(e)按照键值对ID-Value元组的顺序读取APK Signing Block中的内容,获取嵌入APK的应用推广渠道信息和APK文件的开发商公钥信息和签名信息。
4.一种采用如权利要求1所述方法的安卓系统下应用推广中流量劫持的分析检测系统,其特征在于,包括服务器和客户端;所述服务器包括服务器端信息采集模块、数据存取模块、流量劫持分析检测模块;所述服务器端信息采集模块负责采集并及时更新为进行检测而必要的基准数据集,并将检测任务信息分发给所有向服务器发出请求的客户端;所述数据存取模块与本地数据库合作,存储和提供服务器端信息采集模块采集的基准数据集,及存储参与检测的所有客户端向服务器发送的采集到的数据集;所述流量劫持分析检测模块负责从不同视角展示数据库内的各方面数据,通过算法识别劫持是否发生并给出报告;所述客户端由客户端信息采集模块构成,所述客户端信息采集模块从服务器端获取具体检测任务,根据任务内容从互联网中采集信息,并将采集到的数据反馈到服务器端。
5.根据权利要求4所述一种安卓系统下应用推广中流量劫持的分析检测系统,其特征在于,所述客户端所采集的信息主要包括应用原始URL下载地址、APK嵌入的推广渠道信息、服务器IP地址、APK文件信息、采集时间、网络层路由信息、客户端ID、客户端公网IP地址、客户端位置信息以及可选的客户端设备信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010166601.5A CN111510429B (zh) | 2020-03-11 | 2020-03-11 | 一种安卓系统应用推广中流量劫持的分析检测方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010166601.5A CN111510429B (zh) | 2020-03-11 | 2020-03-11 | 一种安卓系统应用推广中流量劫持的分析检测方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111510429A CN111510429A (zh) | 2020-08-07 |
CN111510429B true CN111510429B (zh) | 2021-07-09 |
Family
ID=71877684
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010166601.5A Active CN111510429B (zh) | 2020-03-11 | 2020-03-11 | 一种安卓系统应用推广中流量劫持的分析检测方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111510429B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114448973A (zh) * | 2022-01-11 | 2022-05-06 | 贵阳朗玛视讯科技有限公司 | 一种获取应用程序推荐来源的方法和装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104079673A (zh) * | 2014-07-30 | 2014-10-01 | 北京奇虎科技有限公司 | 一种应用下载中防止dns劫持的方法、装置和系统 |
CN105227673A (zh) * | 2015-10-16 | 2016-01-06 | 北京奇虎科技有限公司 | 防劫持的数据下载方法、客户端、服务器及系统 |
CN105516246A (zh) * | 2015-11-25 | 2016-04-20 | 魅族科技(中国)有限公司 | 一种防应用程序下载劫持的方法及服务器 |
CN106060046A (zh) * | 2016-05-30 | 2016-10-26 | 努比亚技术有限公司 | 一种防止下载劫持的装置、移动终端和方法 |
CN106790071A (zh) * | 2016-12-21 | 2017-05-31 | 北京奇虎科技有限公司 | 一种dns全流量劫持风险的检测方法和装置 |
CN109120594A (zh) * | 2018-07-13 | 2019-01-01 | 北京三快在线科技有限公司 | 流量劫持检测方法及装置 |
US10210329B1 (en) * | 2015-09-30 | 2019-02-19 | Fireeye, Inc. | Method to detect application execution hijacking using memory protection |
CN109729054A (zh) * | 2017-10-31 | 2019-05-07 | 阿里巴巴集团控股有限公司 | 访问数据监测方法及相关设备 |
CN110149298A (zh) * | 2018-02-12 | 2019-08-20 | 北京京东尚科信息技术有限公司 | 一种劫持检测的方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10270806B2 (en) * | 2015-12-15 | 2019-04-23 | Microsoft Technology Licensing, Llc | Defense against NXDOMAIN hijacking in domain name systems |
CN106936849A (zh) * | 2017-04-21 | 2017-07-07 | 南京龙渊微电子科技有限公司 | 一种安卓应用程序安装包的下载劫持方法 |
-
2020
- 2020-03-11 CN CN202010166601.5A patent/CN111510429B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104079673A (zh) * | 2014-07-30 | 2014-10-01 | 北京奇虎科技有限公司 | 一种应用下载中防止dns劫持的方法、装置和系统 |
US10210329B1 (en) * | 2015-09-30 | 2019-02-19 | Fireeye, Inc. | Method to detect application execution hijacking using memory protection |
CN105227673A (zh) * | 2015-10-16 | 2016-01-06 | 北京奇虎科技有限公司 | 防劫持的数据下载方法、客户端、服务器及系统 |
CN105516246A (zh) * | 2015-11-25 | 2016-04-20 | 魅族科技(中国)有限公司 | 一种防应用程序下载劫持的方法及服务器 |
CN106060046A (zh) * | 2016-05-30 | 2016-10-26 | 努比亚技术有限公司 | 一种防止下载劫持的装置、移动终端和方法 |
CN106790071A (zh) * | 2016-12-21 | 2017-05-31 | 北京奇虎科技有限公司 | 一种dns全流量劫持风险的检测方法和装置 |
CN109729054A (zh) * | 2017-10-31 | 2019-05-07 | 阿里巴巴集团控股有限公司 | 访问数据监测方法及相关设备 |
CN110149298A (zh) * | 2018-02-12 | 2019-08-20 | 北京京东尚科信息技术有限公司 | 一种劫持检测的方法和装置 |
CN109120594A (zh) * | 2018-07-13 | 2019-01-01 | 北京三快在线科技有限公司 | 流量劫持检测方法及装置 |
Non-Patent Citations (3)
Title |
---|
Identifying Malicious Software Using Deep Residual Long-Short Term Memory;Aziz Alotaibi;《IEEE Access》;IEEE;20191106;第7卷;全文 * |
互联网流量安全问题分析与对策;芦天亮;《中国人民公安大学学报(自然科学版)》;20180515;第02卷(第24期);全文 * |
基于Android应用程序安装包隐蔽下载劫持漏洞;朱珠;《计算机应用》;20180607;第9卷(第38期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111510429A (zh) | 2020-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10841324B2 (en) | Method and system for uniquely identifying a user computer in real time using a plurality of processing parameters and servers | |
Caballero et al. | Measuring {Pay-per-Install}: The commoditization of malware distribution | |
CN107729352B (zh) | 页面资源加载方法及终端设备 | |
CN107341160B (zh) | 一种拦截爬虫的方法及装置 | |
US12088620B2 (en) | Interactive web application scanning | |
US8180376B1 (en) | Mobile analytics tracking and reporting | |
EP2332063B1 (en) | Uniquely identifying network-distributed devices without explicitly provided device or user identifying information | |
CN106664592B (zh) | 用于内容分发的方法和系统及相应的计算机可读介质 | |
US7536458B2 (en) | Distribution of binary executables and content from peer locations/machines | |
US20080229419A1 (en) | Automated identification of firewall malware scanner deficiencies | |
US8831629B2 (en) | System and method for identifying mobile communication devices | |
US20150026289A1 (en) | Content source discovery | |
CN109802919B (zh) | 一种web网页访问拦截方法及装置 | |
CN107135236A (zh) | 一种目标域名劫持的检测方法和系统 | |
GB2446421A (en) | Tracking web server | |
US12063242B2 (en) | Vulnerability scanning of a remote file system | |
US11509676B2 (en) | Detecting untracked software components on an asset | |
Starov et al. | Betrayed by your dashboard: Discovering malicious campaigns via web analytics | |
US10360133B2 (en) | Analyzing analytic element network traffic | |
CN104239798B (zh) | 移动办公系统及其杀毒方法和系统中的移动端、服务器端 | |
Dabrowski et al. | Browser history stealing with captive Wi-Fi portals | |
Mi et al. | Your phone is my proxy: Detecting and understanding mobile proxy networks | |
CN111510429B (zh) | 一种安卓系统应用推广中流量劫持的分析检测方法及系统 | |
Balduf et al. | The cloud strikes back: Investigating the decentralization of IPFS | |
CN109889625B (zh) | 访问服务器的方法、记账节点、服务器及计算机可读存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |