# US 8,788,845 B1 · Data access security

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

- Number: US 8,788,845 B1
- Document ID: US8788845B1
- Status: Granted
- Kind: B1
- Application number: 13/525,105
- Filed: 2012-06-15
- Granted: 2014-07-22
- Earliest claimed: 2005-10-06
- Assignees: Symantec Corporation
- Applicants: Sourabh Satish
- Inventors: Sourabh Satish
- Web page: https://patentgrep.com/patent/US8788845B1

## CPC

- G06F 21/00: Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F 21/53: by executing in a restricted environment, e.g. sandbox or secure virtual machine
- G06F 21/54: by adding security routines or objects to programs
- G06F 21/62: Protecting access to data via a platform, e.g. using keys or access control rules
- H04L 9/32: including means for verifying the identity or authority of a user of the system {or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials}
- G06F 2221/2141: Access rights, e.g. capability lists, access control lists, access tables, access matrices
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

An execution environment of a computer computes an initial effective permissions set for managed code based on user identity evidence, code evidence and/or a security policy and executes the code with this permissions set. If the managed code requests a data access, the execution environment considers data evidence that indicates the trustworthiness of the requested data. The data evidence can be based on the source of the data, the location of the data, the content of the data itself, or other factors. The execution environment computes a new effective permissions set for the managed code based on the data evidence and the security policy. This new effective permissions set is applied to the managed code while the code accesses the data. The execution environment restores the initial permissions set once the managed code completes the data access.

## Claims

### Claim 1

A computer-implemented method for securing a computer, comprising:
determining a user group associated with a user of the computer;
considering code evidence indicating a trustworthiness of code on which a process executed on the computer by the user is based;
computing an initial permissions set for the process responsive to the code evidence, the user group, and a security policy;
applying the initial permissions set to the process;
receiving a request from the process having the initial permissions set to access data;
considering data evidence indicating a trustworthiness of the requested data;
computing an effective permissions set for the process responsive to the code evidence, the user group, the data evidence and the security policy, wherein the effective permissions set is a subset of the initial permissions set;
applying the effective permissions set to the process for the data access; and
restoring the initial permissions set to the process responsive to completion of the data access.

### Claim 2 (depends on 1)

The method of claim 1, wherein considering data evidence comprises:
analyzing the requested data to ascertain the data's trustworthiness.

### Claim 3 (depends on 1)

The method of claim 1, wherein considering code evidence comprises determining capabilities of the code, different capabilities of the code having different levels of trustworthiness.

### Claim 4 (depends on 1)

The method of claim 1, wherein computing an effective permissions set for the process comprises:
assigning the requested data to a data group based on the requested data's trustworthiness; and
selecting an effective permissions set for the process from among a plurality of permissions sets described by the security policy responsive to the assigned data group.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
determining a format in which the requested data are encoded;
inferring a source of the requested data based on the format of the data; and
considering data evidence indicating a trustworthiness of the requested data based on the source of the requested data, wherein requested data from different sources have different levels of trustworthiness.

### Claim 6 (depends on 1)

The method of claim 1, wherein considering data evidence comprises:
determining whether the requested data are stored locally or remotely from the computer.

### Claim 7 (depends on 1)

The method of claim 1, wherein considering data evidence comprises:
determining whether the requested data are encoded in an unexpected format.

### Claim 8

A system for securing a computer, comprising:
a computer-readable storage medium storing executable computer program modules comprising:
a user evidence module for determining a user group associated with a user of the computer;
a code evidence module for considering code evidence indicating a trustworthiness of code on which a process executed on the computer by the user is based;
a data evidence module for considering data evidence indicating a trustworthiness of data requested by the process;
a permissions generation module for computing an initial permissions set responsive to the code evidence, the user group, and a security policy, applying the initial permissions set to the process, receiving a request from the process having the initial permissions set to access data, and computing an effective permissions set for the process responsive to the code evidence, the user group, the data evidence and the security policy, wherein the effective permissions set is a subset of the initial permissions set; and
a permissions enforcement module for applying the effective permissions set to the process for the data access and restoring the initial permissions set to the process responsive to completion of the data access; and
a processor for executing the computer program modules.

### Claim 9 (depends on 8)

The system of claim 8, wherein the data evidence module is further adapted to:
analyze the requested data to ascertain the data's trustworthiness.

### Claim 10 (depends on 8)

The system of claim 8, wherein considering code evidence comprises determining capabilities of the code, different capabilities of the code having different levels of trustworthiness.

### Claim 11 (depends on 8)

The system of claim 8, wherein the permissions generation module is further adapted to:
assign the requested data to a data group based on the requested data's trustworthiness; and
select an effective permissions set for the process from among a plurality of permissions sets described by the security policy responsive to the assigned data group.

### Claim 12 (depends on 8)

The system of claim 8, wherein the data evidence module is further adapted to:
determine a format in which the requested data are encoded;
infer a source of the requested data based on the format of the data; and
consider data evidence indicating a trustworthiness of the requested data based on the source of the requested data, wherein requested data from different sources have different levels of trustworthiness.

### Claim 13 (depends on 8)

The system of claim 8, wherein considering data evidence comprises:
determining whether the requested data are stored locally or remotely from the computer.

### Claim 14 (depends on 8)

The system of claim 8, wherein considering data evidence comprises:
determining whether the requested data are encoded in an unexpected format.

### Claim 15

A non-transitory computer-readable storage medium having executable computer program instructions recorded thereon for securing a computer, comprising:
a user evidence module for determining a user group associated with a user of the computer;
a code evidence module for considering code evidence indicating a trustworthiness of code on which a process executed on the computer by the user is based;
a data evidence module for considering data evidence indicating a trustworthiness of data requested by the process;
a permissions generation module for computing an initial permissions set responsive to the code evidence, the user group, and a security policy, applying the initial permissions set to the process, receiving a request from the process having the initial permissions set to access data, and computing an effective permissions set for the process responsive to the code evidence, the user group, the data evidence and the security policy, wherein the effective permissions set is a subset of the initial permissions set; and
a permissions enforcement module for applying the effective permissions set to the process for the data access and restoring the initial permissions set to the process responsive to completion of the data access.

### Claim 16 (depends on 15)

The computer-readable storage medium of claim 15, wherein the data evidence module is further adapted to:
analyze the requested data to ascertain the data's trustworthiness.

### Claim 17 (depends on 15)

The computer-readable storage medium of claim 15, wherein considering code evidence comprises determining capabilities of the code, different capabilities of the code having different levels of trustworthiness.

### Claim 18 (depends on 15)

The computer-readable storage medium of claim 15, wherein the permissions generation module is further adapted to:
assign the requested data to a data group based on the requested data's trustworthiness; and
select an effective permissions set for the process from among a plurality of permissions sets described by the security policy responsive to the assigned data group.

### Claim 19 (depends on 15)

The computer-readable storage medium of claim 15, wherein the data evidence module is further adapted to:
determine a format in which the requested data are encoded;
infer a source of the requested data based on the format of the data; and
consider data evidence indicating a trustworthiness of the requested data based on the source of the requested data, wherein requested data from different sources have different levels of trustworthiness.

### Claim 20 (depends on 15)

The computer-readable storage medium of claim 15, wherein considering data evidence comprises:
determining whether the requested data are encoded in an unexpected format.
