CN105373734A - 应用数据的保护方法及装置 - Google Patents
应用数据的保护方法及装置 Download PDFInfo
- Publication number
- CN105373734A CN105373734A CN201410440445.1A CN201410440445A CN105373734A CN 105373734 A CN105373734 A CN 105373734A CN 201410440445 A CN201410440445 A CN 201410440445A CN 105373734 A CN105373734 A CN 105373734A
- Authority
- CN
- China
- Prior art keywords
- data
- data source
- request
- application
- source
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 230000004048 modification Effects 0.000 claims description 8
- 238000012986 modification Methods 0.000 claims description 8
- 230000001681 protective effect Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 abstract description 25
- 238000005516 engineering process Methods 0.000 abstract description 4
- 238000012544 monitoring process Methods 0.000 description 20
- 239000011230 binding agent Substances 0.000 description 11
- 230000006870 function Effects 0.000 description 8
- 244000035744 Hura crepitans Species 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000011160 research Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 239000012141 concentrate Substances 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 229920000742 Cotton Polymers 0.000 description 1
- 239000002253 acid Substances 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000010009 beating Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000011900 installation process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3017—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is implementing multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2123—Dummy operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2127—Bluffing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种应用数据的保护方法及装置,其中,该方法包括:获取被监控应用的数据请求,该数据请求用于请求第一数据源中的数据,该第一数据源内存储需要保护的数据;将所述数据请求由第一数据源重定向到第二数据源,其中,所述第二数据源用于存储所述需要保护的数据的虚假数据。采用本发明实施例的上述技术方案,解决了相关技术中在进行应用数据的保护过程中,需要更改Android安卓系统代码以及阻碍应用正常运行的问题,使得在不更改系统代码的情况下,不阻碍原有应用的使用。
Description
技术领域
本发明涉及通信领域,更具体地说,涉及应用数据的保护方法及装置。
背景技术
当今手机发展迅速,它不再仅仅是人们通讯的工具,手机上面丰富的应用满足了用户方方面面不同的需求,逐渐成为人们生活中不可或缺的一部分。但是正是因为智能手机的丰富功能,手机上保存的大量用户资料,手机数据的安全也成为了重要的研究课题。目前市面上主要的智能手机操作系统有网络操作系统苹果操作系统IOS、安卓Android与WindowsPhone,由于Android的开放性,在市面上拥有着最多的用户,但是同时也是因为开放性,Android系统的安全一直是被用户所诟病的。Android中应用的来源于多种渠道,除了GooglePlay[4]之外,还有大量次级市场。缺乏有效的监管,用户往往难以分辨应用是否存在恶意行为,这让用户的个人数据存在巨大的安全隐患。并且Android采用的是Allornothing的权限管理制度,用户只能接受应用的全部权限或者取消安装,这导致很多用户被迫赋予某些应用一些涉及到个人信息的权限而导致信息的泄露。
在桌面操作系统里面,关于数据安全的研究已经相对成熟,其中MIT的mbox[5]基于ptrace[6]实现了Linuxnon-root用户sandbox操作,用户可以在不申请root权限的基础上在sandbox中运行任意操作,使得sandbox中的操作不会影响到外部的操作系统,也同时保护了用户的数据不会被sandbox中的应用进行不恰当的使用,保证了数据安全。
而在Android安全领域的研究中,最著名的研究结果是TaintDroid。TaintDroid率先把Taint技术引入到Android系统,通过修改DalvikVM的解释执行过程来让所有变量带上标记信息,实现变量基础上的标记,以便于监控被感染变量的使用情况。这种做法确实有效的跟踪了数据被使用的情况,但是他使用了直接修改ApplicationFramework的方法,这导致如果用户想使用这个技术的话必须将自己的系统刷成特制的Android系统,这无疑大大削弱了他的实用性。而在这个工作的基础上,衍生出来VetDroid与AppFence尽管在安全分析上更进了一步,但是都没有解决需要使用特制系统的问题。
相关技术中,还有In-vivoBytecodeInstrumentation,但是这个工作主要使用到的方法是通过反编译、重打包的静态分析手段修改原应用程序,将其重新打包成为一个新的应用,并在新的应用使用用户信息的语句中加入一个权限的检查,并询问用户是否赋予权限,从而实现用户信息的保护。
针对相关技术中在进行应用数据的保护过程中,需要更改Android安卓系统代码以及阻碍应用正常运行的问题,目前尚未提出有效的解决方案。
发明内容
本发明提供了一种应用数据的保护方法及装置,以至少解决上述问题。
根据本发明的一个方面,提供了一种应用数据的保护方法,包括:获取被监控应用的数据请求,该数据请求用于请求第一数据源中的数据,该第一数据源内存储需要保护的数据;将所述数据请求由第一数据源重定向到第二数据源,其中,所述第二数据源用于存储所述需要保护的数据的虚假数据。
优选地,所述数据请求包括:用于请求内部数据的第一数据请求;或,用于请求外部数据的第二数据请求,其中,所述内部数据为所述被监控应用存储的数据,所述外部数据为在操作系统中除所述被监控应用外的其他应用的数据。
优选地,当获取的是用于请求内部数据的第一数据请求时,将所述数据请求由第一数据源重定向到第二数据源,包括:在所述操作系统调用被监控应用时,将所述内部数据源中用于标识所述第一数据源的指定参数修改为用于指示所述第二数据源的第一参数;根据用于指示所述第二数据源的参数将所述数据请求重定向到所述第二数据源。
优选地,当获取的是用于请求外部数据的第二数据请求时,将所述数据请求由第一数据源重定向到第二数据源,包括:从所述外部数据源中获取用于标识数据源的第二参数;将用于标识数据源的参数修改为用于指示所述第二数据源的参数;根据所述指示第二数据源的参数将所述数据请求重定向到所述第二数据源。
优选地,所述第第二参数包括:通用资源标识符URI。
优选地,所述第一数据源对应多个所述第二数据源。
优选地,通过以下方式实现所述第一数据源对应多个所述第二数据源:当通过查询命令查询所述第二标识所指示的数据时,将所述查询命令的返回值设置为空,在所述查询命令的返回值为空时,接收到所述返回值的应用不对所述返回值进行响应。
根据本发明的另一个方面,还提供了一种应用数据的保护装置,包括:获取模块,用于获取被监控应用的数据请求,该数据请求用于请求第一数据源中的数据,该第一数据源内存储需要保护的数据;重定向模块,用于将所述数据请求由第一数据源重定向到第二数据源,其中,所述第二数据源用于存储所述需要保护的数据的虚假数据。
优选地,所述获取模块用于在所述数据请求包括:用于请求内部数据的第一数据请求;或,获取用于请求外部数据的第二数据请求时,获取被监控应用的数据请求,其中,所述内部数据为所述被监控应用存储的数据,所述外部数据为在操作系统中除所述被监控应用外的其他应用的数据。
优选地,当获取的是用于请求内部数据的第一数据请求时,所述重定向模块,包括:第一修改单元,用于在所述操作系统调用被监控应用时,将所述内部数据源中用于标识所述第一数据源的指定参数修改为用于指示所述第二数据源的第一参数;第一重定向单元,用于根据用于指示所述第二数据源的参数将所述数据请求重定向到所述第二数据源。
优选地,当获取的是用于请求外部数据的第二数据请求时,所述重定向模块,包括:获取单元,用于从所述外部数据源中获取用于标识数据源的第二参数;第二修改单元,用于将用于标识数据源的参数修改为用于指示所述第二数据源的参数;第二重定向单元,用于根据所述指示第二数据源的参数将所述数据请求重定向到所述第二数据源。
通过本发明,采用将用户请求数据对应的目标源重定向到另一个目标源的技术方案,解决了相关技术中在进行应用数据的保护过程中,需要更改Android安卓系统代码以及阻碍应用正常运行的问题,使得在不更改系统代码的情况下,不阻碍原有应用的使用。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为相关技术中利用ptrace监控子线程系统调用的执行顺序图;
图2为根据本发明实施例的应用数据保护过程的线程模型图;
图3为根据本发明实施例的应用数据的保护方法的流程图;
图4为根据本发明实施例应用请求外部数据所发送的信息;
图5为根据本发明实施例对外部数据来源URI抽取的过程;
图6为根据本发明实施例的应用数据的保护系统架构图;
图7为根据本发明实施例的应用数据的保护装置的结构框图;
图8为根据本发明实施例的应用数据的保护装置的又一结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
为了更好的理解本发明实施例中所涉及的应用数据的保护过程,以下对相关技术进行简单说明。
在Linux操作系统下,ptrace是监控运行进程的常用手段,它为监控线程提供了观察和控制被监控线程执行的能力,监控线程同时可以观测和修改被监控线程的内存和寄存器。几乎所有Linux系统中的调试工具均由ptrace实现,其中也包括了gdb。除了调试器外,ptrace另一个重要的用途便是系统调用监控。
在ptrace中,一个监控线程必须首先显示的申明对另外一个线程的监控,由于监控是以线程为单位的,这也就意味着一个多线程的进程中的每一个线程都可以被单独的线程给监控,同时也需要注意当监控一个进程也就需要监控这个进程中的所有线程。不过在Linux中所有线程都以clone系统调用创建,而ptrace提供了自动监控被监控线程clone出来的线程的功能,因此这个问题也并不需要过多的顾虑。
当一个线程被监控后,它在每一次发送信号时都会被停止,而这时监控程序在waitpid后就能够收到被监控线程发过来的信号,并且还会得到被监控线程被停止的原因,这时候监控程序就能够使用ptrace提供的各种选项来完成相应的功能,例如获取被监控线程当前的寄存器,又例如修改被监控线程的内存空间,在监控线程完成了希望的操作之后,就可以让被监控线程继续执行,又或者单步执行。
而在一个监控线程运行完毕后,他所有被监控的线程都会自动脱离监控线程的监控。
图1为相关技术中利用ptrace监控子线程系统调用的执行顺序图,在子线程被父线程监控后,子线程每次进入系统调用时都会被SIGTRAP停止并且向父线程发送SIGCHLD信号,父线程可以通过wait来获取这一个信号,这时子线程已经停止了,父线程则可以通过ptrace提供的功能来获取子线程系统调用的参数,甚至可以在子线程不知情的情况下修改这些参数,当完成了必要操作后,父线程使用PTRACE_SYSCALL参数让子线程继续运行,由于PTRACE_SYSCALL的使用,子线程在系统调用结果返回时又会再一次停止并且通知父线程,这时父线程就可以继续操控子线程,完成后让子线程继续执行,这样就完成了一次系统调用的监控。
通过系统调用的监控我们就可以控制可疑线程执行以及数据的获取,这是Linux中实现的方式,但是由于Android是基于Linux内核的,因此这种方式也可以引入到Android系统中。
在Linux操作系统中,当我们启动一个程序的时候会调用fork和exec,如果使用ptrace的话可以简单的让监控程序fork出需要监控的程序,这样就能方便的实现监控,但是Android系统的特殊性却不能让我们这么做。
在Android系统中,所有的应用进程都是通过zygote进程fork创建,为了使得应用在创建的最开始就被监控,我们必须事先监控zygote的所有fork指令。与此同时,Android应用采用的是多线程模型,也就是说一个Android应用是由多个线程组成的,除了界面线程外,Android系统支持应用创建worker线程来完成一些繁重的任务来避免对界面线程造成卡顿。虽然我们可以使用一个线程来监控整个系统和里面的可疑应用,但是这样无疑会造成十分巨大的性能影响。根据这一发现,本发明实施例还设计了如图2所示线程模型。
本发明实施例提供了一种应用数据的保护方法,图3为根据本发明实施例的应用数据的保护方法的流程图,如图3所示,该方法包括如下步骤:
步骤S302:获取被监控应用的数据请求,该数据请求用于请求第一数据源中的数据,该第一数据源内存储需要保护的数据;
步骤S304:将上述数据请求由第一数据源重定向到第二数据源,其中,上述第二数据源用于存储上述需要保护的数据的虚假数据。
通过上述各个步骤,采用将用户请求数据对应的目标源重定向到另一个目标源的技术方案,解决了相关技术中在进行应用数据的保护过程中,需要更改Android安卓系统代码以及阻碍应用正常运行的问题,使得在不更改系统代码的情况下,不阻碍原有应用的使用。
在步骤S302中,数据请求包括:用于请求内部数据的第一数据请求;或,用于请求外部数据的第二数据请求,其中,上述内部数据为上述被监控应用存储的数据,上述外部数据为在操作系统中除上述被监控应用外的其他应用的数据。
在具体实施过程中,当获取的是用于请求内部数据的第一数据请求时,将上述数据请求由第一数据源重定向到第二数据源,包括:在上述操作系统调用被监控应用时,将上述内部数据源中用于标识上述第一数据源的指定参数修改为用于指示上述第二数据源的第一参数;根据用于指示上述第二数据源的参数将上述数据请求重定向到上述第二数据源;
当获取的是用于请求外部数据的第二数据请求时,将上述数据请求由第一数据源重定向到第二数据源,包括:从上述外部数据源中获取用于标识数据源的第二参数;将用于标识数据源的参数修改为用于指示上述第二数据源的参数。
本发明实施例对Android系统上应用运行的环境进行了深入的分析,Android在Runtime层中便对所有虚拟机实现了Sandbox来保证所有应用都运行在独立的环境中并不会相互影响,也不会影响外部系统。因此一个应用能访问的文件只有自己data文件夹中的私有文件以及外部存储器中的文件,除此之外的其他数据均需要介入IPC的机制获取。根据这一特性,本发明实施例将用户信息的来源分为内部以及外部两种来源。
内部数据来源:内部数据来源是指数据是由应用自身存储,包括了应用自身的文件、数据库、共享配置和外部文件等。
外部数据来源:外部数据来源是指数据由外部应用提供,通过AndroidIPC的机制在应用向外部程序发送了请求后所获取到得数据。
其中,第二参数包括:通用资源标识符(UniformResourceIdentifier,简称为URI),上述第一数据源对应多个上述第二数据源。
可选地,通过以下方式实现上述第一数据源对应多个上述第二数据源:当通过查询命令查询上述第二标识所指示的数据时,将上述查询命令的返回值设置为空,在上述查询命令的返回值为空时,接收到上述返回值的应用不对上述返回值进行响应。
为了更好的理解上述实施例的应用数据的保护过程,以下结合一个优选实施例进行说明明,但不限定本发明。
对于内部数据来源(即上述实施例的内部数据)
Android应用安装过程主要完成了3个步骤,将apk文件放入/data/app目录,解压并扫描apk包,并将其中的dex(Dalvik字节码)文件放入到/data/dalvik-cachhe文件夹中,并在/data/data/文件夹中创建存放该应用数据的更目录。在该应用运行的时候所有默认创建的文件、cache、数据库等都会被存放/data/data/中对应的文件夹中,在内部存储中应用也仅对这个文件夹中的文件拥有所有权限。
因此一个应用的所有内部存储的数据都集中在/data/data/中对应的文件夹中,这便是针对内部存储需要保护的文件夹。当一个应用的/data/data/文件夹被清空时,它在运行时便像新安装的一个应用,不包含任何数据。
除此之外应用还可以通过申请externalstorage权限的方式获得访问外部储存介质的访问的权限,并可以将自己的数据存储在外部存储中。但是这样应用便有可能与其他应用共享某些文件,这样便可能导致用户数据的泄露。而这部分的地址也是固定的,均在/sdcard目录中。
所以应用的所有内部数据来源都是存在于几个特定的目录中,要对这些信息进行保护便可以通过重定向的方式让被监控应用在不知情的情况下访问不了真实的文件,而是访问到了隔离文件夹中。为了让被监控应用能够正确的执行,并且不能意识到自己被监控了,需要在其系统调用进入时将其文件目录的参数修改成为隔离文件夹,并在系统调用成功返回时将其重新改为原来进入时的原路径。这样一来就实现了对上层完全透明的文件系统重定向的功能。
然后识别了所有需要实现重定向功能的系统调用,将以上哪种方式一一应用,便实现了内部数据来源的保护。
外部数据来源(即上述实施例的外部数据)
外部数据来源是从目标应用之外的进程中获取数据,那么这些数据都会有一个数据来源的进程,称之为外部数据源。外部数据源获得了目标应用对数据的请求并将数据返回给目标应用,通过这种方式来完成数据的传递。在这一过程中有多个Android模块参与,并且有相对复杂的交互,并不能通过像内部数据来源处理一样简单地修改,在此之前我们必须首先了解AndroidIPC和ContentProvider的运行机制。最后为了避免目标应用获取用户信息,本发明实施例同样采用了重定向的方法,在目标应用不知情的情况下,在其请求用户信息的时候将这一请求重定向到虚假的外部数据源中,这样目标应用就拿不到正确外部数据源的数据,从而实现了外部数据的保护。
Binder是Android系统中IPC的机制,Binder的核心组件式Binder驱动,因此所有要使用BinderIPC的应用必须首先openBinder驱动,也就是/dev/binder,并且Binder驱动中所有请求都是通过ioctl系统调用来传递的。而连接上Binder驱动的每一个对象都有一个唯一的句柄来作为标示,ServiceManager作为Binder上下文管理者,它拥有固定的句柄0。当一个应用希望向服务端请求数据时,它会先也会向句柄为0的Binder上下文管理者发送对服务的请求,这时ServiceManager会从服务列表中查找出该服务,并且判断客户端是否有链接该服务的权限,如果有则将该服务的句柄返回给客户端。当客户端拿到了该服务的句柄后,那么客户端就可以通过Binder驱动向服务端发送请求了。Binder的所有指令都是通过ioctl系统调用传递的,并在其中按照特定的数据结构线性的存储了多个命令,在上层应用中的使用是通过调用libbinder中的抽象函数来构成可传递的数据结构,因此在这一层中需要做的便是解析这些数据,并把需要的数据抽取出来。
而在Binder之上,Android通过ContentProvider来为远程应用提供数据。ContentProvider对于上层应用调用提供了规范的调用标准,所有应用都必须按照这种标准来向ContentProvider请求数据,ContentProvider通过解析这些请求,将数据封装返回给请求应用,如此一来完成外部数据请求的过程。因此可以看出来对于外部数据来源的处理的关键是分析ContentProvider的调用接口。在ContentProvider中,为上层暴露了5个接口,分别是query,insert,update,delete和getType,在这些请求中第一个参数均为URI,该URI标示了ContentProvider中的数据。该URI由整个ContentProvider的标示名字和其中的一个表名组成。例如:content://com.android.contacts/people,其中com.android.contacts就为ContentProvider的标示,而people则是其中的一个表名。Android系统便是通过这个URI找到应用请求的ContentProvider。
由此可看出URI便是需要从ioctl中提取出来的数据。但是由于Android系统中使用到BinderIPC的地方太多了,中间包含了大量与数据无关的IPC消息,逐条解析并扫描这些消息并不可行,因此分析了Android应用使用需要使用到IPC的地方,并且从中找出了有关数据请求的消息的特点。
图4便是一个应用请求外部数据所要使用到的信息,通过找出这两个信息,解析这条信息便可以从中找出我们需要的URI的数据。具体的流程如图5所示,图6为根据本发明实施例的应用数据的保护系统的架构图。
提取出URI后需要做的就是将其改变成我们创建的虚假数据源。
由于监控要对上层透明,因此为了让目标应用能通过虚假外部信息源的权限检查,这样求虚假外部信息源所需的权限与真实外部信息源所需的权限相同。例如读取联系人列表的权限为android.permission.READ_CONTACTS,那么自己实现的虚假联系人的ContentProvider所需的读取权限同样也为android.permission.READ_CONTACTS,这样当被监控应用被重定向到虚假外部信息源后仍然可以正确的通过权限检查完成数据获取。
而对于虚假外部信息源的实现,最理想的方式是照搬真实外部信息源的代码,唯一修改的就是URI,这么一来就可以保证除了数据之外,虚假外部信息源的行为完全与真实外部信息源完全相同,从而避免一切意外错误。但是一方面来说真实外部数据源结构庞大,单个数据源的代码量也相当大,另一方面因为这部分用户信息与系统紧密相关,难以将其单独抽出独立棉衣,因此这种方式难度很大。
但是根据在上文中的分析,用户信息的泄露都是通过读取用户信息,在ContentProvider中所有读取的操作都是通过query命令,那么其实像insert、update、delete都不需要有相应实现。并且所有查找命令都需要应付结果为空的情况,那么如果query返回值为空的话,接受的应用便不会理会返回结果中的具体结构,这么一来一个虚假信息源便可用于对应多个正确信息源上,不用针对每个正确信息源单独实现了。实现了一个虚假外部信息源,其中仅仅实现了query指令,并且不管请求是什么总是返回空的结果,通过这一简单的方式,完成了外部数据来源的处理。
在本实施例中还提供了一种应用数据的保护装置,用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述,下面对该装置中涉及到的模块进行说明。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图7为根据本发明实施例的应用数据的保护装置的结构框图。如图7所示,该装置包括:
获取模块72,用于获取被监控应用的数据请求,该数据请求用于请求第一数据源中的数据,该第一数据源内存储需要保护的数据;
重定向模块74,与获取模块72连接,用于将上述数据请求由第一数据源重定向到第二数据源,其中,上述第二数据源用于存储上述需要保护的数据的虚假数据。
通过上述各个模块的综合作用,采用将用户请求数据对应的目标源重定向到另一个目标源的技术方案,解决了相关技术中在进行应用数据的保护过程中,需要更改Android安卓系统代码以及阻碍应用正常运行的问题,使得在不更改系统代码的情况下,不阻碍原有应用的使用。
可选地,获取模块72用于在上述数据请求包括:用于请求内部数据的第一数据请求;或,获取用于请求外部数据的第二数据请求时,获取被监控应用的数据请求,其中,上述内部数据为上述被监控应用存储的数据,上述外部数据为在操作系统中除上述被监控应用外的其他应用的数据。
本发明实施例对上述技术方案的进一步改进在于,当获取的是用于请求内部数据的第一数据请求时,重定向模块74,包括:第一修改单元740,用于在上述操作系统调用被监控应用时,将上述内部数据源中用于标识上述第一数据源的指定参数修改为用于指示上述第二数据源的第一参数;第一重定向单元742,用于根据用于指示上述第二数据源的参数将上述数据请求重定向到上述第二数据源。
当获取的是用于请求外部数据的第二数据请求时,重定向模块74,包括:获取单元744,用于从上述外部数据源中获取用于标识数据源的第二参数;第二修改单元746,与获取单元744连接,用于将用于标识数据源的参数修改为用于指示上述第二数据源的参数;第二重定向单元746,与第二修改单元746相连,用于根据上述指示第二数据源的参数将上述数据请求重定向到上述第二数据源。
综上所述,本发明实施例实现了以下有益效果:解决了相关技术中在进行应用数据的保护过程中,需要更改Android安卓系统代码以及阻碍应用正常运行的问题,使得在不更改系统代码的情况下,不阻碍原有应用的使用。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (11)
1.一种应用数据的保护方法,其特征在于,包括:
获取被监控应用的数据请求,该数据请求用于请求第一数据源中的数据,该第一数据源内存储需要保护的数据;
将所述数据请求由第一数据源重定向到第二数据源,其中,所述第二数据源用于存储所述需要保护的数据的虚假数据。
2.根据权利要求1所述的方法,其特征在于,所述数据请求包括:
用于请求内部数据的第一数据请求;或,用于请求外部数据的第二数据请求,其中,所述内部数据为所述被监控应用存储的数据,所述外部数据为在操作系统中除所述被监控应用外的其他应用的数据。
3.根据权利要求2所述的方法,其特征在于,当获取的是用于请求内部数据的第一数据请求时,将所述数据请求由第一数据源重定向到第二数据源,包括:
在所述操作系统调用被监控应用时,将所述内部数据源中用于标识所述第一数据源的指定参数修改为用于指示所述第二数据源的第一参数;
根据用于指示所述第二数据源的参数将所述数据请求重定向到所述第二数据源。
4.根据权利要求2所述的方法,其特征在于,当获取的是用于请求外部数据的第二数据请求时,将所述数据请求由第一数据源重定向到第二数据源,包括:
从所述外部数据源中获取用于标识数据源的第二参数;
将用于标识数据源的参数修改为用于指示所述第二数据源的参数;
根据所述指示第二数据源的参数将所述数据请求重定向到所述第二数据源。
5.根据权利要求4所述的方法,其特征在于,所述第二参数包括:通用资源标识符URI。
6.根据权利要求4或5所述的方法,其特征在于,所述第一数据源对应多个所述第二数据源。
7.根据权利要求6所述的方法,其特征在于,通过以下方式实现所述第一数据源对应多个所述第二数据源:
当通过查询命令查询所述第二标识所指示的数据时,将所述查询命令的返回值设置为空,在所述查询命令的返回值为空时,接收到所述返回值的应用不对所述返回值进行响应。
8.一种应用数据的保护装置,其特征在于,包括:
获取模块,用于获取被监控应用的数据请求,该数据请求用于请求第一数据源中的数据,该第一数据源内存储需要保护的数据;
重定向模块,用于将所述数据请求由第一数据源重定向到第二数据源,其中,所述第二数据源用于存储所述需要保护的数据的虚假数据。
9.根据权利要求8所述的装置,其特征在于,所述获取模块用于在所述数据请求至少包括以下之一时,获取被监控应用的数据请求:用于请求内部数据的第一数据请求,用于请求外部数据的第二数据请求时,其中,所述内部数据为所述被监控应用存储的数据,所述外部数据为在操作系统中除所述被监控应用外的其他应用的数据。
10.根据权利要求9所述的装置,其特征在于,当获取的是用于请求内部数据的第一数据请求时,所述重定向模块,包括:
第一修改单元,用于在所述操作系统调用被监控应用时,将所述内部数据源中用于标识所述第一数据源的指定参数修改为用于指示所述第二数据源的第一参数;
第一重定向单元,用于根据用于指示所述第二数据源的参数将所述数据请求重定向到所述第二数据源。
11.根据权利要求9所述的装置,其特征在于,当获取的是用于请求外部数据的第二数据请求时,所述重定向模块,包括:
获取单元,用于从所述外部数据源中获取用于标识数据源的第二参数;
第二修改单元,用于将用于标识数据源的参数修改为用于指示所述第二数据源的参数;
第二重定向单元,用于根据所述指示第二数据源的参数将所述数据请求重定向到所述第二数据源。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410440445.1A CN105373734A (zh) | 2014-09-01 | 2014-09-01 | 应用数据的保护方法及装置 |
PCT/CN2015/075799 WO2016033966A1 (zh) | 2014-09-01 | 2015-04-02 | 应用数据的保护方法及装置 |
EP15837589.9A EP3190537A4 (en) | 2014-09-01 | 2015-04-02 | Protection method and device for application data |
US15/507,622 US20170286644A1 (en) | 2014-09-01 | 2015-04-02 | Protection Method and Device for Application Data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410440445.1A CN105373734A (zh) | 2014-09-01 | 2014-09-01 | 应用数据的保护方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105373734A true CN105373734A (zh) | 2016-03-02 |
Family
ID=55375923
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410440445.1A Pending CN105373734A (zh) | 2014-09-01 | 2014-09-01 | 应用数据的保护方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20170286644A1 (zh) |
EP (1) | EP3190537A4 (zh) |
CN (1) | CN105373734A (zh) |
WO (1) | WO2016033966A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108984141A (zh) * | 2018-07-05 | 2018-12-11 | 郑州云海信息技术有限公司 | 一种输出重定向的方法及系统 |
WO2019001291A1 (zh) * | 2017-06-27 | 2019-01-03 | Oppo广东移动通信有限公司 | 支付类应用程序管理方法、装置及移动终端 |
CN110210211A (zh) * | 2019-06-05 | 2019-09-06 | 北京证大向上金融信息服务有限公司 | 一种数据保护的方法和计算设备 |
WO2019196721A1 (en) * | 2018-04-11 | 2019-10-17 | Beijing Didi Infinity Technology And Development Co., Ltd. | Methods and apparatuses for processing data requests and data protection |
CN110472422A (zh) * | 2018-05-10 | 2019-11-19 | 北京嘀嘀无限科技发展有限公司 | 数据保护方法、装置和存储介质 |
CN110990832A (zh) * | 2018-10-02 | 2020-04-10 | 智微科技股份有限公司 | 数据保护方法以及相关储存装置 |
WO2022268142A1 (zh) * | 2021-06-23 | 2022-12-29 | 华为技术有限公司 | 一种服务进程的调用方法及相关装置 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170010574A (ko) * | 2015-07-20 | 2017-02-01 | 삼성전자주식회사 | 정보처리장치, 영상처리장치 및 그들의 제어방법 |
US10826999B2 (en) * | 2016-06-24 | 2020-11-03 | At&T Intellectual Property I, L.P. | Facilitation of session state data management |
US11144217B2 (en) * | 2018-10-02 | 2021-10-12 | Jmicron Technology Corp. | Data protection method and associated storage device |
US11354433B1 (en) | 2019-03-25 | 2022-06-07 | Trend Micro Incorporated | Dynamic taint tracking on mobile devices |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1983296A (zh) * | 2005-12-12 | 2007-06-20 | 北京瑞星国际软件有限公司 | 用于防止非法程序窃取用户信息的方法及装置 |
CN102693394A (zh) * | 2012-06-07 | 2012-09-26 | 奇智软件(北京)有限公司 | 一种用于拦截应用程序对服务的调用的方法和装置 |
CN103198255A (zh) * | 2013-04-03 | 2013-07-10 | 武汉大学 | 一种Android软件敏感行为监控与拦截方法及系统 |
CN103294590A (zh) * | 2012-02-28 | 2013-09-11 | 腾讯科技(深圳)有限公司 | 应用程序运行中的处理方法和装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2619653A1 (en) * | 2004-08-21 | 2006-03-02 | Ko-Cheng Fang | Computer data protecting method |
US8781127B2 (en) * | 2008-09-05 | 2014-07-15 | Vixs Systems, Inc. | Device with privileged memory and applications thereof |
US8424098B2 (en) * | 2008-12-01 | 2013-04-16 | General Electric Company | System and method for enhanced data security |
CN102222292B (zh) * | 2011-05-27 | 2013-08-14 | 北京洋浦伟业科技发展有限公司 | 一种手机支付保护方法 |
CN102662870B (zh) * | 2012-03-20 | 2014-08-13 | 武汉噢易科技有限公司 | 基于vfs层拦截读写请求的安卓操作系统保护方法 |
US9235587B2 (en) * | 2012-12-31 | 2016-01-12 | Sandisk Technologies Inc. | System and method for selectively routing cached objects |
CN103177210B (zh) * | 2013-04-02 | 2015-07-29 | 中国人民大学 | 一种在Android中植入动态污点分析模块的方法 |
-
2014
- 2014-09-01 CN CN201410440445.1A patent/CN105373734A/zh active Pending
-
2015
- 2015-04-02 US US15/507,622 patent/US20170286644A1/en not_active Abandoned
- 2015-04-02 EP EP15837589.9A patent/EP3190537A4/en not_active Withdrawn
- 2015-04-02 WO PCT/CN2015/075799 patent/WO2016033966A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1983296A (zh) * | 2005-12-12 | 2007-06-20 | 北京瑞星国际软件有限公司 | 用于防止非法程序窃取用户信息的方法及装置 |
CN103294590A (zh) * | 2012-02-28 | 2013-09-11 | 腾讯科技(深圳)有限公司 | 应用程序运行中的处理方法和装置 |
CN102693394A (zh) * | 2012-06-07 | 2012-09-26 | 奇智软件(北京)有限公司 | 一种用于拦截应用程序对服务的调用的方法和装置 |
CN103198255A (zh) * | 2013-04-03 | 2013-07-10 | 武汉大学 | 一种Android软件敏感行为监控与拦截方法及系统 |
Non-Patent Citations (1)
Title |
---|
LI XIAOLEI,ETAL.: ""A Light-Weight Software Environment for Confining Android Malware"", 《2014 IEEE EIGHTH INTERNATIONAL CONFERENCE ON SOFTWARE SECURITY AND RE LI AB I LI TY-COMPANION》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019001291A1 (zh) * | 2017-06-27 | 2019-01-03 | Oppo广东移动通信有限公司 | 支付类应用程序管理方法、装置及移动终端 |
WO2019196721A1 (en) * | 2018-04-11 | 2019-10-17 | Beijing Didi Infinity Technology And Development Co., Ltd. | Methods and apparatuses for processing data requests and data protection |
CN110472422A (zh) * | 2018-05-10 | 2019-11-19 | 北京嘀嘀无限科技发展有限公司 | 数据保护方法、装置和存储介质 |
CN108984141A (zh) * | 2018-07-05 | 2018-12-11 | 郑州云海信息技术有限公司 | 一种输出重定向的方法及系统 |
CN110990832A (zh) * | 2018-10-02 | 2020-04-10 | 智微科技股份有限公司 | 数据保护方法以及相关储存装置 |
CN110210211A (zh) * | 2019-06-05 | 2019-09-06 | 北京证大向上金融信息服务有限公司 | 一种数据保护的方法和计算设备 |
CN110210211B (zh) * | 2019-06-05 | 2021-09-07 | 北京证大向上金融信息服务有限公司 | 一种数据保护的方法和计算设备 |
WO2022268142A1 (zh) * | 2021-06-23 | 2022-12-29 | 华为技术有限公司 | 一种服务进程的调用方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2016033966A1 (zh) | 2016-03-10 |
EP3190537A1 (en) | 2017-07-12 |
US20170286644A1 (en) | 2017-10-05 |
EP3190537A4 (en) | 2017-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105373734A (zh) | 应用数据的保护方法及装置 | |
US11321452B2 (en) | Execution environment virtualization method and apparatus and virtual execution environment access method and apparatus | |
US10489187B2 (en) | Systems and methods for auditing a virtual machine | |
US10545775B2 (en) | Hook framework | |
CN109076063A (zh) | 在云环境中保护动态和短期虚拟机实例 | |
CN106897611A (zh) | 无需root权限的安全虚拟移动应用程序运行环境系统及方法与应用 | |
US10176327B2 (en) | Method and device for preventing application in an operating system from being uninstalled | |
US9280665B2 (en) | Fast and accurate identification of message-based API calls in application binaries | |
CN105069383A (zh) | 一种云桌面usb存储外设管控的方法及系统 | |
US20180060588A1 (en) | Operating system | |
CN113867913A (zh) | 面向微服务的业务请求处理方法、装置、设备及存储介质 | |
US9652223B2 (en) | Method and apparatus for executing integrated application program | |
Cho et al. | Anti-debugging scheme for protecting mobile apps on android platform | |
CN105205413A (zh) | 一种数据的保护方法及装置 | |
KR102137309B1 (ko) | 원격 접속 제어 기반 기기 통합 모니터링 시스템 | |
CN105447384B (zh) | 一种反监控的方法、系统及移动终端 | |
CN108229147B (zh) | 一种基于Android虚拟容器的内存检测装置及方法 | |
CN105183799A (zh) | 一种权限管理的方法及客户端 | |
CN107493278B (zh) | 一种双向加密webshell的访问方法及装置 | |
CN106022122B (zh) | 一种信息处理方法及装置 | |
US8776054B2 (en) | Flexible access control for a virtual computer device, virtual computer system, and virtual computer program, and method for controlling the same | |
KR101548606B1 (ko) | 관리자 단말이 사용자 기기를 원격으로 제어하기 위한 시스템 및 컴퓨터 판독가능 저장매체 | |
CN113742768A (zh) | 一种在线应用的隐私保护方法、装置与系统 | |
CN112417533A (zh) | 防截屏方法、装置、计算机设备和存储介质 | |
CN112559132B (zh) | 面向容器化部署应用的安全静态检测方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160302 |