IP Library Granted Patent US 10,447,720
Granted Patent B1
US 10,447,720 · App. 14/645,452 · Granted Oct 15, 2019

Systems and methods for performing application container introspection

Inventors: Nathan Evans (Sterling, VA); Azzedine Benameur (Fairfaix Station, VA)
Assignee: Symantec Corporation
H04L63/1433H04L67/10
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,447,720
App. No.
14/645,452
Granted
Oct 15, 2019
Kind
B1
Abstract

The disclosed computer-implemented method for performing application container introspection may include (1) identifying a request issued by an application launched from an application container, (2) determining that the request calls a function that facilitates transferring data between the application container and at least one external data source, and then in response to determining that the request calls the function, (3) directing the request to a function library that includes a custom version of the function that facilitates both (A) transferring, between the application container and the external data source, an encrypted version of the data that is unintelligible to an external application running outside the application container and (B) providing an unencrypted version of the data to the external application to enable the external application to inspect the data. Various other methods, systems, and computer-readable media are also disclosed.

Claims (69)

1. A computer-implemented method for performing application container introspection, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

identifying a request issued by an application launched from within an application container that isolates the application from a host operating system while simultaneously utilizing the operating system kernel of the host operating system;

determining that the request calls an original function that processes transferring, using end-to-end encryption, data between the application container and at least one external data source that is external to the application container; and

in response to determining that the request calls the original function, directing the request to a function library that includes a custom version of the original function that processes, without allowing the request to resolve to the original function, both:

using end-to-end encryption, transferring, between the application container and the external data source, an encrypted version of the data that is unintelligible to an external application running outside the application container; and

providing an unencrypted version of the data to the external application to enable the external application to inspect the data.

2. The method of claim 1 , wherein the external application comprises at least one of:

a host operating system that executes the application container;

a data-loss-prevention application; and

a computer security system.

3. The method of claim 1 , wherein the custom version of the function processes transferring the encrypted version of the data between the application container and the external data source in a manner identical to an original version of the function.

4. The method of claim 1 , wherein providing the unencrypted version of the data to the external application comprises enabling the external application to inspect the data before the custom version of the function processes transferring the encrypted version of the data between the application container and the external data source.

5. The method of claim 4 , further comprising:

receiving, from the external application, a notification indicating that the data to be transferred potentially violates at least one security policy; and

refraining, in response to receiving the notification, from transferring the encrypted version of the data.

6. The method of claim 1 , wherein:

the function library resides within the application container; and

directing the request to the function library comprises directing the request to the custom version of the function included in the function library residing within the application container.

7. The method of claim 1 , wherein:

the function library resides outside the application container and within a host operating system that hosts the application container; and

directing the request to the function library comprises:

identifying, within the application container, a link that points to the function library; and

directing the request to the function library by way of the link identified within the application container.

8. The method of claim 1 , wherein providing the unencrypted version of the data to the external application further comprises providing the data to the external application by way of a virtual network interface.

9. The method of claim 1 , wherein providing the unencrypted version of the data to the external application further comprises providing the data to the external application by way of shared memory.

10. The method of claim 1 , wherein:

providing the unencrypted version of the data to the external application comprises delivering, before the data is encrypted, the unencrypted version of the data to the external application to ensure that the data does not violate a data-loss-prevention policy; and

transferring the encrypted version of the data between the application container and the external data source comprises, upon ensuring that the data does not violate the data-loss-prevention policy:

encrypting the data for secure transmission from the application container to the external data source; and

transmitting the encrypted data from the application container to the external data source in accordance with the data-loss-prevention policy.

11. The method of claim 1 , wherein:

transferring the encrypted version of the data between the application container and the external data source comprises receiving the encrypted version of the data at the application container from the external data source; and

providing the unencrypted version of the data to the external application comprises:

generating the unencrypted version of the data by decrypting the encrypted version of the data; and

delivering, before the application running inside the application container handles a potentially malicious payload included within the data, the unencrypted version of the data to the external application to ensure that the data does not violate a security policy.

12. The method of claim 1 , wherein the external data source comprises at least one of:

a remote computing device;

a virtual machine; and

a storage device.

13. The method of claim 1 , wherein the application container isolates the application from the host operating system by:

preventing the application from interacting with applications outside the application container; and

preventing applications outside the application container from interacting with the application.

14. A system for performing application container introspection, the system comprising:

at least one physical processor; and

a memory, the memory having stored thereon instructions that, when executed by the at least one physical processor, cause the system to:

identify a request issued by an application launched from within an application container that isolates the application from a host operating system while simultaneously utilizing the operating system kernel of the host operating system;

determine that the request calls an original function that processes transferring, using end-to-end encryption, data between the application container and at least one external data source that is external to the application container; and

in response to determining that the request calls the original function, direct the request to a function library that includes a custom version of the original function that processes, without allowing the request to resolve to the original function, both:

using-end-to-end encryption, transferring, between the application container and the external data source, an encrypted version of the data that is unintelligible to an external application running outside the application container; and

providing an unencrypted version of the data to the external application to enable the external application to inspect the data.

15. The system of claim 14 , wherein the custom version of the function processes transferring the encrypted version of the data between the application container and the external data source in a manner identical to an original version of the function.

16. The system of claim 14 , wherein the custom version of the function provides the unencrypted version of the data to the external application by enabling the external application to inspect the data before the custom version of the function processes transferring the encrypted version of the data between the application container and the external data source.

17. The system of claim 16 , further comprising:

receiving, from the external application, a notification indicating that the data to be transferred potentially violates at least one security policy; and

refraining, in response to receiving the notification, from transferring the encrypted version of the data.

18. The system of claim 14 , wherein:

the function library resides within the application container; and

directing the request to the function library comprises directing the request to the custom version of the function included in the function library residing within the application container.

19. The system of claim 14 , wherein:

the function library resides outside the application container and within a host operating system that hosts the application container; and

directing the request to the function library comprises:

identifying, within the application container, a link that points to the function library; and

directing the request to the function library by way of the link identified within the application container.

20. A non-transitory computer-readable medium comprising one or more computer-readable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

identify a request issued by an application launched from within an application container that isolates the application from a host operating system while simultaneously utilizing the operating system kernel of the host operating system;

determine that the request calls an original function that processes transferring, using end-to-end encryption, data between the application container and at least one external data source that is external to the application container; and

in response to determining that the request calls the original function, direct the request to a function library that includes a custom version of the function that processes, without allowing the request to resolve to the original function, both:

using end-to-end encryption, transferring, between the application container and the external data source, an encrypted version of the data that is unintelligible to an external application running outside the application container; and

providing an unencrypted version of the data to the external application to enable the external application to inspect the data.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2019
From: SYMANTEC CORPORATION
To: CA, INC.
Reel/Frame 051144/0918 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 12, 2015
From: EVANS, NATHAN; BENAMEUR, AZZEDINE
To: SYMANTEC CORPORATION
Reel/Frame 035146/0001 →
Cited By (7)
US 12,244,625 US 12,355,817 US 12,585,760 US 12,598,216 US 12,621,331 US 12,684,018 US 12,706,889