IP Library Granted Patent US 11,693,951
Granted Patent B2
US 11,693,951 · App. 17/378,271 · Granted Jul 4, 2023

Method and apparatus for applying application context security controls for software containers

Inventor: Amir Gerebe (Givatayim, IL)
Assignee: Aqua Security Software, Ltd.
G06F21/52G06F2221/033
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 11,693,951
App. No.
17/378,271
Granted
Jul 4, 2023
Kind
B2
Abstract

An example method of sharing a resource between software containers includes detecting a request from a first software container to access a resource of a different, second software container, an operational state of the second software container being controlled by a container engine running on the host computing device. The method also includes accepting or rejecting the request based on whether the first and second software containers, which each contain a respective software application, are part of a same logical software application. An example host computing device configured to share resources between software containers is also disclosed.

Claims (60)

1. A method of sharing a resource between software containers, the method comprising:

a host computing device detecting a request from a first software application in a first software container to access a resource of a second software application operating in a second software container that is different from the first software container, an operational state of the second software container being controlled by a container engine running on the host computing device; and

the host computing device accepting or rejecting the request based on whether the first and second software applications are part of a same logical software application, wherein the accepting or rejecting is based on whether the first and second software applications share a logical application identifier of the logical software application.

2. The method of claim 1 , wherein:

detecting the request comprises the host computing device intercepting the request before the request is delivered to the second software container;

accepting the request comprises the host computing device delivering the request to the second software container; and

rejecting the request comprises the host computing device rejecting the request without delivering the request to the second software container.

3. The method of claim 1 , wherein said accepting or rejecting comprises:

the host computing device determining whether the first and second software applications are part of a same logical software application; and

the host computing device accepting the request based on the first and second software applications being part of the same logical software application.

4. The method of claim 3 , wherein the determining is performed by a third software container that is different from the first and second software containers.

5. The method of claim 3 , wherein said accepting or rejecting comprises:

the host computing device determining whether the requested resource is marked as shared for the first software container by an entry in a security registry; and

based on the first and second software applications being part of different logical software applications:

the host computing device accepting the request based on the requested resource being marked as shared for the first software container by an entry in the security registry; and

the host computing device rejecting the request based on the requested resource not being marked as shared for the first software container.

6. The method of claim 1 , comprising:

an additional computing device that is different from the host computing device utilizing a container engine running on the additional computing device to control an operational state of the first software.

7. The method of claim 1 , comprising:

the host computing device accepting an additional request to access a resource in the second software application based on the additional request being received from the second software container.

8. The method of claim 1 , wherein said accepting or rejecting the request is further based on whether the first software container is digitally signed.

9. The method of claim 1 , wherein the host computing device is a first host computing device, the method comprising:

the host computing device detecting an outgoing request from the second software container to access a resource of a third software application in a third software container that is different from the first and second software containers and whose operational state is controlled by a container engine running on a second host computing device that is different from the first host computing device; and

the host computing device rejecting the outgoing request at the first host computing device or transmitting the outgoing request to the second host computing device based on whether the second software application and the third software application are part of a same logical software application.

10. The method of claim 9 , wherein said rejecting the outgoing request at the first host computing device or transmitting the outgoing request to the second host computing device is further based on at least one of:

whether the resource of the third software application is marked as shared for the second software container by an entry in a security registry; and

whether the second software container is digitally signed.

11. The method of claim 1 , comprising:

in response to the resource being an encrypted file in the second software container and the request being one to open the file, the host computing device decrypting the encrypted file prior to providing the file to the first software container; and

in response to the resource being an encrypted file in the second software container and the request being one to write data to the file, the host computing device receiving the data from the first software container in unencrypted form and encrypting the data prior to saving it in the encrypted file in the second software container.

12. A host computing device comprising:

memory configured to store a second software container; and

processing circuitry operatively connected to the memory and configured to:

detect a request from a first software application in a first software container that is different from the second software container to access a resource of a second software application in the second software container; and

accept or reject the request based on whether the first and second software applications are part of a same logical software application, wherein the acceptance or rejection is based on whether the first and second software applications share a logical application identifier of the logical software application.

13. The host computing device of claim 12 , wherein:

to detect the request, the processing circuitry is configured to intercept the request before the request is delivered to the second software container;

to accept the request, the processing circuitry is configured to deliver the request to the second software container; and

to reject the request, the processing circuitry is configured to prevent delivery of the request to the second software container.

14. The host computing device of claim 12 , wherein the processing circuitry is configured to:

determine whether the first software application and second software application are part of a same logical software application; and

accept the request based on the first and second software applications being part of the same logical software application.

15. The host computing device of claim 14 , wherein the determination is performed by a third software container that is different from the first and second software containers.

16. The host computing device of claim 14 , wherein the processing circuitry is configured to:

determine whether the requested resource is marked as shared for the first software container; and

based on the first and second software applications being part of different logical software applications:

accept the request based on the requested resource being marked as shared for the first software container by an entry in a security registry; and

reject the request based on the requested resource not being marked as shared for the first software container.

17. The host computing device of claim 12 , wherein an operational state of the second software container is controlled by a container engine running on the host computing device, and an operational state of the first software container is controlled by a container engine running on a computing device that is different from the host computing device.

18. The host computing device of claim 12 , wherein the processing circuitry is configured to accept an additional request to access a resource of the second software application based on the additional request being received from the second software container.

19. The host computing device of claim 12 , wherein the processing circuitry is configured to accept or reject the request further based on whether the first software container is digitally signed.

20. The host computing device of claim 12 , wherein the host computing device is a first host computing device, and the processing circuitry is configured to:

detect an outgoing request from the second software container to access a resource of a third software application in a third software container that is different from the first and second software containers and whose operational state is controlled by a container engine running on a second host computing device that is different from the first host computing device; and

accept or reject the outgoing request or transmit the outgoing request to the second host computing device based on whether the second software application and the third software application are part of a same logical software application.

21. The host computing device of claim 20 , wherein the processing circuitry is configured to base the rejection or acceptance of the outgoing request on at least one of:

whether the resource of the third software application is marked as shared for the second software container by an entry in a security registry; and

whether the second software container is digitally signed.

22. The host computing device of claim 12 , wherein:

based on the resource being an encrypted file in the second software container and the request being one to open the file, the processing circuitry is configured to decrypt the encrypted file prior to providing the file to the first software container; and

based on the resource being an encrypted file in the second software container and the request being one to write data to the file, the processing circuitry is configured to receive the data from the first software container in unencrypted form and encrypt the data prior to saving it in the encrypted file in the second software container.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Aug 3, 2026
From: BANK LEUMI LE-ISRAEL B.M.
To: AQUA SECURITY SOFTWARE LTD.
Reel/Frame 075495/0666 →
SECURITY INTEREST Recorded Jul 29, 2026
From: AQUA SECURITY SOFTWARE LTD
To: HSBC BANK PLC
Reel/Frame 075441/0921 →
SECURITY INTEREST Recorded Jul 30, 2023
From: AQUA SECURITY SOFTWARE LTD
To: KREOS CAPITAL VII AGGREGATOR SCSP
Reel/Frame 064429/0026 →
SECURITY INTEREST Recorded Nov 7, 2022
From: AQUA SECURITY SOFTWARE LTD.
To: BANK LEUMI LE-ISRAEL B.M.
Reel/Frame 061668/0709 →
Continuity (4)
Continuation 16199432 · Nov 26, 2018
Continuation 15083972 · Mar 29, 2016
Provisional Application 62162897 · May 18, 2015
Related Publication 20210342440A1 · Nov 4, 2021