IP Library Granted Patent US 10,929,528
Granted Patent B2
US 10,929,528 · App. 16/543,153 · Granted Feb 23, 2021

Systems and methods for intrinsic runtime security

Inventors: Deian Stefan (San Francisco, CA); Devon Rifkin (San Francisco, CA); Christian Almenar (San Francisco, CA)
Assignee: VMware, Inc.
G06F21/54G06F8/75G06F21/53G06F2221/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 10,929,528
App. No.
16/543,153
Granted
Feb 23, 2021
Kind
B2
Abstract

A system for intrinsic runtime security includes an application code repository, a security code repository, a trusted execution context, a first sandboxed execution context and a policy enforcement module, operating based on security policy, that enables the first sandboxed execution context to modify objects without enabling unrestricted access of the first sandboxed execution context to original prototypes of the objects.

Claims (37)

1. A method for runtime security in a computing system comprising:

determining that an object is to be moved from a first execution context to a second execution context, the object being associated with a first object template while associated with the first execution context, wherein:

the first execution context has a first level of access to the computing system,

the second execution context has a second level of access to the computing system, and

access to the object grants access to its associated object template;

replacing, as associated with the object, the first object template with a second object template that is based on the first object template in response to determining that the object is to be moved, wherein the second object template is unique to the second execution context; and

moving the object from the first execution context to the second execution context.

2. The method of claim 1 , wherein the object is written in a prototypal language, and wherein the first object template comprises a first object prototype.

3. The method of claim 1 , wherein the first execution context comprises a trusted execution context that executes trusted application code, wherein the second execution context comprises a first sandboxed execution context that executes untrusted application code, and wherein the second level of access is more restricted than the first level of access.

4. The method of claim 1 , wherein the second execution context does not have access to the first object template based on the replacing.

5. The method of claim 1 , further comprising:

determining that the object is to be passed back to the first execution context from the second execution context; and

passing modifications to a value of the object back to the first execution context and not modifications to the second object template.

6. The method of claim 1 , wherein the second object template is a clone of the first object template.

7. The method of claim 6 , wherein the second object template points to a second parent object template that is a restricted version of a first parent object template, wherein the second parent object template references the first parent object template, wherein the first object template points to the first parent object template.

8. The method of claim 1 , wherein the second object template is a restricted version of the first object template and points to the first object template.

9. The method of claim 1 , wherein the second object template is a restricted version of the first object template and points to a first parent object template, wherein the first object template points to the first parent object template.

10. A method for runtime security in a computing system comprising:

determining that an object is to be moved from a first execution context to a second execution context, the object being associated with a first object template while associated with the first execution context, wherein:

the first execution context has a first level of access to the computing system,

the second execution context has a second level of access to the computing system, and

access to the object grants access to its associated object template;

creating a placeholder object to be used in the second execution context, wherein the placeholder is mapped to the object and provides restricted access to the object in response to determining that the object is to be moved; and

passing the placeholder object to the second execution context.

11. The method of claim 10 , wherein the mapping enables code executing in the first execution context to access the object using the placeholder object.

12. The method of claim 10 , wherein the object is written in a prototypal language, and wherein the first object template comprises a first object prototype.

13. The method of claim 10 , wherein the first execution context comprises a trusted execution context that executes trusted application code, wherein the second execution context comprises a first sandboxed execution context that executes untrusted application code, and wherein the second level of access is more restricted than the first level of access.

14. A method for runtime security in a computing system comprising:

determining that an object is to be moved from a first execution context to a second execution context, the object being associated with a first object template chain comprising one or more first object templates while associated with the first execution context, wherein:

the first execution context has a first level of access to the computing system,

the second execution context has a second level of access to the computing system, and

access to the object grants access to its associated object template chain;

creating an immutable object template chain based on the first object template chain in response to determining that the object is to be moved;

replacing, as associated with the object, the first object template chain with the immutable object template chain, wherein the immutable object template chain cannot be changed by the first execution context and the second execution context; and

moving the object from the first execution context to the second execution context.

15. The method of claim 14 , wherein the object is written in a prototypal language, and wherein the first object template comprises a first object prototype.

16. The method of claim 14 , wherein the first execution context comprises a trusted execution context that executes trusted application code, wherein the second execution context comprises a first sandboxed execution context that executes untrusted application code, and wherein the second level of access is more restricted than the first level of access.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067103/0030 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 22, 2020
From: STEFAN, DEIAN; RIFKIN, DEVON; ALMENAR, CHRISTIAN
To: VMWARE, INC.
Reel/Frame 054144/0736 →
Continuity (3)
Continuation 16147396 · Sep 28, 2018
Provisional Application 62564807 · Sep 28, 2017
Related Publication 20190370461A1 · Dec 5, 2019