CN110727952A - 一种移动应用程序第三方库隐私收集辨识方法 - Google Patents

一种移动应用程序第三方库隐私收集辨识方法 Download PDF

Info

Publication number
CN110727952A
CN110727952A CN201910816611.6A CN201910816611A CN110727952A CN 110727952 A CN110727952 A CN 110727952A CN 201910816611 A CN201910816611 A CN 201910816611A CN 110727952 A CN110727952 A CN 110727952A
Authority
CN
China
Prior art keywords
privacy
api
party library
app
mobile 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
CN201910816611.6A
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 Computer Network and Information Security Management Center
Original Assignee
National Computer Network and Information Security Management Center
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 Computer Network and Information Security Management Center filed Critical National Computer Network and Information Security Management Center
Priority to CN201910816611.6A priority Critical patent/CN110727952A/zh
Publication of CN110727952A publication Critical patent/CN110727952A/zh
Pending legal-status Critical Current

Links

Images

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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6263Protecting personal data, e.g. for financial or medical purposes during internet communication, e.g. revealing personal data from cookies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/53Decompilation; Disassembly

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种移动应用程序第三方库隐私收集辨识方法,实现对隐私API调用源和隐私收集行为主体的辨识,降低了检测技术实现的时间成本和技术成本,从而提高了第三方库隐私收集的检测效率,同时提高了检测方法的适配性。

Description

一种移动应用程序第三方库隐私收集辨识方法
技术领域
本发明属于计算机技术领域,具体涉及一种移动应用程序第三方库隐私收集辨识方法。
背景技术
随着移动互联网和智能终端的飞速发展,App数量呈指数性增长。由于App开发的准入门槛较低,国内第三方应用市场如雨后春笋般出现,App上架审核机制不完善等一系列原因导致App出现质量参差不齐、安全性无法保证的局面。腾讯发布的《2018年度网络隐私及网络欺诈行为研究分析报告》显示,当前所有的Android端App都会不同程度获取手机隐私权限,比例达到100%。Android第三方库封装系统底层代码,避免开发者做重复多余的工作,让其专注于业务逻辑,App通过集成第三方库得以快速实现业务功能,降低开发成本。但是第三方库普遍以Jar格式对外发布,App开发者无法阅读源代码,因此App开发者不了解第三方库的全部功能和安全风险。App和第三方库在同一进程下运行,两者共享权限,第三方库可以在用户不知情的情况下收集隐私信息。第三方库的安全风险来自App权限的滥用,然而现有的访问控制机制无法区分隐私访问请求的来源,因此,辨识第三方库的隐私收集情况有着迫切的需求。
现有研究主要围绕App的隐私收集和广告第三方库检测展开,而对于第三方库的研究较少。隐私收集检测的方法包括基于污点的静态数据流分析方法、基于污点的动态数据流分析方法和基于意图的数据流分析方法等。但是,上述现有方法主要实现的是App级别的隐私收集辨识,但无法辨识App集成的第三方库的隐私收集行为,另外,开发者为防止App被不法分子破解后重用代码成果,普遍采用代码混淆技术模糊源代码,或者采用加固技术进行安全保护,这些保护措施使依赖静态检测技术的检测方法,提高了时间成本和技术成本;此外,现有技术中,为实现对App隐私收集行为的动态捕获,现有方法需要修改Android操作系统源代码,采用Android内核监控技术方案或应用层监控技术方案替换原有系统服务例程函数,这就需要研究人员对Android系统架构和逻辑实现进行深入研究,增大了实现上的技术难度。
总之,现有技术中针对App的第三方库隐私收集检测方法主要存在检测效率低、针对的App有限检测覆盖面小、适配性较差及实现难度较高的问题。
发明内容
有鉴于此,本发明提供了一种移动应用程序第三方库隐私收集辨识方法,实现对隐私API调用源和隐私收集行为主体的辨识,降低了检测技术实现的时间成本和技术成本,从而提高了第三方库隐私收集的检测效率,同时提高了检测方法的适配性。
本发明提供的一种移动应用程序第三方库隐私收集辨识方法,具体包括以下步骤:
步骤1、对移动应用程序进行反编译,得到反编译后的文件;遍历所述文件,提取除移动应用程序包名以外的第三方库名称列表;
步骤2、动态监控隐私API的调用情况;
当移动应用程序调用某个隐私API时,提取当前线程的系统堆栈信息,分析得到该隐私API调用链;
步骤3、分析所述隐私API调用链,还原隐私信息收集路径,如果所述隐私信息收集路径中涉及的第三方库调用,与步骤1中得到的所述第三方库名称列表中的名称匹配,则可识别出隐私API调用源和作为隐私收集行为主体的第三方库。
进一步地,所述步骤2中动态监控隐私API的调用情况,基于Xposed框架实现。
进一步地,所述隐私API调用链采用{Api1,Api2,...,Apin}表示,其对应的调用关系为Api1→Api2→...→Apin,其中,Apin为隐私API。
有益效果:
1、本发明基于动态运行辨识第三方库的隐私收集情况,无需深入分析App的源代码,可以有效避免开发者设置的代码混淆保护,解决混淆环境下的App检测问题,提高检测效率和覆盖面,同时,由于本发明基于动态运行实现,无需对App进行脱壳预处理,从而提高了检测效率;而且App运行在黑盒环境中,不必关注App的类型和功能,可用于辨识各类App的第三方库隐私收集情况,提高了检测方法的适配性。
2、本文发明采用基于Xposed框架实现动态监控隐私API的调用情况,无需修改Android操作系统和目标App,可实时监控App运行情况和各类系统参数,从而获取App的API调用序列,从而降低了实现难度。
附图说明
图1为本发明提供的一种移动应用程序第三方库隐私收集辨识方法流程图。
图2为本发明提供的一种移动应用程序第三方库隐私收集辨识方法实现的系统结构图。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
本发明提供了一种移动应用程序第三方库隐私收集辨识方法,其核心思想是:采用App动态运行过程中实时监控App第三方库的隐私收集情况,利用堆栈调用链分析App的隐私收集行为,区分隐私收集方,最终辨识第三方库的隐私收集。
本发明提供的一种移动应用程序第三方库隐私收集辨识方法,如图1所示,具体包括以下步骤:
步骤1、提取第三方库名称
输入待检测App,提取其调用的第三方库列表后存储到第三方数据库,主要包括以下两步:
预处理:将App输入到App反编译单元,由单元中的反编译引擎进行App分解,反编译App中的DEX文件、解码资源文件等,最终生成smali文件和AndroidManifest.xml等文件。
第三方库提取:AndroidManifest.xml文件中声明了App包名,预处理后第三方库与主包并列存在,通过扫描smali文件夹下的文件夹名称可以得到第三方库名称列表,并将第三方库名称列表存储到第三方数据库中。
步骤2、隐私收集动态监控
在App动态运行过程中劫持隐私API调用,捕获隐私获取行为和相应的数据,主要包括以下两步:
App运行:在检测环境下,可以选择使用安装Xposed监控模块的检测环境,运行App。
隐私API触发:利用Hook技术对隐私API添加“钩子”函数,App调用隐私API后,回调“钩子”函数的处理方法,记录方法参数和API调用情况,完成隐私API的劫持工作,实现对隐私API的实时触发监控。
步骤3、隐私收集辨识
发现App获取隐私信息后,从系统堆栈中提取隐私API调用链,根据第三方库名称列表辨识对应的行为主体,主要包括以下两步:
堆栈调用链分析:定义API调用链表述为{Api1,Api2,...,Apin},对应调用关系为Api1→Api2→...→Apin,其中,Apin为隐私API。该链详细记录隐私API的调用过程。
第三方库调用:从第三方数据库中提取第三方库列表,再与API调用链进行比对,如果与调用链中API对应的包名匹配,则说明第三方库在收集用户的隐私信息,识别出隐私信息的获取主体是第三方库。
实施例:
本实施例采用文发明提供的一种移动应用程序第三方库隐私收集辨识方法实现了检测系统,主要包括第三方库提取模块、隐私收集监控模块和隐私收集辨识模块,如图2所示,具体内容如下:
1、第三方库提取模块,其功能是将App进行分析处理,提取App调用的第三方库列表。设有两个单元:App反编译单元和第三方库提取单元。
App反编译单元:输入待检测App,将其进行反编译处理,得到可识别的AndroidManifest.xml、smali等。
第三方库提取单元:解析AndroidManifest.xml识别App包名。对smali目录下的文件夹进行遍历操作,提取除App包名以外的第三方库名称。
2、隐私收集监控模块,其功能是对隐私API实现Hook操作,动态监控API的调用情况,一旦App调用相应API会被立刻发现。设有隐私API监控单元和隐私API触发单元。
隐私API监控单元:基于Xposed框架研发,根据用途分类收集Android系统的隐私API集合(如隐私窃取会调用访问通讯录API等),在对应API处添加“钩子”函数,实现Hook功能。
隐私API触发单元:App在运行过程中调用隐私API时,会先执行预定的“钩子”函数,Xposed监控模块能够发现App的相应行为,可以实现拦截、修改等操作。
3、隐私收集辨识模块,其功能是发现App获取用户的隐私信息时,从系统堆栈中提取API调用链,根据API调用关系来辨识第三方库的隐私收集行为。设有两个单元:堆栈调用链分析单元和隐私收集辨识单元。
堆栈调用链分析单元:App运行时触发监控规则后,提取当前线程的系统堆栈信息,可以分析得到隐私API的调用顺序。
隐私收集辨识单元:通过分析隐私API的调用顺序,可以还原隐私信息的收集路径,识别隐私API的调用源和隐私收集的行为主体。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (3)

1.一种移动应用程序第三方库隐私收集辨识方法,其特征在于,具体包括以下步骤:
步骤1、对移动应用程序进行反编译,得到反编译后的文件;遍历所述文件,提取除移动应用程序包名以外的第三方库名称列表;
步骤2、动态监控隐私API的调用情况;
当移动应用程序调用某个隐私API时,提取当前线程的系统堆栈信息,分析得到该隐私API调用链;
步骤3、分析所述隐私API调用链,还原隐私信息收集路径,如果所述隐私信息收集路径中涉及的第三方库调用,与步骤1中得到的所述第三方库名称列表中的名称匹配,则可识别出隐私API调用源和作为隐私收集行为主体的第三方库。
2.根据权利要求1所述的方法,其特征在于,所述步骤2中动态监控隐私API的调用情况,基于Xposed框架实现。
3.根据权利要求1所述的方法,其特征在于,所述隐私API调用链采用{Api1,Api2,...,Apin}表示,其对应的调用关系为Api1→Api2→...→Apin,其中,Apin为隐私API。
CN201910816611.6A 2019-08-30 2019-08-30 一种移动应用程序第三方库隐私收集辨识方法 Pending CN110727952A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910816611.6A CN110727952A (zh) 2019-08-30 2019-08-30 一种移动应用程序第三方库隐私收集辨识方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910816611.6A CN110727952A (zh) 2019-08-30 2019-08-30 一种移动应用程序第三方库隐私收集辨识方法

Publications (1)

Publication Number Publication Date
CN110727952A true CN110727952A (zh) 2020-01-24

Family

ID=69218743

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910816611.6A Pending CN110727952A (zh) 2019-08-30 2019-08-30 一种移动应用程序第三方库隐私收集辨识方法

Country Status (1)

Country Link
CN (1) CN110727952A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112565306A (zh) * 2021-02-24 2021-03-26 江苏苏测检测认证有限公司 一种app隐私数据收集的第三方服务器识别方法
CN112671671A (zh) * 2021-03-16 2021-04-16 北京邮电大学 基于第三方库的第三方流量识别方法、装置及设备
CN114329359A (zh) * 2021-12-30 2022-04-12 湖南快乐阳光互动娱乐传媒有限公司 Api调用控制方法及装置、存储介质及电子设备
CN114416480A (zh) * 2022-01-12 2022-04-29 广州九尾信息科技有限公司 一种监测安卓应用隐私相关api调用的方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100251340A1 (en) * 2009-03-27 2010-09-30 Wavemarket, Inc. System and method for managing third party application program access to user information via a native application program interface (api)
CN104239799A (zh) * 2014-09-05 2014-12-24 清华大学 基于行为链的Android应用程序隐私窃取检测方法及系统
CN104992081A (zh) * 2015-06-24 2015-10-21 华中科技大学 一种Android应用程序第三方代码的安全增强方法
CN108376081A (zh) * 2016-11-21 2018-08-07 北京大学(天津滨海)新代信息技术研究院 一种检测移动应用第三方库功能的方法
CN109255235A (zh) * 2018-09-17 2019-01-22 西安电子科技大学 基于用户态沙箱的移动应用第三方库隔离方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100251340A1 (en) * 2009-03-27 2010-09-30 Wavemarket, Inc. System and method for managing third party application program access to user information via a native application program interface (api)
CN104239799A (zh) * 2014-09-05 2014-12-24 清华大学 基于行为链的Android应用程序隐私窃取检测方法及系统
CN104992081A (zh) * 2015-06-24 2015-10-21 华中科技大学 一种Android应用程序第三方代码的安全增强方法
CN108376081A (zh) * 2016-11-21 2018-08-07 北京大学(天津滨海)新代信息技术研究院 一种检测移动应用第三方库功能的方法
CN109255235A (zh) * 2018-09-17 2019-01-22 西安电子科技大学 基于用户态沙箱的移动应用第三方库隔离方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112565306A (zh) * 2021-02-24 2021-03-26 江苏苏测检测认证有限公司 一种app隐私数据收集的第三方服务器识别方法
CN112671671A (zh) * 2021-03-16 2021-04-16 北京邮电大学 基于第三方库的第三方流量识别方法、装置及设备
CN112671671B (zh) * 2021-03-16 2021-06-29 北京邮电大学 基于第三方库的第三方流量识别方法、装置及设备
CN114329359A (zh) * 2021-12-30 2022-04-12 湖南快乐阳光互动娱乐传媒有限公司 Api调用控制方法及装置、存储介质及电子设备
CN114416480A (zh) * 2022-01-12 2022-04-29 广州九尾信息科技有限公司 一种监测安卓应用隐私相关api调用的方法

Similar Documents

Publication Publication Date Title
CN110727952A (zh) 一种移动应用程序第三方库隐私收集辨识方法
CN105956474B (zh) Android平台软件异常行为检测系统
US9900337B2 (en) Selective website vulnerability and infection testing
Isohara et al. Kernel-based behavior analysis for android malware detection
CN103186740B (zh) 一种Android恶意软件的自动化检测方法
CN104715196B (zh) 智能手机应用程序的静态分析方法及系统
CN112685737A (zh) 一种app的检测方法、装置、设备及存储介质
US20200193031A1 (en) System and Method for an Automated Analysis of Operating System Samples, Crashes and Vulnerability Reproduction
CN103746992B (zh) 基于逆向的入侵检测系统及其方法
KR101537088B1 (ko) Api 호출 흐름 기반의 악성코드 탐지 시스템 및 방법
CN104392177A (zh) 基于安卓平台的病毒取证系统及其方法
CN103401845A (zh) 一种网址安全性的检测方法、装置
CN108710798B (zh) 一种Android第三方库间共谋行为检测方法
Zhang et al. ScanMe mobile: a cloud-based Android malware analysis service
CN112231697A (zh) 第三方sdk行为的检测方法、装置、介质及电子设备
Bhatia et al. Tipped Off by Your Memory Allocator: Device-Wide User Activity Sequencing from Android Memory Images.
CN113177205A (zh) 一种恶意应用检测系统及方法
CN112765672A (zh) 一种恶意代码的检测方法、装置和计算机可读介质
CN106845235B (zh) 一种基于机器学习方法的安卓平台回调函数检测方法
CN102789558A (zh) 分析移动设备中程序安装和程序运行的方法和系统
CN111314326B (zh) Http漏洞扫描主机的确认方法、装置、设备及介质
CN116305120A (zh) 一种双重验证的安卓恶意软件混合检测系统及方法
CN111385253A (zh) 一种面向配电自动化系统网络安全的脆弱性检测系统
CN109635015B (zh) 属性数据使用对象的确定方法、装置和服务器
CN110336777B (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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20200124