IP Library Granted Patent US 11,366,922
Granted Patent B1
US 11,366,922 · App. 16/688,593 · Granted Jun 21, 2022

Systems and methods for transferring capabilities

Inventor: Gleb Kurtsov (San Jose, CA)
Assignee: Facebook Technologies, LLC.
G06F21/6227G06F21/51G06F21/57H04L63/20G06F2221/2113G06F2221/2141
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,366,922
App. No.
16/688,593
Granted
Jun 21, 2022
Kind
B1
Abstract

In one embodiment, a method includes receiving a request to transfer a handle to an object from a first process to a second process, accessing a first security context of the handle and a second security context of the second process, identifying one or more security policies based on at least one of the first security context and the second security context, determining that the handle is allowed to be transferred to the second process by applying the one or more security policies on the first security context of the handle and the second security context of the second process, and transferring the handle to the second process in response to the request.

Claims (50)

1. A method comprising, by an operating system executing on a computing device:

receiving a request to transfer a handle to an object from a first process to a second process;

accessing a first security context of the handle and a second security context of the second process;

identifying one or more global handle-transfer security policies enforced by a mandatory access control (MAC) of the operating system, based on at least one of the first security context and the second security context, wherein the one or more handle-transfer security policies comprise one or more rules designed to control a transfer operation of the handle and are executed by the MAC;

determining, by the MAC, that the handle is allowed to be transferred to the second process by applying the one or more global handle-transfer security policies executed by the MAC on the first security context of the handle and the second security context of the second process, wherein the one or more global handle-transfer security policies comprise a partition policy, a confidentiality policy, a category policy, or combinations thereof;

in response to determining that the handle is allowed to be transferred to the second process, creating a channel that connects the first process and the second process through the MAC for transferring the handle; and

transferring the handle to the second process in response to the request.

2. The method of claim 1 , wherein the handle is created by the first process; and

wherein the first security context of the handle is obtained from a third security context of the first process.

3. The method of claim 2 , wherein the first security context is the same as the third security context.

4. The method of claim 1 , further comprising:

updating the first security context of the handle based on the second security context of the second process.

5. The method of claim 1 , wherein the handle is a reference value to the object.

6. The method of claim 1 , wherein the security contexts comprise a set of labels, that identifies a policy that the security contexts belong to.

7. The method of claim 1 , wherein the handle is transferred between the first process and the second process under the partition policy when both processes belong to a same partition or a source process.

8. The method of claim 1 , wherein the handle is transferred between the first process and the second process under the category policy when the second security context of the second process is a superset of a category of a handle security source process.

9. The method of claim 1 , wherein the handle is transferred between the first process and the second process under the confidentiality policy when a confidentiality model allows a transfer of the handle, wherein the confidentiality model is adopted to prevent the transfer of the handle that does not have a corresponding access level.

10. One or more computer-readable non-transitory storage media embodying software that is operable when executed to:

receive a request to transfer a handle to an object from a first process to a second process;

access a first security context of the handle and a second security context of the second process;

identify one or more global handle-transfer security policies, enforced by a mandatory access control (MAC) of the operating system, based on at least one of the first security context and the second security context, wherein the one or more handle-transfer security policies comprise one or more rules designed to control a transfer operation of the handle and are executed by the MAC;

determine, by the MAC, that the handle is allowed to be transferred to the second process by applying the one or more global handle-transfer security policies executed by the MAC on the first security context of the handle and the second security context of the second process, wherein the one or more global handle-transfer security policies comprise a partition policy, a confidentiality policy, a category policy, or combinations thereof;

in response to determining that the handle is allowed to be transferred to the second process, create a channel that connects the first process and the second process through the MAC for transferring the handle; and

transfer the handle to the second process in response to the request.

11. The media of claim 10 , wherein the handle is created by the first process; and

wherein the first security context of the handle is obtained from a third security context of the first process.

12. The media of claim 11 , wherein the first security context is the same as the third security context.

13. The media of claim 10 , wherein the media is further configured to update the first security context of the handle based on the second security context of the second process.

14. The media of claim 10 , wherein the security contexts comprise a set of labels, that identifies a policy that the security contexts belong to.

15. The media of claim 10 , wherein the handle is a reference value to the object.

16. The media of claim 10 , wherein the handle is transferred between the first process and the second process under the partition policy when both processes belong to a same partition or a source process.

17. The media of claim 10 , wherein the handle is transferred between the first process and the second process under the category policy when the second security context of the second process is a superset of a category of a handle security source process.

18. The media of claim 10 , wherein the handle is transferred between the first process and the second process under the confidentiality policy when a confidentiality model allows a transfer of the handle, wherein the confidentiality model is adopted to prevent the transfer of the handle that does not have a corresponding access level.

19. A system comprising:

one or more hardware processors; and

one or more computer-readable non-transitory storage media coupled to one or more of the processors and comprising instructions operable when executed by one or more of the processors to cause the system to:

receive a request to transfer a handle to an object from a first process to a second process;

access a first security context of the handle and a second security context of the second process;

identify one or more global handle-transfer security policies, enforced by a mandatory access control (MAC) of the operating system, based on at least one of the first security context and the second security context, wherein the one or more handle-transfer security policies comprise one or more rules designed to control a transfer operation of the handle and are executed by the MAC;

determine, by the MAC, that the handle is allowed to be transferred to the second process by applying the one or more global handle-transfer security policies executed by the MAC on the first security context of the handle and the second security context of the second process, wherein the one or more global handle-transfer security policies comprise a partition policy, a confidentiality policy, a category policy, or combinations thereof;

in response to determining that the handle is allowed to be transferred to the second process, create a channel that connects the first process and the second process through the MAC for transferring the handle; and

transfer the handle to the second process in response to the request.

20. The system of claim 19 , wherein the handle is created by the first process; and

wherein the first security context of the handle is obtained from a third security context of the first process.

21. The system of claim 20 , wherein the first security context is the same as the third security context.

22. The system of claim 19 , wherein the system is further configured to update the first security context of the handle based on the second security context of the second process.

23. The system of claim 19 , wherein the security contexts comprise a set of labels, that identifies a policy that the security contexts belong to.

24. The system of claim 19 , wherein the handle is transferred between the first process and the second process under the partition policy when both processes belong to a same partition or a source process.

25. The system of claim 19 , wherein the handle is transferred between the first process and the second process under the category policy when the second security context of the second process is a superset of a category of a handle security source process.

26. The system of claim 19 , wherein the handle is transferred between the first process and the second process under the confidentiality policy when a confidentiality model allows a transfer of the handle, wherein the confidentiality model is adopted to prevent the transfer of the handle that does not have a corresponding access level.

Assignments (2)
CHANGE OF NAME Recorded Jul 6, 2022
From: FACEBOOK TECHNOLOGIES, LLC
To: META PLATFORMS TECHNOLOGIES, LLC
Reel/Frame 060591/0848 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 13, 2019
From: KURTSOV, GLEB
To: FACEBOOK TECHNOLOGIES, LLC
Reel/Frame 051278/0993 →