WO2016033966A1 - 应用数据的保护方法及装置 - Google Patents

应用数据的保护方法及装置 Download PDF

Info

Publication number
WO2016033966A1
WO2016033966A1 PCT/CN2015/075799 CN2015075799W WO2016033966A1 WO 2016033966 A1 WO2016033966 A1 WO 2016033966A1 CN 2015075799 W CN2015075799 W CN 2015075799W WO 2016033966 A1 WO2016033966 A1 WO 2016033966A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
data source
request
source
application
Prior art date
Application number
PCT/CN2015/075799
Other languages
English (en)
French (fr)
Inventor
董振江
王蔚
Original Assignee
中兴通讯股份有限公司
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 中兴通讯股份有限公司 filed Critical 中兴通讯股份有限公司
Priority to EP15837589.9A priority Critical patent/EP3190537A4/en
Priority to US15/507,622 priority patent/US20170286644A1/en
Publication of WO2016033966A1 publication Critical patent/WO2016033966A1/zh

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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3017Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is implementing multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2123Dummy operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2127Bluffing

Definitions

  • the present invention relates to the field of communications, and in particular to a method and apparatus for protecting application data.
  • Android apps come from a variety of channels, in addition to Google Play [4], there are a large number of secondary markets. Without effective supervision, it is often difficult for users to distinguish whether an application has malicious behavior, which poses a huge security risk to the user's personal data. And Android uses a rights management system that is all or nothing (All or nothing). Users can only accept all the permissions of the application or cancel the installation. This causes many users to be forced to give certain applications some personal information. Lead to the disclosure of information.
  • MIT's mbox [5] based on ptrace [6] implements Linux non-root user sandbox operation
  • users can not apply for root privileges. Run any operation in the sandbox, so that the operation in the sandbox will not affect the external operating system, and at the same time protect the user's data will not be improperly used by the application in the sandbox, ensuring data security.
  • TaintDroid is the first to introduce Taint technology into the Android system.
  • all variables are tagged with information, and tags are based on variables to monitor the usage of infected variables.
  • This approach does effectively track the use of data, but he uses a method that directly modifies the Application Framework, which leads to the need to brush your system into a specially crafted Android system if the user wants to use it. This undoubtedly greatly weakened his practicality.
  • VetDroid and AppFence have further improved the security analysis, but they have not solved the problem of using a special system.
  • the embodiment of the invention provides a method and a device for protecting application data to solve at least the above problems.
  • a method for protecting application data comprising: acquiring a data request of a monitored application, the data request is used to request data in a first data source, and the first data source needs to be protected in storage. And redirecting the data request from the first data source to the second data source, wherein the second data source is used to store the fake data of the data to be protected.
  • the data request includes: a first data request for requesting internal data; or a second data request for requesting external data, wherein the internal data is stored by the monitored application.
  • Data, the external data being data of other applications in the operating system other than the monitored application.
  • redirecting the data request from the first data source to the second data source includes: monitoring the operating system call When applying, modifying a specified parameter in the internal data source for identifying the first data source to a first parameter used to indicate the second data source; according to a parameter used to indicate the second data source Redirecting the data request to the second data source.
  • redirecting the data request from the first data source to the second data source comprises: obtaining from the external data source a second parameter for identifying a data source; modifying a parameter for identifying the data source to a parameter indicating the second data source; redirecting the data request to the parameter according to the parameter indicating the second data source The second data source.
  • the second parameter includes: a universal resource identifier URI.
  • the first data source corresponds to a plurality of the second data sources.
  • the first data source is corresponding to the plurality of the second data sources by: when querying the data indicated by the second identifier by using a query command, returning the query command Set to null, when the return value of the query command is null, the application that receives the return value does not respond to the return value.
  • a protection device for application data comprising: an obtaining module, configured to acquire a data request of a monitored application, the data request for requesting data in a first data source, Storing data to be protected in the first data source; the redirecting module is configured to redirect the data request from the first data source to the second data source, wherein the second data source is configured to store the False data for the data.
  • the acquiring module is configured to: when the data request includes: a first data request for requesting internal data; or, when acquiring a second data request for requesting external data, acquiring the monitored application a data request, wherein the internal data is data stored by the monitored application, the external data being data of other applications in the operating system other than the monitored application.
  • the redirection module when the first data request for requesting the internal data is obtained, includes: a first modifying unit, configured to: when the operating system invokes the monitored application, The specified parameter for identifying the first data source in the internal data source is modified to be a first parameter used to indicate the second data source; the first redirecting unit is configured to indicate the second data according to The parameters of the source redirect the data request to the second data source.
  • the redirection module when the second data request for requesting external data is obtained, includes: an obtaining unit, configured to acquire, from the external data source, a first identifier for identifying a data source a second parameter, the second modifying unit, configured to modify a parameter used to identify the data source to be used to indicate a parameter of the second data source, and a second redirecting unit configured to set the parameter according to the second data source Redirecting the data request to the second data source.
  • the technical solution for redirecting the target source corresponding to the user request data to another target source is adopted, and the related art needs to change the Android Android system code and hinder the application in the process of protecting the application data.
  • the problem of running makes it impossible to prevent the use of the original application without changing the system code.
  • 1 is an execution sequence diagram of a related art technique for monitoring a sub-thread system call by using ptrace
  • FIG. 2 is a thread model diagram of an application data protection process according to an embodiment of the present invention.
  • FIG. 3 is a flowchart of a method for protecting application data according to an embodiment of the present invention.
  • FIG. 6 is a structural diagram of a protection system for application data according to an embodiment of the present invention.
  • FIG. 7 is a structural block diagram of a protection apparatus for application data according to an embodiment of the present invention.
  • FIG. 8 is a block diagram showing still another structure of a protection device for application data according to an embodiment of the present invention.
  • ptrace is a common means of monitoring the running process. It provides the monitoring thread with the ability to observe and control the execution of the monitored thread. The monitoring thread can also observe and modify the memory and registers of the monitored thread.
  • the debugging tools in almost all Linux systems are implemented by ptrace, which also includes gdb. In addition to the debugger, another important use of ptrace is system call monitoring.
  • a monitoring thread In ptrace, a monitoring thread must first display a statement that monitors another thread. Since monitoring is thread-based, this means that each thread in a multi-threaded process can be given by a separate thread. Monitoring, also need to pay attention to when monitoring a process also need to monitor all threads in the process. However, in Linux all threads are created with a clone system call, and ptrace provides the ability to automatically monitor the threads that the monitored thread clones, so this issue does not require too much concern.
  • the monitor When a thread is monitored, it is stopped every time a signal is sent, and the monitor can receive the signal sent by the monitored thread after waitpid, and the reason why the monitored thread is stopped.
  • the monitoring program can use the various options provided by ptrace to complete the corresponding functions, such as obtaining the current register of the monitored thread, and for example, modifying the memory space of the monitored thread. After the monitoring thread completes the desired operation, it can Let the monitored thread continue to execute, or step through.
  • FIG. 1 is a sequence diagram of execution of a dbrace monitoring sub-thread system call in the related art.
  • the child thread is stopped by SIGTRAP every time the system call is entered and the SIGCHLD signal is sent to the parent thread, and the parent thread can Get this signal through wait, when the child thread has stopped, the parent thread can use the function provided by ptrace to get the parameters of the child thread system call, and even modify the parameters without the child thread knowing.
  • the parent thread uses the PTRACE_SYSCALL parameter to let the child thread continue to run.
  • the child thread will stop again and notify the parent thread when the system call result returns, and the parent thread can continue to manipulate the child thread. After the completion, let the child thread continue to execute, thus completing the monitoring of a system call.
  • the Android system In the Android system, all application processes are created by the zygote process fork. In order for the application to be monitored at the very beginning of creation, all fork instructions of zygote must be monitored in advance.
  • the Android application uses a multi-threaded model, which means that an Android application is composed of multiple threads.
  • the Android system supports the application to create a worker thread to complete some heavy tasks to avoid the interface thread. Caused Caton. Although you can use a single thread to monitor the entire system and suspicious applications inside, this will undoubtedly have a huge performance impact. Based on this finding, the embodiment of the present invention also designs a thread model as shown in FIG.
  • FIG. 3 is a flowchart of a method for protecting application data according to an embodiment of the present invention. As shown in FIG. 3, the method includes the following steps:
  • Step S302 Acquire a data request of the monitored application, where the data request is used to request data in the first data source, where the data to be protected is stored in the first data source;
  • Step S304 Redirecting the data request from the first data source to the second data source, wherein the second data source is used to store the fake data of the data to be protected.
  • the technical solution for redirecting the target source corresponding to the user request data to another target source is solved, and in the related art, in the process of protecting the application data, the Android Android system code needs to be changed and the application is blocked from running normally.
  • the problem is that it does not hinder the use of the original application without changing the system code.
  • the data request includes: a first data request for requesting internal data; or a second data request for requesting external data, wherein the internal data is data stored by the monitored application, the external data Data for other applications in the operating system other than the above-mentioned monitored applications.
  • the data request when the first data request for requesting internal data is obtained, the data request is redirected from the first data source to the second data source, including: when the operating system invokes the monitored application. Modifying, in the foregoing internal data source, the specified parameter for identifying the first data source to a first parameter for indicating the second data source, and redirecting the data request according to the parameter for indicating the second data source Go to the second data source above;
  • Retrieving the data request from the first data source to the second data source when the second data request for requesting the external data is obtained comprising: obtaining a second identifier for identifying the data source from the external data source a parameter; a parameter for identifying the data source is modified to a parameter indicating the second data source described above.
  • the embodiment of the present invention deeply analyzes the environment in which the application runs on the Android system, and Android implements the Sandbox for all virtual machines in the Runtime layer to ensure that all applications run in a separate environment and do not affect each other, nor Will affect the external system. Therefore, an application can access only the private files in the data folder and the files in the external storage. All other data needs to be intervened by the IPC mechanism. According to this feature, the embodiment of the present invention divides the source of user information into two sources, internal and external.
  • Internal data source means that the data is stored by the application itself, including the application's own files, databases, shared configurations, and external files.
  • the external data source refers to the data that is provided by the external application and obtained by the Android IPC mechanism after the application sends the request to the external program.
  • the second parameter includes a universal resource identifier (Uniform Resource Identifier, URI for short), and the first data source corresponds to the plurality of second data sources.
  • URI Uniform Resource Identifier
  • the foregoing first data source is configured to correspond to the foregoing plurality of second data sources: when querying the data indicated by the second identifier by using a query command, setting a return value of the query command to be empty, When the return value of the query command is null, the application that receives the above return value does not respond to the above return value.
  • the Android application installation process mainly completes 3 steps, put the apk file into the /data/app directory, decompress and scan the apk package, and put the dex (Dalvik bytecode) file into the /data/dalvik-cachhe file.
  • the folder create a more directory to store the application data in the /data/data/ folder.
  • all the files, caches, databases, etc. created by default will be stored in the corresponding folder in /data/data/.
  • the application only has all the permissions on the files in this folder.
  • the application can also obtain access to external storage media by applying for external storage permission, and can store its own data in external storage.
  • external storage permission can also be applied to external storage media by applying for external storage permission, and can store its own data in external storage.
  • such an application may share certain files with other applications, which may result in the leakage of user data.
  • the addresses in this part are also fixed, both in the /sdcard directory.
  • the monitored application can be accessed without knowing the real file without being informed. Go to the quarantine folder.
  • the monitored application In order for the monitored application to execute correctly and not aware that it is being monitored, it needs to modify the parameters of its file directory into a quarantine folder when its system call comes in, and then re-change it when the system call returns successfully. The original path when it was originally entered. In this way, the function of redirecting the file system completely transparent to the upper layer is realized.
  • External data source ie external data of the above embodiment
  • the external data source is to obtain data from processes other than the target application, then the data will have a data source process, called an external data source.
  • the external data source obtains the target application's request for data and returns the data to the target application, in this way to complete the data transfer.
  • there are multiple Android modules involved and there are relatively complex interactions, which cannot be modified as easily as internal data sources.
  • the embodiment of the present invention also adopts a redirection method, and redirects the request to a fake external data source when the user application requests the user information without knowing the target application. In this way, the target application can not get the data of the correct external data source, thus realizing the protection of the external data.
  • Binder is the IPC mechanism in Android system, Binder's core component Binder driver, so all applications that use Binder IPC must first open Binder driver, which is /dev/binder, and all requests in Binder driver are called through ioctl system. To pass.
  • Each object connected to the Binder driver has a unique handle as the identifier.
  • Service Manager acts as the Binder context manager and has a fixed handle of 0. When an application wants to request data from the server, it will first send a request for the service to the Binder context manager with handle 0. At this time, Service Manager will find the service from the service list and determine whether the client is There is permission to link to the service, and if so, return the handle of the service to the client.
  • Binder driver When the client gets the handle of the service, the client can send a request to the server through the Binder driver. All of Binder's instructions are passed through the ioctl system call, and in which multiple commands are stored linearly according to a specific data structure.
  • the use in the upper layer application is to construct a transitible data structure by calling the abstract function in libbinder. So what you need to do at this level is to parse the data and extract the data you need.
  • the Content Provider provides a standard calling standard for upper-level application calls. All applications must request data from the Content Provider according to this standard.
  • the Content Provider parses the requests and encapsulates the data back to the requesting application, thus completing the external data request. the process of. Therefore, it can be seen that the key to the processing of external data sources is to analyze the call interface of the Content Provider.
  • five interfaces are exposed for the upper layer, namely query, insert, update, delete, and getType.
  • the first parameter in these requests is a URI, which indicates the data in the Content Provider.
  • the URI consists of the tag name of the entire Content Provider and one of the table names. For example: content://com.android.contacts/people, where com.android.contacts is the name of the Content Provider, and people is one of the table names.
  • the Android system is the Content Provider that finds the application request through this URI.
  • the URI is the data that needs to be extracted from the ioctl.
  • Binder IPC there are a lot of IPC messages that are not related to data, and they are parsed one by one. Scanning these messages is not feasible, so it analyzes the use of the Android application to use the IPC, and find out the characteristics of the message about the data request.
  • FIG. 4 is a structural diagram of a protection system of application data according to an embodiment of the present invention.
  • the authority required to obtain the fake external information source is the same as that required for the real external information source.
  • the permission to read the contact list is android.permission.READ_CONTACTS
  • the read permission required by the Content Provider of the fake contact that is implemented by itself is also android.permission.READ_CONTACTS, so that when the monitored application is redirected to false After the external information source, the data acquisition can still be completed through the permission check.
  • the most ideal way is to copy the code of the real external information source.
  • the only modification is the URI, so that the behavior of the fake external information source and the real external information besides the data can be guaranteed.
  • the source is exactly the same, thus avoiding all unexpected errors.
  • the real external data source structure is huge, and the code amount of a single data source is also quite large.
  • this part of the user information is closely related to the system, it is difficult to extract the separate cotton coat separately, so this method is very difficult. .
  • the leakage of user information is by reading the user information. All the operations in the Content Provider are through the query command, so it is like inserting, updating. , delete (delete) do not need to have a corresponding implementation. And all the search commands need to cope with the result is empty, then if the query return value is empty, the accepted application will not care about the specific structure in the returned result, so that a false information source can be used to correspond to multiple correct Information sources are not implemented separately for each correct source of information. A fake external source of information is implemented, in which only the query instruction is implemented, and the result of the request is always returned, and the external data source is processed in this simple manner.
  • FIG. 7 is a structural block diagram of a protection apparatus for application data according to an embodiment of the present invention. As shown in Figure 7, the device includes:
  • the obtaining module 72 is configured to obtain a data request of the monitored application, where the data request is used to request data in the first data source, where the data to be protected is stored in the first data source;
  • the redirection module 74 is connected to the obtaining module 72, and is configured to redirect the data request from the first data source to the second data source, where the second data source is used to store the fake data of the data to be protected.
  • the obtaining module 72 is configured to: when the data request includes: a first data request for requesting internal data; or, when acquiring a second data request for requesting external data, acquiring a data request of the monitored application, where The internal data is data stored by the monitored application, and the external data is data of an application other than the monitored application in the operating system.
  • the redirection module 74 includes: a first modifying unit 740, configured to be invoked in the operating system When the application is monitored, the specified parameter for identifying the first data source in the internal data source is modified to be a first parameter for indicating the second data source; and the first redirecting unit 742 is connected to the first modifying unit 740. And being configured to redirect the data request to the second data source according to a parameter for indicating the second data source.
  • the redirection module 74 includes: an obtaining unit 744, configured to acquire a second parameter for identifying the data source from the external data source; and a second modifying unit 746, connected to the obtaining unit 744, configured to modify a parameter for identifying a data source to be used to indicate a parameter of the second data source, and a second redirecting unit 746, connected to the second modifying unit 746, configured to be configured according to the foregoing A parameter indicating the second data source redirects the data request to the second data source.
  • the embodiments of the present invention achieve the following beneficial effects: the problem of changing the Android Android system code and hindering the normal operation of the application in the process of protecting the application data in the related art is solved, so that the system code is not changed. In this case, the use of the original application is not hindered.
  • modules or steps of the present invention described above can be implemented by a general-purpose computing device that can be centralized on a single computing device or distributed across a network of multiple computing devices. Alternatively, they may be implemented by program code executable by the computing device such that they may be stored in the storage device by the computing device and, in some cases, may be different from The steps shown or described are performed sequentially, or they are separately fabricated into individual integrated circuit modules, or a plurality of modules or steps thereof are fabricated into a single integrated circuit module. Thus, the invention is not limited to any specific combination of hardware and software.
  • the technical solution for redirecting the target source corresponding to the user request data to another target source is adopted, and the related art needs to change the Android Android system in the process of protecting the application data.
  • the code and the problems that prevent the application from running properly prevent the original application from being used without changing the system code.

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)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种应用数据的保护方法及装置,其中,该方法包括:获取被监控应用的数据请求,该数据请求用于请求第一数据源中的数据,该第一数据源内存储需要保护的数据(S302);将所述数据请求由第一数据源重定向到第二数据源,其中,所述第二数据源用于存储所述需要保护的数据的虚假数据(S304)。采用上述技术方案,解决了相关技术中在进行应用数据的保护过程中,需要更改安卓(Android)系统代码以及阻碍应用正常运行的问题,使得在不更改系统代码的情况下,不阻碍原有应用的使用。

Description

应用数据的保护方法及装置 技术领域
本发明涉及通信领域,更具体地说,涉及一种应用数据的保护方法及装置。
背景技术
当今手机发展迅速,它不再仅仅是人们通讯的工具,手机上面丰富的应用满足了用户方方面面不同的需求,逐渐成为人们生活中不可或缺的一部分。但是正是因为智能手机的丰富功能,手机上保存的大量用户资料,手机数据的安全也成为了重要的研究课题。目前市面上主要的智能手机操作系统有网络操作系统、苹果公司开发的移动操作系统(IOS)、安卓(Android)系统与智能手机操作(Windows Phone)系统,由于Android系统的开放性,在市面上拥有着最多的用户,但是同时也是因为开放性,Android系统的安全一直是被用户所诟病的。Android中应用的来源于多种渠道,除了Google Play[4]之外,还有大量次级市场。缺乏有效的监管,用户往往难以分辨应用是否存在恶意行为,这让用户的个人数据存在巨大的安全隐患。并且Android采用的是全是或者全不是(All or nothing)的权限管理制度,用户只能接受应用的全部权限或者取消安装,这导致很多用户被迫赋予某些应用一些涉及到个人信息的权限而导致信息的泄露。
在桌面操作系统里面,关于数据安全的研究已经相对成熟,其中MIT的mbox[5]基于ptrace[6]实现了Linux non-root用户沙盒(sandbox)操作,用户可以在不申请root权限的基础上在sandbox中运行任意操作,使得sandbox中的操作不会影响到外部的操作系统,也同时保护了用户的数据不会被sandbox中的应用进行不恰当的使用,保证了数据安全。
而在Android安全领域的研究中,最著名的研究结果是TaintDroid。TaintDroid率先把Taint技术引入到Android系统,通过修改Dalvik VM的解释执行过程来让所有变量带上标记信息,实现变量基础上的标记,以便于监控被感染变量的使用情况。这种做法确实有效的跟踪了数据被使用的情况,但是他使用了直接修改应用框架(Application Framework)的方法,这导致如果用户想使用这个技术的话必须将自己的系统刷成特制的Android系统,这无疑大大削弱了他的实用性。而在这个工作的基础上,衍生出来VetDroid与AppFence尽管在安全分析上更进了一步,但是都没有解决需要使用特制系统的问题。
相关技术中,还有体内字节码仪器(In-vivo Bytecode Instrumentation),但是这个工作主要使用到的方法是通过反编译、重打包的静态分析手段修改原应用程序,将其重新打包成为一个新的应用,并在新的应用使用用户信息的语句中加入一个权限的检查,并询问用户是否赋予权限,从而实现用户信息的保护。
针对相关技术中在进行应用数据的保护过程中,需要更改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的机制获取。根据这一特性,本发明实施例将用户信息的来源分为内部以及外部两种来源。
内部数据来源:内部数据来源是指数据是由应用自身存储,包括了应用自身的文件、数据库、共享配置和外部文件等。
外部数据来源:外部数据来源是指数据由外部应用提供,通过Android IPC的机制在应用向外部程序发送了请求后所获取到得数据。
其中,第二参数包括:通用资源标识符(Uniform Resource Identifier,简称为URI),上述第一数据源对应多个上述第二数据源。
可选地,通过以下方式实现上述第一数据源对应多个上述第二数据源:当通过查询命令查询上述第二标识所指示的数据时,将上述查询命令的返回值设置为空,在上述查询命令的返回值为空时,接收到上述返回值的应用不对上述返回值进行响应。
为了更好的理解上述实施例的应用数据的保护过程,以下结合一个优选实施例进行说明明,但不限定本发明。
对于内部数据来源(即上述实施例的内部数据)
Android应用安装过程主要完成了3个步骤,将apk文件放入/data/app目录,解压并扫描apk包,并将其中的dex(Dalvik字节码)文件放入到/data/dalvik-cachhe文件夹中,并在/data/data/文件夹中创建存放该应用数据的更目录。在该应用运行的时候所有默认创建的文件、cache、数据库等都会被存放/data/data/中对应的文件夹中,在内部存储中应用也仅对这个文件夹中的文件拥有所有权限。
因此一个应用的所有内部存储的数据都集中在/data/data/中对应的文件夹中,这便是针对内部存储需要保护的文件夹。当一个应用的/data/data/文件夹被清空时,它在运行时便像新安装的一个应用,不包含任何数据。
除此之外应用还可以通过申请external storage权限的方式获得访问外部储存介质的访问的权限,并可以将自己的数据存储在外部存储中。但是这样应用便有可能与其他应用共享某些文件,这样便可能导致用户数据的泄露。而这部分的地址也是固定的,均在/sdcard目录中。
所以应用的所有内部数据来源都是存在于几个特定的目录中,要对这些信息进行保护便可以通过重定向的方式让被监控应用在不知情的情况下访问不了真实的文件,而是访问到了隔离文件夹中。为了让被监控应用能够正确的执行,并且不能意识到自己被监控了,需要在其系统调用进入时将其文件目录的参数修改成为隔离文件夹,并在系统调用成功返回时将其重新改为原来进入时的原路径。这样一来就实现了对上层完全透明的文件系统重定向的功能。
然后识别了所有需要实现重定向功能的系统调用,将以上哪种方式一一应用,便实现了内部数据来源的保护。
外部数据来源(即上述实施例的外部数据)
外部数据来源是从目标应用之外的进程中获取数据,那么这些数据都会有一个数据来源的进程,称之为外部数据源。外部数据源获得了目标应用对数据的请求并将数据返回给目标应用,通过这种方式来完成数据的传递。在这一过程中有多个Android模块参与,并且有相对复杂的交互,并不能通过像内部数据来源处理一样简单地修改,在此之前我们必须首先了解Android IPC和Content Provider的运行机制。最后为了避免目标应用获取用户信息,本发明实施例同样采用了重定向的方法,在目标应用不知情的情况下,在其请求用户信息的时候将这一请求重定向到虚假的外部数据源中,这样目标应用就拿不到正确外部数据源的数据,从而实现了外部数据的保护。
Binder是Android系统中IPC的机制,Binder的核心组件式Binder驱动,因此所有要使用Binder IPC的应用必须首先open Binder驱动,也就是/dev/binder,并且Binder驱动中所有请求都是通过ioctl系统调用来传递的。而连接上Binder驱动的每一个对象都有一个唯一的句柄来作为标示,Service Manager作为Binder上下文管理者,它拥有固定的句柄0。当一个应用希望向服务端请求数据时,它会先也会向句柄为0的Binder上下文管理者发送对服务的请求,这时Service Manager会从服务列表中查找出该服务,并且判断客户端是否有链接该服务的权限,如果有则将该服务的句柄返回给客户端。当客户端拿到了该服务的句柄后,那么客户端就可以通过Binder驱动向服务端发送请求了。Binder的所有指令都是通过ioctl系统调用传递的,并在其中按照特定的数据结构线性的存储了多个命令,在上层应用中的使用是通过调用libbinder中的抽象函数来构成可传递的数据结构,因此在这一层中需要做的便是解析这些数据,并把需要的数据抽取出来。
而在Binder之上,Android通过Content Provider来为远程应用提供数据。Content Provider对于上层应用调用提供了规范的调用标准,所有应用都必须按照这种标准来向Content Provider请求数据,Content Provider通过解析这些请求,将数据封装返回给请求应用,如此一来完成外部数据请求的过程。因此可以看出来对于外部数据来源的处理的关键是分析Content Provider的调用接口。在Content Provider中,为上层暴露了5个接口,分别是query,insert,update,delete和getType,在这些请求中第一个参数均为URI,该URI标示了Content Provider中的数据。该URI由整个Content Provider的标示名字和其中的一个表名组成。例如:content://com.android.contacts/people,其中com.android.contacts就为Content Provider的标示,而people则是其中的一个表名。Android系统便是通过这个URI找到应用请求的Content Provider。
由此可看出URI便是需要从ioctl中提取出来的数据。但是由于Android系统中使用到Binder IPC的地方太多了,中间包含了大量与数据无关的IPC消息,逐条解析并 扫描这些消息并不可行,因此分析了Android应用使用需要使用到IPC的地方,并且从中找出了有关数据请求的消息的特点。
图4便是一个应用请求外部数据所要使用到的信息,通过找出这两个信息,解析这条信息便可以从中找出我们需要的URI的数据。具体的流程如图5所示,图6为根据本发明实施例的应用数据的保护系统架构图。
提取出URI后需要做的就是将其改变成我们创建的虚假数据源。
由于监控要对上层透明,因此为了让目标应用能通过虚假外部信息源的权限检查,这样求虚假外部信息源所需的权限与真实外部信息源所需的权限相同。例如读取联系人列表的权限为android.permission.READ_CONTACTS,那么自己实现的虚假联系人的Content Provider所需的读取权限同样也为android.permission.READ_CONTACTS,这样当被监控应用被重定向到虚假外部信息源后仍然可以正确的通过权限检查完成数据获取。
而对于虚假外部信息源的实现,最理想的方式是照搬真实外部信息源的代码,唯一修改的就是URI,这么一来就可以保证除了数据之外,虚假外部信息源的行为完全与真实外部信息源完全相同,从而避免一切意外错误。但是一方面来说真实外部数据源结构庞大,单个数据源的代码量也相当大,另一方面因为这部分用户信息与系统紧密相关,难以将其单独抽出独立棉衣,因此这种方式难度很大。
但是根据在上文中的分析,用户信息的泄露都是通过读取用户信息,在Content Provider中所有读取的操作都是通过询问(query)命令,那么其实像插入(insert)、更新(update)、删除(delete)都不需要有相应实现。并且所有查找命令都需要应付结果为空的情况,那么如果query返回值为空的话,接受的应用便不会理会返回结果中的具体结构,这么一来一个虚假信息源便可用于对应多个正确信息源上,不用针对每个正确信息源单独实现了。实现了一个虚假外部信息源,其中仅仅实现了query指令,并且不管请求是什么总是返回空的结果,通过这一简单的方式,完成了外部数据来源的处理。
在本实施例中还提供了一种应用数据的保护装置,用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述,下面对该装置中涉及到的模块进行说明。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图7为根据本发明实施例的应用数据的保护装置的结构框图。如图7所示,该装置包括:
获取模块72,设置为获取被监控应用的数据请求,该数据请求用于请求第一数据源中的数据,该第一数据源内存储需要保护的数据;
重定向模块74,与获取模块72连接,设置为将上述数据请求由第一数据源重定向到第二数据源,其中,上述第二数据源用于存储上述需要保护的数据的虚假数据。
通过上述各个模块的综合作用,采用将用户请求数据对应的目标源重定向到另一个目标源的技术方案,解决了相关技术中在进行应用数据的保护过程中,需要更改Android安卓系统代码以及阻碍应用正常运行的问题,使得在不更改系统代码的情况下,不阻碍原有应用的使用。
可选地,获取模块72设置为在上述数据请求包括:用于请求内部数据的第一数据请求;或,获取用于请求外部数据的第二数据请求时,获取被监控应用的数据请求,其中,上述内部数据为上述被监控应用存储的数据,上述外部数据为在操作系统中除上述被监控应用外的其他应用的数据。
本发明实施例对上述技术方案的进一步改进在于,当获取的是用于请求内部数据的第一数据请求时,重定向模块74,包括:第一修改单元740,设置为在上述操作系统调用被监控应用时,将上述内部数据源中用于标识上述第一数据源的指定参数修改为用于指示上述第二数据源的第一参数;第一重定向单元742,与第一修改单元740连接,设置为根据用于指示上述第二数据源的参数将上述数据请求重定向到上述第二数据源。
当获取的是用于请求外部数据的第二数据请求时,重定向模块74,包括:获取单元744,设置为从上述外部数据源中获取用于标识数据源的第二参数;第二修改单元746,与获取单元744连接,设置为将用于标识数据源的参数修改为用于指示上述第二数据源的参数;第二重定向单元746,与第二修改单元746相连,设置为根据上述指示第二数据源的参数将上述数据请求重定向到上述第二数据源。
综上所述,本发明实施例实现了以下有益效果:解决了相关技术中在进行应用数据的保护过程中,需要更改Android安卓系统代码以及阻碍应用正常运行的问题,使得在不更改系统代码的情况下,不阻碍原有应用的使用。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处 的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
工业实用性
基于本发明实施例提供的上述技术方案,采用将用户请求数据对应的目标源重定向到另一个目标源的技术方案,解决了相关技术中在进行应用数据的保护过程中,需要更改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所述的装置,其中,当获取的是用于请求外部数据的第二数据请求时,所述重定向模块,包括:
    获取单元,设置为从所述外部数据源中获取用于标识数据源的第二参数;
    第二修改单元,设置为将用于标识数据源的参数修改为用于指示所述第二数据源的参数;
    第二重定向单元,设置为根据所述指示第二数据源的参数将所述数据请求重定向到所述第二数据源。
PCT/CN2015/075799 2014-09-01 2015-04-02 应用数据的保护方法及装置 WO2016033966A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
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 (2)

Application Number Priority Date Filing Date Title
CN201410440445.1 2014-09-01
CN201410440445.1A CN105373734A (zh) 2014-09-01 2014-09-01 应用数据的保护方法及装置

Publications (1)

Publication Number Publication Date
WO2016033966A1 true WO2016033966A1 (zh) 2016-03-10

Family

ID=55375923

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2015/075799 WO2016033966A1 (zh) 2014-09-01 2015-04-02 应用数据的保护方法及装置

Country Status (4)

Country Link
US (1) US20170286644A1 (zh)
EP (1) EP3190537A4 (zh)
CN (1) CN105373734A (zh)
WO (1) WO2016033966A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
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
CN107220538A (zh) * 2017-06-27 2017-09-29 广东欧珀移动通信有限公司 支付类应用程序管理方法、装置及移动终端
CN110472422A (zh) * 2018-05-10 2019-11-19 北京嘀嘀无限科技发展有限公司 数据保护方法、装置和存储介质
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
CN108984141A (zh) * 2018-07-05 2018-12-11 郑州云海信息技术有限公司 一种输出重定向的方法及系统
TWI741271B (zh) * 2018-10-02 2021-10-01 智微科技股份有限公司 資料保護方法以及相關儲存裝置
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
CN110210211B (zh) * 2019-06-05 2021-09-07 北京证大向上金融信息服务有限公司 一种数据保护的方法和计算设备
CN115509767B (zh) * 2021-06-23 2024-06-04 华为技术有限公司 一种服务进程的调用方法及相关装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102222292A (zh) * 2011-05-27 2011-10-19 北京洋浦伟业科技发展有限公司 一种手机支付保护方法
CN102662870A (zh) * 2012-03-20 2012-09-12 武汉噢易科技有限公司 基于vfs层拦截读写请求的安卓操作系统保护方法
CN103177210A (zh) * 2013-04-02 2013-06-26 中国人民大学 一种在Android中植入动态污点分析模块的方法
WO2014105481A2 (en) * 2012-12-31 2014-07-03 SanDisk Technologies, Inc. System and method for selectively routing cached objects

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4638494B2 (ja) * 2004-08-21 2011-02-23 ファン・コ−チェン コンピュータのデータ保護方法
CN1983296B (zh) * 2005-12-12 2010-09-08 北京瑞星信息技术有限公司 用于防止非法程序窃取用户信息的方法及装置
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
CN103294590B (zh) * 2012-02-28 2015-05-06 腾讯科技(深圳)有限公司 应用程序运行中的处理方法和装置
CN102693394B (zh) * 2012-06-07 2015-04-22 北京奇虎科技有限公司 一种用于拦截应用程序对服务的调用的方法和装置
CN103198255B (zh) * 2013-04-03 2015-06-24 武汉大学 一种Android软件敏感行为监控与拦截方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102222292A (zh) * 2011-05-27 2011-10-19 北京洋浦伟业科技发展有限公司 一种手机支付保护方法
CN102662870A (zh) * 2012-03-20 2012-09-12 武汉噢易科技有限公司 基于vfs层拦截读写请求的安卓操作系统保护方法
WO2014105481A2 (en) * 2012-12-31 2014-07-03 SanDisk Technologies, Inc. System and method for selectively routing cached objects
CN103177210A (zh) * 2013-04-02 2013-06-26 中国人民大学 一种在Android中植入动态污点分析模块的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
See also references of EP3190537A4 *
WANG, PENG ET AL.: "A Method of Private Protection Based on Faking Data in Android", INFORMATION AND COMMUNICATIONS TECHNOLOGIES, 31 December 2012 (2012-12-31), pages 45 - 50, XP008184319, ISSN: 1674-1285 *

Also Published As

Publication number Publication date
CN105373734A (zh) 2016-03-02
EP3190537A1 (en) 2017-07-12
EP3190537A4 (en) 2017-07-12
US20170286644A1 (en) 2017-10-05

Similar Documents

Publication Publication Date Title
WO2016033966A1 (zh) 应用数据的保护方法及装置
US10489187B2 (en) Systems and methods for auditing a virtual machine
US10445498B2 (en) Systems and methods of application control in virtualized environments
Mann et al. A framework for static detection of privacy leaks in android applications
US20170046135A1 (en) Configurable Development Platform Integrating Heterogeneous Persistence Systems
US8429648B2 (en) Method and apparatus to service a software generated trap received by a virtual machine monitor
US10176327B2 (en) Method and device for preventing application in an operating system from being uninstalled
US20150161390A1 (en) Fast and accurate identification of message-based api calls in application binaries
US20180267880A1 (en) Breakpoint insertion into kernel pages
CN110442379A (zh) 保护有条件的推测指令执行
US9652223B2 (en) Method and apparatus for executing integrated application program
WO2018233379A1 (zh) 数据明文获取方法、装置、电子终端及可读存储介质
CN103116715A (zh) Windows平台可执行文件API延迟导入保护方法
US9477538B2 (en) Method and system for the support of application specific policies for conventional operating systems
US7962922B2 (en) Delivering callbacks into secure application areas
CN108021801B (zh) 基于虚拟桌面的防泄密方法、服务器及存储介质
CN114238021A (zh) 一种sdk接口定位方法、装置、设备及计算机存储介质
Mutia Inter-Process Communication Mechanism in Monolithic Kernel and Microkernel
CN110737911A (zh) 数据处理方法、装置和计算机可读存储介质
WO2018023368A1 (en) Enhanced security using scripting language-based hypervisor
Zhan et al. SAVM: A practical secure external approach for automated in‐VM management
US20160188872A1 (en) Method and system for runtime injection of secure applications
TWI446207B (zh) The device and method used to load the app category
CN115617496A (zh) 用户模式与内核模式通信的方法、装置、电子设备和介质
CN113806714A (zh) 一种应用程序的白名单信息安全传输方法与装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15837589

Country of ref document: EP

Kind code of ref document: A1

REEP Request for entry into the european phase

Ref document number: 2015837589

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2015837589

Country of ref document: EP

Ref document number: 15507622

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE