IP Library Granted Patent US 12,229,251
Granted Patent B2
US 12,229,251 · App. 18/083,324 · Granted Feb 18, 2025

Shim based secure module access

Inventors: Brian Gallagher (Waterford, IE); Cathal O'Connor (Waterford, IE)
Assignee: Red Hat, Inc.
G06F21/54G06F21/57G06F21/604
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 12,229,251
App. No.
18/083,324
Granted
Feb 18, 2025
Kind
B2
Abstract

Systems and methods comprising at least one node comprising an application container; a container image associated with the application container; a static analyzer module deployed to analyze the container image, with instructions configured to autonomously parse, code of an application, during compile time of the application, wherein the application is to be deployed in the application container; determine, based on the parsing, for at least one section of the code, at least one module necessary for execution of the at least one section; annotate, the at least one section of the code, based on the determined at least one module; and inject, at least one wrapper around the at least one section of the code, wherein the wrapper adds at least one restriction to an execution of the at least one section at runtime, wherein the restrictions are based on at least one condition.

Claims (44)

1. A system, comprising:

at least one node comprising an application container;

a container image associated with the application container;

a static analyzer module deployed to analyze the container image, with instructions configured to autonomously:

parse, code of an application, during compile time of the application, wherein the application is to be deployed in the application container;

determine, based on the parsing, for at least one section of the code, at least one module necessary for execution of the at least one section;

annotate, the at least one section of the code, based on the determined at least one module; and

inject, at least one wrapper around the at least one section of the code, wherein the wrapper adds at least one restriction to an execution of the at least one section at runtime, wherein the at least one restriction is based on at least one condition.

2. The system of claim 1 , wherein the instructions are further configured to:

determine, for the at least one module, at least one operating system module necessary for execution of the module.

3. The system of claim 2 , wherein the instructions are further configured to:

determine, a condition where the at least one module, accesses, calls, utilizes, or requires the at least one operating system module, wherein the condition can be based on at least one of a time, state, or user permissions.

4. The system of claim 1 , wherein the container image comprises at least one of a base OS layer, an application layer, or a SHIM layer.

5. The system of claim 4 , wherein the SHIM layer is placed between the base OS layer and the application layer to manage access to an operating system module.

6. The system of claim 4 , wherein the SHIM layer implements the at least one restriction at runtime.

7. The system of claim 4 , wherein the SHIM layer is further configured to:

based on the at least one condition being satisfied, undertake at least one of allow access, allow partial access, prevent access, or delay access to an operating system module in the base OS layer by the module in the application layer based on the at least one restriction.

8. The system of claim 4 , wherein the base OS layer is a limited version OS layer.

9. The system of claim 1 , wherein the at least one restriction is enforced based on the at least one condition.

10. The system of claim 9 , wherein the enforcement comprises at least one of preventing execution of the at least one section, delaying execution of the at least one section, or preventing access to an operating system module.

11. The system of claim 1 , wherein the at least one restriction is removed based on the at least one condition.

12. A method, comprising:

parsing, code of an application, during compile time of the application, wherein the application is to be deployed in an application container;

determining, based on the parsing, for at least one section of the code, at least one module necessary for execution of the at least one section;

annotating, the at least one section of the code, based on the determined at least one module; and

injecting, at least one wrapper around the at least one section of the code, wherein the wrapper adds at least one restriction to an execution of the at least one section at runtime, wherein the restrictions are based on at least one condition.

13. The method of claim 12 , further comprising:

determining, for the at least one module, at least one operating system module necessary for execution of the module.

14. The method of claim 13 , further comprising:

generating a SHIM layer to enforce the at least one restriction, wherein the at least one restriction comprises preventing the at least one module from at least one of calling, utilizing, or accessing the at least one operating system module.

15. The method of claim 12 , further comprising:

generating a SHIM layer to manage the at least one restriction at runtime of the application; and

placing the SHIM layer between an application layer and a base OS layer of a container image of the application container.

16. The method of claim 12 , wherein the application container is associated to a container image comprising at least one of a base OS layer, an application layer, or a SHIM layer.

17. The method of claim 12 , wherein a SHIM layer is placed between a base OS layer and an application layer, to manage access to an at least one operating system module, in the base OS layer, based on the at least one restriction.

18. The method of claim 17 , further comprising:

based on the at least one condition being satisfied, undertaking at least one of allow access, allow partial access, prevent access, or delay access to the operating system module in the base OS layer by the module in the application layer based on the at least one restriction.

19. The method of claim 18 , wherein a SHIM layer undertakes the at least one of allow access, allow partial access, prevent access, or delay access to the operating system module in the base OS layer by the module in the application layer based on the at least one restriction.

20. A non-transitory machine readable medium storing code, which when executed by a processor is configured to:

parse, code of an application, during compile time of the application, wherein the application is to be deployed in an application container;

determine, based on the parsing, for at least one section of the code, at least one module necessary for execution of the at least one section;

determine, for the at least one module, at least one operating system module necessary for execution of the module;

annotate, the at least one section of the code, based on the determined at least one module; and

inject, at least one wrapper around the at least one section of the code, wherein the wrapper adds at least one restriction to an execution of the at least one section at runtime, wherein the restrictions are based on at least one condition.

Assignments (2)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2022
From: GALLAGHER, BRIAN; O'CONNOR, CATHAL
To: RED HAT, INC.
Reel/Frame 062131/0529 →
Continuity (1)
Related Publication 20240202319A1 · Jun 20, 2024
References Cited (16)
US 7640429B2 · Huang et al. · 2009 [cited by applicant]
US 8117643B2 · Vidya et al. · 2012 [cited by applicant]
US 11445035B2 · Duggal et al. · 2022 [cited by applicant]
US 11650810B1 · Wang · 2023 [cited by examiner]
US 20120131646A1 · Chandolu et al. · 2012 [cited by applicant]
US 20130205415A1 · McKEE · 2013 [cited by examiner]
US 20170012846A1 · Chen · 2017 [cited by examiner]
US 20180007178A1 · Subhraveti · 2018 [cited by applicant]
US 20200042720A1 · Rebelo · 2020 [cited by applicant]
US 20200082095A1 · Mcallister · 2020 [cited by examiner]
US 20220103593A1 · Singh · 2022 [cited by examiner]
US 20230367565A1 · O'Connor · 2023 [cited by examiner]
US 20240103818A1 · Gallagher · 2024 [cited by examiner]
US 20240127148A1 · Barcziova · 2024 [cited by examiner]
CN 112765639A · 2021 [cited by applicant]
CN 114450685A · 2022 [cited by applicant]