# US 2021/0342174 A1 · Privacy preserving introspection for trusted execution environments

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2021/0342174 A1
- Document ID: US20210342174A1
- Status: Published application
- Kind: A1
- Application number: 16/863,685
- Filed: 2020-04-30
- Published: 2021-11-04
- Earliest claimed: 2020-04-30
- Assignees: Red Hat, Inc.
- Applicants: Red Hat, Inc.
- Inventors: Michael Bursell; Michael Tsirkin
- Web page: https://patentgrep.com/patent/US20210342174A1

## CPC

- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 9/505: {considering the load}
- G06F 9/5077: {Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455)}
- G06F 11/0772: {Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers}
- G06F 11/327: {Alarm or error message display}
- G06F 21/53: by executing in a restricted environment, e.g. sandbox or secure virtual machine
- G06F 21/556: {involving covert channels, i.e. data leakage between processes (inhibiting the analysis of circuitry or operation with measures against power attack G06F21/755)}
- G06F 21/79: in semiconductor storage media, e.g. directly-addressable memories
- G06F 2009/45583: {Memory management, e.g. access or allocation}
- G06F 2009/45587: {Isolation or security of virtual machine instances}
- G06F 2009/45591: {Monitoring or debugging support}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A system includes a memory, a processor in communication with the memory, a hypervisor, and a trusted execution environment (TEE). The TEE is provisioned with a workload and includes an introspection module. The introspection module is configured to execute an introspection command according to an introspection policy. The introspection command is configured to validate at least one memory access associated with the workload. The introspection module is also configured to determine a status of a result of the introspection commands, wherein the status is one of a failure status and a success status.

## Claims

### Claim 1

A system comprising:
a memory;
a processor in communication with the memory;
a hypervisor; and
a trusted execution environment (TEE), wherein the TEE is provisioned with a workload and includes an introspection module that is configured to:
execute an introspection command according to an introspection policy, the introspection command configured to validate at least one memory access associated with the workload, and
determine a status of a result of the introspection command, wherein the status is one of a failure status and a success status.

### Claim 2 (depends on 1)

The system of claim 1, wherein the failure status indicates that the at least one memory access matches a predetermined pattern.

### Claim 3 (depends on 2)

The system of claim 2, wherein the hypervisor is configured to provide the predetermined pattern to the TEE.

### Claim 4 (depends on 2)

The system of claim 2, wherein the introspection command includes an instruction to compare the at least one memory access to the predetermined pattern.

### Claim 5 (depends on 4)

The system of claim 4, wherein the predetermined pattern includes a pattern of at least one of memory reads from the memory, memory writes to the memory, URLs visited by the workload, files accessed by the workload, messages sent by the workload, types of data read from the memory, and types of data written to the memory.

### Claim 6 (depends on 1)

The system of claim 1, wherein the TEE is an encrypted virtual machine.

### Claim 7 (depends on 1)

The system of claim 1, wherein the introspection command is provided to the introspection module through an introspection channel, and wherein the introspection channel is an encrypted connection.

### Claim 8 (depends on 1)

The system of claim 1, wherein the introspection policy specifies which parts of the TEE are exposed to the introspection command or the introspection module, and the introspection policy grants the introspection module read access to a first portion of memory.

### Claim 9 (depends on 1)

The system of claim 1, wherein the introspection policy specifies at least one (i) an address the introspection module has access to and (ii) an accelerator that the introspection module has access to.

### Claim 10

A method comprising:
provisioning a trusted execution environment (TEE) with a workload, wherein the workload includes an introspection module;
executing, by the introspection module, an introspection command according to an introspection policy, the introspection command configured to validate at least one memory access associated with the workload; and
determining, by the introspection module, a status of a result of the introspection command, wherein the status is one of a failure status and a success status.

### Claim 11 (depends on 10)

The method of claim 10, further comprising supplying, by one of a hypervisor and a supervisor, the introspection command to the TEE.

### Claim 12 (depends on 10)

The method of claim 10, further comprising responsive to determining the status is the failure status, stopping execution of the TEE.

### Claim 13 (depends on 10)

The method of claim 10, wherein the failure status indicates that the at least one memory access matches a predetermined pattern, and wherein the introspection command includes an instruction to compare the at least one memory access to the predetermined pattern.

### Claim 14

A system comprising:
a memory;
a processor in communication with the memory;
a trusted execution environment (TEE), wherein the TEE is provisioned with a workload; and
a runtime executing within the TEE, wherein the runtime is configured to:
load a pre-generated memory accessing code into the TEE, wherein the code is supplied by an owner,
receive introspection commands through an introspection channel, wherein the introspection channel is created between the runtime and the owner,
execute the introspection commands, wherein the introspection commands are configured to validate a memory access in the pre-generated code, and
determine a status of a result of the introspection commands, wherein the status is one of a failure status and a success status.

### Claim 15 (depends on 14)

The system of claim 14, wherein the introspection channel is an encrypted connection, and wherein a hypervisor is configured to supply the introspection commands to the runtime.

### Claim 16 (depends on 14)

The system of claim 14, wherein the pre-generated memory accessing code is bytecode.

### Claim 17 (depends on 16)

The system of claim 16, wherein the bytecode is one of WebAssembly bytecode and Berkeley Packet Filter (BPF) bytecode.

### Claim 18 (depends on 14)

The system of claim 14, wherein the code is native code.

### Claim 19 (depends on 14)

The system of claim 14, wherein a hypervisor is configured to stop execution of the TEE responsive to the runtime determining the status is the failure status, and wherein the failure status indicates that the at least one memory access matches a predetermined pattern.

### Claim 20 (depends on 19)

The system of claim 19, wherein the predetermined pattern includes a pattern of at least one of memory reads from the memory, memory writes to the memory, URLs visited by the workload, files accessed by the workload, messages sent by the workload, types of data read from the memory, and types of data written to the memory.
