# US 12,118,284 B2 · Verifying integrity of controller software updates

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

- Number: US 12,118,284 B2
- Document ID: US12118284B2
- Status: Granted
- Kind: B2
- Application number: 18/327,472
- Filed: 2023-06-01
- Published: 2023-09-28
- Granted: 2024-10-15
- Earliest claimed: 2019-03-25
- Assignees: Aurora Labs Ltd.
- Applicants: Aurora Labs Ltd.
- Inventors: Zohar Fox; Carmit Sahar
- Web page: https://patentgrep.com/patent/US12118284B2

## CPC

- G06F 30/33: Design verification, e.g. functional simulation or model checking
- G06F 8/34: Graphical or visual programming
- G06F 8/65: Updates (security arrangements therefor G06F21/57)
- G06F 8/71: Version control (security arrangements therefor G06F21/57); Configuration management
- G06F 8/73: Program documentation
- G06F 8/75: Structural analysis for program understanding
- G06F 11/3604: Analysis of software for verifying properties of programs (testing of software G06F11/3668)
- G06F 11/3612: {by runtime analysis (performance monitoring G06F11/3466)}
- G06F 11/362: Debugging of software
- G06F 11/3692: {for test results analysis}
- G06F 16/9014: {hash tables}
- G06F 17/18: for evaluating statistical data {, e.g. average values, frequency distributions, probability functions, regression analysis (forecasting specially adapted for a specific administrative, business or logistic context G06Q10/04)}
- G06F 18/24: Classification techniques
- G06F 21/52: during program execution, e.g. stack integrity {; Preventing unwanted data erasure; Buffer overflow}
- G06F 21/563: {by source code analysis}
- G06F 21/57: Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F 21/577: {Assessing vulnerabilities and evaluating computer system security}
- G06F 21/6218: {to a system of files or objects, e.g. local or distributed file system or database}
- G06N 20/00: Machine learning
- H04L 9/3247: {involving digital signatures}
- G06F 30/15: Vehicle, aircraft or watercraft design
- G10H 1/0058: {Transmission between separate instruments or between individual components of a musical system (G10H1/0083 takes precedence)}
- H04L 2209/84: Vehicles
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G10H: ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE

## Abstract

Disclosed herein are techniques for analyzing control-flow integrity based on functional line-of-code behavior and relation models. Techniques include receiving data based on runtime operations of a controller; constructing a line-of-code behavior and relation model representing execution of functions on the controller based on the received data; constructing, based on the line-of-code behavioral and relation model, a dynamic control flow integrity model configured for the controller to enforce in real-time; and deploying the dynamic control flow integrity model to the controller.

## Claims

### Claim 1

A non-transitory computer-readable medium including instructions that, when executed by at least one processor, cause the at least one processor to perform operations for analyzing software delta changes based on functional line-of-code behavior and relation models, comprising:
identifying a prompt to change a first version of code on a controller to a second version of code;
constructing, based on the identified prompt, a line-of-code behavior and relation model representing execution of functions of the controller based on functional analysis of the second version of code;
performing a signature operation on the generated line-of-code behavior and relation model to produce a signature value; and
sending the signature value to the controller;
wherein the controller is configured to:
compare the signature value to a computed signature value based on the second version of code; and
determine, based on the comparison, whether to validate the second version of code.

### Claim 2 (depends on 1)

The non-transitory computer readable medium of claim 1, wherein the functional analysis of the second version of code comprises at least one of a statistical or dynamic analysis process.

### Claim 3 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the prompt comprises a delta file.

### Claim 4 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein computation of the computed signature value is based on operations associated with the controller.

### Claim 5 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the controller is further configured to, based on validation of the second version of code, execute the second version of code on the controller.

### Claim 6 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the controller is further configured to, based on validation of the second version of code, prevent execution of the second version of code on the controller.

### Claim 7 (depends on 6)

The non-transitory computer-readable medium of claim 6, wherein the controller is further configured to, based on the validation, notify a remote source associated with the second version of code.

### Claim 8 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the computed signature value is computed by using the signature operation.

### Claim 9 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the line-of-code behavior and relation model was generated dynamically based on data associated with real-time operations of the controller.

### Claim 10 (depends on 9)

The non-transitory computer-readable medium of claim 9, wherein the data associated with real-time operations of the controller is limited based on parameters set remotely from the controller.

### Claim 11 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the signature operation is based on an identifier of the controller.

### Claim 12 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the signature operation is based on at least one of a type, function, version of software, sensitivity value, age, or processing capacity of the controller.

### Claim 13

A computer-implemented method for analyzing software delta changes based on functional line-of-code behavior and relation models, the method comprising:
identifying a prompt to change a first version of code on a controller to a second version of code;
constructing, based on the identified prompt, a line-of-code behavior and relation model representing execution of functions of the controller based on functional analysis of the second version of code;
performing a signature operation on the generated line-of-code behavior and relation model to produce a signature value; and
sending the signature value to the controller;
wherein the controller is configured to:
compare the signature value to a computed signature value based on the second version of code; and
determine, based on the comparison, whether to validate the second version of code.

### Claim 14 (depends on 13)

The computer-implemented method of claim 13, wherein the functional analysis of the second version of code comprises at least one of a statistical or dynamic analysis process.

### Claim 15 (depends on 13)

The computer-implemented method of claim 13, wherein the prompt comprises a delta file.

### Claim 16 (depends on 13)

The computer-implemented method of claim 13, wherein the controller is further configured to, based on validation of the second version of code, execute the second version of code on the controller.

### Claim 17 (depends on 13)

The computer-implemented method of claim 13, wherein the controller is further configured to, based on validation of the second version of code, prevent execution of the second version of code on the controller.

### Claim 18 (depends on 13)

The computer-implemented method of claim 13, wherein the computed signature value is computed by using the signature operation.

### Claim 19 (depends on 13)

The computer-implemented method of claim 13, wherein the line-of-code behavior and relation model was generated dynamically based on data associated with real-time operations of the controller.

### Claim 20 (depends on 13)

The computer-implemented method of claim 13, wherein the signature operation is based on at least one of an identifier, type, function, version of software, sensitivity value, age, or processing capacity of the controller.
