CN113282909B - 一种设备指纹信息采集项识别方法 - Google Patents

一种设备指纹信息采集项识别方法 Download PDF

Info

Publication number
CN113282909B
CN113282909B CN202110510506.7A CN202110510506A CN113282909B CN 113282909 B CN113282909 B CN 113282909B CN 202110510506 A CN202110510506 A CN 202110510506A CN 113282909 B CN113282909 B CN 113282909B
Authority
CN
China
Prior art keywords
data
information acquisition
point
equipment
device information
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
Application number
CN202110510506.7A
Other languages
English (en)
Other versions
CN113282909A (zh
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.)
Nanjing University
Original Assignee
Nanjing University
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 Nanjing University filed Critical Nanjing University
Priority to CN202110510506.7A priority Critical patent/CN113282909B/zh
Publication of CN113282909A publication Critical patent/CN113282909A/zh
Application granted granted Critical
Publication of CN113282909B publication Critical patent/CN113282909B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Collating Specific Patterns (AREA)

Abstract

本发明公开一种设备指纹信息采集项识别方法,该方法包括两部分,第一是对保存用于生成设备指纹的设备信息数据对象的识别,根据应用内数据流的特征來实现;第二是对保存设备信息的数据对象的数据依赖进行分析,以追踪所有采集设备信息的API。本发明尝试从应用中代码的角度理解和发现用于设备指纹生成的设备信息采集项,基于已有的安卓平台分析工具FlowDroid和Amandroid提供的数据流,通过启发式的方法发现未被记录的设备信息采集方式,以弥补现有分析工具漏报的问题。

Description

一种设备指纹信息采集项识别方法
技术领域
本发明涉及一种设备指纹信息采集项识别方法,属于是网络安全与隐私保护技术领域。
背景技术
在日常生活中,各大APP都存在对于用户的持续追踪。服务商对用户设备的持续追踪,一方面是为了识别恶意用户,进行“风控”。另一方面是为了对用户的使用行为进行持续监控。服务商可以根据采集的设备信息,将用户在不同应用和平台的各种行为关联起来,以提供个性化的服务,或是获取广告收益。其中包括用户在各个APP中的活动数据,比如购物历史、年龄职业、健康状况等等个人信息。如果这些信息被泄露,将会侵害用户的个人隐私。
服务商可根据APP采集的多种区分度较低、较不敏感的设备信息,对用户进行持续追踪。部分识别度较高的采集项,一方面在安卓系统上采集时需要对应的权限,但即使是APP缺少相应权限,即用户限制了对一些敏感设备识别符的采集,使得应用无法获得这些识别度较高的设备信息,各种各样丰富的设备信息让流量平台依旧有能力对用户设备进行精准的持续追踪。Palfinger等对Android系统的绝大部分API进行了自动化调用,并在不同设备上运行与比对,发现有500多种API可用來区分设备,其中不少都不需要权限。Reardon等通过对数万Android APP运行过程中网络流量的审计发现,仍然有许多设备信息,即使没有相应的权限,也被APP通过侧信道的方式获取。
对于移动平台应用隐私泄露的问题有不少相关的研究,比如FlowDroid就是使用较为广泛的安卓应用隐私泄露问题分析框架,但由于设计目的不同,现有的分析工具对这一问题都存在种种局限性。以污点追踪为例,无论是动态还是静态的分析方法,都需要提前设置需要进行污点追踪的API,但由于采集设备信息的方式比较多样化,这种方式通常无法覆盖所有的采集项。也有从流量内容中通过关键字来匹配可能采集的隐私项,但这种方式一方面需要能够截获应用的网络流量,而部分应用对网络流量的保护较好,比如使用了证书固定、私有协议的手段防止被窃听。
发明内容
发明目的:弥补现有设备指纹采集项分析方法中,分析结果有所遗漏的问题,本发明尝试从代码的角度理解与发现用于设备指纹生成的设备信息采集项。基于应用静态分析框架,根据应用内数据流特征发现保存设备信息的数据对象,之后通过分析该数据对象的数据依赖,查找所有影响该数据对象取值的语句。
本发明尝试解决自动化地识别应用内的设备信息采集行为,用户可通过伪造或隐藏这些信息,绕过应用的跨设备追踪机制,保障自身隐私。
技术方案:一种设备指纹信息采集项识别方法,从应用中代码的角度理解和发现用于设备指纹生成的设备信息采集项,发现未被记录的设备信息采集方式,以弥补现有分析工具漏报的问题。该方法包括两步,第一步是对保存用于生成设备指纹的设备信息数据对象的识别,根据应用内数据流的特征來实现;第二步是对保存设备信息的数据对象的数据依赖进行分析,以追踪所有采集设备信息的API。
所述设备指纹信息采集项识别方法用于安卓系统,基于安卓平台分析工具FlowDroid和Amandroid提供的数据流,通过启发式的方法发现未被记录的设备信息采集方式,以弥补现有分析工具漏报的问题。
第一步中,将用于生成设备指纹的设备信息采集点作为Source点进行污点追踪,并保存下污点追踪过程中污点传播时途经的函数的签名。
通过识别符用作设备识别同时标识保存设备信息的数据对象。IMEI,Android ID,MAC地址等区分度较高的识别符经常被用于生成设备指纹。应用在采集多种设备信息时,也会尝试采集这些较为常用的识别符。同时,这些识别符用作设备识别的概率较高,会有助于我们标识保存设备信息的数据对象。
下表展示了常用的设备信息的采集项API,可以作为污点分析的数据流的起点:
之后将污点分析时数据流在程序语句间的传播路径以有向图的形式保存,所述有向图的节点是函数的签名,方向是从污点分析的Source点指向Sink点。所述设备信息的数据对象包含多种设备信息,因此多个采集点在污点传播时都会途径设备信息的数据对象所在的函数。因此设备信息的数据对象所在的函数将采集的设备信息保存至存储设备信息的数据对象的函数对应的节点入度较高,查询这些节点,就能筛选出处理和保存了多种设备信息采集项的方法。所述Source点指的是数据的产生点。所述Sink点指的是污点分析时,作为Source点的数据,经过程序语句的传播和处理之后,到达的使用这些数据的函数。
通过FlowDroid或Amandroid将设备信息采集点作为Source点进行污点追踪。
第二步中,通过分析设备信息的数据对象的数据依赖來查找未知的设备信息采集点。
以第一步中找到的函数作为起点,通过Amandroid反向追踪其数据依赖,寻找之前未记录的采集设备信息的API,作为分析结果。但由于分析结果之中存在较多的误报,采用了以下过滤流程,寻找数据依赖中同时满足以下条件的API或系统常量,以减少误报:
1)保留Android系统提供的API、系统常量和Native函数。
用户代码通常依靠Android系统提供的API或是一些特定的系统常量來获取信息,比如部分系统属性数据的采集是直接获取了android.os.Build中的信息。因此目标语句应当包含Android系统提供的API或系统常量或Native函数。
2)保留数据依赖的终点,数据依赖的终点即某一语句没有其他数据依赖。
由于采集的设备信息由系统API或者系统常量直接产生,所以保留数据依赖中的终点,可以有效减少误报。
由于目前部分APP中存在的采集大量设备信息并上传的情况,该方法这一类APP中对设备信息的采集行为具有一定的分辨能力。
附图说明
图1是采集设备信息的流程图。
具体实施方式
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
安卓系统设备指纹信息采集项识别方法,包括数据对象的识别以及对保存设备信息的数据对象的数据依赖分析两步。
第一步:数据对象的识别
如图1所示,为APP中采集设备信息的部分逻辑。
通常当应用启动时,完成应用权限申请操作之后,便会进行这一步流程。APP会开始尝试采集用于设备指纹生成的设备信息,并上传至服务端。
部分设备信息识别度较高,甚至单条信息就足以区分用户。但由于识别度较高的识别符一方面相关法律法规对其采集有限制,另一方面也大多需要一些用户权限。此外,存在一些作弊手段可以绕过。为了处理这些情况,应用会尝试采集多种设备信息。同时,由于API设计、开发范式等原因,应用会将这些设备信息保存至一个数据对象再并上传,部分应用采集的设备信息高达百余项。
由于应用往往会采集很多设备信息一并上传至服务端。在对某一应用反编译的代码中,可以看到这些信息会先以JSON形式保存。
针对这种方式,我们采用了一种启发式的方法,从数据流的角度理解代码意图。由于该数据对象保存了很多设备信息。因此如果我们从被用作生成设备指纹的安卓系统API入手,分析其数据流,那么就会发现很多数据流都途径了将这些设备信息传入该数据对象方法。而且往往是反复调用同一方法,比如JSONObject的put方法。
因此,我们将设备信息采集项作为了FlowDroid污点追踪的Source点,将网络请求相关的API作为了Sink点,进行污点传播的分析。同时,我们也保存了追踪结果中每个分析结果中数据的具体传播路径。
提取出这些传播路径对应的方法后,我们将污点分析后获取的数据流以有向图的方式保存,这一步使用Python库NetworkX进行,也可以使用其他工具。保留节点入度较高的前5%的方法,之后分析方法中的语句,是否存在对某一数据对象的重复操作,如果存在,则更可能是保存设备信息的数据对象,比如JSONObject的put方法。这样,我们就能将保存设备信息的数据对象识别出来。
第二步:对保存设备信息的数据对象的数据依赖分析
这一步的目的,从数据流的角度理解代码行为。如前文所述,应用中具有多种采集设备信息的行为,现有的分析工具往往不能将其完全覆盖。而在上一步中我们已经可以识别出保存了所有需要上传的设备信息的数据对象,那么这一步只需要找到其中保存的所有设备信息即可。
我们可以从数据依赖的角度理解和解决这一问题,找到影响了存入该数据对象的各个值的语句即可。以之前的代码片段为例,即找到影响了传入示例之中JSONObject的各个值的语句。
基于已有的安卓静态程序分析框架来进行该流程。这里我们使用Amandroid来进行。即以前文中提到的大量调用了JSONObject的方法为入口,分析方法中对应语句的数据依赖。
另外,由于分析结果中也存在一定程度的误报情况,因此我们又从以下角度对分析结果采取了一些过滤。提取满足以下条件的结果。
(1)保留Android系统提供的API、系统常量和Native函数。
用户代码通常依靠Android系统提供的API或是一些特定的系统常量來获取信息,部分系统属性数据的采集是直接获取了android.os.Build中的信息,因此目标语句应当包含Android系统提供的API或系统常量或Native函数。
(2)保留数据依赖的终点,数据依赖的终点即某一语句没有其他数据依赖。
由于采集的设备信息由系统API或者系统常量直接产生,所以保留数据依赖中的终点,可以有效减少误报。
同时,我们也能够采用动态API监控的方式来确认分析结果的准确性。由于设备指纹生成通常在APP启动时进行,无需过于复杂的用户交互,因此我们能够通过Hook的方式,对提取结果中的API进行监控,分析其调用时的参数、调用栈等信息,以验证数据依赖分析的结果。使用代码注入的方式,在APP的方法中注入打印调用栈和参数的语句,实现该过程。
本发明方法对于未加壳的安卓应用在Java层生成设备指纹的设备信息采集行为具有一定的分析效果。而由于部分厂商一方面对这一问题重视程度有限,另一方面部分保护手段会产生一定的性能开销和开发成分,所以这种分析方式可以处理部分情况。
本方法依赖于应用内的数据流特征,但由于目前公开的对安卓应用数据流分析的工具,比如FlowDroid和Amandroid往往在分析时有所遗漏,部分分析结果仍有缺失。随着数据流提取的准确性提高,本方法的效果也会更加显著。

Claims (4)

1.一种设备指纹信息采集项识别方法,其特征在于,所述方法包括两步:第一步是对保存用于生成设备指纹的设备信息数据对象的识别,根据应用内数据流的特征来实现;第二步是对保存设备信息的数据对象的数据依赖进行分析,以追踪所有采集设备信息的API;
所述第一步中,将用于生成设备指纹的设备信息采集点作为Source点进行污点追踪,并保存下其传播时途径的函数的签名;
设备信息的采集项API,作为污点分析的数据流的起点;将污点分析时数据流在程序语句间的传播路径以有向图的形式保存,所述有向图的节点是函数的签名,方向是从污点分析的Source点指向Sink点;
所述Source点指的是数据的产生点;所述Sink点指的是污点分析时,作为Source点的数据,经过程序语句的传播和处理之后,到达的使用这些数据的函数;
对分析结果采用以下过滤流程,寻找数据依赖中同时满足以下条件的API或系统常量:
1)保留Android系统提供的API、系统常量和Native函数;
2)保留数据依赖的终点,所述数据依赖的终点即某一语句没有其他数据依赖;
所述第二步中,通过分析设备信息的数据对象的数据依赖来查找未知的设备信息采集点;以第一步中找到的函数作为起点,通过反向追踪其数据依赖,寻找之前未记录的采集设备信息的API,作为分析结果。
2.根据权利要求1所述的设备指纹信息采集项识别方法,其特征在于,所述方法用于安卓系统,基于安卓平台分析工具FlowDroid和Amandroid提供的数据流,通过启发式的方法发现未被记录的设备信息采集方式。
3.根据权利要求1所述的设备指纹信息采集项识别方法,其特征在于,将识别符用作设备识别同时标识保存设备信息的数据对象。
4.根据权利要求1所述的设备指纹信息采集项识别方法,其特征在于,通过FlowDroid或Amandroid将设备信息采集点作为Source点进行污点追踪。
CN202110510506.7A 2021-05-11 2021-05-11 一种设备指纹信息采集项识别方法 Active CN113282909B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110510506.7A CN113282909B (zh) 2021-05-11 2021-05-11 一种设备指纹信息采集项识别方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110510506.7A CN113282909B (zh) 2021-05-11 2021-05-11 一种设备指纹信息采集项识别方法

Publications (2)

Publication Number Publication Date
CN113282909A CN113282909A (zh) 2021-08-20
CN113282909B true CN113282909B (zh) 2024-04-09

Family

ID=77278533

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110510506.7A Active CN113282909B (zh) 2021-05-11 2021-05-11 一种设备指纹信息采集项识别方法

Country Status (1)

Country Link
CN (1) CN113282909B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102737190A (zh) * 2012-07-04 2012-10-17 复旦大学 基于静态分析的Android应用日志中信息泄漏隐患的检测方法
WO2016060067A1 (ja) * 2014-10-14 2016-04-21 日本電信電話株式会社 特定装置、特定方法および特定プログラム
CN106384050A (zh) * 2016-09-13 2017-02-08 哈尔滨工程大学 一种基于最大频繁子图挖掘的动态污点分析方法
CN107330345A (zh) * 2017-07-05 2017-11-07 北京理工大学 一种检测隐私数据泄露的方法和装置
CN108229158A (zh) * 2018-01-10 2018-06-29 西安电子科技大学 一种Android中存储的用户隐私信息的保护方法
CN109413414A (zh) * 2018-12-10 2019-03-01 南京大学 一种基于安卓系统的静默拍照检测方法
CN109522235A (zh) * 2018-11-29 2019-03-26 南京大学 一种针对安卓动态加载的隐私泄露检测的方法
CN109995582A (zh) * 2019-03-13 2019-07-09 北京国舜科技股份有限公司 基于实时状态的资产设备管理系统及方法
CN111339852A (zh) * 2020-02-14 2020-06-26 北京百度网讯科技有限公司 追踪方法、装置、电子设备和计算机可读存储介质
CN112714045A (zh) * 2020-12-31 2021-04-27 浙江远望信息股份有限公司 一种基于设备指纹和端口的快速协议识别方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2806602A4 (en) * 2013-02-04 2015-03-04 Huawei Tech Co Ltd CHARACTER EXTRACTION DEVICE, NETWORK TRAFFIC IDENTIFICATION PROCESS, DEVICE AND SYSTEM
US9705728B2 (en) * 2013-03-15 2017-07-11 Google Inc. Methods, systems, and media for media transmission and management
US10922937B2 (en) * 2017-11-28 2021-02-16 Wireless Guardian, Inc. Methods and apparatus to locate and track mobile device users for security applications
US10803394B2 (en) * 2018-03-16 2020-10-13 Accenture Global Solutions Limited Integrated monitoring and communications system using knowledge graph based explanatory equipment management
WO2021030388A1 (en) * 2019-08-13 2021-02-18 Mastercard International Incorporated Systems and methods for use in provisioning tokens associated with digital identities

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102737190A (zh) * 2012-07-04 2012-10-17 复旦大学 基于静态分析的Android应用日志中信息泄漏隐患的检测方法
WO2016060067A1 (ja) * 2014-10-14 2016-04-21 日本電信電話株式会社 特定装置、特定方法および特定プログラム
CN106384050A (zh) * 2016-09-13 2017-02-08 哈尔滨工程大学 一种基于最大频繁子图挖掘的动态污点分析方法
CN107330345A (zh) * 2017-07-05 2017-11-07 北京理工大学 一种检测隐私数据泄露的方法和装置
CN108229158A (zh) * 2018-01-10 2018-06-29 西安电子科技大学 一种Android中存储的用户隐私信息的保护方法
CN109522235A (zh) * 2018-11-29 2019-03-26 南京大学 一种针对安卓动态加载的隐私泄露检测的方法
CN109413414A (zh) * 2018-12-10 2019-03-01 南京大学 一种基于安卓系统的静默拍照检测方法
CN109995582A (zh) * 2019-03-13 2019-07-09 北京国舜科技股份有限公司 基于实时状态的资产设备管理系统及方法
CN111339852A (zh) * 2020-02-14 2020-06-26 北京百度网讯科技有限公司 追踪方法、装置、电子设备和计算机可读存储介质
CN112714045A (zh) * 2020-12-31 2021-04-27 浙江远望信息股份有限公司 一种基于设备指纹和端口的快速协议识别方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
基于API依赖关系的代码相似度分析;姚新磊;庞建民;岳峰;余勇;;计算机工程(第01期);80-84 *
基于设备信息伪造的Android应用隐私泄露问题研究;张力文;中国优秀硕士学位论文全文数据库 信息科技辑(第9期);I138-19 *
工业控制系统设备指纹识别技术;李沁园;孙歆;戴桦;赵明明;;网络空间安全(第01期);60-65 *
第4讲 Android APP隐私泄露检测技术研究进展;颜慧颖;潘;安庆杰;叶益林;;军事通信技术(第01期);97-104 *

Also Published As

Publication number Publication date
CN113282909A (zh) 2021-08-20

Similar Documents

Publication Publication Date Title
CN109753800B (zh) 融合频繁项集与随机森林算法的Android恶意应用检测方法及系统
CN103839005B (zh) 移动操作系统的恶意软件检测方法和恶意软件检测系统
CN103401845B (zh) 一种网址安全性的检测方法、装置
CN109727027B (zh) 账户识别方法、装置、设备及存储介质
CN110245273B (zh) 一种获取app业务特征库的方法及相应的装置
CN110071924B (zh) 基于终端的大数据分析方法及系统
CN103746992A (zh) 基于逆向的入侵检测系统及其方法
CN112818352B (zh) 数据库的检测方法及装置、存储介质及电子装置
Bernardi et al. A fuzzy-based process mining approach for dynamic malware detection
CN114528457A (zh) Web指纹检测方法及相关设备
CN109800569A (zh) 程序鉴别方法及装置
Feichtner et al. Obfuscation-resilient code recognition in Android apps
CN113282909B (zh) 一种设备指纹信息采集项识别方法
CN110691090B (zh) 网站检测方法、装置、设备及存储介质
US20190156024A1 (en) Method and apparatus for automatically classifying malignant code on basis of malignant behavior information
CN108427882B (zh) 基于行为特征抽取的安卓软件动态分析检测法
CN114531340B (zh) 日志获取方法、装置、电子设备、芯片及存储介质
CN115600201A (zh) 一种电网系统软件的用户账户信息安全处理方法
CN104363256B (zh) 一种手机病毒的识别和控制方法、设备与系统
CN109271781B (zh) 一种基于内核的应用程序获取超级权限行为检测方法与系统
CN113434826A (zh) 一种仿冒移动应用的检测方法,系统及相关产品
CN112688944B (zh) 局域网安全状态检测方法、装置、设备及存储介质
CN111291044A (zh) 敏感数据识别方法、装置、电子设备及存储介质
Liu et al. FGFDect: A fine-grained features classification model for Android Malware Detection
CN112565306B (zh) 一种app隐私数据收集的第三方服务器识别方法

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