Our methodology extends the STRIDE framework and integrates data flow analysis to provide a comprehensive approach to cybersecurity in IoT and industrial systems. The key substeps in our approach are: (1) Threat Analysis using extended STRIDE, (2) Impact Enumeration, (3) Attack Profile Generation, (4) Attack Surface Detection, (5) Attack Scenario API Development, and (6) Quantitative Attack Impact Analysis
3.2.3. Impact Enumeration
The threat impact enumeration plays a crucial role in systematic attack elicitation, making it valuable for cyber-threat modeling studies and CPS security assessment. The list also helps cybersecurity researchers and professionals to understand and analyze the different types of attacks prevalent in the cybersecurity landscape. In this step, we classify potential cyberattacks based on their characteristics and attributes as detailed in the STRIDE threat list. The origin of each category is provided in
Table 1. The output of this step illustrates the diverse categories of attacks; an example is presented below. By grouping attacks into categories, it becomes easier to develop effective countermeasures and defense strategies against them.
- ▪
Impersonation: A type of cyberattack in which an attacker gains unauthorized access to a system or network by impersonating a legitimate user or device. This type of attack involves stealing or spoofing users, exploiting vulnerabilities in software or hardware, or using social engineering approaches to lead the system into accepting them as a trusted entity.
- ▪
Crash: A type of cyberattack that aims to disrupt or disable a system by causing it to crash or become unavailable. This type of attack typically involves sending malformed input or other unexpected data to a system or application, leading to unpredictable behavior that can cause a crash.
- ▪
Data flow sniffing: A type of cyberattack where an adversary intercepts and monitors data flowing between different components or subsystems of the system to capture and analyze sensitive information such as passwords, login credentials, or other confidential data transmitted over the network.
- ▪
Cross-site request forgery (CSRF): This cyberattack exploits a system’s trust by tricking users into sending a malicious request from a legitimate user system. The system executes the request without verifying its authenticity, allowing the attacker to take control of the system. This can result in various malicious actions, such as unauthorized data access, system setting manipulation, or even physical damage to the system.
- ▪
Changing program execution flows: A type of cyberattack that modifies the regular sequence of instructions executed by a computer program. Through this attack, the attacker can manipulate the program’s execution flow to cause unintended actions, typically including unauthorized access to resources, data modification or deletion, or execution of arbitrary code.
- ▪
Data repudiation: A type of cyberattack in which an attacker manipulates or alters system data to deny responsibility or accountability for the actions associated with those data. This type of attack involves unauthorized access to the system and alteration of system logs or data records, making it difficult or impossible to trace the attack source or determine the actual state of the system.
- ▪
Information not intended for disclosure (data breach/privacy leakage): A type of cyberattack in which an unauthorized individual gains access to a system or network and steals sensitive information such as personal data, financial records, or intellectual property. The aim of this attack is to steal or leak data for the purpose of financial gain, identity theft, espionage, or other illegal activities.
- ▪
Data flow interruption: A type of cyberattack in which an attacker intentionally disrupts the normal flow of data and either interferes with the transmission or reception of data between system components or disrupts the communication channels that facilitate the exchange of information.
- ▪
Remote code execution: A type of cyberattack where an attacker gains unauthorized access to a system, then injects and remotely executes malicious code or commands on the target system.
- ▪
Unauthorized access/unauthorized intrusion: A type of cyberattack where an attacker gains entry or acquires privileged access to an application, network, or device without proper authorization or permission.
- ▪
Resource consumption: A type of cyberattack where an attacker intentionally consumes or exhausts critical system resources such as computational power, memory, CPU processing power, network bandwidth, and storage capacity.
- ▪
Prevent access to data store: A type of cyberattack in which an attacker intentionally disrupts or denies access to data stores within a system or network. This attack prevents legitimate users or system components from accessing and retrieving stored data.
- ▪
Incorrect data delivery: A type of cyberattack where an attacker intentionally manipulates, substitutes, or falsifies data that are transmitted or delivered within the system.
- ▪
Denial of data reception: A type of cyberattack in which an adversary intentionally prevents or obstructs the intended reception of data by the CPS.
- ▪
Sending data to the attacker’s target: A type of cyberattack in which an attacker deliberately reroutes or forwards data generated or processed by the system to a destination of their choosing. This destination, known as the attacker’s target, is typically under their control or influence.
- ▪
Writing data to the attacker’s target: A type of cyberattack in which an attacker alters the system’s data in such a way that the modified data are written or directed towards a destination controlled by the attacker. This destination typically resides outside the CPS environment and is under the control of the adversary. Such an attack can compromise data integrity and potentially cause harm to the system and its users.
By categorizing the attacks into general and CPS-specific attacks, it is possible to better understand the unique threats and vulnerabilities faced by cyber–physical systems. The list of CPS-specific attacks, including those targeting industrial control systems, sensor networks, and physical processes, serves as a foundation for the subsequent steps of our proposed approach. In the next step, we leverage the list to generate attack profiles that capture the characteristics, origins, and potential impacts of each attack scenario.
By explicitly highlighting the CPS-specific attack categories within the list and utilizing these for subsequent attack profiling and scenario generation, it becomes possible to focus on the unique vulnerabilities and challenges faced by cyber–physical systems.
In this step, we generate the attack profile by investigating and analyzing the threat report produced by the Microsoft Threat Modeling tool. For the purposes of this paper, the term ‘threat report’ specifically refers to the report generated by the tool. The list generated by STRIDE () contains information about only one of the two interacting components. A component can be an entity, process, or data store in the DFD. Each exchange of information is represented by a data flow, called an Interaction (). We implement an additional functionality to identify the right Source (S) and Destination (D) for each . This information is needed in order to identify the origin and direction of the threat, where it enters the system, and where it goes. One of the challenges is that each component of the system can be a source for several components, and can also be a destination for several; therefore, we need to identify all the origins and destinations of each exchange of information. It may also be the case that the same information exchange () takes place between several sources and destinations. We refer to such an interaction as redundant information. Consequently, while any of the Source, Destination, and Interaction can be redundant, but there must be a unique combination of Source, Interaction, and Destination such that .
Because each data flow can cause more than one threat, we go through each of the associated threat categories, identify effects caused by all threat scenarios, and map them to the classes introduced in regard to the attack impact (see
Section 3.2.3). We start with the DFD, consisting of a set
E of generic entities only of size
l, where
. Our proposed approach retrieves the working dataset
of size
such that each
. Each
t contains
m attributes such that
. A threat
t originates from an entity
during information exchange and endangers the destined entity
and/or itself, also shown in
Figure 3. It is clear from the case in
Figure 3 that the entity named ’ControllerProcess’ has an information flow through ’driveController()’ to itself and another data flow to entity ’DoorProcess’ through ’openDoor()’, closeDoor()’ and ’lockDoor()’. This creates at least three points of information leakage. Depending on the contents of the in-flow information, corresponding threats will be present; among others, these are our point of interest. This process is used to calculate how and where each point of interest leads, helping to identify security holes.
Let
be the attack list derived from
, where
, as presented in Algorithm 1 line 1. To create the attack profile, in addition to
, further information is determined such that
, where
is the attack ID,
is the corresponding threat ID,
is the threat description,
is the threat title,
is the threat category,
is the interaction which caused the associated threat,
is the resulting effect,
is the source of the attack, and
is the destination of the attack. We initialize
with
;
then continues to traverse
to further compute
,
, and
. Here,
is the result of the threat originated by
to
. This can be understood using the DFD diagram, example 1, which shows that ’FleetController’ can cause a ’Crash’ to ’RemoteController’. To determine these attributes, each threat
t is evaluated based on the corresponding
to compute the impact
and identify the origin
and destination
.
Algorithm 1 Identify the effect of each threat and map it to the corresponding attack impact classes |
- Require:
load - Require:
generate - 1:
Initialize ▹ populate attack list - 2:
repeat - 3:
for each do - 4:
▹ get threat category - 5:
if c == ’Spoofing’ then - 6:
if a[tDes] ’destination process’ then - 7:
▹ data flow is outside the trust boundary - 8:
Impact goes to Information Disclosure - 9:
else - 10:
- 11:
end if - 12:
else if c == ’Tampering’ then - 13:
if a[tDes] ’data store’ then - 14:
- 15:
else - 16:
if a[tDes] (denial of service) ∣ (elevation of privilege) ∣ (information disclosure) then - 17:
insertRow(aList,3) ▹ threat path for each category - 18:
- 19:
Impact goes to [Denial Of Service ∣ Elevation Of Privilege ∣ Information Disclosure] - 20:
end if - 21:
end if - 22:
else if c == [’Denial Of Service’ ∣ ’Elevation Of Privilege’ ∣ ’Information Disclosure’] then - 23:
- 24:
else if c == ’Repudiation’ then - 25:
- 26:
end if - 27:
- 28:
end for - 29:
until
|
First, we evaluate those threats which can impact other categories, such as spoofing and tampering. For spoofing, threats may originate due to interactions across the trust boundaries, as shown in Algorithm 1, line 5, which implies the fact of threat propagation to other threat categories at line 8. The concept of the trust boundary is explained in the DFD diagram,
Section 4, where ’SiteOperator’ and SiteServer’ are within the trust boundaries but ’SiteServer’ and ’FleetController’ are outside of it. In the case of tampering, threats related to data stores can cause data corruption, as shown in line 14, but do not lead to additional attacks. However, tampering with a process or entity can lead to other threats, such as
Denial of Service,
Elevation of Privilege and
Information Disclosure. Therefore, such threats are examined in the related categories, as shown in line 19. Certain categories do not impact the destination, only the entity itself; thus, such categories are less critical in terms of depth of attack. When the correct category has been identified, the impact is determined from
or
only. Considering all provided details, all possible effects are determined for each
, as shown in
Table 1. Different effects are introduced and listed in
Section 3.2.3 as part of the attack impact list. We categorize these based on their characteristics and attributes.
The rest of the categories in the threat report, namely, Denial of Service, Elevation of Privilege, and Information Disclosure, do not affect other categories, meaning that their effect is only related to the threats in which they are generated. Their effect can be extracted from the description of the corresponding threat, as shown in line 23; however, in the case of Repudiation the effect is extracted from the title of the threat, as shown in line 25. When the correct effect has been extracted, it can be added to the attack list. This process continues iteratively until all of the threats in the threat list have been evaluated and the attack list is populated with the corresponding effect of each threat.
The process continues until the source and destination of each
Interaction have been identified. Because there can be redundant
Interactions, traversing the
sequentially for sources and destinations can be ambiguous. In the case of redundancies, the last source and destination always overwrite the previous events. Therefore, we have devised a two-step procedure involving the DFD and the
. First, we evaluate the graphical representation of the system and translate each combination of source, interaction, and destination into tabular form. In this way, each data flow is translated into a scenario regardless of redundancy. We then group all
Interactions to compute how many times each is repeated, as shown in Algorithm 2, line 4. This information is maintained in
, which becomes the reference point for the sources and destinations for each
Interaction. With
in hand, we proceed to identify the source and destination using the description of each threat by going through the
category-by-category, starting with
Spoofing and moving on to
Denial of Service,
Elevation of Privilege,
Tampering,
Repudiation, and
Information Disclosure. In the case of a redundant interaction, the source and destination are identified from the description and
is used for a unique interaction, as shown in Algorithm 2, lines 7–20.
Algorithm 2 Identify the source and destination of each threat |
- Require:
- Require:
- 1:
Create ▹ Source, destination list for interactions - 2:
- 3:
▹ Count redundancy of Interactions - 4:
repeat - 5:
for each do - 6:
if then - 7:
- 8:
- 9:
else - 10:
repeat - 11:
for each do - 12:
if a[tInt] == sd[Intr] then - 13:
- 14:
- 15:
break - 16:
end if - 17:
end for - 18:
until - 19:
end if - 20:
end for - 21:
until
|
At this point, the attack profile in is ready to be used in calculating the paths and scenarios. The longer the path (steps), the greater the depth.
3.2.5. Attack Scenario API
The Attack Scenario API is created based on the attack profile, and displays all potential attack scenarios from each attack surface. This provides valuable information on the potential depth of impact and the number of actors within the system that could be affected in the event of a successful attack.
The idea is to take the sources as a starting point and proceed with their corresponding destinations. The destination in the next step becomes the source in the next step; thus, its destination is the source for the next step, and so forth. After the has been computed, we propose an automated approach to compute each path. Each path is composed of one or more components in succession. A threat generated from a source is a provision to reach the other node directly connected to it. Here, the scenario is a combination of multiple attack paths, where each path is a combination of three components, i.e., source, interaction, and destination.
The prerequisite for using the API is Python (Python 3 or later), which is usually installed in many operating systems, and can be installed easily. The API requires three arguments: the threat list, DFD, and our customized tool for parsing the graphical DFD, such that:
python STRIDEThreatAttack.py inputFile SourceDestinationFilename outputFile
Here,
and
should be provided with the extension and full path if they are not in the current folder. In addition,
should be provided without extension but with the full path if it is not present in the current folder. The source code of the API can be viewed at
https://t.ly/Rdfvr (accessed on 30 September 2024).
3.2.6. Attack Impact Analysis
While the core contributions of the proposed approach focus on the impact list, attack profiles, and attack scenario API, we also recognize the importance of analyzing the potential impacts and consequences of the identified attack scenarios. This involves evaluating the severity, likelihood, and potential impact of the attack scenarios generated by our approach. This analysis provides valuable insights into the most critical vulnerabilities and risks within a cyber–physical system.
By conducting an in-depth attack impact analysis, our proposed approach enables system designers and security professionals to gain a comprehensive understanding of the potential risks and threats facing cyber–physical systems. This includes evaluating the potential consequences and damage that could result from successful execution of each attack scenario, considering factors such as the impact on system availability, data integrity, and safety. In addition, we assess the probability of each attack scenario’s occurrence based on factors such as the complexity of the attack, the attacker’s required capabilities, and the existing security controls.
By combining the severity and likelihood assessments, it is possible to prioritize the identified attack scenarios based on their overall risk level, allowing mitigation efforts to focus on the most critical vulnerabilities. This risk prioritization process represents a crucial step in translating the generated attack profiles and scenarios into actionable security improvements for the target cyber–physical system. We believe that this analysis, while not a direct contribution of the proposed approach, is a crucial step in enhancing the overall resilience and robustness of systems against identified attack scenarios by informing the development and implementation of proactive security measures.
While our proposed approach provides a comprehensive and systematic approach to enumerating and analyzing potential threats in cyber–physical systems, it is important to consider how this approach can be applied in real-world settings. One key aspect is the integration of the approach with existing CPS architectures and security processes. The proposed approach depends on the presence of detailed system models and data flow diagrams, which may not always be readily accessible or easily obtainable in operational environments. In our future work, we aim to address this challenge by automating the process instead of relying on manual methods.
We also plan to provide guidance on how to incorporate the attack scenario analysis into the overall CPS security lifecycle, including during the design, deployment, and operational phases. This could involve integrating the proposed approach into existing risk assessment methodologies, incident response procedures, and security monitoring tools used in CPS environments.
To provide more tangible value and guidance for securing cyber–physical systems in real-world settings, the proposed approach should be validated and tested using more complex real-world CPS use cases and data to ensure its effectiveness and relevance in addressing the unique security challenges faced by these systems. This could involve collaborating with industry partners, critical infrastructure operators, and domain experts to gather relevant data and evaluate the approach’s performance in realistic scenarios.