You are currently viewing a new version of our website. To view the old version click .
Sensors
  • Article
  • Open Access

9 March 2022

A Novel Model for Vulnerability Analysis through Enhanced Directed Graphs and Quantitative Metrics

,
,
and
1
Ikerlan Technology Research Centre, Basque Research and Technology Alliance (BRTA), 20500 Arrasate, Spain
2
Department of Electronics and Computing, Mondragon Unibertsitatea, 20500 Mondragón, Spain
*
Author to whom correspondence should be addressed.
This article belongs to the Topic Cyber Security and Critical Infrastructures

Abstract

The rapid evolution of industrial components, the paradigm of Industry 4.0, and the new connectivity features introduced by 5G technology all increase the likelihood of cybersecurity incidents. Such incidents are caused by the vulnerabilities present in these components. Designing a secure system is critical, but it is also complex, costly, and an extra factor to manage during the lifespan of the component. This paper presents a model to analyze the known vulnerabilities of industrial components over time. The proposed Extended Dependency Graph (EDG) model is based on two main elements: a directed graph representation of the internal structure of the component, and a set of quantitative metrics based on the Common Vulnerability Scoring System (CVSS). The EDG model can be applied throughout the entire lifespan of a device to track vulnerabilities, identify new requirements, root causes, and test cases. It also helps prioritize patching activities. The model was validated by application to the OpenPLC project. The results reveal that most of the vulnerabilities associated with OpenPLC were related to memory buffer operations and were concentrated in the libssl library. The model was able to determine new requirements and generate test cases from the analysis.

1. Introduction

Industrial components are the driving force of almost every industrial field, such as automotive, energy production, and transportation [1,2,3,4,5,6]. These types of components are rapidly evolving [7,8] and increasing in number [9]. This increase is related to several factors: (1) the reuse of open-source hardware and software, (2) new connectivity features, and (3) more complex systems.
Open-source hardware and software, and Commercial Off-The-Shelf (COTS) components are being integrated to speed up their development [10,11,12]. COTS are easy to use, but they can introduce vulnerabilities, creating potential entry points for attackers [13,14].
Industrial components are providing more advanced connectivity features, enabling new automation applications, services, and data exchange. This new connectivity, boosted by the fifth generation (5G) of wireless technology for cellular networks, will further open the window of exposure to any threat [6,9,15,16].
The complexity of industrial systems is also increasing with the integration of new trends, such as the Internet of Things (IoT) [16,17,18,19], cloud computing, Artificial Intelligence (AI) [19,20], and big data. The extensive use of these technologies further opens the windows for attackers [21,22,23,24,25,26]. Complexity is a critical aspect of industrial components design because it is closely related to the number of vulnerabilities [27,28].
This scenario points to security as a key aspect of industrial components. Moreover, numerous attacks have been reported targeting industrial enterprises across the globe since 2010 [29]. An exponential rise in such attacks is predicted for future years [30,31].
Although great efforts are being made to develop new and better ways to analyze vulnerabilities [32,33], to measure them (e.g., Common Vulnerabilities and Exposures (CVE) [34], Common Vulnerability Scoring System (CVSS) [35,36,37], or Common Weakness Enumeration (CWE) [38,39]), or to aggregate them [40], to the best of our knowledge, existing models do not cover the entire life cycle of industrial components. Performing a vulnerability analysis at a single point in time (e.g., during development or when a product has been released) is not enough for industrial components, and their long lifespan has to be considered [41,42]. Furthermore, both software and hardware should be considered, given the strong bonding between hardware and software in industrial components [43,44,45,46].
In the present paper, we propose an Extended Dependency Graph (EDG) model that performs continuous vulnerability assessment to determine the source and nature of vulnerabilities and enhance security throughout the entire life cycle of industrial components. The proposed model is built on a directed graph-based structure, and a set of metrics based on globally accepted security standards.
This paper is structured as follows: First, the related work is reviewed in Section 2. Then, the main pieces of the proposed model are defined in Section 3. Second, to demonstrate the potential of this proposal, the proposed model is applied to a real use case in Section 4. Finally, conclusions and future work of this research are described in Section 5.

3. Proposed Approach

In this research work, we propose an EDG model for the continuous assessment of vulnerabilities over time in industrial components. The proposed model is intended to:
  • Identify the root causes and nature of vulnerabilities, which will enable the extraction of new requirements and test cases.
  • Support the prioritization of patching.
  • Track vulnerabilities during the whole lifespan of industrial components.
  • Support the development and maintenance of industrial components.
To accomplish this task, the proposed model comprises two basic elements: (1) the model itself, which is capable of representing the internal structure of the system under test; (2) a set of metrics, which allow conclusions to be drawn about the origin, distribution, and severity of vulnerabilities. Both the model and metrics are very flexible and exhibit some properties that make them suitable for industrial components, and can also be applied to enhance the ISA/IEC 62443 standard.
The content in this section is distributed into four sections, namely:
1.
Model: The proposed model is explained, together with the systems in which it can be applied and the algorithms that are used to build it.
2.
Metrics: Metrics are a great tool to measure the state of the system and to track its evolution. The proposed metrics and their usage are described in this section.
3.
Properties: The main features of the proposed model and metrics (e.g., granularity of the analysis, analysis over time, and patching policy prioritization support) are described in detail.
4.
Applicability: Even though the reviewed standards exhibit some gaps, the proposed model aims to serve as the first step towards generating a set of tools to perform a vulnerability analysis in a reliable and continuous way. This last section will discuss the requirements of the ISA/IEC 62443-4-1 that can be enhanced using our model.

3.1. Description of the Model

The proposed model is based on directed graphs. It requires knowledge of the internal structure of the device to be evaluated (i.e., the assets, both hardware and software, that comprise it and the relationships between them). This section defines the most basic elements that make up the model, the algorithms to build it for any given system, and its graphical representation.
Definition 1.
A System Under Test (SUT) (following the denomination in the ISA/IEC 62443 standard [47], the SUT may be an industrial component, a part of an industrial component, a set of industrial components, a unique technology that may never be made into a product, or a combination of these) is now represented by an Extended Dependency Graph (EDG) model G = A , V , E that is based on directed graphs, where A and V represent the nodes of the graphs, and E represents its edges or dependencies:
  • A = { a 1 , , a n } represents the set of assets in which the SUT can be decomposed, where n is the total number of obtained assets. An asset a is any component of the SUT that supports information-related activities and includes both hardware and software [75,76,77]. Each asset is characterized by its corresponding Common Platform Enumeration (CPE) [78,79,80] identifier, while its weaknesses are characterized by the corresponding CWE identifier. In the EDG model, the assets are represented by three types of nodes in the directed graphs (i.e., root nodes, asset nodes, and cluster).
  • V = { v 1 , , v q } represents the set of known vulnerabilities that are present in each asset of A, where q is the total number of vulnerabilities. They are characterized by the corresponding CVE and CVSS values. In the EDG model, vulnerabilities are represented using two types of nodes in the directed graphs (i.e., known vulnerability nodes and clusters).
  • E = { e i j | i , j { 1 , , n + q } s u c h t h a t i j } represents the set of edges or dependencies among the assets, and between assets and vulnerabilities. e i j indicates that a dependency relation is established from asset a i to asset a j . Dependencies are represented using two different types of edges in the EDG (i.e., normal dependency and deprecated asset/updated vulnerability edges).
In other words, the EDG model can represent a system, from its assets to its vulnerabilities, and its dependencies as a directed graph. Assets and vulnerabilities are represented as nodes, whose dependencies are represented as arcs in the graph. The information in the EDG is further enhanced by introducing metrics.
The EDG model of a given SUT will include four types of node and two types of dependency. The graphical representation for each element is shown in Table 1. Figure 1 shows an example of a simple EDG and its basic elements. All of the elements that make up an EDG will be explained in more detail below:
Table 1. Overview of the information that is necessary to define each of the EDG elements.
Figure 1. Basic elements of an EDG. Note that clusters are not displayed in this figure. For clusters, see Figure 2. For metric definitions, see Section 3.2.
Figure 2. Creating clusters. Application of the two proposed criteria to the creation of clusters to simplify the graph, where (a) represents the initial EDG: (1) Establishing a threshold to select which vulnerability stays outside the cluster (upper side). In step (b1), potential clusters are detected according to the established threshold, while in (c1) the final EDG with the generated clusters is shown. The severity value (CVSS) for v31 and v32 is supposed to be lower than the establish threshold. (2) Choosing the absence of vulnerabilities as the criterion to create clusters (lower side). In step (b2), nodes with no vulnerability are detected. In (c2), the final EDG with the generated clusters is shown.

3.1.1. Types of Node

The EDG model uses four types of nodes:
  • Root nodes represent the SUT,
  • Asset nodes represent each one of the assets of the SUT,
  • Known vulnerability nodes represent the vulnerabilities in the SUT, and
  • Clusters summarize the information in a subgraph.
Root nodes (collectively, set G R ) are a special type of node that represents the whole SUT. Any EDG starts in a root node and each EDG will only have one single root node, with an associated timestamp ( t ) that indicates when the last check for changes was done. This timestamp is formatted following the structure defined in the ISO 8601 standard for date and time [81].
Asset nodes (collectively, set G A ) represent the assets that comprise the SUT. The EDG model does not impose any restrictions on the minimum number of assets that the graph must have. However, the SUT can be better monitored over time when there is a higher number of assets. Moreover, the results and conclusions obtained will be much more accurate. Nevertheless, each EDG will have as many asset nodes as necessary, and the decomposition of assets can go as far and to as low-level as needed.
Each asset node node will be characterized by the following set of values:
  • C P E c u r r e n t : Current value for the CPE. This points to the current version of the asset it refers to.
  • C P E p r e v i o u s : Value of the CPE that identifies the previous version of this asset. This will be used by the model to trace back all the versions of the same asset over time, from the current version to the very first version.
  • C W E a i ( t ) : Set of all the weaknesses that are related to the vulnerabilities present in the asset. The content of this list can vary depending on the version of the asset.
Figure 3 illustrates how the tracking of the versions of an asset using CPE works. On the one hand, version a i is the current version of asset a. It contains its current CPE value and the CPE of its previous version. On the other hand, a 2 and a 1 are previous versions of asset a. The last value of a 1 points to a null value. This indicates that it is the last value in the chain, and therefore the very first version of the asset a.
Figure 3. Tracking dependencies between the previous and current CPE values for asset a.
Known vulnerability nodes (collectively, set G V ) represent a known vulnerability present in the asset that it relates to. Each asset will have a known vulnerability node for each known vulnerability belonging to that asset. Assets alone cannot tell how severe or dangerous the vulnerabilities might be, so unique characterization of vulnerabilities is crucial [30].
To identify each known vulnerability node, each will be characterized by the following set of features (formally defined in Section 3.2:
  • C V E a i ( t ) : This serves as the identifier of a vulnerability of asset a i .
  • C V S S v i ( t ) : This metric assigns a numeric value to the severity of vulnerability v i . Each CVE has a corresponding CVSS value.
  • C A P E C w i ( t ) : Each vulnerability (CVE) is a materialization of a weakness (CWE) w i that can be exploited using a concrete attack pattern. In many cases, each CWE has more than one Common Attack Pattern Enumeration and Classification (CAPEC) [82,83] associated. Consequently, this field is a set that contains all the possible attack patterns that can exploit the vulnerability that is being analyzed.
Clusters (collectively, set G S ) are a special type of node that summarizes and simplifies the information contained in a subgraph in an EDG. Figure 2 shows how the clusters work.
To identify each cluster, and to be able to recover the information that they summarize, each is characterized by the data that define each of the elements that they contain: { C P E p r e v i o u s , C P E c u r r e n t , C W E a i ( t ) } , C V E a i ( t ) , C V S S v i ( t ) , { C A P E C w i ( t ) } , and their dependencies.
Two types of criteria can be used to create clusters and to simplify the obtained graph Figure 2:
1.
Absence of vulnerabilities: Using this criterion, clusters will group all nodes that contain no associated vulnerabilities.
2.
CVSS score below a certain threshold: With this criterion, a threshold for the CVSS scores will be chosen. Nodes whose CVSS score is less than the defined threshold will be grouped into a cluster.

3.1.2. Types of Edge

In the EDG model, edges play a key role in representing dependencies. Two types of edge can be identified:
  • Normal dependencies relate two assets, or an asset and a vulnerability. They represent that the destination element depends on the source element. Collectively, they are known as set G D .
  • Deprecated asset or patched vulnerability dependencies indicate when an asset or a vulnerability is updated or patched. They represent that the destination element used to depend on the source element. Collectively, they are known as set G U .
The possibility of representing old dependencies brings the opportunity to reflect the evolution of the SUT over time. When a new version of an asset is released, or a vulnerability is patched, the model will be updated. Their dependencies will change from a normal dependency to a deprecated asset or vulnerability dependency to reflect that change.

3.1.3. Conditions of Application of EDGs

The EDG model is applicable to SUTs that meet the following set of criteria:
  • Software and hardware composition: In our approach, the model is created by means of a white-box analysis. The absence of or impossibility to perform a white-box analysis limits the ability to create an accurate model. Some knowledge about the internal structure and code is expected. This information is usually only known by the manufacturer of the component unless the component is publicly available or open-source. It should be also possible to decompose the SUT into simpler assets to generate a relevant EDG.
  • Existence of publicly known vulnerabilities: The EDG model focuses on known vulnerabilities. This is not critical because many industrial components use commercial or open-source elements. The SUT must be composed of assets for which public information is available. If the majority of SUT assets are proprietary, or the SUT is an ad hoc development that is never exposed, then the generated EDG will not evolve. Therefore, the analysis will not be relevant.

3.1.4. Steps to Build the Model

This section explains the process and algorithms that were used to build the corresponding EDG of a given SUT. The main scenarios that can be found are also described.
Before extracting useful information about the SUT, the directed graph associated with the SUT has to be built. This comprises several steps, which are described in the following paragraphs (see the flowchart in Figure 4 and Figure 5):
Figure 4. Algorithm to generate the initial EDG of a given SUT.
Figure 5. Example of the process of building the EDG model of a given SUT A. (a) Decompose of the SUT into assets. (b) Assign a CPE to each asset. (c) Add known vulnerabilities. (d) Add weaknesses and attack patterns.
Step 1—Decompose the SUT into assets. For the model to work properly, it relies on the SUT being able to be decomposed into assets. With this in mind, the first step involves obtaining the assets of the SUT, either software or hardware. In the CC, this process is called modular decomposition of the SUT [53]. Ideally, every asset should be represented in the decomposition process, but this is not compulsory for the model to work properly. Each one of the assets obtained in this step will be represented as an asset node. In this step, the dependencies among the obtained assets are also added as normal dependencies.
Step 2—Assign a CPE to each asset. Once the assets and their dependencies have been identified, the next task is to assign the corresponding CPE identifier to each asset. If there is no publicly available information of a certain asset, and therefore, it does not have a CPE identifier, then it is always possible to generate one using the fields described in the CPE naming specification documents [79] for internal use in the model.
Step 3—Add known vulnerabilities to the assets. In this step, the vulnerabilities ( C V E a i ( t ) ) of each asset are set. This is done by consulting public databases of known vulnerabilities [34,84] looking for existing vulnerabilities for each asset. When a vulnerability is found, it is added to the model of the SUT, including its dependencies. If there were no known vulnerabilities in an asset, then the asset would become the last leaf of its branch. In this step, the corresponding value of the CVSS of each vulnerability is also added to the model.
Step 4—Assign to each asset its weaknesses and possible CAPECs. After the vulnerabilities, the corresponding weaknesses to each vulnerability ( C W E a i ( t ) ) are added, along with the corresponding attack patterns ( C A P E C w i ( t ) ) for each weakness. If there is no known vulnerability in an asset, then there will be no weaknesses. Meanwhile, it would be possible to have a known vulnerability in an asset, but no known weakness or attack pattern for that vulnerability. Finally, more than one CAPEC can be assigned to the same weakness. Consequently, it would be common to have a set of possible CAPECs that can be used to exploit the same weakness. It is worth noting that not all of them could be applied in every scenario.
Step 5—Computing Metrics and tracking the SUT. At this point, the EDG of the SUT is completed with all the public information that can be gathered. This last step is to calculate the metrics defined (for further information, see Section 3.2), generate the corresponding reports and track the state of the SUT for possible updates in the information of the model. This step is always triggered when the SUT is updated. This can imply that a new asset can appear, an old asset can disappear, an old vulnerability can be patched, or a new one can appear in the SUT. All of these scenarios will be reflected in the model as they arise during its life cycle.

3.2. Security Metrics

The EDG model that was proposed in the previous sections is by itself capable of representing the internal structure of the SUT, and it can display it graphically for the user. This representation not only includes the internal assets of the SUT, but also captures their relationships, existing vulnerabilities, and weaknesses. Moreover, assets, vulnerabilities, and weaknesses are easily identified using their corresponding CPE, CVE, and CWE values, respectively. Altogether, this constitutes a plethora of information that the model can use to improve the development and maintenance steps of the SUT, enhance its security, and track its status during its whole life cycle. Metrics are a great tool to integrate these features into the model.
Metrics can serve as a tool to manage security, make decisions, and compare results over time. They can also be used to systematically improve the security level of an industrial component or to predict its security level at a future point in time.
In this section, the basic definitions that serve as the foundation of the metrics are described. Then, the proposed metrics are introduced to complement the functionality of the EDG model. The main feature of these metrics is that they all depend on time as a variable, so it is possible to capture the actual state of the SUT, track its evolution over time, and compare the results.

3.2.1. Basic Definitions

In this section, the basic concepts on which the definitions of the metrics will be based are formalized.
Definition 2.
The set of all possible weaknesses at a time t is represented as C W E ( t ) , where
C W E ( t ) = { c w e 1 , , c w e m }
and m is the total number of weaknesses at time t. This set contains the whole CWE database defined by MITRE [38].
Definition 3.
The set of all of the possible vulnerabilities at a time t is represented as C V E ( t ) where
C V E ( t ) = { c v e 1 , , c v e p }
and p is the total number of vulnerabilities. This set contains the whole CVE database defined by MITRE [34].
Definition 4.
The set of all possible attack patterns at a time t is represented as C A P E C ( t ) , where
C A P E C ( t ) = { c a p e c 1 , , c a p e c q }
and q is the total number of attack patterns at time t. This set contains the whole CAPEC database defined by MITRE [82].
Definition 5.
The set of weaknesses of an asset a i at a time t is defined as
C W E a i ( t ) = { c w e j | c w e j is in the asset a i at time t c w e j C W E ( t ) k j , c w e j c w e k }
From this expression, the set of all the weaknesses of a particular asset throughout its life cycle is defined as
C W E a i = t = 1 T C W E a i ( t )
where | C W E a i | is the total number of non-repeated weaknesses in its entire life cycle.
Definition 6.
The set of vulnerabilities of an asset a i at a time t is defined as
C V E a i ( t ) = { c v e j | c v e j i s i n t h e a s s e t a i a t t i m e t c v e j C V E ( t ) }
From this expression, the set of vulnerabilities of an asset throughout its entire life cycle is defined as
C V E a i = t = 1 T C V E a i ( t )
where | C V E a i | is the total number of vulnerabilities in its entire life cycle.
Definition 7.
The set of weaknesses of a SUT A with n assets at a time t is defined as:
C W E A ( t ) = i = 1 n C W E a i ( t )
Definition 8.
The set of vulnerabilities of a SUT A with n assets at a time t is defined as:
C V E A ( t ) = i = 1 n C V E a i ( t )
Definition 9.
The set of vulnerabilities associated with the weakness c w e j and to the asset a i at a time t is defined as:
C V E a i | c w e j ( t ) = { c v e k | c v e k associated with weakness c w e j and to asset a i at time t }
It is worth noting that CWE is used as a classification mechanism that differentiates CVEs by the type of vulnerability that they represent. A vulnerability will usually have only one associated weakness, and weaknesses can have one or more associated vulnerabilities [85].
Definition 10.
The partition j of an asset a i at time t conditioned by a weakness c w e k is defined as
C V E a i | c w e k ( t ) = { c w e l | c w e l = c w e k c w e l C V E a i ( t ) }
Definition 11.
The partition j of the SUT A at time t conditioned by a weakness c w e k is defined as
C V E A | c w e k ( t ) = { c w e l | c w e l = c w e k c w e l C V E A ( t ) }
Definition 12.
The set of attack patterns associated to a weakness w i at a time t is defined as
C A P E C w i ( t ) = { c a p e c j | c a p e c j can exploit weakness w i at time t c a p e c j C A P E C ( t ) }
Definition 13.
The set of metrics that are defined in this research work based on the EDG model is defined as
M = { m 1 , , m r }
where r is the total number of metrics. This set can be extended, defining more metrics according to the nature of the SUT.

3.2.2. Metrics

This section will describe the metrics that were defined based on the EDG model and the previous definitions. Although it might seem trivial, the most interesting feature of these metrics is that they all depend on time. Using time as an input variable for the computation of the metrics opens the opportunity to track results over time, compare them, and analyze the evolution of the status of the SUT. Furthermore, some metrics take advantage of time to generate an accumulated value, giving information about the life cycle of the SUT. Table 2 shows all of the proposed metrics, their definition, and their reference values.
Table 2. Proposed metrics for the model.
In addition to the metrics in Table 2, the model allows the definition of other types of metrics according to the analysis to be performed, and the nature of the SUT (e.g., the vulnerability evolution function for SUT A up to time t for all vulnerabilities could be defined as the linear regression of the total number of vulnerabilities in each time t for SUT A, or using any other statistical model).

3.3. Properties

Together, the EDG model and the defined metrics exhibit a series of characteristics that make them suitable for vulnerability assessment. These properties represent an advantage over the techniques reviewed in the state of the art, including automatic inference of root causes, spatial and temporal distribution of vulnerabilities, and prioritization of patching, which will be described in the following subsections.

3.3.1. Automatic Inference of Root Causes

Each CWE natively contains information that is directly related to the root cause of a vulnerability. From this information, new requirements and test cases can be proposed.

3.3.2. Spatial and Temporal Distribution of Vulnerabilities

The key feature of the proposed model is the addition of the temporal dimension in the analysis of vulnerabilities. This makes it possible to analyze the location of the vulnerabilities both in space (in which asset) and time (their recurrence), which allows us to track the state of the device throughout the whole life cycle. This approach also enables further analysis of the SUT, by updating data in the model, such as new vulnerabilities that are found or new patches that are released.
Each time that a new vulnerability is found, or an asset is patched (i.e., via an update), the initial EDG is updated to reflect those changes. An example of this process can be seen in Figure 6.
Figure 6. Representation of the temporal behavior in the graphical model using the two kinds of dependencies of the model. It is worth mentioning that these graphs could be further simplified by taking advantage of the cluster notation, as shown at the bottom of this figure.
At time t 0 , the initial graph of the SUT A is depicted in Figure 6. Because there is no vulnerability at that time, this graph can be simplified using the cluster notation, with just a cluster containing all assets. At time t 1 , a new vulnerability that affects the asset a 2 is discovered. At time t 2 , the asset a 2 is updated. This action creates a new version of asset a 2 , asset a 3 . Because the vulnerability was not corrected in the new update, both versions contain the vulnerability that was initially presented in asset a 2 . Finally, at time t 3 , the asset a 3 is updated to its new version a 4 , and the vulnerability is corrected.
This approach enables a further analysis of the SUT, including updated data, according to new vulnerabilities that are found or new patches that are released.

3.3.3. Patching Policies Prioritization Support

The proposed model is not only able to include known vulnerabilities associated with an asset, but it also provides a relative importance sorting of vulnerabilities by CVSS. Relying on the resulting value, it is possible to assist in the vulnerability patching prioritization process. Furthermore, the presence of an existing exploit for a known vulnerability can be also be taken into account, when deciding which vulnerabilities need to be patched first. A high CVSS value combined with an available exploit for a given vulnerability is a priority when patching.

4. Real Use Case

In this section, we applied the EDG model to analyze the vulnerabilities of the OpenPLC project. For the sake of simplicity, the use case focuses on version one (V1) of OpenPLC. We centered the analysis on two of the assets that compose this version of the project: libssl and nodejs.
OpenPLC is the first functional standardized open-source Programmable Logic Controller (PLC), both in software and hardware [86,87,88,89]. It was mainly created for research purposes in the areas of industrial and home automation, the Internet of Things (IoT), and SCADA. Given that it is the only controller that provides its entire source code, it represents an engaging low-cost industrial solution—not only for academic research but also for real-world automation [90,91].

4.1. Structure of OpenPLC

The OpenPLC project consists of three parts:
1.
Runtime: It is the software that plays the same role as the firmware in a traditional PLC. It executes the control program. The runtime can be installed in a variety of embedded platforms, such as the Raspberry Pi, and in Operating Systems (OSs) such as Windows or Linux.
2.
Editor: An application that runs on a Windows or Linux OS that is used to write and compile the control programs that will be later executed by the runtime.
3.
HMI Builder: This software is to create web-based animations that will reflect the state of the process, in the same manner as a traditional HMI.
When installed, the OpenPLC runtime executes a built-in webserver that allows OpenPLC to be configured and new programs for it to run to be uploaded. In this use case, we focused the analysis on the runtime of OpenPLC V1.

4.2. Setup through the Analysis

Ubuntu Linux was selected as the platform to install the runtime of OpenPLC V1. Ubuntu Linux provides comprehensive documentation, previous versions are accessible, and software dependencies can easily be obtained.
To make the analysis fair, a contemporary operating system was selected, according to the version of Ubuntu that was available at the release time of OpenPLC V1. The Long Term Support (LTS) version was chosen because industry tends to work with the most stable version available of any software and security updates are provided for a longer time. OpenPLC V1 was released in 2016/02/05, so we found that Ubuntu 14.04 LTS was the most suitable version [92]. The setup consisted of OpenPLC installed on 14.04 LTS Ubuntu Linux in a virtual machine. All configuration options were by default.

4.3. Building the EDG

We built the entire EDG for OpenPLC V1, which can be found in Appendix B. Nevertheless, for the sake of clarity, we restricted this analysis in two ways: (1) focusing on two assets, libssl and nodejs; (2) integrating only security updates (discarding updates that introduced more functionalities). Table 3 shows the updates and their date of availability for both libssl [93] and nodejs [94] for Ubuntu 14.04 LTS. There were two security updates available for the amd64 architecture for each asset. Figure 7 illustrates step by step the partials EDG graphs, and Figure 8 shows the final EDG with all the updates merged in a single graph.
Table 3. Update information of both libssl and nodejs.
Figure 7. Temporal evolution of the EDG for OpenPLC V1 for both libss and nodejs.
Figure 8. Final EDG for libssl and nodejs integrating all the updates for Ubuntu Linux 14.04 for amd64 architecture.

4.4. Analysis of the EDG

Using Figure 8 as reference, we can analyze the obtained EDG:
1
Analysis of the induced EDG model: The structure, assets, and dependencies are the focus of this first step.
We can observe that libssl is used by nodejs, and they are not at the same level of the hierarchy. So vulnerabilities could propagate upwards through the EDG.
2
Vulnerability analysis: Vulnerability number, distribution, and severity are analyzed in this step. A proposal for vulnerability prioritization is also generated.
We can highlight that nodejs had one vulnerability discovered after its first update, whereas libssl had vulnerabilities in both periods of time. We could argue that, as nodejs is the most accessible asset from the exterior, its vulnerabilities should be first addressed, even though the associated CVSS is not the highest one.
3
Weaknesses analysis: Finally, the root cause of each vulnerability is found. In this step, new requirements, test cases, and training activities are proposed based on the results of the analysis.
Table 4 shows the root cause for each vulnerability. Using this data, new requirements, test cases, and training activities were proposed (see Appendix C).
Table 4. Relationship between vulnerabilities and weaknesses for both libssl and nodejs.

5. Conclusions and Future Work

Vulnerability analysis is a critical task which ensures the security of industrial components. The EDG model that we propose performs continuous vulnerability assessment throughout the entire life cycle of industrial components. The model is built on a directed graph-based structure and a set of metrics based on globally accepted security standards. Metrics can be used by the model to improve the development process of the SUT, enhance its security, and track its status. The key feature of the proposed model is the addition of the temporal dimension in the analysis of vulnerabilities. The location of vulnerabilities can be analyzed in both space (in which asset) and time (their recurrence), which allows the state of the device to be tracked throughout the whole life cycle.
The model was successfully applied to the OpenPLC use case, which demonstrated its advantages, applicability, and potential. The use case showed that the model can assist in updating management activities, applying patching policies, launching training activities, and generating new test cases, and requirements. This has significant implications for cybersecurity evaluators, as it can serve as a starting point for identifying vulnerabilities, weaknesses, and attack patterns.
Further research will enhance the EDG by adding a mathematical model to aggregate the values of the CVSS metric for each asset, and a value for the whole SUT. This will enable the comparison of different SUTs over time. More improvements will be made in the prioritization of patching, taking into account the context and the functionalities of the SUT. Finally, historical information about the developers can be integrated into the EDG model to predict future vulnerabilities.

Author Contributions

Conceptualization, Á.L.-R., J.L.F. and I.G.; data curation, Á.L.-R.; formal analysis, Á.L.-R. and J.L.F.; funding acquisition, R.I. and J.L.F.; investigation, Á.L.-R.; methodology, Á.L.-R.; project administration, Á.L.-R.; resources, R.I., J.L.F. and I.G.; software, Á.L.-R.; supervision, Á.L.-R. and J.L.F.; validation, Á.L.-R., J.L.F. and I.G.; visualization, Á.L.-R. and J.L.F.; writing—original draft, Á.L.-R.; writing—review and editing, Á.L.-R., Rosa Iglesias, J.L.F. and I.G. All authors have read and agreed to the published version of the manuscript.

Funding

This work was partially supported by both the Department of Economic Development and Infrastructures, and the Ayudas Cervera para Centros Tecnológicos grant of the Spanish Centre for the Development of Industrial Technology (CDTI). This work was partially funded by REMEDY project (KK-2021/00091), EGIDA project (CER-20191012), and H2020 (957212).

Institutional Review Board Statement

Not applicable.

Data Availability Statement

Not applicable.

Conflicts of Interest

The authors declare no conflict of interest.

Abbreviations

The following abbreviations are used in this manuscript:
AIArtificial Intelligence
CCCommon Criteria
CAPECCommon Attack Pattern Enumeration and Classification
COTSCommercial Off-The-Shelf
CPECommon Platform Enumeration
CPSCyber-Physical System
CVECommon Vulnerabilities and Exposures
CVSSCommon Vulnerability Scoring System
CWECommon Weakness Enumeration
EALEvaluation Assurance Level
EDGExtended Dependency Graph
ESEmbedded System
IACSIndustrial Automation Control System
IoTInternet Of Things
PLCProgrammable Logic Controller
SUTSystem Under Test

Appendix A. Applicability in the Context of ISA/IEC 62443

In this section, the potential application of the proposed EDG model to the existing security standards is described. The proposed EDG model can be used isolated by itself, or in combination with other techniques that complement the analysis. In this sense, the EDG model can be used to enhance some tasks in the security evolution processes defined by security standards.
The ISA/IEC 62443-4-1 standard specifies 47 process requirements for the secure development of products used in industrial automation and control systems [49]. Thus, the EDG model was developed to enhance the execution of one of those requirements defined by the standard: the “SVV-3: Vulnerability testing” requirement, serving as a support for the execution of Practice 5—Security Verification and Validation testing. According to the SVV-3 requirement, both known and unknown vulnerability analysis has to be performed. The EDG model proposed in this research work is intended to support the identification of known vulnerabilities, their dependencies, and the possible consequences of their propagation, yielding the opportunity to analyze them systematically. Nevertheless, more requirements of the ISA/IEC 62443 can be mapped to one or more of the metrics defined in this research work. Using this relationship, it is possible to apply the EDG model to enhance the analysis and review of the following requirements:

Appendix A.1. Security Requirements—2: Threat Model (SR-2)

“A process shall be employed to ensure that all products have a threat model specific to the current development scope of the product. The threat model shall be reviewed and verified periodically” [49]. The proposed EDG model can serve as an abstraction of the threat model that has to be obtained. Moreover, the standard states that this threat model has to be reviewed periodically for updates. Given that the EDG of a given SUT evolves with every update, the threat model would be always up-to-date. Potential threats and their severity using the CVSS can also be analyzed with this proposal. Finally, these results can be used to enhance the risk assessment of the SUT.

Appendix A.2. Security Management—13: Continuous Improvement (SM-13)

“A process shall be employed for continuously improving the secure development life cycle” [49]. The EDG model can be used to identify recurrent issues in the development of an industrial component, due to its ability to track the state of a SUT over time. Consider the scenario where a piece of code contains an unknown vulnerability. For example, this code can implement a communication protocol or the generation of a cryptographic key. If this piece of code is recurrently integrated into many types of devices, then when they are released to the market, the end-users can identify that vulnerability and report it to the product supplier. The EDG can reflect the presence of that vulnerability. If an EDG is done for each type of device, then this problem can be detected beforehand. Using the CWE, the root problem can be detected. With this information, new training and corrective actions can be proposed to avoid this issue.

Appendix A.3. Specification of Security Requirements—5: Security Requirements Review (SR-5)

“A process shall be employed to ensure that security requirements are reviewed, updated, and approved” [49]. As before, taking advantage of the previous scenario, the information extracted from the generated EDG model can be used to propose new requirements or to update the existing requirements.

Appendix A.4. Security Verification and Validation Testing—4: Penetration Testing (SVV-4)

“A process shall be employed to identify and characterize security-related issues via tests that focus on discovering and exploiting security vulnerabilities in the product” [49]. The EDG model facilitates the identification of possible entry points to the SUT when carrying out a penetration test. In addition, existing attack patterns (CAPEC) and weaknesses (CWE) can serve as a starting point to discover unknown vulnerabilities and exploits.

Appendix A.5. Management of Security-Related Issues—3: Assessing Security-Related Issues (DM-3)

“A process shall be employed for analyzing security-related issues in the product” [49]. When a new vulnerability is detected, end-users will report it to the product suppliers. Then, the corresponding EDG model of that SUT will be updated to reflect that change. This information, in addition to that previously contained in the EDG, can be used to obtain the severity value of the discovered vulnerability using the CVSS. This also facilitates the identification of root causes, related security issues, or the impact.
Table A1. Mapping between the developed metrics and the requirements they refer in the ISA/IEC 62443. SR (Security Requirements), SM (Security Management), SVV (Security Validation and Verification), DM (Management of Security-Related Issues).
Table A1. Mapping between the developed metrics and the requirements they refer in the ISA/IEC 62443. SR (Security Requirements), SM (Security Management), SVV (Security Validation and Verification), DM (Management of Security-Related Issues).
MetricSR-2SR-5SM-13SVV-4DM-3
M 0 ( A ) = | C V E A ( t ) | n ( t )
M 1 ( A , t ) = | C V E A ( t ) |
M 2 ( A ) = t = 1 T | C V E A ( t ) | = t = 1 T M 1 ( A , t )
M 3 ( A , t ) = | C V E a i ( t ) |
M 4 ( a k , t ) = | C V E a k ( t ) | i = 1 n | C V E a i ( t ) |
M 5 ( a i , c w e j , t ) = | C V E a i | c w e j ( t ) |
M 6 ( A , c w e j , t ) = | C V E A | c w e j ( t ) |
M 7 ( A , t ) = | C W E A ( t ) |
M 8 ( A ) = t = 1 T | C W E A ( t ) | = t = 1 T M 7 ( A , t )
Finally, the ISA/IEC 62443-4-2 document defines four types of components of an IACS (i.e., software applications, embedded devices, host devices, network devices) [95]. The proposed model is capable of representing the inherent complexity of each of them.

Appendix B. EDG for OpenPLC V1

This appendix contains the generated EDG for OpenPLC V1.
Figure A1. EDG for OpenPLC V1. Notice that, for simplicity, CWE and CAPEC values are omitted, and only the CPE identifier of the SUT is shown.

Appendix C. Proposed Requirements, Training, and Test Cases

In this appendix, we show the generated requirements, training, and test cases from the EDG model of OpenPLC V1.
Table A2. An example of generated requirements for OpenPLC V1.
Table A2. An example of generated requirements for OpenPLC V1.
CWE IDRequirements
CWE-119Use languages that perform their own memory management.
CWE-119Use libraries or frameworks that make it easier to handle numbers without unexpected consequences. Examples include safe integer handling packages such as SafeInt (C++) or IntegerLib (C or C++).
CWE-119, CWE-200Use a CPU and operating system that offers Data Execution Protection (NX) or its equivalent.
CWE-190, CWE-200Ensure that all protocols are strictly defined, such that all out-of-bounds behaviors can be identified simply, and require strict conformance to the protocol.
CWE-310Clearly specify which data or resources are valuable enough that they should be protected by encryption. Require that any transmission or storage of this data/resource should use well-vetted encryption algorithms. Up-to-date algorithms must be used, and the entropy of the keys must be sufficient for the application.
CWE-113Use an input validation framework such as Struts or the OWASP ESAPI Validation API.
CWE-113Assume all input is malicious. Use an "accept known good" input validation strategy, i.e., use a list of acceptable inputs that strictly conform to specifications. Reject any input that does not strictly conform to specifications, or transform it into something that does.
CWE-113Hard-code the search path to a set of known-safe values (such as system directories), or only allow them to be specified by the administrator in a configuration file. Do not allow these settings to be modified by an external party.
CWE-119Run or compile the software using features or extensions that automatically provide a protection mechanism that mitigates or eliminates buffer overflows.
CWE-119Replace unbounded copy functions with analogous functions that support length arguments, such as strcpy with strncpy. Create these if they are not available.
Table A3. Example of proposed training for OpenPLC V1.
Table A3. Example of proposed training for OpenPLC V1.
CWE IDTraining
CWE-113, CWE-119Identification of all potentially relevant properties of an input (length, type of input, the full range of acceptable values, missing or extra inputs, syntax, consistency across related fields).
CWE-113, CWE-119Input validation strategies.
CWE-113, CWE-119, CWE-200Allowlists and Denylists.
CWE-113, CWE-119Character encoding compatibility.
CWE-113, CWE-119Buffer overflow detection during compilation (e.g., Microsoft Visual Studio /GS flag, Fedora/Red Hat FORTIFY_SOURCE GCC flag, StackGuard, and ProPolice).
CWE-113, CWE-119CWE-200Secure functions, such as strcpy with strncpy. Create these if they are not available.
CWE-113, CWE-119CWE-190Secure programming: memory management.
CWE-113, CWE-119Understand the programming language’s underlying representation and how it interacts with numeric calculation.
CWE-113, CWE-119System compartmentalization.
CWE-200, CWE-310Certificate management.
CWE-200, CWE-310Certificate pinning.
CWE-310Encryption integration (do not develop custom or private cryptographic algorithms).
CWE-310Secure up-to-date cryptographic algorithms.
CWE-200Shared resource management.
CWE-200Thread-safe functions.
Table A4. Example of generated test cases for OpenPLC V1.
Table A4. Example of generated test cases for OpenPLC V1.
Capec IDTest Cases
CAPEC-119Check for buffer overflows through manipulation of environment variables. This test leverages implicit trust often placed in environment variables.
CAPEC-119Static analysis of the code: secure functions and buffer overflow.
CAPEC-119Feed overly long input strings to the program in an attempt to overwhelm the filter (by causing a buffer overflow) and hoping that the filter does not fail securely (i.e. the user input is let into the system unfiltered)
CAPEC-119This test uses symbolic links to cause buffer overflows. The evaluator can try to create or manipulate a symbolic link file such that its contents result in out-of-bounds data. When the target software processes the symbolic link file, it could potentially overflow internal buffers with insufficient bounds checking.
CAPEC-119Static analysis of the code: secure functions and buffer overflow.

References

  1. Qingyu, O.; Fang, L.; Kai, H. High-Security System Primitive for Embedded Systems. In Proceedings of the 2009 International Conference on Multimedia Information Networking and Security, Wuhan, China, 18–20 November 2009; Volume 2, pp. 319–321. [Google Scholar] [CrossRef]
  2. Chen, T.M.; Abu-Nimeh, S. Lessons from Stuxnet. Computer 2011, 44, 91–93. [Google Scholar] [CrossRef]
  3. Vai, M.; Nahill, B.; Kramer, J.; Geis, M.; Utin, D.; Whelihan, D.; Khazan, R. Secure architecture for embedded systems. In Proceedings of the 2015 IEEE High Performance Extreme Computing Conference (HPEC), Waltham, MA, USA, 15–17 September 2015; pp. 1–5. [Google Scholar] [CrossRef]
  4. Ten, C.W.; Manimaran, G.; Liu, C.C. Cybersecurity for Critical Infrastructures: Attack and Defense Modeling. IEEE Trans. Syst. Man Cybern.-Part A Syst. Hum. 2010, 40, 853–865. [Google Scholar] [CrossRef]
  5. Gressl, L.; Steger, C.; Neffe, U. Design Space Exploration for Secure IoT Devices and Cyber-Physical Systems. ACM Trans. Embed. Comput. Syst. 2021, 20, 1–24. [Google Scholar] [CrossRef]
  6. Gupta, M.; Abdelsalam, M.; Khorsandroo, S.; Mittal, S. Security and Privacy in Smart Farming: Challenges and Opportunities. IEEE Access 2020, 8, 34564–34584. [Google Scholar] [CrossRef]
  7. Mumtaz, S.; Alsohaily, A.; Pang, Z.; Rayes, A.; Tsang, K.F.; Rodriguez, J. Massive Internet of Things for Industrial Applications: Addressing Wireless IIoT Connectivity Challenges and Ecosystem Fragmentation. IEEE Ind. Electron. Mag. 2017, 11, 28–33. [Google Scholar] [CrossRef]
  8. Ojo, M.O.; Giordano, S.; Procissi, G.; Seitanidis, I.N. A Review of Low-End, Middle-End, and High-End Iot Devices. IEEE Access 2018, 6, 70528–70554. [Google Scholar] [CrossRef]
  9. Shafique, K.; Khawaja, B.A.; Sabir, F.; Qazi, S.; Mustaqim, M. Internet of Things (IoT) for Next-Generation Smart Systems: A Review of Current Challenges, Future Trends and Prospects for Emerging 5G-IoT Scenarios. IEEE Access 2020, 8, 23022–23040. [Google Scholar] [CrossRef]
  10. Ponta, S.E.; Plate, H.; Sabetta, A. Detection, assessment and mitigation of vulnerabilities in open source dependencies. Empir. Softw. Eng. 2020, 25, 3175–3215. [Google Scholar] [CrossRef]
  11. Hejderup, J.I.; Van Deursen, A.; Mesbah, A. In Dependencies We Trust: How Vulnerable are Dependencies in Software Modules? Ph.D. Thesis, Department of Software Technology, TU Delft, Delft, The Netherlands, 2015. [Google Scholar]
  12. Pashchenko, I.; Plate, H.; Ponta, S.E.; Sabetta, A.; Massacci, F. Vulnerable Open Source Dependencies: Counting Those That Matter. In Proceedings of the 12th International Symposium on Empirical Software Engineering and Measurement (ESEM), Oulu, Finland, 11–12 October 2018. [Google Scholar] [CrossRef]
  13. Zografopoulos, I.; Ospina, J.; Liu, X.; Konstantinou, C. Cyber-Physical Energy Systems Security: Threat Modeling, Risk Assessment, Resources, Metrics, and Case Studies. IEEE Access 2021, 9, 29775–29818. [Google Scholar] [CrossRef]
  14. McLaughlin, S.; Konstantinou, C.; Wang, X.; Davi, L.; Sadeghi, A.R.; Maniatakos, M.; Karri, R. The Cybersecurity Landscape in Industrial Control Systems. Proc. IEEE 2016, 104, 1039–1057. [Google Scholar] [CrossRef]
  15. Mathew, A. Network Slicing in 5G and the Security Concerns. In Proceedings of the 2020 Fourth International Conference on Computing Methodologies and Communication (ICCMC), Erode, India, 11–13 March 2020; pp. 75–78. [Google Scholar] [CrossRef]
  16. Christidis, K.; Devetsikiotis, M. Blockchains and Smart Contracts for the Internet of Things. IEEE Access 2016, 4, 2292–2303. [Google Scholar] [CrossRef]
  17. Hassija, V.; Chamola, V.; Saxena, V.; Jain, D.; Goyal, P.; Sikdar, B. A Survey on IoT Security: Application Areas, Security Threats, and Solution Architectures. IEEE Access 2019, 7, 82721–82743. [Google Scholar] [CrossRef]
  18. Ayaz, M.; Ammad-Uddin, M.; Sharif, Z.; Mansour, A.; Aggoune, E.H.M. Internet-of-Things (IoT)-Based Smart Agriculture: Toward Making the Fields Talk. IEEE Access 2019, 7, 129551–129583. [Google Scholar] [CrossRef]
  19. Fuller, A.; Fan, Z.; Day, C.; Barlow, C. Digital Twin: Enabling Technologies, Challenges and Open Research. IEEE Access 2020, 8, 108952–108971. [Google Scholar] [CrossRef]
  20. Xin, Y.; Kong, L.; Liu, Z.; Chen, Y.; Li, Y.; Zhu, H.; Gao, M.; Hou, H.; Wang, C. Machine Learning and Deep Learning Methods for Cybersecurity. IEEE Access 2018, 6, 35365–35381. [Google Scholar] [CrossRef]
  21. Benias, N.; Markopoulos, A.P. A review on the readiness level and cyber-security challenges in Industry 4.0. In Proceedings of the 2017 South Eastern European Design Automation, Computer Engineering, Computer Networks and Social Media Conference (SEEDA-CECNSM), Kastoria, Greece, 23–25 September 2017; pp. 1–5. [Google Scholar] [CrossRef]
  22. Matsuda, W.; Fujimoto, M.; Aoyama, T.; Mitsunaga, T. Cyber Security Risk Assessment on Industry 4.0 using ICS testbed with AI and Cloud. In Proceedings of the 2019 IEEE Conference on Application, Information and Network Security (AINS), Pulau Pinang, Malaysia, 19–21 November 2019; pp. 54–59. [Google Scholar] [CrossRef]
  23. Culot, G.; Fattori, F.; Podrecca, M.; Sartor, M. Addressing Industry 4.0 Cybersecurity Challenges. IEEE Eng. Manag. Rev. 2019, 47, 79–86. [Google Scholar] [CrossRef]
  24. Lezzi, M.; Lazoi, M.; Corallo, A. Cybersecurity for Industry 4.0 in the current literature: A reference framework. Comput. Ind. 2018, 103, 97–110. [Google Scholar] [CrossRef]
  25. Ustundag, A.; Cevikcan, E. Industry 4.0: Managing The Digital Transformation; Springer International Publishing: Berlin/Heidelberg, Germany, 2018. [Google Scholar] [CrossRef]
  26. Thames, L.; Schaefer, D. (Eds.) Cybersecurity for Industry 4.0; Springer International Publishing: Berlin/Heidelberg, Germany, 2017. [Google Scholar] [CrossRef]
  27. Medeiros, N.; Ivaki, N.; Costa, P.; Vieira, M. Software Metrics as Indicators of Security Vulnerabilities. In Proceedings of the 2017 IEEE 28th International Symposium on Software Reliability Engineering (ISSRE), Toulouse, France, 23–26 October 2017; pp. 216–227. [Google Scholar] [CrossRef]
  28. Alenezi, M.; Zarour, M. On the Relationship between Software Complexity and Security. Int. J. Softw. Eng. Appl. 2020, 11, 51–60. Available online: https://aircconline.com/abstract/ijsea/v11n1/11120ijsea04.html (accessed on 27 January 2022). [CrossRef]
  29. Langner, R. Stuxnet: Dissecting a Cyberwarfare Weapon. IEEE Secur. Priv. 2011, 9, 49–51. [Google Scholar] [CrossRef]
  30. George, G.; Thampi, S.M. A Graph-Based Security Framework for Securing Industrial IoT Networks From Vulnerability Exploitations. IEEE Access 2018, 6, 43586–43601. [Google Scholar] [CrossRef]
  31. Papp, D.; Ma, Z.; Buttyan, L. Embedded systems security: Threats, vulnerabilities, and attack taxonomy. In Proceedings of the 2015 13th Annual Conference on Privacy, Security and Trust (PST), Izmir, Turkey, 21–23 July 2015; pp. 145–152. [Google Scholar] [CrossRef]
  32. Nielsen, B.B.; Torp, M.T.; Møller, A. Modular Call Graph Construction for Security Scanning of Node.Js Applications. In Proceedings of the 30th ACM SIGSOFT International Symposium on Software Testing and Analysis; Association for Computing Machinery: New York, NY, USA, 2021; pp. 29–41. [Google Scholar] [CrossRef]
  33. Sawilla, R.E.; Ou, X. Identifying Critical Attack Assets in Dependency Attack Graphs. In Computer Security—ESORICS 2008; Jajodia, S., Lopez, J., Eds.; Springer: Berlin/Heidelberg, Germany, 2008; pp. 18–34. Available online: https://link.springer.com/chapter/10.1007/978-3-540-88313-5_2#citeas (accessed on 27 January 2022).
  34. MITRE Corporation. CVE—Common Vulnerability and Exposures. Available online: https://cve.mitre.org/index.html (accessed on 27 January 2022).
  35. MITRE Corporation. CVE—Common Vulnerabilities and Exposures: Definitions. Available online: https://cve.mitre.org/about/terminology.html (accessed on 21 January 2022).
  36. National Institute for Standards and Technology (NIST). National Vulnerability Database NVD—Vulnerability List. Available online: https://nvd.nist.gov/vuln/full-listing (accessed on 27 January 2022).
  37. FIRST—global Forum of Incident Response and Security Teams. Common Vulnerability Scoring System (CVSS). Available online: https://www.first.org/cvss/ (accessed on 27 January 2022).
  38. MITRE Corporation. CWE—Common Weakness Enumeration. Available online: https://cwe.mitre.org/index.html (accessed on 27 January 2022).
  39. MITRE Corporation. CWE—Common Weakness Enumeration: Definitions. Available online: https://cwe.mitre.org/about/faq.html (accessed on 27 January 2022).
  40. Jiang, Y.; Atif, Y.; Ding, J. Cyber-Physical Systems Security Based on a Cross-Linked and Correlated Vulnerability Database. In Critical Information Infrastructures Security; Nadjm-Tehrani, S., Ed.; Springer International Publishing: Cham, Switzerland, 2020; pp. 71–82. Available online: https://link.springer.com/book/10.1007/978-3-030-37670-3 (accessed on 27 January 2022).
  41. Kleidermacher, D.; Kleidermacher, M. Practical Methods for Safe and Secure Software and Systems Development. In Embedded Systems Security; Kleidermacher, D., Kleidermacher, M., Eds.; Newnes: Oxford, UK, 2012. [Google Scholar] [CrossRef]
  42. Andreeva, O.; Gordeychik, S.; Gritsai, G.; Kochetova, O.; Potseluevskaya, E.; Sidorov, S.; Timorin, A. Industrial Control Systems Vulnerabilities Statistics; Technical Report; Karpersky: Moscow, Russia, 2016. [Google Scholar] [CrossRef]
  43. Hwang, D.; Schaumont, P.; Tiri, K.; Verbauwhede, I. Securing embedded systems. IEEE Secur. Priv. 2006, 4, 40–49. [Google Scholar] [CrossRef]
  44. Viega, J.; Thompson, H. The State of Embedded-Device Security (Spoiler Alert: It’s Bad). IEEE Secur. Priv. 2012, 10, 68–70. [Google Scholar] [CrossRef]
  45. Marwedel, P. Embedded Systems Foundations of Cyber-Physical Systems, and the Internet of Things. In Embedded System Design; Springer Nature: Cham, Switzerland, 2018. [Google Scholar] [CrossRef]
  46. Arpaia, P.; Bonavolontà, F.; Cioffi, A.; Moccaldi, N. Reproducibility Enhancement by Optimized Power Analysis Attacks in Vulnerability Assessment of IoT Transducers. IEEE Trans. Instrum. Meas. 2021, 70, 1–8. [Google Scholar] [CrossRef]
  47. IEC 62443; Industrial Communication Networks—Network and System Security. IEC Central Office: Geneva, Switzerland, 2010.
  48. Mugarza, I.; Flores, J.L.; Montero, J.L. Security Issues and Software Updates Management in the Industrial Internet of Things (IIoT) Era. Sensors 2020, 20, 7160. [Google Scholar] [CrossRef] [PubMed]
  49. IEC 62443; Security for Industrial Automation and Control Systems—Part 4-1: Secure Product Development Lifecycle Requirements. International Electrotechnical Commission: Geneva, Switzerland, 2018.
  50. Avizienis, A.; Laprie, J.; Randell, B.; Landwehr, C. Basic concepts and taxonomy of dependable and secure computing. IEEE Trans. Dependable Secur. Comput. 2004, 1, 11–33. [Google Scholar] [CrossRef] [Green Version]
  51. He, W.; Li, H.; Li, J. Unknown Vulnerability Risk Assessment Based on Directed Graph Models: A Survey. IEEE Access 2019, 7, 168201–168225. [Google Scholar] [CrossRef]
  52. ISO/IEC 30111:2019; Information Technology—Security Techniques—Vulnerability Handling Processes. International Organization for Standardization: Geneva, Switzerland, 2019. Available online: https://www.iso.org/standard/69725.html (accessed on 27 January 2022).
  53. Common Criteria (CC). The Common Criteria for Information Technology Security Evaluation—Introduction and General Model. Available online: https://www.commoncriteriaportal.org/files/ccfiles/CCPART1V3.1R5.pdf (accessed on 27 January 2022).
  54. Common Criteria (CC). Part 3: Security Assurance Components. Available online: https://commoncriteriaportal.org/files/ccfiles/CCPART3V3.1R5.pdf (accessed on 27 January 2022).
  55. Herrmann, D. Using the Common Criteria for IT Security Evaluation; Auerbach Publications: Boca Raton, FL, USA, 2002; pp. 1–289. [Google Scholar] [CrossRef]
  56. Matheu, S.N.; Hernandez-Ramos, J.L.; Skarmeta, A.F. Toward a Cybersecurity Certification Framework for the Internet of Things. IEEE Secur. Priv. 2019, 17, 66–76. [Google Scholar] [CrossRef]
  57. Mellado, D.; Fernández-Medina, E.; Piattini, M. A common criteria based security requirements engineering process for the development of secure information systems. Comput. Stand. Interfaces 2007, 29, 244–253. [Google Scholar] [CrossRef]
  58. Hohenegger, A.; Krummeck, G.; Baños, J.; Ortega, A.; Hager, M.; Sterba, J.; Kertis, T.; Novobilsky, P.; Prochazka, J.; Caracuel, B.; et al. Security certification experience for industrial cyberphysical systems using Common Criteria and IEC 62443 certifications in certMILS. In Proceedings of the 2021 4th IEEE International Conference on Industrial Cyber-Physical Systems (ICPS), Victoria, BC, Canada, 10–12 May 2021; pp. 25–30. [Google Scholar] [CrossRef]
  59. Homer, J.; Ou, X.; Schmidt, D. A Sound and Practical Approach to Quantifying Security Risk in Enterprise Networks. Technical Report. 2009. Available online: https://www.cse.usf.edu/~xou/publications/tr_homer_0809.pdf (accessed on 27 January 2022).
  60. Zhang, S.; Ou, X.; Singhal, A.; Homer, J. An Empirical Study of a Vulnerability Metric Aggregation Method; Technical Report; Kansas State University: Manhattan, KS, USA, 2011; Available online: https://www.cse.usf.edu/~xou/publications/stmacip11.pdf (accessed on 27 January 2022).
  61. Homer, J.; Zhang, S.; Ou, X.; Schmidt, D.; Du, Y.; Rajagopalan, S.R.; Singhal, A. Aggregating vulnerability metrics in enterprise networks using attack graphs. J. Comput. Secur. 2013, 21, 561–597. [Google Scholar] [CrossRef] [Green Version]
  62. Li, S.; Chen, Y.; Wu, X.; Cheng, X.; Tian, Z. Power Grid-Oriented Cascading Failure Vulnerability Identifying Method Based on Wireless Sensors. J. Sens. 2021, 2021, 8820413. [Google Scholar] [CrossRef]
  63. Liu, B.; Zhu, G.; Li, X.; Sun, R. Vulnerability Assessment of the Urban Rail Transit Network Based on Travel Behavior Analysis. IEEE Access 2021, 9, 1407–1419. [Google Scholar] [CrossRef]
  64. Poolsappasit, N.; Dewri, R.; Ray, I. Dynamic Security Risk Management Using Bayesian Attack Graphs. IEEE Trans. Dependable Secur. Comput. 2012, 9, 61–74. [Google Scholar] [CrossRef]
  65. Muñoz-González, L.; Sgandurra, D.; Barrère, M.; Lupu, E.C. Exact Inference Techniques for the Analysis of Bayesian Attack Graphs. IEEE Trans. Dependable Secur. Comput. 2019, 16, 231–244. [Google Scholar] [CrossRef] [Green Version]
  66. Liu, X.; Qian, C.; Hatcher, W.G.; Xu, H.; Liao, W.; Yu, W. Secure Internet of Things (IoT)-Based Smart-World Critical Infrastructures: Survey, Case Study and Research Opportunities. IEEE Access 2019, 7, 79523–79544. [Google Scholar] [CrossRef]
  67. Pascale, F.; Adinolfi, E.A.; Coppola, S.; Santonicola, E. Cybersecurity in Automotive: An Intrusion Detection System in Connected Vehicles. Electronics 2021, 10, 1765. [Google Scholar] [CrossRef]
  68. Hu, J.; Guo, S.; Kuang, X.; Meng, F.; Hu, D.; Shi, Z. I-HMM-Based Multidimensional Network Security Risk Assessment. IEEE Access 2020, 8, 1431–1442. [Google Scholar] [CrossRef]
  69. Khosravi-Farmad, M.; Bafghi, A. Bayesian Decision Network-Based Security Risk Management Framework. J. Netw. Syst. Manag. 2020, 28, 1794–1819. [Google Scholar] [CrossRef]
  70. Atzeni, A.; Lioy, A. Why to adopt a security metric? A brief survey. Adv. Inf. Secur. 2006, 23, 1–12. [Google Scholar] [CrossRef]
  71. Zeb, T.; Yousaf, M.; Afzal, H.; Mufti, M.R. A quantitative security metric model for security controls: Secure virtual machine migration protocol as target of assessment. China Commun. 2018, 15, 126–140. [Google Scholar] [CrossRef]
  72. Longueira-Romero, A.; Iglesias, R.; Gonzalez, D.; Garitano, I.N. How to Quantify the Security Level of Embedded Systems? A Taxonomy of Security Metrics. In Proceedings of the 2020 IEEE 18th International Conference on Industrial Informatics (INDIN), Warwick, UK, 20–23 July 2020; Volume 1, pp. 153–158. [Google Scholar] [CrossRef]
  73. Rudolph, M.; Schwarz, R. A Critical Survey of Security Indicator Approaches. In Proceedings of the 2012 Seventh International Conference on Availability, Reliability and Security, Prague, Czech Republic, 20–24 August 2012; pp. 291–300. [Google Scholar] [CrossRef]
  74. Sentilles, S.; Papatheocharous, E.; Ciccozzi, F. What Do We Know about Software Security Evaluation? A Preliminary Study. QuASoQ@APSEC, 2018. Available online: http://ceur-ws.org/Vol-2273/QuASoQ-04.pdf (accessed on 27 January 2022).
  75. Amutio, M.A.; Candau, J.; Mañas, J.A. MAGERIT V3.0. Methodology for Information Systems Risk Analysis and Management; Book I—The Method; National Standard; Ministry of Finance and Public Administration: Madrid, Spain, 2014.
  76. Dekker, M.; Karsberg, C. Guideline on Threats and Assets: Technical Guidance on Threats and Assets in Article 13a; Technical Report. European Union Agency for Network and Information Security, 2015. Available online: https://www.enisa.europa.eu/publications/technical-guideline-on-threats-and-assets (accessed on 27 January 2022).
  77. ISO/IEC 13335-1:2004; Information Technology—Security Techniques—Management of Information and Communications Technology Security—Part 1: Concepts and Models for Information and Communications Technology Security Management. International Organization for Standardization: Geneva, Switzerland, 2004.
  78. National Institute for Standards and Technology (NIST). CPE—Common Platform Enumeration. Available online: https://nvd.nist.gov/products/cpe (accessed on 27 January 2022).
  79. Cheikes, B.A.; Waltermire, D.; Scarfone, K. NIST Interagency Report 7695—Common Platform Enumeration: Naming Specification Version 2.3; Nist interagency Report; National Institute for Standards and Technology (NIST): Gaithersburg, MD, USA, 2011. Available online: https://tsapps.nist.gov/publication/get_pdf.cfm?pub_id=909010 (accessed on 27 January 2022).
  80. Parmelee, M.C.; Booth, H.; Waltermire, D.; Scarfone, K. NIST Interagency Report 7696—Common Platform Enumeration: Name Matching Specification Version 2.3; Nist Interagency Report; National Institute for Standards and Technology (NIST): Gaithersburg, MD, USA, 2011. Available online: https://tsapps.nist.gov/publication/get_pdf.cfm?pub_id=909008 (accessed on 27 January 2022).
  81. ISO 8601:2019; Data and time-Representation for Information Interchange—Part 1: Basic Rules. International Organization for Standardization: Geneva, Switzerland, 2019.
  82. MITRE Corporation. CAPEC—Common Attack Pattern Enumeration and Classification. Available online: https://capec.mitre.org/ (accessed on 27 January 2022).
  83. MITRE Corporation. CAPEC—Common Attack Pattern Enumeration and Classification: Glossary. Available online: https://capec.mitre.org/about/glossary.html (accessed on 27 January 2022).
  84. NIST—National Institute of Standards and Technology. National Vulnerability database (NVD). Available online: https://nvd.nist.gov/ (accessed on 27 January 2022).
  85. Dimitriadis, A.; Flores, J.L.; Kulvatunyou, B.; Ivezic, N.; Mavridis, I. ARES: Automated Risk Estimation in Smart Sensor Environments. Sensors 2020, 20, 4617. [Google Scholar] [CrossRef]
  86. Alves, T. OpenPLC Project. Available online: https://www.openplcproject.com/ (accessed on 27 January 2022).
  87. Alves, T. OpenPLC V1. Available online: https://github.com/thiagoralves/OpenPLC (accessed on 27 January 2022).
  88. Alves, T. OpenPLC V2. Available online: https://github.com/thiagoralves/OpenPLC_v2 (accessed on 27 January 2022).
  89. Alves, T. OpenPLC V3. Available online: https://github.com/thiagoralves/OpenPLC_v3 (accessed on 27 January 2022).
  90. Alves, T.R.; Buratto, M.; de Souza, F.M.; Rodrigues, T.V. OpenPLC: An open source alternative to automation. In Proceedings of the IEEE Global Humanitarian Technology Conference (GHTC 2014), San Jose, CA, USA, 10–13 October 2014; pp. 585–589. [Google Scholar] [CrossRef]
  91. Alves, T.; Morris, T. OpenPLC: An IEC 61,131—3 compliant open source industrial controller for cyber security research. Comput. Secur. 2018, 78, 364–379. [Google Scholar] [CrossRef]
  92. Ubuntu 14.04 and 16.04 Lifecycle Extended to Ten Years. Available online: https://ubuntu.com/blog/ubuntu-14-04-and-16-04-lifecycle-extended-to-ten-years (accessed on 27 January 2022).
  93. libssl1.0.0: Trusty (14.04): Ubuntu. Available online: https://launchpad.net/ubuntu/trusty/+package/libssl1.0.0/+index (accessed on 27 January 2022).
  94. nodejs: Trusty (14.04): Ubuntu. Available online: https://launchpad.net/ubuntu/trusty/+package/nodejs/+index (accessed on 27 January 2022).
  95. IEC 62443; Security for Industrial Automation and Control Systems—Part 4-2: Technical Security Requirements for IACS Components. International Electrotechnical Commission: Geneva, Switzerland, 2019. Available online: https://www.isa.org/products/ansi-isa-62443-4-1-2018-security-for-industrial-au (accessed on 27 January 2022).
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Article Metrics

Citations

Article Access Statistics

Multiple requests from the same IP address are counted as one view.