首页> 中国专利> 一种疏堵结合的隐私保护方法与系统

一种疏堵结合的隐私保护方法与系统

摘要

本发明公开了一种疏堵结合的隐私保护方法与系统,该方法包括以下步骤:1)扫描应用,列出应用申请的所有权限,判断已安装应用是否涉及敏感权限;2)对涉及敏感权限的应用,提示用户对其使用欺骗函数策略或跳跃函数策略;所述欺骗函数策略具体如下:对应用程序涉及的敏感权限进行hook,在被hook的函数中植入欺骗函数,当监控到应用访问敏感权限时,对其返回一个虚假值;所述跳跃函数策略具体如下:提取恶意应用所涉及的权限,通过修改权限函数的入口地址,绕过恶意应用权限的调用;3)根据用户选定的策略,当敏感权限申请数据时,对敏感权限返回虚假值或直接跳过权限调用。本发明能有效解决现有的手机应用的隐私泄露、权限滥用等安全问题。

著录项

  • 公开/公告号CN106203162A

    专利类型发明专利

  • 公开/公告日2016-12-07

    原文格式PDF

  • 申请/专利权人 中国地质大学(武汉);

    申请/专利号CN201610514332.0

  • 申请日2016-06-30

  • 分类号G06F21/62(20130101);

  • 代理机构42102 湖北武汉永嘉专利代理有限公司;

  • 代理人唐万荣

  • 地址 430074 湖北省武汉市洪山区鲁磨路388号

  • 入库时间 2023-06-19 01:07:21

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-03-18

    专利实施许可合同备案的生效 IPC(主分类):G06F21/62 专利申请号:2016105143320 专利号:ZL2016105143320 合同备案号:X2022420000021 让与人:中国地质大学(武汉) 受让人:武汉时代地智科技股份有限公司 发明名称:一种疏堵结合的隐私保护方法与系统 申请日:20160630 申请公布日:20161207 授权公告日:20190319 许可种类:普通许可 备案日期:20220302

    专利实施许可合同备案的生效、变更及注销

  • 2020-01-14

    著录事项变更 IPC(主分类):G06F21/62 变更前: 变更后: 申请日:20160630

    著录事项变更

  • 2019-03-19

    授权

    授权

  • 2017-01-04

    实质审查的生效 IPC(主分类):G06F21/62 申请日:20160630

    实质审查的生效

  • 2016-12-07

    公开

    公开

说明书

技术领域

本发明涉及信息安全技术,尤其涉及一种疏堵结合的隐私保护方法与系统。

背景技术

Android操作系统是由Google和开放手持设备联盟共同开发的移动设备操作系统。自2008年9月,第一版Android( Android 1.1)发布,至今已历经近七年,其发展仍然呈现高速增长趋势。 Android作为一个开放式的移动互联网操作系统,已成为应用最广的移动互联网平台。据全球市场研究公司Gartner数据显示, 2014年Android系统全球市场占有率为80.7%,总销量为12.45亿部,牢牢占据着全球智能手机市场份额第一的位置。

360互联网安全中心将 2014年监测的 Android恶意程序根据中国反网络病毒联盟的分类标准进行了分类统计,其中感染次数最高的为资费消耗类,占比74.362%,之后是隐私窃取和恶意扣费,分别占10.8%和10.6%。其他类型(流氓行为、系统破坏、远程控制、恶意传播)的恶意程序感染量占比约为 1%。感染量最大的资费消耗类恶意程序的主要恶意行为是通过自动联网、上传和下载数据、安装其他应用等消耗用户手机流量和资费。

由于 Android 本身的开放性以及管理制度的不健全等诸多因素,其安全性问题正逐步暴露出来,已成为遭受攻击最多的移动平台。特别是国内第三方市场的审核制度不严格,让 Android 平台的安全性问题雪上加霜,时刻威胁着用户的隐私。

传统安全解决方案是对敏感权限进行拦截,这通常会导致应用程序功能受限,甚至程序崩溃。

发明内容

本发明要解决的技术问题在于针对现有技术中的缺陷,提供一种疏堵结合的隐私保护方法与系统。

本发明解决其技术问题所采用的技术方案是:一种疏堵结合的隐私保护方法,包括以下步骤:

1)扫描已安装的应用,列出应用申请的所有权限,判断已安装应用是否涉及敏感权限;

2)对涉及敏感权限的应用,提示用户对其使用欺骗函数策略或跳跃函数策略;

所述欺骗函数策略具体如下:对应用程序涉及的敏感权限进行hook,在被hook的函数中植入欺骗函数,当监控到应用访问敏感权限时,对其返回一个虚假值;

所述跳跃函数策略具体如下:提取恶意应用所涉及的权限,通过修改权限函数的入口地址,绕过恶意应用权限的调用;

3)根据用户选定的策略,当敏感权限申请数据时,对敏感权限返回虚假值或直接跳过权限调用。

按上述方案,所述步骤2)中策略函数实现流程如下:

2.1)在 hook方法的前后设定好参数信息;

2.2)找到要hook的类名;

2.3)根据要hook的类名,找到将要hook类的构造方法和非抽象方法;

2.4)将获取到的构造方法和非抽象方法进行hook操作;

2.5)对应用程序的相关权限进行虚假设置,当应用程序调用系统的服务的一个函数时,通过beforeHookedMethod()函数或afterHookedMethod()函数达到返回虚假值或跳过函数调用的目的。

一种疏堵结合的隐私保护系统,包括:

敏感权限扫描模块,用于扫描已安装的应用,判断已安装应用是否涉及敏感权限;

策略选择模块,用于对涉及敏感权限的应用,提示用户对其使用欺骗函数策略或跳跃函数策略;

策略函数模块,包括欺骗函数策略模块和跳跃函数策略模块;

欺骗函数策略模块,用于对应用程序涉及的敏感权限进行hook,在被hook的函数中植入欺骗函数,当监控到应用访问敏感权限时,对其返回一个虚假值;

跳跃函数策略模块,用于提取恶意应用所涉及的权限,通过修改权限函数的入口地址,绕过恶意应用权限的调用;

权限疏导防控模块,用于根据用户选定的策略,当敏感权限申请数据时,对敏感权限返回虚假值或直接跳过权限调用。

按上述方案,所述策略函数模块中策略函数实现流程如下:

1)在hook方法的前后设定好参数信息;

2)找到要hook的类名;

3)根据要hook的类名,找到将要hook类的构造方法和非抽象方法;

4)将获取到的构造方法和非抽象方法进行hook操作;

5)对应用程序的相关权限进行虚假设置,当应用程序调用系统的涉及隐私服务的时,通过beforeHookedMethod()函数或afterHookedMethod()函数达到返回虚假值或跳过函数调用的目的。

本发明产生的有益效果是:本发明用于解决现有的手机应用隐私数据的隐私泄露、权限滥用等安全问题。某些恶意应用私自获取通讯录信息、私自发送短信,私自获取地理位置信息等,泄露了用户的隐私信息。传统安全解决方案是对敏感权限进行拦截,这通常会导致应用程序功能受限,甚至程序崩溃。采用本发明方法,用户不用担心这个问题,用户可以利用欺骗函数策略和跳跃函数策略,对敏感权限返回一个虚假值或直接跳过权限的调用,实现对敏感权限的“疏导”防控。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1是本发明的方法流程示意图。

图2是本发明的权限疏导防控模块关系示意图。

图3是本发明中策略函数模块结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

如图1所示,图1是本发明的权限疏导防控流程示意图。引入了基于Xposed框架的Android API Hook技术,设计欺骗函数策略和跳跃函数策略。对于欺骗函数策略:对应用程序涉及的敏感权限进行hook,在被hook的函数中植入欺骗函数,当监控到应用访问敏感权限时,对其返回一个虚假值;对于跳跃函数策略:提取恶意应用所涉及的权限,通过修改权限函数的入口地址,绕过恶意应用权限的调用,进而实现对敏感权限的“疏导”防控。

图2是本发明的权限疏导防控模块关系示意图。流程是:

(1)Android 系统启动流程,在系统启动过程中调用 Xposed 框架;Android 系统启动,首先会加载系统内核,内核加载完毕后,第一个执行的 是 init 进程, init 进程首先要做的是设备的初始化工作, 然后读取 inic.rc 文件并 启动系统中的重要外部程序Zygote。

Zygote 进程是 Android 所有进程的孵化器进程,它启动后会首先初始化Dalvik 虚拟机,然后启动 system_server 并进入 Zygote 模式,通过 socket 等候命令。 system_server 进程就是由 Android 系统的 system/bin 目录下的 app_process程序运行创建的。当执行一个 Android 应用程序的时候, system_server 进程通过socket 方式发送命令给 Zygote,Zygote 收到命令后通过 fork 自身创建一个 Dalvik虚拟机实例来执行应用程序的入口函数,这样一个程序就启动完成了。

Zygote 提供了三种创建进程的方法:

1. fork():创建一个 Zygote 进程,可以继续 fork()出其它进程;

2.forkAndSpecialize():创建一个非 Zygote 进程,不可以 fork()出其它进 程;

3.forkSystemServer():创建一个系统服务进程,终止后子进程也必须终 止。 其中,Zygote 进程可以再 fork 出其他进程,非 Zygote 进程则不能 fork 其他 进程,而系统服务进程在终止后它的子进程也必须终止。

(2)用Xposed框架替换了系统重要程序 app_process,替换后的 app_process 中注入了自定义的代码用于在系统启动的时候加载额外的代码文件。

Dalvik 孵化器 Zygote 进程是由系统 程序 app_process 创建的进程 system_server 通过 socket 通信创建自身而形成的。 在 Android FrameWork 载入的时候,一个由 Xposed 定义的 app_process 程序会被 复制到/system/bin 目录下。这个程序会在开机的时候添加了额外的 jar 文件到 classpath 从而实现可以在 Zygote 上下文中调用这些定义的方法。 该框架由三个部分组成:

1.XposedBridge:Xposed 提供的 jar 文件, app_process 启动过程会加载该 jar文件,并且其它插件模块的开发都是基于该 jar 文件;

2. Xposed:Xposed 的 C++部分,主要用于替换/system/bin/app_process, 并为XposedBridge 提供 JNI 方法;

3. XposedInstaller:Xposed 的安装包,提供对基于 Xposed 框架的插件的 管理。

这个 jar 文件被放置到了/data/xposed/XposedBridge.jar 下, Zygote 进程会首先调用这个 jar 文件中的方法。 XposedBridge.jar 中有一个私有的 Native( JNI)方法 hookMethodNative,该方法也会在 app_process 中被使用。这个方法提供一个 方法对象并利用 java 的 reflection 反射机制对系统内置的方法进行覆写。

(3)对系统方法的 hook 操作,模块实现的关键技术;

Xposed 框架中真正起作用的是对系统方法的 hook 操作。自定义 java 层 hook 代码在 Xposed 提供的 before()和 after()方法中实现。 Jar 包中的本地方法hookMethodNative 会在替换后的 app_process 中被调用。它将一个类对象作为输 入参数(可以通过 java 的反射机制获取)并且改变 Dalvik 虚拟机中对于该方法 的定义。Xposed 将该方法的类型改变为 native 并且将这个方法的实现链接到它 的本地通用类的方法。当调用那个被 hook 的方法的时候,通用的类方法依然会 被调用但不会对调用者有任何的影响。在 hookMethodNative 的实现中,会调用XposedBridge 中的handleHookedMethod 这个方法来传递参数。

(4)java 反射机制;

(5)模块实现流程,从模块的一个实现分支出发详细介绍模块实现的流程。

图3是本发明中策略函数模块结构示意图。系统监控到应用申请敏感权限时,利用hook 技术转向 BeforeHookedMethod()函数,然后再执行原函数,之后转向AfterHookedMethod()函数。欺骗函数策略则是执行 AfterHookedMethod()函数之后,伪造一个回调参数,达到返回虚假值的目的;跳跃策略函数则是执行BeforeHookedMethod()函数之后,通过地址索引到 AfterHookedMethod()函数,达到跳过权限调用的目的。

本发明具有的理论意义和实际应用价值:在本发明原型系统中,用户也可以结合自己的需求,根据Android应用功能、用户使用习惯、软件熟悉程度等条件自行设定权限控制策略,实现基于 Android的个性化隐私保护,具有较明显的工程应用和科研价值。

应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号