Journal of Information Security
Vol.09 No.01(2018), Article ID:81898,33 pages
10.4236/jis.2018.91009
A Security Architecture for SCADA Systems
Arun Velagapalli, Mahalingam Ramkumar
Mississippi State University, Starkville, MS, USA

Copyright © 2018 by authors and Scientific Research Publishing Inc.
This work is licensed under the Creative Commons Attribution International License (CC BY 4.0).
http://creativecommons.org/licenses/by/4.0/



Received: December 14, 2017; Accepted: January 20, 2018; Published: January 23, 2018
ABSTRACT
Supervisory Control and Data Acquisition (SCADA) systems are attractive targets for attackers, as they offer an avenue to attack critical infrastructure (CI) systems controlled by SCADA systems. Ultimately, an attack on any system exploits some undesired (malicious or accidental) functionality in the components of the system. Unfortunately, it is far from practical to eliminate undesired functionality in every component of a system. The contribution of this paper is a novel architecture for securing SCADA systems that guarantee that “any malicious modification of the deployment configuration or the design configuration of the SCADA system will be detected”―even if undesired functionality may exist in SCADA system components.
Keywords:
SCADA, Security: Trusted Computing: Authenticated Data Structure, Critical Infrastructure, DCS, PCS, Cyber Security, CIP

1. Introduction
Several important systems like power grids, water supply systems, oil and gas production/distribution systems, mass transportation systems, etc., are considered as critical infrastructure (CI) systems due to the catastrophic nature of damages that can result from their failure. The task of monitoring and controlling such systems is often entrusted to Supervisory Control and Data Acquisition (SCADA) systems.
SCADA systems are an attractive target for attackers, as they offer an avenue for launching attacks against high valued CI systems. A typical SCADA system may include several remote terminal units (RTU), one or more master terminal units (MTU), a variety of communication equipment and links, computers running human machine interface (HMI) software to enable more intuitive operator driven control when necessary. Hidden malicious/accidental functionality in any SCADA system component could be exploited by an attacker to launch attacks such as the above. Such hidden functionality could exist in (the logic programmed into) programmable logic controllers (PLC) in RTUs and MTUs, in any computer used for programming PLCs, or in any peripheral of the computer running the HMI software or the SCADA data logger, in the operating system of such computers, in the HMI software, or even, ironically, in a computer that runs the intrusion detection system (IDS) intended for protecting the SCADA system.
In 2010, a virus known as Stuxnet1 that had evaded detection for over a year [1] was identified. This virus targeted nuclear plants, and shut down centrifuges inside the plant by overwriting some set-points. In November 2011, the Illinois Statewide Terrorism and Intelligence Center reported2 a cyber-attack on a small, rural water utility outside Springfield, where attackers had gained remote access to pumps. In May 2003 [2] , a Slammer worm exploiting3 an un-patched version of Microsoft SQL erased crucial SCADA system logs. “In March 2016, the U.S. Justice Department claimed that Iran had attacked U.S. infrastructure by infiltrating the industrial controls of a dam in Rye Brook, New York. The attackers compromised the dams command-and-control system in 2013 using a cellular modem” [3] . “In December 2015, a power company located in western Ukraine suffered a power outage that impacted a large area that included the regional capital of Ivano-Frankivsk. The cybercriminals had facilitated the outage by using BlackEnergy malware to exploit the macros in Microsoft Excel documents” [4] .
It is indeed for very good reasons that such threats have been recognized as “Advanced Persistent Threats” [5] [6] [7] [8] [9] . Due to the high value of targets, the possibility of sophisticated state sponsored attacks has to be considered. Sophisticated malicious functionality may be introduced even during the manufacturing process of various components that could ultimately end up in SCADA systems. In addition, we cannot afford to ignore the possibility that an attacker may have actually participated in the deployment of the SCADA system, or testing of the deployed system, and taken advantage of such an opportunity to inject hidden functionality in some component.
While it is important to take all possible practical steps to reduce the threat of hidden malicious functionality, we may never be able to eliminate such functionality in every component. Such functionality may be exploited to launch attacks while simultaneously reporting “all clear” messages to the stake-holders. It is of vital importance that we are at the minimum able to reliably detect such attacks, even if hidden malicious functionality is inevitable.
1.1. Active vs Passive Security Measures
The process of securing any system can be seen as consisting of three broad steps: 1) enumeration of desired assurances; 2) identification of reasonable assumptions; and 3) development of a process, viz., a security protocol, to translate the assumptions into the desired assurances. In other words, if we begin with good assumptions, and if the security protocol is correct, and if the agency responsible for executing the protocol is trustworthy, then the desired assurances are guaranteed.
Approaches to secure systems can be broadly classified [10] into:
1) active approaches based on attack models; and
2) passive approaches based on system-state models.
Underlying active approaches is the notion that violations of desired assurances result from attacks. As attacks exploit pitfalls in the implementation of systems (resulting in undesired functionality) some of the practical tools used in active approaches for identification, removal and/or isolation of attacks, include machine learning for modeling, detecting, and classifying intrusions; isolation mechanisms like hypervisors, containers, and various cryptographic mechanisms; and good programming practices to minimize bugs and potentially malicious functionality. The complexity of most tools used in active approaches render it infeasible to make meaningful assumptions regarding the integrity of both: 1) the tools, and 2) the process that utilizes the tools, to realize the desired assurances. Furthermore, due to the unrestricted freedom of attacks, active approaches will forever be engaged in an evolutionary arms race with attacks.
Passive approaches view digital assets of a system as a dynamic set of states. The desired assurances dictate the nature of protection to be extended to each state, and are expressed in the form of an unambiguous system-state transition model. Executing the model, (or model-driven verification) is a process of 1) actually verifying that the state-transition rules specified by the model are not violated when the system is operational, and 2) reporting such findings to stake-holders. To ensure that the model is correct, the model should be made open to scrutiny. In such an event, the extent of trust in the assurances offered by such an approach (that no state violation will go undetected) is only limited by the trust in the environment for model-execution. The novel STCB (SCADA Trusted Computing Base) approach proposed in this paper is a passive approach, which leverages a rigorous standard for a trustworthy model-execution environment.
Current approaches to secure systems, and more specifically, CI systems monitored by SCADA systems, are overwhelmingly active approaches. Ultimately, both active and passive approaches are necessary. Active approaches attempt to deflect/repel as many attacks as possible. Passive approaches diminish the pay-off for attackers, as even state violations resulting from attacks that slip-past active approaches will be detected by passive approaches. In addition, active approaches are also essential for the narrow purpose of thwarting attacks that seek to compromise the integrity of the model-execution environment.
1.2. Trusted Computing Base
For any system with a desired set of security requirements , the trusted computing base (TCB) is “a small amount of software and hardware we rely on” (to realize the requirements ) and “that we distinguish from a much larger amount that can misbehave without affecting security” [14] . In other words, as long as the TCB is worthy of trust the TCB can be leveraged to realize the desired assurances regarding the operation of the entire system.
In the proposed passive approach to secure SCADA systems, a resource limited trustworthy module―which we shall refer to as an STCB (SCADA Trusted Computing Base) module serves as the TCB for model-execution. The main contributions of this paper are: 1) a strategy for expressing of state-transition models for SCADA systems; and 2) a functional specification for STCB modules, for executing the model.
To improve the confidence in the integrity of STCB modules, they should ideally be manufactured under a well-controlled environment, and consummately tested for the designed functionality. To facilitate consummate testing, it is necessary to deliberately constrain STCB modules to possess simple functionality. For low-cost mass-realization of reliable STCB modules to be practical, the simple functions executed inside STCB modules should nevertheless permit them to serve as the TCB for any SCADA system―irrespective of the nature and scale of the CI system. While the “instruction set” for specifying the state transition model should be rich enough to be suitable for any SCADA system, it should simultaneously be simple enough to be executed even by severely resource limited STCB modules.
The main components of the proposed STCB based security architecture include
1) a systematic strategy for designing SCADA state-transition models for any SCADA system, consisting of
a) an instruction set for expressing the model,
b) role of the designer of the SCADA system, and
c) role of the deployer of the system;
2) a functional specification for STCB modules, suitable for executing the instruction set for any SCADA system; and
3) an STCB protocol, for interacting with STCB modules, and obtaining SCADA state reports.
1.3. Organization
The rest of this paper is organized as follows. Section 2 is an overview of STCB approach. Section 3 outlines the STCB design process. Section 4 outlines processes for STCB deployment and operation. Section 5 provides a detailed description of the STCB functionality. Section 6 describes the STCB protocol. Finally, conclusions are offered in Section 7.
2. Overview of STCB Approach
While a state-based security approach can be extended to any system, such an approach is indeed natural for critical infrastructure SCADA systems. Note that the ultimate purpose of a SCADA system, viz., to monitor and report CI system states to stake-holders, is indeed identical to that of state-model based security architecture, consisting of model-driven verification and reporting.
The state reports from a SCADA system can be seen as a function of the current states of all sensors associated with the system. For a SCADA system characterized by n sensors, let represent the states of the n sensors, and let
(1)
represent a function that captures the “physics” of the controlled system, and reports values to the stake-holder as the “state of the system”. More specifically, as inputs to the SCADA system (sensor measurements) may be received asynchronously, the function is often realized as
(2)
where is evaluated whenever an fresh measurement is made available. Furthermore, in practical SCADA systems, evaluation of is performed jointly by numerous system components that may include PLCs in multiple RTUs and MTUs, the HMI, and even actions by human operators. Consequently, notwithstanding current active measures, the integrity of the state reports is far from assured. Specifically, current active approaches include features like a) cryptographic protection of links between RTUs and MTUs [15] - [20] to prevent message injection attacks by attackers and b) intrusion detection systems to facilitate early detection of attacks [21] [22] [23] to detect and evade attacks.
The goal of the STCB security model is to guarantee the integrity of state reports provided by the agent. To achieve its goals, the STCB security model relies only on a) the integrity of STCB modules, and b) the integrity of clearly defined processes to be adopted by entities identified as the designer and the deployer of the SCADA system. The designer is an entity with good domain knowledge (regarding the CI system); the deployer is a security professional who is not required to possess any knowledge of the CI system. To the extent the stake-holder trusts the integrity of the STCB modules, and the verifiable processes adopted by the designer and the deployer, the stake-holder is assured of the integrity of the state report―even if malicious functionality may exist in SCADA system components.
2.1. STCB System Components
The additional components introduced into a STCB-secured SCADA system include
1) an untrusted “STCB system manager” U,
2) STCB modules , and .
All STCB modules are identical, and are capable of executing a set of simple TCB functions. Modules are “closely bound” to SCADA system sensors. In the rest of this paper we shall use the term sensor module (SM) for STCB modules , and the term central module (CM), for STCB module .
The untrusted STCB manager U periodically receives sensor reports from SMs and makes them available to CM . CM evaluates , and outputs state reports, see Figure 1. From a broad perspective, the authenticity of the inputs to are assured by SMs ; the integrity of the function is assured by the CM.
The exact make up of the manager U is irrelevant for our purposes of guaranteeing the integrity of , as U is not trusted. Unless U performs it tasks faithfully, valid state reports cannot be sent to the stake holders.
The state reports are relayed by the STCB manager U to an STCB module associated with a stake-holder. Any number of stake holder modules like may exist. More generally, a stake-holder module may be the CM for another STCB deployment.
For example, the state reports from different SCADA systems may be provided as “sensor reports” to a system at a higher level of hierarchy. In such a scenario, the stake-holder module can be seen as the CM of an STCB deployment at a higher level of hierarchy. Module considers the state reports from the CMs of systems at the lower level as “sensor reports” from foreign STCB deployments.
Any number of hierarchical levels may exist. For example, state reports from multiple SCADA systems in a town may be inputs to a single SCADA system that monitors the health of all such systems in the town. The reports from such
Figure 1. Top: STCB components. Bottom: Information flow in the STCB model. The STCB module associated with the stake-holder can be the CM for a deployment at a higher hierarchical level.
SCADA systems in different towns may be inputs to another SCADA system at an even higher level of hierarchy, that monitors the health of all systems in a state, and so on.
2.2. Evaluating
The main challenge lies in the choice of a strategy for evaluating any inside the trusted confines of resource challenged STCB modules. Recall that we desire to deliberately constrain STCB modules to possess only modest memory and computational abilities. Consequently, we constrain STCB modules to perform only logical and cryptographic hash operations. By performing simple logical operations the STCB modules support a simple instruction set for representing different s. As no restrictions are placed on the nature and scale of the SCADA system, some of the specific challenges are that
1) the number of sensors n can be unlimited;
2) evaluation of ’s may require evaluation of complex functions, and thus challenging to represent using merely the instruction set .
Both challenges are addressed through the use of Merkle hash trees [24] .
2.2.1. Merkle Trees
A Merkle tree is a binary hash tree which permits a resource limited entity to assure the integrity of a dynamic database of practically any size, even while the database is stored in an untrusted location. Specifically, the resource limited entity only needs to store a single cryptographic hash―the root of the tree.
A Merkle hash tree with leaves (for simplicity we shall assume that is a power of (2) has L levels. For storing a database with n records, each record is interpreted as a leaf of the tree. Corresponding to each leaf (record) R is a leaf-hash obtained as , by hashing the leaf using a secure cryptographic hash function .
The n leaf-hashes (say, ) corresponding to n records are at level 0 of the binary tree. At level 1 of the tree are n/2 leaf hashes , where . Similarly, the n/2 leaves in level 1 result in n/4 nodes in level 2, and so on. Construction of the tree stops at level L with a single node ―the root of the tree. For any leaf (with corresponding leaf node ), there exists a set of L complementary nodes, say, , and a sequence of L hash operations represented as such that , see Figure 2.
Protocols that employ Merkle hash trees can be seen as an interaction between two parties―a prover and a verifier. The prover stores all n leaves and all nodes (distributed over levels 0 to L). The verifier stores only the root r (the lone node at level L). To demonstrate that a record R is part of the tree the prover provides L complementary nodes as proof. The verifier accepts record R as authentic only if . To update record R to the verifier simply sets it’s root to .
Figure 2. A binary hash tree with 8 leaves. The set of complementary nodes for are “the siblings of all ancestors of ”― (sibling of ), (sibling of ancestor ) and (sibling of ancestor ).
2.2.2. Merkle Trees in the STCB Approach
In the STCB approach resource challenged STCB modules store only the root of the tree, and have the ability to perform operations. This capability is leveraged to assure the integrity of
1) a dynamic database of n sensor measurements;
2) any number of simple static “algorithms” to evaluate different s, where each algorithm is a small number of instructions (belonging to the instruction set ) supported by STCB modules; and
3) static look-up tables (of any size) for evaluating complex functions that may be necessary to execute some (instruction in) .
Specifically, the STCB module for an STCB deployment stores a (static) root of a static Merkle tree, and the (dynamic) root of a dynamic Merkle tree. The leaves of the static tree are the specifications for a specific STCB deployment―provided by the designer and the deployer of the system. The leaves of the dynamic tree are the current states of the n sensors of the system. The leaves and all intermediate nodes of both trees, are stored by the untrusted STCB manager U.
2.3. STCB Designer and Deployer
One of the main motivations for clearly demarcating between the roles of a designer and a deployer is that entities with good domain knowledge (for example, an entity with in-depth knowledge about the domain of specific CI system, like a nuclear plant) are often unlikely to be security experts. Likewise, security experts are unlikely to be experts in the domain of the specific CI system.
The designer is a domain expert with good knowledge of the CI system. The designer is required to be aware of the purpose of each sensor in the system, and the interpretation of their states. For example, (say) in a water-tank control system, “if (water level greater than 100) should be zero (the pump should be off).” The responsibility of the designer is to come up with a specification for the function that captures the physics of the system. Specifically, the designer specifies two types of records. For a system with n sensors, the designer specifies
1) n static records which convey cryptographic commitments to values (instructions, inputs, constants) necessary for executing each ;
2) n records which convey the initial state of n sensors. During operation, a sensor report from will trigger execution of instructions defined in a record to modify record .
The deployer is a security professional who may not possess any CI system domain knowledge. The responsibility of the deployer is to procure and install STCB modules, and be aware of steps to be taken, for example, to
1) facilitate establishment of shared secrets between modules;
2) securely connect (for example, using tamper-evident connectors) physical sensor outputs to SMs, and record such bindings (for example, indicating that sensor is connected to module );
3) deploy the STCB manager U―which includes installation of all hardware/software necessary to relay SM outputs to the STCB manager U, setting up a channel to the CM , and a channel to be used for conveying state reports to stake holders. However, U, and such channels, are not trusted.
Ultimately, the components of the system-model specified by the deployer take the form of two types of records. Records of type B (binding records) specify binding between a sensor identity and the module identity responsible for authenticating reports from . Records of type R (or reporting records) specify the identity of the STCB module to which a report regarding a specific system-state is to be made.
3. STCB Design
The designer is entrusted with the responsibility of describing function
where is evaluated whenever an fresh measurement from sensor is available.
3.1. STCB Design Tree
The designer provides a specification of by constructing a static Merkle tree―the design tree―with root . The tree includes leaves
(3)
where is itself a root of a Merkle tree with n leaves. Each leaf specifies the initial state of n sensors as records . The other n leaves correspond to the n design records . The sensor records and design records are of the form
(4)
Each sensor is associated with a set of dynamic values, where w is a constant. Specifically, 1) is the latest measurement of sensor ; 2) is the time of the measurement; 3) are the w outputs of function , evaluated when the last report was received from sensor . The value is a measure of time associated with the outputs (and is not necessarily the same as ).
In the design record for sensor , value is the hash of a small number (say, m) of instructions chosen from the set . Specifically, the instructions define the function to be evaluated on receipt of a report from sensor . The value is a one way function of a set of (say, l) constants C. Such constants may specify various values like set-points, permitted ranges of measurements, minimum expected frequency of reports from sensors, etc. In addition, such constant values may also be used as look up tables. The values specify (up to) q related sensors. Such sensors are “related” to as the states of such sensors can influence . Some or all of the q values can be set to zero if less than q related sensors suffice. Finally, the value is optional, and is the identity of a “synthetic” sensor (explained later).
3.1.1. Example System
To describe different steps involved in the construction of a design tree we will use a simplified version of a thermal power plant with six sensors as a running example, see Figure 3.
temperature sensor inside boiler.
coal weight sensor (coal fed into the boiler).
position of fire regulator.
temperature inside turbine cell.
pressure inside turbine cell.
speed of turbine.
The sensor records are of the form
Figure 3. Example: simplified version of thermal power plant.
The design records are of the form
3.2. Inputs and Outputs of
Due to limited memory inside STCB modules, there is a need for a strict upper bound on the number of inputs to, and outputs of, each . In other words, irrespective of the total number of sensors n, note that s are restricted to specifying only 1) up to q related sensors, 2) l constants, 3) m instructions, and 4) one synthetic sensor as inputs. Each produces w outputs.
As is re-evaluated whenever a fresh report is available from sensor , the inputs necessary to evaluate are stored in reserved volatile registers inside STCB modules, and include
1) values in the record associated with sensor (stored in a register inside the module);
2) values in a fresh report from sensor (register r);
3) values in records for related sensors (registers );
4) constants in (register c); and
5) instructions (some of which may be set to 0 to represent “no operation” if m instructions are not required to evaluate );
The m logical operations in provide the instructions to recompute the outputs of following a fresh report from . On evaluation of the record is modified. Specifically,
1) replace the previous values ,
2) outputs replace outputs of the previous execution of ,
3) and is replaced with
(5)
to reflect the staleness of the w outputs.
Note that dynamic values associated with any may be affected not just by values corresponding to sensors directly related to , but also sensors indirectly related to ―for example sensors related to a related sensor (once removed) or sensors related to a sensor related to (twice removed) and so on. Computing the value as in Equation (5) ensures that the value will be the least of the sensor-report time t corresponding to every sensor that is directly or indirectly related sensor .
On a continuous basis, as and when new sensor reports are available, the states of the reporting sensors are modified. A subset of dynamic values corresponding to a subset of sensors may be reported to the stake-holder as values describing the state of the system. For example, if value (second output of ) is one of the values reported as the state of the system, the time associated with the state is reported as .
3.2.1. Example for Power Plant
For the example system 0.0.3, let the maximum number of related sensors be ; the number of outputs of each be ; and the number of constants . In this example, say there exists a rule that the values of sensors have to be within threshold ranges respectively. The design of function checks if are within thresholds respectively. The inputs are and constants. The output is written in . For evaluation of , is specified as a related sensor. As no other related sensors are used, and are set to 0.
As is re-evaluated whenever a fresh report is available from sensor , the inputs necessary to evaluate are stored in reserved volatile registers inside STCB modules, and include
1) values in the record associated with sensor (stored in a register inside the module);
2) values in a fresh report from sensor (register r);
3) values of record is specified for for related sensors, and and are set to 0 (registers );
4) constants in (register c); and
5) instructions
The m logical operations in provide the instructions to recompute the outputs of following a fresh report from . On evaluation of the record is modified. Specifically,
1) replace the previous values ,
2) output replaces output of the previous execution of ,
3) and is replaced with
(6)
to reflect the staleness of the w outputs.
3.3. Synthetic Sensors
The sensors can be of three types―real sensors, state-report sensors, and synthetic sensors.
Real sensors are physical sensors in the SCADA deployment. Specifically, during the STCB deployment phase, real sensors are bound to SMs.
State reports from a foreign STCB system are seen by the receiving CM as a “sensor” report; as such reports are authenticated by the CM of the foreign deployment, state-report sensors are bound to foreign CMs.
Synthetic sensors are not bound to CMs or SMs. In a design record , if , implies that evaluation of results in the “synthesis of a fresh report from a (synthetic) sensor ”. Just as a fresh report from a sensor should be followed by evaluation of , a fresh report from synthetic sensor should be followed by evaluation of .
The primary motivation for using such synthetic sensors is to cater for complex where the fixed number of (m) instructions in may be insufficient. By specifying a synthetic sensor , evaluation of is continued as evaluation of . Similarly, evaluation of , specified by the designer as may be continued again, if necessary, by specifying .
3.4. Constants and Look-Up Tables
In general, the value ―which is a one way function of constants required to evaluate ―may be a function of multiple sets of l constants (l constants in each set). More specifically, is itself the root of a Merkle tree, where each leaf specifies a set of l constants. Any number of such leaves may exist, with a minimum of one.
Permitting an unlimited number of constants facilitates the use of look-up tables (LUT) for evaluating . An LUT for evaluating a complex function will have many sets of l constants―say where there are no practical limits on j. In each set two of the l constants will specify the range of the independent variable x, and one will specify the corresponding dependent variable y. For 2 dimensional LUTs of the form , four of the l constants will specify the ranges for the two independent variables, and a fifth constant will specify the corresponding value of y.
Special instructions (say LUT1 and LUT2) in the instruction set will specify the operands―the dependent and independent variables. As one possible design of the two instructions, instruction LUT1 interprets constants and as the range of the independent variable x and constant as the corresponding dependent variable y. Before the module executes the instruction LUT1, it expects the value of the input operand to be within the range of constants and ―else the execution will not proceed. If the input operand satisfies the requirement, then the value of the output operand is set to . Similarly, for LUT2, constants and specify the range of the first input operand ; specify the range of the second operand ; is the corresponding output y.
3.5. Instruction Set
Each instruction in specifies a logical operation (opcode), input operands (1, 2 or 3) depending on the type of opcode, and an output operand. The operands are restricted to be values in STCB registers , c, r, etc. Specifically, as the instructions in each can modify only values in register (the current state of sensor when is computed), only such values, and a temporary register T can be specified as output operands.
Examples of simple logical operations include traditional operations like addition/subtraction, logical operations, bit-wise operations, COPY, MOV, etc., and some special instructions like LUT1 and LUT2. Other potentially useful special instructions for SCADA systems is a bounds checking operation CHKB which checks a specific value is within set-points specified as constants and tolerance checking TOL where two values are verified to be close enough―within a tolerance specified by a third value.
Ultimately, a comprehensive specification for STCB modules will fix values like the number of related sensors q, number of outputs w, and the number of constants l (and hence the number of addressable values in the STCB registers). Such a specification will also include a detailed listing of all permitted opcodes and their interpretation. This paper, however, is restricted to describing some of the salient features of STCB modules.
3.5.1. Instructions for Thermal Power Plant Example
For the example system 3.1.1, let be the values reported by sensors required to determine the state of the system.
Let us assume that the state report expected by the stake-holder is a single bit value― if the system is in an acceptable state, and otherwise. According to the designer, the system is in an acceptable state if the following conditions are satisfied:
1) are all within thresholds respectively, where represents lower and higher thresholds for sensor .
2) The speed of turbine should be between upper and lower limits depending on the temperature and pressure inside the turbine cell. where is another threshold (the speed of the turbine should be a specific function of the pressure and temperature inside the turbine cell).
3) The position of the fire regulator should be between upper and lower limits depending on the current speed of turbine and the current temperature and pressure values inside the boiler cell. where is a function of the temperature and pressure of the boiler.
Let the maximum number of related sensors be ; the number of outputs of each be ; and the number of constants . A possible design of functions is as follows:
1) checks if are within thresholds respectively. The inputs are and constants. The output is written in . For evaluation of , is specified as a related sensor. As no other related sensors are used, and are set to 0.
2) performs LUT2 operation for function . The inputs are and an LUT leaf. The output is written . For chaining the output of (now stored in register ) to entire system state, the current value at output register of is copied to ‘s output register .
3)
regards
and
as related sensors, and perform LUT2 operation
on
(an output of related sensor
) and value
of other related sensor
(now stored in register
. The contents of output register
of
are copied to
of
.
4)
checks if
are within thresholds
respectively. The inputs are
and constants. The output is provided in register
.
is specified as a related sensor of
.
5)
regards
as related sensor and perform a LUT2 operation
on value
of related sensor
(value u in record
) and
(u in register





6) 







a) if 










b) if 






A result of AND operation of output registers of




The constants required to evaluate 

1) A tree with one leaf with 8 constants 

2) A tree with one leaf with 8 constants 

3) Three trees―one for a 2D LUT for function 





With available information from 
              
where 
4. STCB Deployment
The deployer of the SCADA system is trusted to verify the integrity of the physical bindings between various sensors and SMs. Specifically, the deployer is required to permanently connect the outputs of every sensor to an SM, and apply tamper-evident seals to such connections. The deployer specifies binding records of the form
Table 1. Instructions for thermal power plant.

to convey that
1) measurements corresponding to sensor 





2) 

3) 


To indicate that a module 

Depending on the requirements specified by the stake holder, the deployer also specifies reporting records of the form

to indicate that the value 





All such 



The end-result of the design and deployment processes are two hash trees with roots 





can now be seen as the root of a Merkle tree with two sub-trees―the design tree to the left, with root


Note that two different deployments of identical SCADA systems may have the same design root



Figure 4. Static descriptor 
4.1. STCB Operation
To commence operation in a SCADA deployment, the STCB module 




During regular operation of the system the STCB manager U receives authenticated sensor reports from SMs (and possibly CMs from foreign deployments), and submits them one at a time, to the CM

where
1) values 
2) c is the clock-tick value of the module that created the report;
3) 
4) 

Along with the report from sensor 



The STCB manager U is then required to submit other values required for the CM to evaluate





As dynamic sensor states associated with the n sensors are maintained by U as leaves of dynamic a Merkle tree with root











The values used for evaluating 





If untrusted U does not modify 




At any time, a reporting record 








If U does not invoke functions to evaluate any





4.1.1. STCB Interfaces
To interact with the STCB modules (SMs and CM), U employs various interfaces exposed by the modules. An interface 







A function 








To the extent the SMs and the deployer (who is trusted to verify and specify bindings between sensors and SMs) are trusted, we can trust the authenticity of sensor reports provided to the CM module. To the extent the CM module

In practice, the SMs will need to be located as close as possible to the sensors to improve the security of the binding between sensors and SMs. The CM could be housed in any location―for example, a secure location far removed even from the SCADA control center. Components of U will need to be housed close to SMs, and close to the CM.
5. STCB Architecture
STCB modules have a unique identity, and a unique secret issued by a trusted key distribution center (KDC). Two modules (say) 








Module 



Every module possesses three values that are affected whenever a module is powered on:
1) a clock tick counter c, which is set to 0;
Self-secret
Static root
Dynamic root
Peer module params
Constants
Sensor report register
Sensor state register
Related sensor states
Where
Temporary register
SM Registers
2) a non-volatile session counter
3) a random secret
5.1. Module Registers
Non-volatile storage inside the module is used to store three values―secret Q issued by the KDC, session counter
Every module has the following reserved volatile registers:
The self-secret 

The register 

The register c is reserved for storing a set of l constants to be used to evaluate some 






For example, if at some instant of time,
1) the contents of the dynamic record 


2) records corresponding to sensor 

3) values from a fresh report from sensor 

The SM register 

STCB modules have a built in hash function 

An in-built function 





5.2. Initializing Peer Parameters
The pairwise secret K that a module M shares with a peer module 








STCB modules possess reserved registers to store the identity 






To facilitate secure communications between two modules 










5.3. Self Certificates
Two types of certificates are computed by STCB modules―binary hash tree certificates, and offset certificates.
5.3.1. Binary Tree Certificates
A binary hash tree certificate is computed as

Such a self-memoranda states that “x is a node in a binary hash tree with root y”, and “if 

STCB modules expose a function 

A function 






The primary need for the function 



5.3.2. Offset Certificates
An offset certificate is computed as

and states that the module M (that issued the certificate) had performed a handshake within a duration 






The function 




The function 



























The output of 






5.4. Initializing STCB Modules
Initializing an STCB module M implies initializing three internal registers reserved for values 



As 



Similarly, as binding record 



Function 
1) a CM for a deployment 
2) as an SM for a sensor S in deployment
To initialize a module as a CM for the deployment, the inputs 






To initialize the module as a SM the certificate, inputs 







For a module 










During regular operation, any dynamic sensor record can be loaded on to any register 






5.5. Sensor and State Reports
In an STCB deployment with SMs



The handshake sequence (which involves two calls to 

1) k responders

2) 

After the 




Now modules are ready to exchange authenticated messages. More specifically, SMs send authenticated and time-stamped sensor reports to



where for sensor reports (from SMs to
1) 

2) 
3) 
A report from 












When 




Corresponding to a state report for a “sensor”







Function 



1) inputs 



2) input 


3) inputs 


4) and inputs 






The function returns error if



Ultimately, the purpose of function 







5.6. Sensor Updates and Incremental State Evaluations
Values r in a fresh sensor report from 







Recall that register r is populated by function




The main purpose of 






it should be ensured that the current state of sensor 





Specifically,
1) the constants C should be such that 


2) the instructions A should be such that
3) 





4) the values 

During execution of the algorithm A, in situations where many options exist for choosing the set of constants C consistent with 








6. STCB Protocol
The STCB protocol can be seen as the actions to be performed by the untrusted STCB manager U to submit sensor reports from SMs and CMs of foreign deployments to the CM 

6.1. Generation of Offset Certificates
The first step in the operation of an STCB deployment is that of performing handshakes between various modules to obtain offset certificates. In general one offset certificate will be generated for every module specified in the binding records of the deployment.
For a STCB system with n sensors (real, state-report and synthetic) the total number of binding records is



A total of 




Before 



6.2. Generating Static Binary Tree Certificates
The second step is for U to obtain binary tree certificates corresponding to all leaves of the static tree with root



where 

1) n is the number of design records: one for each sensor (real, state-report, or synthetic);
2) one leaf corresponds to the value 
3) 

4) m is the number of reporting records.
6.3. Initialization and Regular Operation
The third step is the initialization of STCB modules to operate in deployment




On completion of the three steps, the STCB manager maintains a dynamic Merkle tree with leaves as sensor records. As the initial values of such records are specified by the designer, the root of the tree should be the same as the initial value 
Once all STCB modules have been initialized, sensor reports from SMs (or CMs of foreign deployments) are submitted to the CM as and when they are received. In general, not all sensors may report at the same frequency.
As all SMs send messages only to the CM, 

To create a sensor report from an SM, U will invoke 
Once a sensor report for some sensor 






The STCB manager invokes 



Corresponding to the sensor state record for sensor 








Finally, the STCB manager invokes









At any time the STCB manager can invoke a 




7. Conclusions
The ever growing complexity of systems poses a severe threat―the possibility of hard-to-detect hidden functionality that can be exploited to take control of the system. Current strategies for securing SCADA systems are predominantly focused on development of suitable intrusion detection systems. Such security measures ignore the very real possibility of hidden functionality in the intrusion detection systems themselves.
In the proposed approach to secure SCADA systems only STCB modules are trusted to provide the assurance that “no attack will go undetected”. The proposed approach involves three stages―a design process carried out by a designer with good domain knowledge, a deployment process carried out by a security professional, and regular operation of the STCB system. The designer and deployer together specify a concise description 

Some of the important features of the STCB approach that make it well suited for any SCADA system of any size include
1) the ability to support hierarchical deployments;
2) the ability to support any type of function
3) the ability to specify synthetic sensors.
Such features are intended to enable the use of STCB modules for securing any SCADA system.
The first pre-requisite for deployment of STCB based security solutions is the actual availability of STCB modules/chips. Towards this end, the work that has been performed is a small first step―identification of a functional specification of such chips. In arriving at an appropriate functional specification, some our main goals have been
1) reducing computational and memory requirement inside STCB chips;
2) reducing interface complexity (size of inputs and outputs to/from the STCB chips); and
3) simplifying the STCB protocol―which is a specification of a sequence of interactions with the STCB modules―to realize the desired assurances.
The proposed functional specification (for STCB modules) is merely a specification, and not the specification. Just as there are numerous ways to realize a block-cipher or a hash function, there are numerous ways to arrive at a “set of STCB functions” (which can be leveraged to realize the same assurances). The functional specification in this paper is however the first of its kind.
Acknowledgements
This research was funded by the Department of Homeland Security (DHS)-sponsored Southeast Region Research Initiative (SERRI) at the Department of Energy’s Oak Ridge National Laboratory.
Cite this paper
Velagapalli, A. and Ramkumar, M. (2018) A Security Architecture for SCADA Systems. Journal of Information Security, 9, 100-132. https://doi.org/10.4236/jis.2018.91009
References
- 1. Matrosov, A., Rodionov, E., Harley, D. and Malcho, J. (2010) Stuxnet under the Microscope. https://www.esetnod32.ru/company/viruslab/analytics/doc/Stuxnet_Under_the_Microscope.pdf
- 2. Turk and Robert, J. (2005) Cyber Incidents Involving Control Systems. Idaho National Engineering and Environmental Laboratory, Idaho Falls.
- 3. Lynch, L.E., Comey, J.B. and Carlin, J.P. (2016) Manhattan U.S. Attorney Announces Charges Against Seven Iranians for Conducting Coordinated Campaign of Cyber Attacks against U.S. Financial Sector on Behalf of Islamic Revolutionary Guard Corps-Sponsored Entities. News, Southern District of New York.
- 4. Eric, A. and Jim, F. (2015) Ukraine Utility Cyber Attack Wider than Reported: Experts. http://www.reuters.com/article/us-ukraine-crisis-malware-idUSKBN0UI23S20160104
- 5. McWhorter, D. (2013) Mandiant Exposing APT1—One of China’s Cyber Espionage Units & Releases 3,000 Indicators.
- 6. Reid, W. (2013) Spear Phishing Attempt. Digital Bond. http://www.digitalbond.com/blog/2012/06/07/spear-phishing-attempt/
- 7. Gorman, S. (2013) Chinese Hackers Suspected in Long-Term Nortel Breach. The Wall Street Journal.
- 8. Fidler and David, P. (2011) Was Stuxnet an Act of War? Decoding a Cyberattack. IEEE Security & Privacy, 9, 56-59. https://doi.org/10.1109/MSP.2011.96
- 9. Sood, A. and Enbody, R. (2013) Targeted Cyber Attacks—A Superset of Advanced Persistent Threats. IEEE Security & Privacy, 11, 54-61.
- 10. Ramkumar, M. (2016) Cybersecurity: It’s All about the Assumptions. National Cyber Summit (NCS), Huntsville, 8-9 June 2016.
- 11. Weaver, N., Paxson, V., Staniford, S. and Cunningham, R. (2003) A Taxonomy of Computer Worms. Proceedings of the 2003 ACM Workshop on Rapid Malcode, Washington DC, 27 October 2003, 11-18. https://doi.org/10.1145/948187.948190
- 12. Reid, W. (2011) Cyber Attacks on Texas Utility. http://www.washingtontimes.com/news/2011/nov/18/hackers-apparently-based-in-russia-attacked-a-publ
- 13. Moore, D., Paxson, V., Savage, S., Shannon, C., Staniford, S. and Weaver, N. (2003) Inside the Slammer Worm. IEEE Security and Privacy, 99, 33-39. https://doi.org/10.1109/MSECP.2003.1219056
- 14. Lampson, B., Abadi, M., Burrows, M. and Wobber, E. (1992) Authentication in Distributed Systems: Theory and Practice. ACM Transactions on Computer Systems (TOCS), 8, 18-36. https://doi.org/10.1145/138873.138874
- 15. Wright, A., Kinast, J. and McCarty, J. (2004) Low-Latency Cryptographic Protection for SCADA Communications. Applied Cryptography and Network Security. Lecture Notes in Computer Science, Vol. 3089, Springer, Berlin, 263-277. https://doi.org/10.1007/978-3-540-24852-1_19
- 16. Tsang, P. and Smith, S.W. (2007) YASIR: A Low-Latency, High-Integrity Security Retrofit for Legacy SCADA Systems. Proceedings of the Ifip Tc 11 23rd International Information Security Conference, Vol. 278, Springer, Boston, 445-459. https://doi.org/10.1007/978-0-387-09699-5_29
- 17. Wang, Y. and Chu, B.-T. (2012) sSCADA: Securing SCADA Infrastructure Communications. International Journal of Communication Networks and Distributed Systems, 6, 59-78. https://doi.org/10.1504/IJCNDS.2011.037328
- 18. Majdalawieh, M., Parisi-Presicce, F. and Wijesekera, D. (2006) DNPSec: Distributed Network Protocol Version 3 (DNP3). Security Framework. In: Elleithy, K., Sobh, T., Mahmood, A., Iskander, M. and Karim, M., Eds., Advances in Computer, Information, and Systems Sciences, and Engineering, Springer, Dordrecht, 227-234. https://doi.org/10.1007/1-4020-5261-8_36
- 19. Hieb, J., Graham, J. and Patel, S. (2007) Security Enhancements for Distributed Control Systems, Mathematics and Its Applications. 2nd Edition, Critical Infrastructure Protection, Springer, Berlin, 133-146. https://doi.org/10.1007/978-0-387-75462-8_10
- 20. Shahzad, A. and Musa, S. (2012) Cryptography and Authentication Placement to Provide Secure Channel for SCADA Communication. International Journal of Security, 6, 28.
- 21. Patel, A., Joaquim Jr., C. and Pedersen, J. (2013) An Intelligent Collaborative Intrusion Detection and Prevention System for Smart Grid Environments. Computer Standards & Interfaces. https://doi.org/10.1016/j.csi.2013.01.003
- 22. Berthier, R. and Sanders, W.H. (2010) Intrusion Detection for Advanced Metering Infrastructures: Requirements and Architectural Directions. 2010 First IEEE International Conference on Smart Grid Communications (SmartGridComm), Gaithersburg, 4-6 October 2010, 350-355. https://doi.org/10.1109/SMARTGRID.2010.5622068
- 23. Zhu, B., Sastry, S. and Fefferman, C. (2010) SCADA-Specific Intrusion Detection/Prevention Systems: A Survey and Taxonomy. Proceedings of the 1st Workshop on Secure Control Systems (SCS), Stockholm, 12 April 2010, 34.
- 24. Merkle, R.C. (1980) Protocols for Public Key Cryptosystems. IEEE Symposium on Security and Privacy, Oakland, 14-16 April 1980, 122. https://doi.org/10.1109/SP.1980.10006
- 25. Ramkumar, M. (2008) On the Scalability of an Efficient Nonscalable Key Distribution Scheme. 2008 International Symposium on a World of Wireless, Mobile and Multimedia Networks, Newport Beach, 23-26 June 2008, 1-6.
NOTES
1Stuxnet was able to use about twenty zero-day vulnerabilities [11] in a popular commercial SCADA-system design software to gain control over the plant. Stuxnet has the potential to turn off pumps, control actuators, and still report that everything is normal. Due to its popularity, this worm is freely available, and could lead to more drastic attacks upon re-engineering.
2“A hacker calling himself ‘Prof’ posted screen shots from his computer showing him logged onto the control system of a water utility in the Texas town of South Houston” [12] .
3The SCADA systems data acquisition server was infected through the corporate network. The entry point for the Slammer worm [13] was discovered to be a laptop.


































