-
Notifications
You must be signed in to change notification settings - Fork 36
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add CISA custom decision points (#427)
* add public well being impact as version 1 of public safety impact (now version 2) * add mission prevalence decision point * add version diff output * add Mission and Well Being Impact as earlier version of Human Impact * clean up version printing * updated generated docs * remove obsoleted generated docs * s/Mission Impact/Mission Prevalence/ * s/Mission Impact/Mission Prevalence/
- Loading branch information
1 parent
e5567ee
commit 046cbb3
Showing
22 changed files
with
399 additions
and
41 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
{ | ||
"namespace": "ssvc", | ||
"version": "2.0.0", | ||
"key": "HI", | ||
"name": "Human Impact", | ||
"description": "Human Impact is a combination of Safety and Mission impacts.", | ||
"values": [ | ||
{ | ||
"key": "L", | ||
"name": "Low", | ||
"description": "Safety=None/Minor, Mission=None/Degraded/Crippled" | ||
}, | ||
{ | ||
"key": "M", | ||
"name": "Medium", | ||
"description": "Safety=None/Minor, Mission=MEF Failure OR Safety=Major, Mission=None/Degraded/Crippled" | ||
}, | ||
{ | ||
"key": "H", | ||
"name": "High", | ||
"description": "Safety=Hazardous, Mission=None/Degraded/Crippled/MEF Failure OR Safety=Major, Mission=MEF Failure" | ||
}, | ||
{ | ||
"key": "VH", | ||
"name": "Very High", | ||
"description": "Safety=Catastrophic OR Mission=Mission Failure" | ||
} | ||
] | ||
} |
24 changes: 24 additions & 0 deletions
24
data/json/decision_points/mission_and_well-being_impact_1_0_0.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
{ | ||
"namespace": "ssvc", | ||
"version": "1.0.0", | ||
"key": "MWI", | ||
"name": "Mission and Well-Being Impact", | ||
"description": "Mission and Well-Being Impact is a combination of Mission Prevalence and Public Well-Being Impact.", | ||
"values": [ | ||
{ | ||
"key": "L", | ||
"name": "Low", | ||
"description": "Mission Prevalence Minimal and Public Well-Being Impact Minimal" | ||
}, | ||
{ | ||
"key": "M", | ||
"name": "Medium", | ||
"description": "Mission Prevalence Support and Public Well-Being Impact Minimal or Material" | ||
}, | ||
{ | ||
"key": "H", | ||
"name": "High", | ||
"description": "Mission Prevalence Essential or Public Well-Being Impact Irreversible" | ||
} | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
{ | ||
"namespace": "ssvc", | ||
"version": "2.0.0", | ||
"key": "PSI", | ||
"name": "Public Safety Impact", | ||
"description": "A coarse-grained representation of impact to public safety.", | ||
"values": [ | ||
{ | ||
"key": "M", | ||
"name": "Minimal", | ||
"description": "Safety impact of None or Minor." | ||
}, | ||
{ | ||
"key": "S", | ||
"name": "Significant", | ||
"description": "Safety impact of Major, Hazardous, or Catastrophic." | ||
} | ||
] | ||
} |
24 changes: 24 additions & 0 deletions
24
data/json/decision_points/public_well-being_impact_1_0_0.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
{ | ||
"namespace": "ssvc", | ||
"version": "1.0.0", | ||
"key": "PWI", | ||
"name": "Public Well-Being Impact", | ||
"description": "A coarse-grained representation of impact to public well-being.", | ||
"values": [ | ||
{ | ||
"key": "M", | ||
"name": "Minimal", | ||
"description": "The effect is below the threshold for all aspects described in material. " | ||
}, | ||
{ | ||
"key": "M", | ||
"name": "Material", | ||
"description": "(Any one or more of these conditions hold.) \n\n*Physical harm*: Does one or more of the following:\n\n- Causes physical distress or injury to system users.\n- Introduces occupational safety hazards.\n- Reduces and/or results in failure of cyber-physical system safety margins.\n\n*Environment*: Major externalities (property damage, environmental damage, etc.) are\nimposed on other parties. \n\n*Financial*: Financial losses likely lead to bankruptcy of multiple persons. \n \n*Psychological*: Widespread emotional or psychological harm, sufficient to necessitate\ncounseling or therapy, impact populations of people. \n" | ||
}, | ||
{ | ||
"key": "I", | ||
"name": "Irreversible", | ||
"description": "(Any one or more of these conditions hold.)\n \n*Physical harm*: One or both of the following are true:\n\n- Multiple fatalities are likely.\n- The cyber-physical system, of which the vulnerable componen is a part, is likely lost or destroyed.\n\n*Environment*: Extreme or serious externalities (immediate public health threat, environmental damage leading to small\necosystem collapse, etc.) are imposed on other parties.\n\n*Financial*: Social systems (elections, financial grid, etc.) supported by the software are destabilized and potentially\ncollapse.\n\n*Psychological*: N/A \n" | ||
} | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
human_impact_1_0_0.md | ||
human_impact_2_0_0.md |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
1 change: 1 addition & 0 deletions
1
docs/_generated/decision_points/mission_and_well-being_impact.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
mission_and_well-being_impact_1_0_0.md |
18 changes: 18 additions & 0 deletions
18
docs/_generated/decision_points/mission_and_well-being_impact_1_0_0.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
<!-- This content is autogenerated by doctools.py. Do not Edit. --> | ||
!!! note "Mission and Well-Being Impact v1.0.0" | ||
|
||
=== "Text" | ||
|
||
Mission and Well-Being Impact is a combination of Mission Prevalence and Public Well-Being Impact. | ||
|
||
| Value | Definition | | ||
|:-----|:-----------| | ||
| Low | Mission Prevalence Minimal and Public Well-Being Impact Minimal | | ||
| Medium | Mission Prevalence Support and Public Well-Being Impact Minimal or Material | | ||
| High | Mission Prevalence Essential or Public Well-Being Impact Irreversible | | ||
=== "JSON" | ||
|
||
```json | ||
{% include "../../../data/json/decision_points/mission_and_well-being_impact_1_0_0.json" %} | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
public_safety_impact_1_0_0.md | ||
public_safety_impact_2_0_0.md |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
public_well-being_impact_1_0_0.md |
47 changes: 47 additions & 0 deletions
47
docs/_generated/decision_points/public_well-being_impact_1_0_0.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
<!-- This content is autogenerated by doctools.py. Do not Edit. --> | ||
!!! note "Public Well-Being Impact v1.0.0" | ||
|
||
=== "Text" | ||
|
||
A coarse-grained representation of impact to public well-being. | ||
|
||
| Value | Definition | | ||
|:-----|:-----------| | ||
| Minimal | The effect is below the threshold for all aspects described in material. | | ||
| Material | (Any one or more of these conditions hold.) | ||
|
||
*Physical harm*: Does one or more of the following: | ||
|
||
- Causes physical distress or injury to system users. | ||
- Introduces occupational safety hazards. | ||
- Reduces and/or results in failure of cyber-physical system safety margins. | ||
|
||
*Environment*: Major externalities (property damage, environmental damage, etc.) are | ||
imposed on other parties. | ||
|
||
*Financial*: Financial losses likely lead to bankruptcy of multiple persons. | ||
|
||
*Psychological*: Widespread emotional or psychological harm, sufficient to necessitate | ||
counseling or therapy, impact populations of people. | ||
| | ||
| Irreversible | (Any one or more of these conditions hold.) | ||
|
||
*Physical harm*: One or both of the following are true: | ||
|
||
- Multiple fatalities are likely. | ||
- The cyber-physical system, of which the vulnerable componen is a part, is likely lost or destroyed. | ||
|
||
*Environment*: Extreme or serious externalities (immediate public health threat, environmental damage leading to small | ||
ecosystem collapse, etc.) are imposed on other parties. | ||
|
||
*Financial*: Social systems (elections, financial grid, etc.) supported by the software are destabilized and potentially | ||
collapse. | ||
|
||
*Psychological*: N/A | ||
| | ||
|
||
=== "JSON" | ||
|
||
```json | ||
{% include "../../../data/json/decision_points/public_well-being_impact_1_0_0.json" %} | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,7 +2,7 @@ | |
""" | ||
Provides helper functions for working with SSVC decision points. | ||
""" | ||
# Copyright (c) 2023 Carnegie Mellon University and Contributors. | ||
# Copyright (c) 2024 Carnegie Mellon University and Contributors. | ||
# - see Contributors.md for a full list of Contributors | ||
# - see ContributionInstructions.md for information on how you can Contribute to this project | ||
# Stakeholder Specific Vulnerability Categorization (SSVC) is | ||
|
@@ -15,9 +15,25 @@ | |
# Carnegie Mellon®, CERT® and CERT Coordination Center® are registered in the | ||
# U.S. Patent and Trademark Office by Carnegie Mellon University | ||
|
||
from typing import Sequence | ||
|
||
from ssvc.decision_points import SsvcDecisionPoint | ||
|
||
|
||
# Copyright (c) 2023 Carnegie Mellon University and Contributors. | ||
# - see Contributors.md for a full list of Contributors | ||
# - see ContributionInstructions.md for information on how you can Contribute to this project | ||
# Stakeholder Specific Vulnerability Categorization (SSVC) is | ||
# licensed under a MIT (SEI)-style license, please see LICENSE.md distributed | ||
# with this Software or contact [email protected] for full terms. | ||
# Created, in part, with funding and support from the United States Government | ||
# (see Acknowledgments file). This program may include and/or can make use of | ||
# certain third party source code, object code, documentation and other files | ||
# (“Third Party Software”). See LICENSE.md for more details. | ||
# Carnegie Mellon®, CERT® and CERT Coordination Center® are registered in the | ||
# U.S. Patent and Trademark Office by Carnegie Mellon University | ||
|
||
|
||
def dp_diff(dp1: SsvcDecisionPoint, dp2: SsvcDecisionPoint) -> list[str]: | ||
""" | ||
Compares two decision points and returns a list of differences. | ||
|
@@ -175,7 +191,7 @@ def dp_diff(dp1: SsvcDecisionPoint, dp2: SsvcDecisionPoint) -> list[str]: | |
return diffs | ||
|
||
|
||
def show_diffs(versions: list[SsvcDecisionPoint]) -> None: | ||
def show_diffs(versions: Sequence[SsvcDecisionPoint]) -> None: | ||
if len(versions) < 2: | ||
print("Not enough versions to compare") | ||
return | ||
|
@@ -186,7 +202,7 @@ def show_diffs(versions: list[SsvcDecisionPoint]) -> None: | |
print() | ||
|
||
|
||
def print_versions_and_diffs(versions: list[SsvcDecisionPoint]) -> None: | ||
def print_versions_and_diffs(versions: Sequence[SsvcDecisionPoint]) -> None: | ||
""" | ||
Prints the json representation of each version and then shows the diffs between each version. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.