Securing Data on Untrusted Devices
One example method for securing data on untrusted devices includes the steps of identifying, by a first process, a command in a command queue, the command from a second process and comprising an action on secure data; determining whether the command is permitted based on the action and a user credential; and responsive to determining the command is not permitted, removing, by the first process, the command from the command queue.
1 . A method comprising:
identifying, by a first process, a command in a command queue, the command from a second process and indicating an action on secure data;
determining whether the command is permitted based on the action and a user credential; and
responsive to determining the command is not permitted, removing, by the first process, the command from the command queue.
2 . The method of claim 1 , wherein identifying the command comprises identifying an entry in the command queue associated with a secure storage location, and identifying the software application based on the entry.
3 . The method of claim 2 , wherein identifying the entry comprises identifying a path on a computer-readable medium for the secure storage location or a process identifier of a software application accessing the secure data.
4 . The method of claim 2 , wherein the secure storage location comprises a separately-mountable partition of a computer-readable medium.
5 . The method of claim 1 , wherein the secure data comprises data stored within a secure storage location, and wherein identifying the command comprises identifying an entry in the command queue associated with a process identifier of a process accessing the secure data.
6 . The method of claim 1 , wherein the command queue comprises an operating system command queue.
7 . The method of claim 1 , wherein the command queue comprises an application server command queue.
8 . The method of claim 1 , wherein the command queue comprises a virtual machine command queue.
9 . The method of claim 1 , further comprising, responsive to determining the command is permitted, not removing the command from the command queue.
10 . The method of claim 1 , wherein the command comprises at least one of a save command, a save as command, an open command, a move command, a rename command, a print command, a copy command, a cut command, a paste command, an email command, a screenshot command, a rename command, or a share command.
11 . A device comprising:
a non-transitory computer-readable medium;
a processor in communication with the non-transitory computer readable medium, the processor configured to:
monitor, by a first process, a command queue to identify commands from other processes, at least one of the commands indicating an action on secure data;
access one or more access rules to determine whether the at least one command is permitted; and
responsive to a determination the command is not permitted, remove the command from the command queue.
12 . The device of claim 11 , wherein the processor is further configured to:
identify an entry in the command queue associated with a secure storage location, and
identify the software application based on the entry, to identify the command.
13 . The device of claim 12 , wherein the processor is further configured to identify a path on a computer-readable medium for the secure storage location to identify the entry.
14 . The device of claim 12 , wherein the secure storage location comprises a separately-mountable partition of a computer-readable medium.
15 . The device of claim 11 , wherein the secure data comprises data stored within a secure storage location, and wherein the processor is further configured to identify an entry in the command queue associated with a process identifier of a process accessing the secure data to identify the command.
16 . The device of claim 11 , wherein the command queue comprises an operating system command queue.
17 . The device of claim 11 , wherein the processor is further configured to not remove the command from the command queue if the command is permitted.
18 . The device of claim 11 , wherein the command comprises at least one of a save command, a save as command, an open command, a move command, a rename command, a print command, a copy command, a cut command, a paste command, an email command, a screenshot command, a rename command, or a share command.
19 . A non-transitory computer-readable medium comprising program code, the program code comprising monitoring software executable by a processor, the monitoring software configured to:
monitor a command queue to identify commands from other processes;
identify a command indicating an action on secure data;
transmit a request to determine whether the command is permitted; and
responsive to a response to the request indicating that the command is not permitted, remove the command from the command queue.
20 . The non-transitory computer-readable medium of claim 19 , wherein the program code further comprises program code for access rules software executable by a processor, the access rules software configured to:
access an access rules data store, the access rules data store configured to store one or more rules associated with commands or user credentials;
receive requests to determine whether commands associated with the requests are permitted;
determine whether the commands are permitted based on the respective request and the one or more rules; and
transmit a response message to the respective request.