# US 11,841,954 B2 · Systems and methods for automated threat modeling when deploying infrastructure as a code

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

- Number: US 11,841,954 B2
- Document ID: US11841954B2
- Status: Granted
- Kind: B2
- Application number: 17/709,670
- Filed: 2022-03-31
- Published: 2022-07-14
- Granted: 2023-12-12
- Earliest claimed: 2017-05-17
- Assignees: ThreatModeler Software Inc.
- Applicants: ThreatModeler Software Inc.
- Inventors: Anuraag Agarwwal
- Web page: https://patentgrep.com/patent/US11841954B2

## CPC

- 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/563: {by source code analysis}
- G06F 30/20: Design optimisation, verification or simulation (optimisation, verification or simulation of circuit designs G06F30/30)
- H04L 41/046: comprising network management agents or mobile agents therefor
- H04L 41/145: {involving simulating, designing, planning or modelling of a network}
- H04L 63/1433: {Vulnerability analysis}
- H04L 63/20: {for managing network security; network security policies in general (filtering policies H04L63/0227)}
- G06F 2119/02: Reliability analysis or reliability optimisation; Failure analysis, e.g. worst case scenario performance, failure mode and effects analysis [FMEA]
- G06F 2221/034: Test or assess a computer or a system
- G06N 5/01: Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
- G06N 5/022: Knowledge engineering; Knowledge acquisition
- G06N 5/04: Inference or reasoning models
- G06N 20/00: Machine learning
- 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)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

Systems and methods of generating a threat model from a code file are defined. The system includes one or more data stores communicatively coupled with a processor, and storing information on a plurality of properties to be configured for one or more resources included in the code file and a plurality of security threats associated with one or more values of the plurality of properties. The system analyzes the code file to identify one or more properties associated with the one or more resources included in the code file. For each property, a value for the property defined in the code file is identified, one or more security threats are determined based on the identified value for the property, using the information stored in the data stores. The system generates a threat model for the one or more resources based on the determined one or more security threats.

## Claims

### Claim 1

A processor-executed method comprising:
providing one or more first data stores communicatively coupled with the processor, the one or more first data stores storing information on:
a plurality of properties to be configured for one or more resources included in a code file; and
a plurality of security threats associated with one or more values of the plurality of properties;
analyzing the code file to identify one or more properties, of the plurality of properties, associated with the one or more resources included in the code file; and
for each property of the identified one or more properties:
identifying a value for the property defined in the code file; and
determining one or more security threats based on the identified value for the property, using the information stored in the one or more first data stores.

### Claim 2 (depends on 1)

The method according to claim 1, further comprising:
identifying one or more dubious properties that generated each security threat of the one or more security threats; and
identifying, using the information stored in the one or more first data stores, a modified value for each of the identified one or more dubious properties that generated each security threat to mitigate the one or more security threats.

### Claim 3 (depends on 2)

The method according to claim 2, further comprising:
changing the value of the identified one or more dubious properties that generated each security threat to the modified value to generate a modified code file having mitigated security threats.

### Claim 4 (depends on 3)

The method according to claim 3, further comprising:
displaying, on the user interface, an indication of the modified value of the one or more dubious properties that generated each security threat of the one or more security threats.

### Claim 5 (depends on 1)

The method according to claim 1, further comprising identifying, based on the determined one or more security threats, one or more security properties or one or more compensating controls that mitigate the determined one or more security threats.

### Claim 6 (depends on 5)

The method according to claim 5, further comprising adding the determined one or more security properties or one or more compensating controls that mitigate the determined one or more security threats to the code file.

### Claim 7 (depends on 6)

The method according to claim 6, further comprising displaying, on a user interface, an indication of the added one or more security properties or one or more compensating controls that mitigate the determined one or more security threats.

### Claim 8 (depends on 5)

The method according to claim 5,
wherein the one or more compensating controls include a property to be defined for another resource referenced in the one or more properties associated with the one or more resources included in the code file.

### Claim 9 (depends on 1)

The method according to claim 1, further comprising:
generating a threat model for the code file;
for each security threat of the determined one or more security threats:
identifying whether the security threat is mitigated based on the threat model; and
in a case whether the security threat is mitigated, removing the security threat from the determined one or more security threats.

### Claim 10

A system comprising:
one or more first data stores configured to store information on:
a plurality of properties to be configured for one or more resources included in a code file; and
a plurality of security threats associated with one or more values of the plurality of properties;
one or more memories configured to store instructions; and
one or more computing devices communicatively connected to the one or more first data stores and the one or more memories and configured to execute the stored instructions to:
analyze the code file to identify one or more properties, of the plurality of properties, associated with the one or more resources included in the code file; and
for each property of the identified one or more properties:
identify a value for the property defined in the code file; and
determine one or more security threats based on the identified value for the property, using the information stored in the one or more first data stores.

### Claim 11 (depends on 10)

The system according to claim 10, wherein the one or more computing devices further execute the stored instructions to:
identify one or more dubious properties that generated each security threat of the one or more security threats; and
identify, using the information stored in the one or more data stores, a modified value for each of the identified one or more dubious properties that generated each security threat to mitigate the one or more security threats.

### Claim 12 (depends on 11)

The system according to claim 11, wherein the one or more computing devices further execute the stored instructions to:
change the value of the identified one or more dubious properties that generated each security threat to the modified value to generate a modified code file having mitigated security threats.

### Claim 13 (depends on 12)

The system according to claim 12, wherein the one or more computing devices further execute the stored instructions to:
display, on the user interface, an indication of the modified value of the one or more dubious properties that generated each security threat of the one or more security threats.

### Claim 14 (depends on 10)

The system according to claim 10 wherein the one or more computing devices further execute the stored instructions to identify, based on the determined one or more security threats, one or more security properties or one or more compensating controls that mitigate the determined one or more security threats.

### Claim 15 (depends on 14)

The system according to claim 14, wherein the one or more computing devices further execute the stored instructions to add the determined one or more security properties or one or more compensating controls that mitigate the determined one or more security threats to the code file.

### Claim 16 (depends on 15)

The system according to claim 15, wherein the one or more computing devices further execute the stored instructions to display, on a user interface, an indication of the added one or more security properties or one or more compensating controls that mitigate the determined one or more security threats.

### Claim 17 (depends on 14)

The system according to claim 14,
wherein the one or more compensating controls include a property to be defined for another resource referenced in the one or more properties associated with the one or more resources included in the code file.

### Claim 18 (depends on 10)

The system according to claim 10, wherein the one or more computing devices further execute the stored instructions to:
generate a threat model for the code file;
for each security threat of the determined one or more security threats:
identify whether the security threat is mitigated based on the threat model; and
in a case whether the security threat is mitigated, remove the security threat from the determined one or more security threats.

### Claim 19

A non-transitory computer readable storage medium configured to store a program that, when executed by a processor, performs a method comprising:
providing one or more first data stores communicatively coupled with the processor, the one or more first data stores storing information on:
a plurality of properties to be configured for one or more resources included in a code file; and
a plurality of security threats associated with one or more values of the plurality of properties;
analyzing the code file to identify one or more properties, of the plurality of properties, associated with the one or more resources included in the code file; and
for each property of the identified one or more properties:
identifying a value for the property defined in the code file; and
determining one or more security threats based on the identified value for the property, using the information stored in the one or more first data stores.

### Claim 20 (depends on 19)

The non-transitory computer readable storage medium according to claim 19, wherein the method further comprises:
generating a threat model for the code file;
for each security threat of the determined one or more security threats:
identifying whether the security threat is mitigated based on the threat model; and
in a case whether the security threat is mitigated, removing the security threat from the determined one or more security threats.
