Method and system for protecting data flow at a mobile device
First Claim
1. A data flow policy evaluation system for a mobile computing device embodied as executable instructions in one or more non-transitory machine-accessible storage media, the data flow policy evaluation system comprising:
- one or more computing devices; and
executable by the one or more computing devices;
a system call monitor to monitor system calls made by a plurality of security-wrapped software applications during execution of the security-wrapped software applications at the mobile computing device; and
a data flow policy engine to generate policy decisions to enable the security-wrapped software applications to prevent the execution of system calls that would violate a data flow policy, wherein the data flow policy defines security labels, associates data flow policies with the security labels, and assigns the security labels to data objects, and the data flow policy engine is configured to;
cause an executing process of a security-wrapped software application to inherit a security label of a data object when the process accesses the data object to which the security label is assigned;
when the process inherits a security label of a data object, apply a policy associated with the security label of the data object to a future activity of the executing process that does not involve the data object; and
as a result of the security label of the data object being inherited by the process, associate another executing process with the security label of the data object accessed by the process when the other executing process is in communication with the executing process.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and system for evaluating and enforcing a data flow policy at a mobile computing device includes a data flow policy engine to evaluate data access requests made by security-wrapped software applications running on the mobile device and prevent the security-wrapped software applications from violating the data flow policy. The data flow policy defines a number of security labels that are associated with data objects. A software application process may be associated with a security label if the process accesses data having the security label or the process is in communication with another process that has accessed data having the security label.
303 Citations
23 Claims
-
1. A data flow policy evaluation system for a mobile computing device embodied as executable instructions in one or more non-transitory machine-accessible storage media, the data flow policy evaluation system comprising:
-
one or more computing devices; and executable by the one or more computing devices; a system call monitor to monitor system calls made by a plurality of security-wrapped software applications during execution of the security-wrapped software applications at the mobile computing device; and a data flow policy engine to generate policy decisions to enable the security-wrapped software applications to prevent the execution of system calls that would violate a data flow policy, wherein the data flow policy defines security labels, associates data flow policies with the security labels, and assigns the security labels to data objects, and the data flow policy engine is configured to; cause an executing process of a security-wrapped software application to inherit a security label of a data object when the process accesses the data object to which the security label is assigned; when the process inherits a security label of a data object, apply a policy associated with the security label of the data object to a future activity of the executing process that does not involve the data object; and as a result of the security label of the data object being inherited by the process, associate another executing process with the security label of the data object accessed by the process when the other executing process is in communication with the executing process. - View Dependent Claims (2, 3, 4)
-
-
5. A system for evaluating data access requests at a mobile computing device, embodied as executable instructions in one or more non-transitory machine-accessible storage media, the system comprising:
-
one or more computing devices; and executable by the one or more computing devices; a system call monitor to monitor system calls relating to data accesses made by an instance of a security-wrapped software application executing on the mobile computing device; and a data flow policy engine to; associate data access tracking data with the instance of the security-wrapped software application, wherein the data access tracking data relates to data objects accessed by the instance and security labels assigned to the data objects, and the security labels indicate conflicts of interest between or among the data objects; and generate data flow policy decisions based on the data access tracking data, wherein the policy decisions are based on;
(i) one or more current and one or more previous data accesses made by the instance and (ii) one or more security labels assigned to the data objects and inherited by the instance as a result of the previous data accesses, wherein when the instance inherits a security label of a data object, the data flow policy engine applies a policy associated with the inherited security label to a future activity of the instance that does not involve the data object; andas a result of the security label of the data object being inherited by the instance, associate another executing instance with the security label of the data object accessed by the instance when the other executing instance is in communication with the executing instance. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A system for enforcing a data flow policy at a mobile computing device, embodied as executable instructions in one or more non-transitory machine-accessible storage media, the system comprising:
-
one or more computing devices; and executable by the one or more computing devices; a system call monitor to monitor system calls made by an instance of a security-wrapped software application executing on the mobile computing device; a data flow policy engine to; analyze the system calls using a data flow policy, wherein the data flow policy assigns security labels to data objects and the security labels indicate conflicts of interest between or among data objects; assign a security label to a data object when the data object is produced by a data source having the security label or when the data object is created by a software application process that has inherited the security label from another data object, wherein when the software application process has inherited the security label from another data object, the system applies a policy associated with the inherited security label to a future activity of the software application process that does not involve the another data object; and as a result of the security label of the another data object being inherited by the instance, associate another executing instance with the security label of the another data object accessed by the instance when the other executing instance is in communication with the executing instance; and associate the instance with the security label when the instance accesses the data object and the security label is assigned to the data object; and a data flow policy enforcer to prevent the instance from executing a system call that violates the data flow policy. - View Dependent Claims (17)
-
-
18. data flow policy engine for a mobile computing device, embodied as executable instructions in one or more non-transitory machine-accessible storage media, the data flow policy engine configured to:
-
evaluate system calls made by instances of security-wrapped software applications executing on the mobile computing device; cause an instance of a security-wrapped software application to inherit a security label when the instance reads a data object to which the security label is assigned, writes to a data object to which the security label is assigned, or connects to a data source to which the security label is assigned;
wherein the security label indicates that the data object or data source has a conflict of interest with at least one other data object or data source, and wherein when the instance inherits a security label of a data object, the data flow policy engine applies a policy associated with the inherited security label to a future activity of the instance that does not involve the data object; andas a result of the security label of the data object being inherited by the instance, associate another executing instance with the security label of the data object accessed by the instance when the other executing instance is in communication with the executing instance; and generate a data flow policy decision usable by the security-wrapped software application to prevent the execution of any system call that would result in a conflict of interest. - View Dependent Claims (19, 20)
-
-
21. The data flow policy engine of 18, wherein the security label is defined as either public or private.
-
22. The data flow policy engine of 21, wherein in response to the executing instance of the security-wrapped software application attempting to perform a write operation on a data object having a public security label after reading another data object having a private security label, the data flow policy engine is configured to:
-
generate a copy of the data object; allow the write operation to be performed on the copy of the data object; deny the write operation on the data object; and associate the copy of the data object with the security label.
-
-
23. The data flow policy engine of 22, wherein the data flow policy engine is configured to:
-
associate a data access by another executing instance of the security-wrapped software application with the copy of the data object when the other instance is associated with the security label; and associate the data access by the other instance with the data object when the other instance is not associated with the security label.
-
Specification