The present invention relates generally to secure management of data and, more particularly, to systems and methods for securely managing data in a client-server application environment.
Client-server computing, in which client computers having minimal processing and storage capabilities are dependent upon a client server, is becoming more popular. However, client-server computing environments use software that is often outside of the protective range of a company (e.g., outside the firewall), being accessible only via a network connection such as the Internet. Therefore, a need exists to securely manage data in a client-server application environment.
Exemplary embodiments of the present invention provide systems and methods for securely managing data in a client-server application environment. A system for securely managing data in the client-server environment includes a network that connects devices in the client-server environment including a client application, a thick client application or an internet browser application configured to access the network, a server configured to provide applications and drivers to clients in the client-server environment, and a client including a client application configured to provide criteria including a plurality of IP addresses to a network driver. The network driver monitors network connections of the client applications to determine when one of the plurality of IP addresses is accessed by the client. When a matching IP address is accessed, a process ID of the application used to access the accessed IP address is sent to a client application. A criteria based on the process ID is created, and the criteria is sent to a file system driver for controlling access (reading, writing, creating) of the client to information from the IP address.
Other objects, advantages, and novel features of the present invention will become apparent from the following detailed description of the invention when considered in conjunction with the accompanying drawings.
Policies can be used and/or created for an application to define an association between multiple data, such as associating a process ID with a particular IP address. Logs can be used to keep a record of data accessed by the client 110. Actions define a plurality of operations that can be performed when criteria are matched. Examples of actions include allowing a file to be opened, blocking the opening of a file, encrypting a file, redirecting/copying a file to a specified file path, and securing/moving a file to a secure area. Other actions are possible as well. As further described below, a criteria may be an IP address that is accessed by a client-server application.
Also, a Software as a Service (SaaS)/client-server application 150 can receive policies, logs and actions from the server 150. The client-server application 150 is accessed via the network 120. For example, a standard web browser, such as Internet Explorer or Firefox, may be used to access the client-server application 150 via the Internet. Data 160 from the network 120 may be provided to the client-server application 150 and the client 110.
When an IP address is accessed, the process ID (PID) of the application through which the IP address is connected (e.g., Firefox) is sent back to the client application for further processing. In particular, a new criteria may be created based on the PID and that new criteria may be sent to a file system driver 250. Thus, the file system driver may also receive criteria from the client application 140.
The network driver 240 and the file system driver 250 send log information to the client application, where it may be stored in logs 220. Additionally, the folders 230 may be used to store any particular data or files of interest. Also, the network driver 240 and the file system driver 250 send data and/or pointer 260 to the client application, based on the monitoring performed by the network driver 240 and the file system driver 250, which is based on the criteria.
A connection state may be defined as connected, not connected, or connected to a particular IP address (e.g., salesforce.com). When connected to a particular IP address, the client application can create or use policies specific to that state. For example, if PID 123=Firefox and the connection is to 1.1.2.3 (i.e., Bank of America), a policy can be created that states that PID 123 can only have one connection and the connection must be to 1.1.2.3. Another policy that can be implemented, for example, is the intercepting of all file downloads when connected to a particular IP address.
The client application 140 can be used to delete files, folders, and/or applications from the client 110. In other words, a policy can be implemented such that the server 130 sends a message to the client 110 to perform a specific deletion operation of files, folders and/or applications, when, for example, it is determined that an employee that previously used the client is no longer allowed access to the client (e.g., when an employee stops working for a particular employer). Performing the deletion operation can prevent the former user from gaining access to information that could be compromised if access were allowed, thereby providing improved security for that information.
On the other hand, if in step 404 it is determined that one of the IP addresses has been accessed by the client device, the PID of the application used to connect to the IP address may be sent to the client application in step 405. In step 406, a new criteria can be created based on the PID. The new criteria can be sent to the file system driver 250 in step 407. The file system driver 250 can control access to information in the file system traffic 310 in step 408, based on the new criteria.
On the other hand, if it is determined in step 503 that there is a criteria match, then in step 506 the system I/O is encrypted, decrypted or redirected. If the system I/O is to be encrypted or decrypted, it is sent to an encrypt/decrypt function or driver. Using an encryption such as AES, 3DES, Blowfish, or the like, the system I/O (i.e., file) can be encrypted/decrypted in stream, thereby modifying the system I/O. After the encryption/decryption is complete, the modified system I/O is returned to the operating system and completed in step 507. If the system I/O is to be redirected, the system I/O is sent to a redirector function or driver where the I/O file destination is changed. The modified system I/O with the new destination is sent back to the system for completion of the modified system I/O (i.e., file write operation) in step 507.
While the invention has been described in connection with various embodiments, it will be understood that the invention is capable of further modifications. This application is intended to cover any variations, uses or adaptation of the invention following, in general, the principles of the invention, and including such departures from the present disclosure as, within the known and customary practice within the art to which the invention pertains.
The foregoing disclosure has been set forth merely to illustrate the invention and is not intended to be limiting. Since modifications of the disclosed embodiments incorporating the spirit and substance of the invention may occur to persons skilled in the art, the invention should be construed to include everything within the scope of the appended claims and equivalents thereof.