IP Library › Granted Patent US 11,729,222
Granted Patent B2
US 11,729,222 · App. 16/918,966 · Granted Aug 15, 2023

System and method for extracting configuration-related information for reasoning about the security and functionality of a composed internet of things system

Inventors: Hamed Soroush (San Jose, CA); Milad Asgari Mehrabadi (Irvine, CA); Shantanu Rane (Menlo Park, CA); Marc E. Mosko (Santa Cruz, CA)
Assignee: Palo Alto Research Center Incorporated
H04L63/205G06F16/252G06F21/577G06N3/04G06N5/04H04L63/1433G06F2221/034
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 11,729,222
App. No.
16/918,966
Granted
Aug 15, 2023
Kind
B2
Abstract

Embodiments provide a system and method for extracting configuration-related information for reasoning about the security and functionality of a composed system. During operation, the system determines, by a computing device, information sources associated with hardware and software components of a system, wherein the information sources include at least specification sheets, standard operating procedures, user manuals, and vulnerability databases. The system selects a set of categories of vulnerabilities in a vulnerability database, and ingests the information sources to obtain data in a normalized format. The system extracts, from the ingested information sources, configuration information, vulnerability information, dependency information, and functionality requirements to create a model for the system. The system displays, on a screen of a user device, one or more interactive elements which allow the user to view or select the information sources and the categories of vulnerabilities, initiate ingesting the information sources, and view the extracted configuration information.

Claims (91)

1. A computer-implemented method, comprising:

determining, by a computing device, information sources associated with hardware and software components of a system,

wherein the information sources include at least specification sheets, standard operating procedures, user manuals, and vulnerability databases;

selecting a set of categories of vulnerabilities in a vulnerability database;

ingesting the information sources to obtain data in a normalized format;

extracting, from the ingested information sources, configuration information, vulnerability information, dependency information, and functionality requirements to create a model for the system,

wherein the system comprises an Internet of Things (IoT) system which comprises a configuration graph, an attack graph, and a dependency graph, and

wherein the extracted configuration information is used to generate the configuration graph, the extracted vulnerability information is used to generate the vulnerability graph, and the extracted dependency information is used to generate the dependency graph; and

displaying, on a screen of a user device, one or more interactive elements which allow the user to view or select the information sources and the categories of vulnerabilities, initiate ingesting the information sources, and view the extracted configuration information.

2. The method of claim 1 , wherein the extracted configuration information includes, for a configuration parameter of a component of the system, one or more of:

a name of the configuration parameter;

a data type associated with the configuration parameter;

a default value associated with the configuration parameter;

a current value associated with the configuration parameter;

a range of possible values associated with the configuration parameter; and

a natural language text description associated with the configuration parameter.

3. The method of claim 2 , further comprising:

analyzing the natural language text description associated with the configuration parameter, which involves:

determining, based on a relevancy metric, which portions of the natural language text description are relevant; and

determining from the relevant portions further constraints on the configuration parameters, wherein the constraints include one or more of:

equality constraints; inequality constraints; membership in a set; and

ranges for the configuration parameter.

4. The method of claim 1 , wherein the extracted vulnerability information includes one or more of:

a first set of software vulnerabilities obtained from the vulnerability databases, wherein a category of vulnerabilities in the vulnerability database is associated with a type and a name, and wherein the selected categories are associated with configuration-related vulnerabilities;

a second set of security bad practices based on expert knowledge or specified by user input; and

a third set of security not-best practices based on expert knowledge or specified by user input.

5. The method of claim 4 ,

wherein the first set of software vulnerabilities include Common Vulnerability and Exposure (CVE) entries from the National Vulnerability Database, and

wherein a CVE entry of the first set is associated with a Common Weakness Enumeration Specification (CWE) identifier and is further categorized as a configuration-related vulnerability.

6. The method of claim 1 , wherein the extracted dependency information includes one or more of:

input from the user or another user; and

a third party tool for discovering service dependencies based on observation of network traffic and analysis of call graph.

7. The method of claim 1 , wherein the functionality requirements include one or more of:

parameter range constraints specifying legitimate ranges of values which can be assigned to a respective configuration parameter, wherein the parameter range constraints are obtained from the extracted configuration information; and

functionality and performance requirements ingested based on input from the user via a graphical interface on the screen of the user device.

8. The method of claim 1 ,

wherein the system includes a setting which prioritizes functionality or security, wherein the setting is passed to a reasoning module to determine whether a set of constraints associated with one or more of the components is mutually compatible.

9. The method of claim 8 ,

wherein the setting comprises a weighted value for a subset of one of more components, wherein the weighted value is assigned by the user or based on a default or other system setting.

10. The method of claim 1 , wherein the one or more displayed interactive elements further allow the user to view one or more of:

the extracted vulnerability information;

the extracted dependency information; and

the extracted functionality requirements.

11. A computer system, the system comprising:

a processor; and

a storage device storing instructions that when executed by the processor cause the processor to perform a method, the method comprising:

determining, by a computing device, information sources associated with hardware and software components of a system,

wherein the information sources include at least specification sheets, standard operating procedures, user manuals, and vulnerability databases;

selecting a set of categories of vulnerabilities in a vulnerability database;

ingesting the information sources to obtain data in a normalized format;

extracting, from the ingested information sources, configuration information, vulnerability information, dependency information, and functionality requirements to create a model for the system,

wherein the system comprises an Internet of Things (IoT) system which comprises a configuration graph, an attack graph, and a dependency graph, and

wherein the extracted configuration information is used to generate the configuration graph, the extracted vulnerability information is used to generate the vulnerability graph, and the extracted dependency information is used to generate the dependency graph; and

displaying, on a screen of a user device, one or more interactive elements which allow the user to view or select the information sources and the categories of vulnerabilities, initiate ingesting the information sources, and view the extracted configuration information.

12. The computer system of claim 11 , wherein the extracted configuration information includes, for a configuration parameter of a component of the system, one or more of:

a name of the configuration parameter;

a data type associated with the configuration parameter;

a default value associated with the configuration parameter;

a current value associated with the configuration parameter;

a range of possible values associated with the configuration parameter; and

a natural language text description associated with the configuration parameter.

13. The computer system of claim 12 , wherein the method further comprises:

analyzing the natural language text description associated with the configuration parameter, which involves:

determining, based on a relevancy metric, which portions of the natural language text description are relevant; and

determining from the relevant portions further constraints on the configuration parameters, wherein the constraints include one or more of:

equality constraints; inequality constraints; membership in a set; and

ranges for the configuration parameter.

14. The computer system of claim 11 , wherein the extracted vulnerability information includes one or more of:

a first set of software vulnerabilities obtained from the vulnerability databases, wherein a category of vulnerabilities in the vulnerability database is associated with a type and a name, and wherein the selected categories are associated with configuration-related vulnerabilities;

a second set of security bad practices based on expert knowledge or specified by user input; and

a third set of security not-best practices based on expert knowledge or specified by user input,

wherein the first set of software vulnerabilities include Common Vulnerability and Exposure (CVE) entries from the National Vulnerability Database, and

wherein a CVE entry of the first set is associated with a Common Weakness Enumeration Specification (CWE) identifier and is further categorized as a configuration-related vulnerability.

15. The computer system of claim 11 , wherein the functionality requirements include one or more of:

parameter range constraints specifying legitimate ranges of values which can be assigned to a respective configuration parameter, wherein the parameter range constraints are obtained from the extracted configuration information; and

functionality and performance requirements ingested based on input from the user via a graphical interface on the screen of the user device.

16. The computer system of claim 11 ,

wherein the system includes a setting which prioritizes functionality or security, wherein the setting is passed to a reasoning module to determine whether a set of constraints associated with one or more of the components is mutually compatible.

17. The computer system of claim 11 , wherein the one or more displayed interactive elements further allow the user to view one or more of:

the extracted vulnerability information;

the extracted dependency information; and

the extracted functionality requirements.

18. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method, the method comprising:

determining, by a computing device, information sources associated with hardware and software components of a system,

wherein the information sources include at least specification sheets, standard operating procedures, user manuals, and vulnerability databases;

selecting a set of categories of vulnerabilities in a vulnerability database;

ingesting the information sources to obtain data in a normalized format;

extracting, from the ingested information sources, configuration information, vulnerability information, dependency information, and functionality requirements to create a model for the system,

wherein the system comprises an Internet of Things (IoT) system which comprises a configuration graph, an attack graph, and a dependency graph, and

wherein the extracted configuration information is used to generate the configuration graph, the extracted vulnerability information is used to generate the vulnerability graph, and the extracted dependency information is used to generate the dependency graph; and

displaying, on a screen of a user device, one or more interactive elements which allow the user to view or select the information sources and the categories of vulnerabilities, initiate ingesting the information sources, and view the extracted configuration information.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 6, 2026
From: XEROX CORPORATION
To: GENESEE VALLEY INNOVATIONS, LLC
Reel/Frame 075020/0755 →
SECOND LIEN NOTES PATENT SECURITY AGREEMENT Recorded Jul 2, 2025
From: XEROX CORPORATION
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 071785/0550 →
FIRST LIEN NOTES PATENT SECURITY AGREEMENT Recorded Apr 11, 2025
From: XEROX CORPORATION
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 070824/0001 →
SECURITY INTEREST Recorded Feb 13, 2024
From: XEROX CORPORATION
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 066741/0001 →
SECURITY INTEREST Recorded Nov 20, 2023
From: XEROX CORPORATION
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 065628/0019 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVAL OF US PATENTS 9356603, 10026651, 10626048 AND INCLUSION OF US PATENT 7167871 PREVIOUSLY RECORDED ON REEL 064038 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 28, 2023
From: PALO ALTO RESEARCH CENTER INCORPORATED
To: XEROX CORPORATION
Reel/Frame 064161/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2023
From: PALO ALTO RESEARCH CENTER INCORPORATED
To: XEROX CORPORATION
Reel/Frame 064038/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2020
From: SOROUSH, HAMED; ASGARI MEHRABADI, MILAD; RANE, SHANTANU; MOSKO, MARC E.
To: PALO ALTO RESEARCH CENTER INCORPORATED
Reel/Frame 053109/0832 →
Continuity (2)
Provisional Application 62873746 · Jul 12, 2019
Related Publication 20210014263A1 · Jan 14, 2021
Cited By (1)
US 12,487,801