IP Library › Granted Patent US 12,443,694
Granted Patent B2
US 12,443,694 · App. 18/458,908 · Granted Oct 14, 2025

Process credential protection

Inventors: Sergej Proskurin (Munich, DE); Sebastian Wolfgang Vogl (Munich, DE); Robert Gawlik (Freiburg, DE); Jonas Pfoh (Dresden, DE)
Assignee: BLUEROCK SECURITY, INC.
G06F21/44G06F9/45558G06F2009/45587
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,443,694
App. No.
18/458,908
Granted
Oct 14, 2025
Kind
B2
Abstract

Process credential protection in a virtualized system is described. In-guest process credentials of a guest operating system are registered including binding the process credentials with the following values: a guest address of a first structure that includes subjective credentials, a guest address of a second structure that includes a context in which the process credentials reside, and data fields of the first structure that are not subject to change. A first tag is created from at least the information bound with the process credentials and stored. An integrity verification check is performed at a verification point that is triggered by a function or system call being called by the guest operating system, and includes creating a second tag from at least the information bound with the process credentials and determining if the first tag and second tag match. If they do not match, then the integrity of the in-guest process credentials has been compromised and remedial action is taken.

Claims (60)

1. A non-transitory machine-readable storage medium that stores instructions that, when executed by a processor, causes operations to be performed including:

registering, by a process credential protection module provided in a hypervisor in a virtualized system, in-guest process credentials of a guest operating system including binding the process credentials with values including: a guest address of a first structure that includes subjective credentials, a guest address of a second structure that includes a context in which the process credentials reside, and a plurality of data fields of the first structure that are not subject to change;

creating a first tag from at least the values bound with the process credentials;

storing the first tag in a tracking structure of the process credential protection module;

performing, by the process credential protection module, an integrity verification check at one or more verification points, wherein each verification point is triggered by a function or system call being called by the guest operating system, and wherein performing the integrity verification check includes creating a second tag from at least the values bound with the process credentials; and

determining that the second tag does not match the first tag thereby indicating that the integrity of the in-guest process credentials has been compromised, and responsive to this determination, taking one or more remedial actions.

2. The non-transitory machine-readable storage medium of claim 1 , wherein the first structure that includes subjective credentials is a cred object, and wherein the second structure is a task_struct object.

3. The non-transitory machine-readable storage medium of claim 1 , wherein registering is performed responsive to detecting that the guest operating system called a prepare_kernel_cred( ) function or a copy_creds( ) function.

4. The non-transitory machine-readable storage medium of claim 1 , wherein registering is performed responsive to detecting that the guest operating system called a commit_creds( ) function.

5. The non-transitory machine-readable storage medium of claim 1 , wherein the first tag and the second tag are hash values or Hash-based Message Authentication Code (HMAC) values.

6. The non-transitory machine-readable storage medium of claim 1 , wherein the one or more verification points are triggered by a security_task_alloc( ) function occurring during a fork system call.

7. The non-transitory machine-readable storage medium of claim 1 , wherein the operations further include:

tracking state transitions of the in-guest process credentials in a state machine; and

taking one or more remedial actions responsive to determining that an invalid state transition has occurred.

8. The non-transitory machine-readable storage medium of claim 7 ,

wherein states of the state machine include:

an assigned state that is associated with a copy_creds( ) function being called by the guest operating system,

an assigned privileged state that is associated with a prepare_kernel_cred( ) function with a valid task_struct argument being called by the guest operating system,

an assigned kernel state that is associated with a prepare_kernel_cred( ) function with a null argument being called by the guest operating system, and

a committed state that is associated with a commit_creds( ) function being called by the guest operating system;

wherein valid state transitions include:

the assigned state to the committed state, and

the assigned privileged state to the committed state; and

wherein the invalid state transition is a transition that is not one of the valid state transitions.

9. A method for process credential protection in a virtualized system, comprising:

registering, by a process credential protection module provided in a hypervisor in the virtualized system, in-guest process credentials of a guest operating system including binding the process credentials with values including: a guest address of a first structure that includes subjective credentials, a guest address of a second structure that includes a context in which the process credentials reside, and a plurality of data fields of the first structure that are not subject to change;

creating a first tag from at least the values bound with the process credentials;

storing the first tag in a tracking structure of the process credential protection module;

performing, by the process credential protection module, an integrity verification check at one or more verification points, wherein each verification point is triggered by a function or system call being called by the guest operating system, and wherein performing the integrity verification check includes creating a second tag from at least the values bound with the process credentials; and

determining that the second tag does not match the first tag thereby indicating that the integrity of the in-guest process credentials has been compromised, and responsive to this determination, taking one or more remedial actions.

10. The method of claim 9 , wherein the first structure that includes subjective credentials is a cred object, and wherein the second structure is a task_struct object.

11. The method of claim 9 , wherein registering is performed responsive to detecting that the guest operating system called a prepare_kernel_cred( ) function or a copy_creds( ) function.

12. The method of claim 9 , wherein registering is performed responsive to detecting that the guest operating system called a commit_creds( ) function.

13. The method of claim 9 , wherein the first tag and the second tag are hash values or Hash-based Message Authentication Code (HMAC) values.

14. The method of claim 9 , wherein the one or more verification points are triggered by a security_task_alloc( ) function occurring during a fork system call.

15. The method of claim 9 , further comprising:

tracking state transitions of the in-guest process credentials in a state machine; and

taking one or more remedial actions responsive to determining that an invalid state transition has occurred.

16. The method of claim 15 ,

wherein states of the state machine include:

an assigned state that is associated with a copy_creds( ) function being called by the guest operating system,

an assigned privileged state that is associated with a prepare_kernel_cred( ) function with a valid task_struct argument being called by the guest operating system,

an assigned kernel state that is associated with a prepare_kernel_cred( ) function with a null argument being called by the guest operating system, and

a committed state that is associated with a commit_creds( ) function being called by the guest operating system;

wherein valid state transitions include:

the assigned state to the committed state, and

the assigned privileged state to the committed state; and

wherein the invalid state transition is a transition that is not one of the valid state transitions.

17. A non-transitory machine-readable storage medium that stores instructions that, when executed by a processor, causes operations to be performed including:

receiving, at a hyper-process running in a hypervisor, a first process credential protection event that indicates to allocate a new object representing in-guest credentials of a guest operating system, wherein the new object representing in-guest credentials is associated with a first tag that is created from at least part of an address of subjective credentials, an address of a context in which the in-guest credentials reside, and at least part of content of the in-guest credentials;

registering the new object representing in-guest credentials for tracking purposes including a current state;

receiving, at the hyper-process running in the hypervisor, a second process credential protection event that indicates to commit the in-guest credentials;

determining that a state transition to a committed state for the second process credential event is not permitted, and responsive to this determination, taking one or more remedial actions;

receiving, at the hyper-process running in the hypervisor, a third process credential protection event that indicates to verify integrity of the in-guest credentials, wherein the third process credential protection event is associated with a second tag that is created from at least part of the address of subjective credentials, the address of a context in which the in-guest credentials reside, and at least part of the content of the in-guest credentials; and

determining that the first tag and the second tag do not match thereby indicating that the integrity of the in-guest credentials has been compromised, and responsive to this determination, taking one or more remedial actions.

18. The non-transitory machine-readable storage medium of claim 17 , wherein the address of subjective credentials is an address of a cred object, and wherein the address of the context is an address of a task_struct object.

19. The non-transitory machine-readable storage medium of claim 17 , wherein registering is performed responsive to detecting that the guest operating system called a prepare_kernel_cred( ) function or a copy_creds( ) function.

20. The non-transitory machine-readable storage medium of claim 17 , wherein registering is performed responsive to detecting that the guest operating system called a commit_creds( ) function.

21. The non-transitory machine-readable storage medium of claim 17 , wherein the first tag and the second tag are hash values or Hash-based Message Authentication Code (HMAC) values.

22. The non-transitory machine-readable storage medium of claim 17 , wherein the third process credential protection event is received responsive to a security_task_alloc( ) function occurring during a fork system call of the guest operating system.

Assignments (2)
CHANGE OF NAME Recorded Aug 1, 2024
From: BEDROCK SYSTEMS, INC.
To: BLUEROCK SECURITY, INC.
Reel/Frame 068258/0162 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 4, 2023
From: PROSKURIN, SERGEJ; VOGL, SEBASTIAN WOLFGANG; GAWLIK, ROBERT; PFOH, JONAS
To: BEDROCK SYSTEMS, INC.
Reel/Frame 065119/0278 →
Continuity (2)
Provisional Application 63402913 · Aug 31, 2022
Related Publication 20240070260A1 · Feb 29, 2024
References Cited (10)
US 9223962B1 · Kashyap · 2015 [cited by examiner]
US 10447728B1 · Steinberg · 2019 [cited by examiner]
US 20120151206A1 · Paris et al. · 2012 [cited by applicant]
US 20140325618A1 · Sandland et al. · 2014 [cited by applicant]
US 20190068606A1 · Xiao et al. · 2019 [cited by applicant]
US 20210390182A1 · Boutnaru · 2021 [cited by examiner]
CN 111291364A · 2020 [cited by applicant]
CN 111291364B · 2024 [cited by examiner]
WO 2015127461A1 · 2015 [cited by applicant]
International Search Report and Written Opinion, PCT App. No. PCT/US2023/073202, Dec. 26, 2023, 09 pages. [cited by applicant]