Skip to content

Commit

Permalink
Merge pull request #37 from Spyderisk/35-current-and-future-risk-flag…
Browse files Browse the repository at this point in the history
…s-are-wrong

Merge 6a3-2-2 changes into 6a
  • Loading branch information
mike1813 authored Sep 6, 2023
2 parents 2d9cbb2 + 4d685c1 commit 8442f94
Show file tree
Hide file tree
Showing 31 changed files with 269 additions and 168 deletions.
27 changes: 17 additions & 10 deletions csv/CASetting.csv

Large diffs are not rendered by default.

27 changes: 16 additions & 11 deletions csv/ConstructionPattern.csv
Original file line number Diff line number Diff line change
Expand Up @@ -84,17 +84,22 @@ hasPriority,URI,package,label,iterate,maxIterations,usesLoopback,usesParallel,ha
4240,domain#CP-Hum-iHRAS+i,package#CloudManagement,Hum-iHRAS+i,FALSE,0,FALSE,FALSE,domain#MP-Hum-iHRAS,"Finds a human managing but not interacting with a host that is not a Pod and has a root privileged remote access service, and adds a link to say the human interacts with the desktop service."
4250,domain#CP-HuiCHDtS-AC+AC,package#Application,HuiCHDtS-AC+AC,FALSE,0,FALSE,FALSE,domain#MP-HuiCHDtS-AC,"Finds a human managing but not interacting directly with a host that has a desktop service, and interacting with a console host but not with a client of the desktop service. Adds a Remote Desktop client enabling remote access to manage the host."
4251,domain#CP-HuiCHLnS-AC+AC,package#NetworkInference,HuiCHLnS-AC+AC,FALSE,0,FALSE,FALSE,domain#MP-HuiCHLnS-AC,"Finds a human managing but not interacting directly with a host that has a login service, and interacting with a console host but not with a client of the login service. Adds a Remote Terminal client enabling remote access to manage the host."
4310,domain#CP-Se+SPD,package#IoT,Se+SPD,FALSE,0,FALSE,FALSE,domain#MP-Se,Finds each IoT Sensor device and adds an onboard communication process and data.
4311,domain#CP-Co+SPD,package#IoT,Co+SPD,FALSE,0,FALSE,FALSE,domain#MP-Co,Finds each IoT Controller device and adds an onboard communication process and data.
4320,domain#CP-Pa-uCo+Rel,package#IoT,Pa-uCo+Rel,FALSE,0,FALSE,FALSE,domain#MP-Pa-uCo,"Finds a client Process that amends an IoT Controller, and adds relationships between the client and the onboard simple communication Process and Data."
4321,domain#CP-PuCo+Rel,package#IoT,PuCo+Rel,FALSE,0,FALSE,FALSE,domain#MP-PuCo,"Finds a client Process that updates an IoT Controller, and adds relationships between the client and the onboard communication Process and Data."
4330,domain#CP-PpSe+Rel,package#IoT,PpSe+Rel,FALSE,0,FALSE,FALSE,domain#MP-PpSe,"Finds a client Process that polls an IoT Sensor to obtain data, and adds relationships between the client and the onboard simple communication Process and Data."
4331,domain#CP-Pr-uSe+Rel,package#IoT,Pr-uSe+Rel,FALSE,0,FALSE,FALSE,domain#MP-Pr-uSe,"Finds an IoT Sensor sending data to a (not really client) Process, and adds a relationship between the onboard simple IoT communication Process and the client Process."
4332,domain#CP-PuSe+Rel,package#IoT,PuSe+Rel,FALSE,0,FALSE,FALSE,domain#MP-PuSe,"Finds a client Process that reads data from an IoT Sensor, and adds relationships between the client and the onboard simple communication Process and Data."
4340,domain#CP-HuiUCo+aD,package#IoT,HuiUCo+aD,FALSE,0,FALSE,TRUE,domain#MP-HuiUCo,"Finds a Human interacting with a UserController, and inserts interactivity relationships with the onboard data and processing."
4341,domain#CP-HuiUSe+vD,package#IoT,HuiUSe+vD,FALSE,0,FALSE,FALSE,domain#MP-HuiUSe,"Finds a Human interacting with a UserSensor, and inserts interactivity relationships with the onboard data and processing."
4350,domain#CP-HurTh+Rel,package#Privacy,HurTh+Rel,FALSE,0,FALSE,FALSE,domain#MP-HurTh,"Finds each Thing that relates to a Human data subject, and inserts the relationship of the onboard Data to the Human."
4360,domain#CP-HumThP-m+m,package#IoT,HumThP-m+m,FALSE,0,FALSE,FALSE,domain#MP-HumThP-m,"Finds a Human managing a Thing with an unmanaged onboard process, and makes the manager also manage the process."
4310,domain#CP-Co+cD,package#IoT,Co+cD,FALSE,0,FALSE,TRUE,domain#MP-Co,Finds each IoT Controller device and adds the onboard control input data.
4311,domain#CP-Se+cD,package#IoT,Se+cD,FALSE,0,FALSE,TRUE,domain#MP-Se,Finds each IoT Sensor device and adds the onboard control input data.
4312,domain#CP-Se+sD,package#IoT,Se+sD,FALSE,0,FALSE,FALSE,domain#MP-Se,Finds each IoT Sensor device and adds the sensed output data.
4320,domain#CP-SesD+SP,package#IoT,SesD+SP,FALSE,0,FALSE,FALSE,domain#MP-SesD,"Finds each IoT Sensor device and its sensed Data, and adds an onboard communication process that creates the Data."
4321,domain#CP-DcTh+DS,package#IoT,DcTh+DS,FALSE,0,FALSE,FALSE,domain#MP-DcTh,"Finds each IoT Thing device and its control input Data, and adds an onboard communication process that serves the Data."
4330,domain#CP-Pa-uCo+Rel,package#IoT,Pa-uCo+Rel,FALSE,0,FALSE,FALSE,domain#MP-Pa-uCo,"Finds a client Process that amends an IoT Controller, and adds relationships between the client and the onboard communication Process and control input Data."
4331,domain#CP-PuCo+Rel,package#IoT,PuCo+Rel,FALSE,0,FALSE,FALSE,domain#MP-PuCo,"Finds a client Process that updates an IoT Controller, and adds relationships between the client and the onboard communication Process and Data."
4340,domain#CP-PaSe+Rel,package#IoT,PaSe+Rel,FALSE,0,FALSE,FALSE,domain#MP-PaSe,"Finds a client Process that amends control input to an IoT Sensor, along with its onboard simple communication Process and Data, and adds relationships between the client and the onboard simple communication Process and Data."
4341,domain#CP-PrSe+Rel,package#IoT,PrSe+Rel,FALSE,0,FALSE,FALSE,domain#MP-PrSe,"Finds an IoT Sensor sending data to a (not really client) Process, and adds a relationship between the onboard simple IoT communication Process and the client Process."
4342,domain#CP-Pp-uSe+Rel,package#IoT,Pp-uSe+Rel,FALSE,0,FALSE,FALSE,domain#MP-Pp-uSe,"Finds a client Process that polls (but does not read) an IoT Sensor to obtain data, and adds relationships between the client and the onboard simple communication Process and Data."
4343,domain#CP-PuSe+Rel,package#IoT,PuSe+Rel,FALSE,0,FALSE,FALSE,domain#MP-PuSe,"Finds a client Process that reads data from an IoT Sensor, and adds relationships between the client and the onboard simple communication Process and Data."
4350,domain#CP-HuiCo+UI,package#IoT,HuiCo+UI,FALSE,0,FALSE,FALSE,domain#MP-HuiCo,"Finds the control input for an IoT Controller, which is being used interactively by a Human, and adds a user interface process, plus relationships of the Human to this process and to the input."
4351,domain#CP-HuiSe+Rel,package#IoT,HuiSe+Rel,FALSE,0,FALSE,FALSE,domain#MP-HuiSe,"Finds the control input and sensed output for an IoT Sensor, which is being used interactively by a Human, plus the interactive process that creates the output, and adds relationships of the Human to the process and data."
4360,domain#CP-HurSesD+Rel,package#Privacy,HurSesD+Rel,FALSE,0,FALSE,FALSE,domain#MP-HurSesD,"Finds Data produced as output by a Sensor related to a Human, and adds the relationship of the Data to the Human."
4361,domain#CP-HurThcD+Rel,package#Privacy,HurThcD+Rel,FALSE,0,FALSE,FALSE,domain#MP-HurThcD,"Finds control input to an IoT Thing related to a Human, and adds the relationship of the Data to the Human."
4370,domain#CP-HumThP-m+m,package#IoT,HumThP-m+m,FALSE,0,FALSE,FALSE,domain#MP-HumThP-m,"Finds a Human managing a Thing with an unmanaged onboard process, and makes the manager also manage the process."
4410,domain#CP-USBD-S+S,package#LocalDeviceConnectivity,USBD-S+S,FALSE,0,FALSE,FALSE,domain#MP-USBD-S,Finds Data stored on a USB device where there is no local process serving the data or creating it from scratch.
4420,domain#CP-UHDpP-S+S,package#LocalDeviceConnectivity,UHDpP-S+S,FALSE,0,FALSE,FALSE,domain#MP-UHDpP-S,"Finds Data stored on a USB Device paired with a USB Host which is running a process using the Data, where the Data is not also stored on the USB Host, and adds a usage link between the process and the onboard data service on the USB device."
4430,domain#CP-UHDrP-S+S,package#LocalDeviceConnectivity,UHDrP-S+S,FALSE,0,FALSE,FALSE,domain#MP-UHDrP-S,"Finds Data stored on a USB Device paired with a USB Host that does not also store the data, where the data is used by a Process running on a third distinct host, and inserts a simple service on the USB Host."
Expand Down
42 changes: 24 additions & 18 deletions csv/ConstructionPatternLinks.csv
Original file line number Diff line number Diff line change
Expand Up @@ -430,30 +430,35 @@ package#DataLifecycleInference,domain#CP-SDADPPDXRAC-DP+DP,domain#Link-NewDataPa
package#DataLifecycleInference,domain#CP-SDADPPDXRAC-DP+DP,domain#Link-NewDataPath-toProc-DB
package#DataLifecycleInference,domain#CP-SDUDADS+W,domain#Link-DataUse-canWrite-DataCopy
package#DataLifecycleInference,domain#CP-SDUDSDA+R,domain#Link-DataUse-canRead-DataCopy
package#IoT,domain#CP-Co+SPD,domain#Link-Controller-hosts-DataService
package#IoT,domain#CP-Co+SPD,domain#Link-Controller-hosts-SimpleProcess
package#IoT,domain#CP-Co+SPD,domain#Link-Controller-stores-Data
package#IoT,domain#CP-Co+SPD,domain#Link-DataService-serves-Data
package#IoT,domain#CP-Co+SPD,domain#Link-SimpleProcess-receives-Data
package#IoT,domain#CP-Co+SPD,domain#Link-SimpleProcess-uses-DataService
package#IoT,domain#CP-HuiUCo+aD,domain#Link-Human-amendsData-Data
package#IoT,domain#CP-HuiUCo+aD,domain#Link-Human-interactsWith-SimpleProcess
package#IoT,domain#CP-HuiUCo+aD,domain#Link-SimpleProcess-creates-Data
package#IoT,domain#CP-HuiUSe+vD,domain#Link-Human-interactsWith-SimpleProcess
package#IoT,domain#CP-HuiUSe+vD,domain#Link-Human-viewsData-Data
package#IoT,domain#CP-Co+cD,domain#Link-Controller-stores-Data
package#IoT,domain#CP-Co+cD,domain#Link-Data-controlsThing-Controller
package#IoT,domain#CP-DcTh+DS,domain#Link-SimpleProcess-serves-Data
package#IoT,domain#CP-DcTh+DS,domain#Link-Thing-hosts-SimpleProcess
package#IoT,domain#CP-HuiCo+UI,domain#Link-Controller-hosts-Process
package#IoT,domain#CP-HuiCo+UI,domain#Link-Human-interactsWith-Process
package#IoT,domain#CP-HuiCo+UI,domain#Link-Process-creates-Data
package#IoT,domain#CP-HuiSe+Rel,domain#Link-Human-amendsData-Input
package#IoT,domain#CP-HuiSe+Rel,domain#Link-Human-interactsWith-Process
package#IoT,domain#CP-HuiSe+Rel,domain#Link-Human-viewsData-Output
package#IoT,domain#CP-HuiSe+Rel,domain#Link-Process-creates-Input
package#IoT,domain#CP-HumThP-m+m,domain#Link-Human-manages-Process
package#IoT,domain#CP-PaSe+Rel,domain#Link-Client-amends-Data
package#IoT,domain#CP-PaSe+Rel,domain#Link-Client-uses-SimpleProcess
package#IoT,domain#CP-Pa-uCo+Rel,domain#Link-Client-amends-Data
package#IoT,domain#CP-Pa-uCo+Rel,domain#Link-Client-uses-Process
package#IoT,domain#CP-PpSe+Rel,domain#Link-Client-receives-Data
package#IoT,domain#CP-PpSe+Rel,domain#Link-Client-uses-SimpleProcess
package#IoT,domain#CP-Pr-uSe+Rel,domain#Link-Client-receives-Data
package#IoT,domain#CP-Pr-uSe+Rel,domain#Link-SimpleProcess-uses-Client
package#IoT,domain#CP-Pp-uSe+Rel,domain#Link-Client-receives-Data
package#IoT,domain#CP-Pp-uSe+Rel,domain#Link-Client-uses-SimpleProcess
package#IoT,domain#CP-PrSe+Rel,domain#Link-Client-receives-Data
package#IoT,domain#CP-PrSe+Rel,domain#Link-SimpleProcess-uses-Client
package#IoT,domain#CP-PuCo+Rel,domain#Link-Client-updates-Data
package#IoT,domain#CP-PuCo+Rel,domain#Link-Client-uses-Process
package#IoT,domain#CP-PuSe+Rel,domain#Link-Client-reads-Data
package#IoT,domain#CP-PuSe+Rel,domain#Link-Client-uses-SimpleProcess
package#IoT,domain#CP-Se+SPD,domain#Link-Sensor-hosts-SimpleProcess
package#IoT,domain#CP-Se+SPD,domain#Link-SimpleProcess-creates-Data
package#IoT,domain#CP-Se+cD,domain#Link-Data-controlsThing-Sensor
package#IoT,domain#CP-Se+cD,domain#Link-Sensor-stores-Data
package#IoT,domain#CP-Se+sD,domain#Link-Sensor-senses-Data
package#IoT,domain#CP-SesD+SP,domain#Link-Sensor-hosts-SimpleProcess
package#IoT,domain#CP-SesD+SP,domain#Link-SimpleProcess-creates-Data
package#IoT,domain#CP-SHuTh-Hu+m,domain#Link-Human-manages-Thing
package#Legal,domain#CP-JuHP+s,domain#Link-Process-subjectTo-Jurisdiction
package#Legal,domain#CP-JuPHS+s,domain#Link-Host-subjectTo-Jurisdiction
Expand Down Expand Up @@ -667,7 +672,8 @@ package#Privacy,domain#CP-DHuDC+r,domain#Link-DataCopy-relatesTo-Human
package#Privacy,domain#CP-DHuDF+r,domain#Link-DataFlow-relatesTo-Human
package#Privacy,domain#CP-HuiThaS-S+r,domain#Link-Thing-relatesTo-Human
package#Privacy,domain#CP-HurH-StSt+o,domain#Link-Human-operates-Host
package#Privacy,domain#CP-HurTh+Rel,domain#Link-Data-relatesTo-Human
package#Privacy,domain#CP-HurSesD+Rel,domain#Link-Data-relatesTo-Human
package#Privacy,domain#CP-HurThcD+Rel,domain#Link-Data-relatesTo-Human
package#Privacy,domain#CP-HurTh-S-m+m,domain#Link-Human-manages-Thing
package#Privacy,domain#CP-HuwStrH-St+o,domain#Link-Employer-operates-Host
package#ProcessCommsInference,domain#CP-APxSCtI+tI,domain#Link-ServiceAttackPath-toInterface-Interface
Expand Down
2 changes: 1 addition & 1 deletion csv/Control.csv
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ package#GDPR,domain#GDPRPrivacyShield,GDPRPrivacyShield,TRUE,The organisation is
package#GDPR,domain#SubjectToGDPR,SubjectToGDPR,TRUE,"The jurisdiction is subject to the GDPR. That is to say, it is an EU member, EEA member, or other state (e.g. a Dependency), such that the GDPR applies to any personal data relating to its citizens and residents.",domain#CostVeryLow,domain#PerformanceImpactVeryLow
package#IoT,domain#SafeControlMode,SafeControlMode,TRUE,This control applied at an IoT Controller signifies that the Controller is (temporarily) operating in a way that is safe without receiving real time control inputs.,domain#CostVeryLow,domain#PerformanceImpactVeryLow
package#IoT,domain#SafeControlSetting,SafeControlSetting,TRUE,This control applied at an IoT Controller signifies that the Controller is capable of operating in a way that is safe without receiving real time control inputs.,domain#CostVeryLow,domain#PerformanceImpactVeryLow
package#IoT,domain#SafeIoTController,SafeIoTController,TRUE,This control applied at an IoT Controller signifies that real-time updating of control inputs is not necessary for safe operation.,domain#CostVeryLow,domain#PerformanceImpactVeryLow
package#IoT,domain#SafeIoTController,SafeIoTController,TRUE,This control applied at an IoT Thing signifies that real-time updating of control inputs is not necessary for operation of the Thing.,domain#CostVeryLow,domain#PerformanceImpactVeryLow
package#IoT,domain#SafetyTraining,SafetyTraining,TRUE,This control indicates that a Human has been given safety training so they are able to manage risks in the physical world by preventing physical consequences of problems in the IT domain.,domain#CostMedium,domain#PerformanceImpactVeryLow
package#IoT,domain#SuspendUnreliableController,SuspendUnreliableController,TRUE,The controller may be temporarily taken out of service to prevent unreliable behaviour that may threaten safety in the physical environment where it operates.,domain#CostVeryLow,domain#PerformanceImpactVeryLow
package#Legal,domain#LegalCompetenceCheck,LegalCompetenceCheck,TRUE,"The human may or may not be a legally competent adult, so a check is needed to determine this.",domain#CostVeryLow,domain#PerformanceImpactVeryLow
Expand Down
2 changes: 1 addition & 1 deletion csv/ControlLocations.csv
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ package#GDPR,domain#SubjectToGDPR,domain#Human
package#GDPR,domain#SubjectToGDPR,domain#Jurisdiction
package#IoT,domain#SafeControlMode,domain#Controller
package#IoT,domain#SafeControlSetting,domain#Controller
package#IoT,domain#SafeIoTController,domain#Controller
package#IoT,domain#SafeIoTController,domain#Thing
package#IoT,domain#SafetyTraining,domain#Human
package#IoT,domain#SuspendUnreliableController,domain#Controller
package#Legal,domain#LegalCompetenceCheck,domain#Human
Expand Down
3 changes: 2 additions & 1 deletion csv/ControlStrategy.csv
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,8 @@ package#GDPR,domain#CSG-GDPRDataFlowGovernance,GDPRDataFlowGovernance,The flow o
package#GDPR,domain#CSG-GDPRPrivacyShieldAtOrganisation,GDPRPrivacyShieldAtOrganisation,"Organisation _Operator_ has Privacy Shield status under the GDPR, i.e. they are committed to respect and uphold the GDPR when handling personal data from EU citizens and residents, even though they are based outside the EU.",domain#TrustworthinessLevelSafe,TRUE,TRUE
package#GDPR,domain#CSG-GDPRSuspendDataFlow,GDPRSuspendDataFlow,"The flow of data _Data_ from _FlowsFrom_ to _Process_ can be temporarily disabled by the manager _Human1_ of _FlowsFrom_ to prevent a breach of GDPR regulations by its transmission to _Process_. This strategy represents a contingency plan, which can be used to prevent such a breach, but it may also trigger other threats representing possible side effects.",domain#TrustworthinessLevelSafe,FALSE,TRUE
package#GDPR,domain#CSG-GDPRSuspendDataFlow-Implementation-Runtime,GDPRSuspendDataFlow.Implementation,"The flow of data _Data_ from _FlowsFrom_ to _Process_ has been disabled by _Human1_ to prevent a breach of the GDPR. This strategy represents activation of a contingency plan at runtime, and can be selected to discover what effect this would have on risk levels, allowing this to be used for decision support calculations. To activate it at runtime, signal user _Human1_ who is responsible for managing the service _FlowsFrom_.",domain#TrustworthinessLevelSafe,TRUE,TRUE
package#IoT,domain#CSG-SafeIoTController,SafeIoTController,"The IoT controller device _Controller_ is regulating a physical system where it is not necessary to get real-time updates to control input data, due to the nature of the IoT application. This control strategy does not represent a contingency plan to constrain _Controller_ at run-time. It should be used to signal when the IoT application is not sensitive to temporary interruption in the flow of control inputs.",domain#TrustworthinessLevelSafe,TRUE,TRUE
package#IoT,domain#CSG-NonRealtimeSensor,NonRealtimeSensor,"The IoT device _Sensor_ implements a process for measurement of a physical system where it is not necessary to get real-time updates to control input data, due to the nature of the application. This control strategy does not represent a contingency plan but indicates that the application is not sensitive to interruptions in control inputs.",domain#TrustworthinessLevelSafe,TRUE,TRUE
package#IoT,domain#CSG-SafeIoTController,SafeIoTController,"The IoT controller device _Controller_ is regulating a physical system where it is not necessary to get real-time updates to control input data, due to the nature of the IoT application. This control strategy does not represent a contingency plan to constrain _Controller_ at run-time, but should be used to signal that the IoT application is not sensitive to temporary interruption in the flow of control inputs.",domain#TrustworthinessLevelSafe,TRUE,TRUE
package#IoT,domain#CSG-SafeIoTControlMode,SafeIoTControlMode,"The IoT controller device _Controller_ can be set to operate within safety limits such that it poses no danger to the physical system it regulates, even without real-time control inputs. This strategy represents a contingency plan, which can be used to reduce risk from some threats. However, it may trigger other threats, or produce some loss of efficiency or function in the physical system.",domain#TrustworthinessLevelSafe,FALSE,TRUE
package#IoT,domain#CSG-SafeIoTControlMode-Implementation-Runtime,SafeIoTControlMode.Implementation,"The IoT controller device _Controller_ has been set to operate within safety limits in response to an interruption in real-time control inputs, such that it poses no danger to the physical system it regulates. This strategy represents activation of a contingency plan at runtime, and can be selected to discover what effect this would have on risk levels, allowing this to be used for decision support calculations. To activate it at runtime, signal user _HostManager_ who is responsible for managing the device. The Safe IoT Controller control shoud be deselected only when the restrictions on _Controller_ have been lifted.",domain#TrustworthinessLevelSafe,TRUE,TRUE
package#IoT,domain#CSG-SuspendUnreliableController,SuspendUnreliableController,"The IoT controller device _Controller_ can be disabled if it becomes unreliable, to prevent it causing problems in the physical environment where it operates. This strategy represents a contingency plan, which can be used to reduce risk from some threats. However, it will trigger threats representing the resulting loss of availability.",domain#TrustworthinessLevelSafe,FALSE,TRUE
Expand Down
Loading

0 comments on commit 8442f94

Please sign in to comment.