supervisory control and data acquisition (scada) system security

51
Supervisory Control and Data Acquisition (SCADA) system security

Upload: isabel-cooper

Post on 19-Dec-2015

231 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Supervisory Control and Data Acquisition (SCADA) system security

Supervisory Control and Data Acquisition (SCADA) system security

Page 2: Supervisory Control and Data Acquisition (SCADA) system security

SCADA

• Real time industrial process control systems used to centrally monitor and control remote or local industrial equipment

• Frequently used in chemical plant processes, oil and gas pipelines, electrical generation and transmission equipment, manufacturing facilities, water purification and distribution infrastructure, etc.

• Vital components of most nation’s critical infrastructures

Page 3: Supervisory Control and Data Acquisition (SCADA) system security

SCADA Systems

• Highly distributed• Geographically separated assets• Centralized data acquisition and control are

critical• Oil and gas pipelines• Electrical power grids• Railway transportation systems

• Field devices control local operations

Page 5: Supervisory Control and Data Acquisition (SCADA) system security

IP-Based Industrial Control Systems

• ODVA (Rockwell)• Profinet• Foundation Fieldbus HSE• Telvent• ABB 800xA

• Honeywell Experion• Emerson DeltaV• Yokogawa VNET/IP• Invensys Infusion• Survalent

• IP to the Control Network or even Device Network

Page 6: Supervisory Control and Data Acquisition (SCADA) system security

SCADA Security

• Perimeter Protection• Firewall, IPS, VPN, AV• Host IDS, Host AV• DMZ

• Interior Security• Firewall, IDS, VPN, AV• Host IDS, Host AV• NAC• Scanning

• Monitoring• Management

Page 7: Supervisory Control and Data Acquisition (SCADA) system security

Attackers

• Script kiddies• Hackers• Organized crime• Disgruntled insiders• Competitors• Terrorists• Hactivists• Eco-terrorists• Nation states

Page 8: Supervisory Control and Data Acquisition (SCADA) system security

Programmable Logic Controllers

• Computer based solid state devices• Control industrial equipment and processes• Regulate process flow

• Automobile assembly line• Have physical effect

Page 9: Supervisory Control and Data Acquisition (SCADA) system security

PLC Code Vulnerabilities Through SCADA Systems

Sidney E. Valentine, Jr.The University of South Carolina

Computer Science and Engineering

The following slides are modified from the PhD defense of Dr. Sidney Valentine

Page 10: Supervisory Control and Data Acquisition (SCADA) system security

• Currently there are working groups that have been created for the various infrastructure sectors of water, electricity and natural gas [6, 9]

• US Departments of Energy and Homeland Security each have written white papers and begun initiatives to begin investigation into the problem domain of SCADA systems in general [12, 3]

Related Work

Page 11: Supervisory Control and Data Acquisition (SCADA) system security

• ”it is important to note the use of the term SCADA, as these same technologies have not been employed on many legacy non-SCADA devices such as programmable logic controllers (PLCs), electronic drives, process sensors, and other field devices.” [13]

Related Work

Page 12: Supervisory Control and Data Acquisition (SCADA) system security

• Traditionally vendors focused on functionality and used physical security measures[7,8]• An attempt was made to try to “match”

physical security mechanisms online

• In creating our vulnerability chart, we look at types of vulnerabilities as well [12]• Classification by affected technology• Classification by error or mistakes• Classification by enabled attack scenario

Related Work

Page 13: Supervisory Control and Data Acquisition (SCADA) system security

• Creation of a Taxonomy of Vulnerabilities and their Severity Levels

• Development of models of these vulnerabilities and mitigation strategies

• PLC-Security Framework: Prevention, detection and removal of these vulnerabilities

• Proof of concept implementation

Research Overview

Page 14: Supervisory Control and Data Acquisition (SCADA) system security

SCADA and PLC Overview

Page 15: Supervisory Control and Data Acquisition (SCADA) system security

• Ladder logic overview

• What is ladder logic?• Why is it the programming language of choice

for automated control systems?

SCADA and PLC Overview

Page 16: Supervisory Control and Data Acquisition (SCADA) system security

• Standard Relay

• Points (1) and (3) – NO Contact

• Points (2) and (4) – NC Contact• Points (5) and (6) – Activation

Coil

SCADA and PLC Overview

• Standard PLC Contacts and Coils

• NO Contact

• NC Contact• Activation Coil

Normally Open Contact (NO)

Normally Closed Contact (NO)

Activation Coil

Page 17: Supervisory Control and Data Acquisition (SCADA) system security

Standard Ladder Logic Diagram

SCADA and PLC Overview

Page 18: Supervisory Control and Data Acquisition (SCADA) system security

• Overview of PLC Hardware• Configuration Types

• Block • Rack Mount

• PLC CPU• Input and Output Cards (or Connections)

• Analog or Digital• DC or AC

SCADA and PLC Overview

Page 19: Supervisory Control and Data Acquisition (SCADA) system security

• Increased risk to SCADA systems, introduces another element of risk to the PLC and all of the control elements• PLC’s dictate the functionality of the process• PLC programming software and SCADA control

software can be housed on the same machine

• The newest PLC hardware devices allow for direct access to the PLC through the network

SCADA and PLC Security

Page 20: Supervisory Control and Data Acquisition (SCADA) system security

SCADA and PLC Security

SCADA System Control Flow

Page 21: Supervisory Control and Data Acquisition (SCADA) system security

• “Prior to the Stuxnet attack (2010), it was believed any cyber attack (targeted or not) would be detected by IT security technologies..” [13]

• Therefore, it is imperative that a standard be implemented that would allow both novice and experience PLC programmers to verify and validate their code against a set of rules.

• How do we show that PLC code and be verified and validated to assist in the mitigation of current and future security risks (errors)?

SCADA and PLC Security

Page 22: Supervisory Control and Data Acquisition (SCADA) system security

PLC Security Framework (PLC-SF)

Static Analysis Tool: Compiler Workflow

Page 23: Supervisory Control and Data Acquisition (SCADA) system security

PLC Security Framework (PLC-SF)

Page 24: Supervisory Control and Data Acquisition (SCADA) system security

• Components:• PLC Security

Vulnerability Taxonomy• Design Patterns• Severity Chart

• Engines:• Taxonomy Engine• Design Pattern Engine• Severity Engine

PLC Security Framework (PLC-SF)

Page 25: Supervisory Control and Data Acquisition (SCADA) system security

• Attack Severity Analysis

• Building the Vulnerability Taxonomy

• Potential Exploitation of Coding Errors

• Modeling PLC Vulnerabilities

Vulnerabilities Analysis

Page 26: Supervisory Control and Data Acquisition (SCADA) system security

• Each row of the Severity Chart represents a different level of security risk, within the PLC error found

• The error levels range from A – D, with A being the most severe and D being the least severe

• Each column represents the effects which can occur in the PLC and those that can occur in the SCADA system PC

Attack Severity Analysis – Severity Chart

Page 27: Supervisory Control and Data Acquisition (SCADA) system security

Attack Severity Analysis – Severity Chart

Severity Effects in PLC Effects in SCADA

A PLC Code will not perform the desired tasks

Will not allow for remote operation of the process

B Serious hindrance to the process

The process could experience intermittent process failure

C Adversely effects PLC code performance. A minimal cost effect to the project, but a “quick fix” is possible

Data shown on the SCADA screen is most likely false

D Effects the credibility of the system, but the PLC code is operable

Incorrect data could be randomly reported, cause a lack of confidence in the system

Page 28: Supervisory Control and Data Acquisition (SCADA) system security

• Severity Classifications:

• Severity Level A: Could potentially cause all, or part, of a critical process to become non-functional.

• Severity Level B: Could potentially cause all, or part, of a critical process to perform erratically.

• Severity Level C: Denote a “quick fixes”

• Severity Level D: Provide false or misrepresented information to the SCADA terminal.

Attack Severity Analysis – Severity Chart

Page 29: Supervisory Control and Data Acquisition (SCADA) system security

• Purpose:• To aid the process of detecting these

vulnerabilities in the PLC code

• Intended to be extensible• Created such that it can be expanded as:

• Future versions of PLC’s are created• New errors are found

Building the Vulnerability Taxonomy

Page 30: Supervisory Control and Data Acquisition (SCADA) system security

Building the Vulnerability Taxonomy

Page 31: Supervisory Control and Data Acquisition (SCADA) system security

Building the Vulnerability Taxonomy

Vulnerability Taxonomy: Software Based (Virtual) Errors

Page 32: Supervisory Control and Data Acquisition (SCADA) system security

• Software Based (Virtual) Errors:• Attributes:

• Error Class• Possible Value: Design Level Error

• Error Sub-Class• Possible Values: Logic Errors, Duplicate

Objects Installed, Unused Objects and Hidden Jumpers

Building the Vulnerability Taxonomy

Page 33: Supervisory Control and Data Acquisition (SCADA) system security

Building the Vulnerability Taxonomy

Page 34: Supervisory Control and Data Acquisition (SCADA) system security

• Logic Errors:• Attributes:

• Sub-Class• Possible Values: Placement and

Element Component Errors, Scope and Linkage Errors

• Placement and Element Component Errors• Possible Values: Beginning of Rung

Functions, End of Rung Functions

Building the Vulnerability Taxonomy

Page 35: Supervisory Control and Data Acquisition (SCADA) system security

Potential Exploitation of Coding ErrorsError Type Taxonomy

ClassificationMalicious User Opportunity

Process Critical / Nuisance Duplicate Objects Installed Alterations of one or more of the duplicate objects

Process Critical Unused Objects Pre-loaded variables allow for an immediate entry point into the system

Process Critical Scope and Linkage Errors Installation of jump to subroutine command which would alter the intended file to file interaction

Process Critical Logic Errors Immediate entry point to logic level components such as timers, counters, and arithmetic operations

Process Critical / Nuisance Hidden Jumpers Would allow for a placement point for a system bypass

Page 36: Supervisory Control and Data Acquisition (SCADA) system security

• State Transition Diagrams• Approach: motivated by the success of using

state transition diagrams to model intrusion patterns [16, 22]

• We create state transition diagrams to represent vulnerabilities

Modeling PLC Vulnerabilities

Page 37: Supervisory Control and Data Acquisition (SCADA) system security

PLC Ladder Logic: Race Condition

Page 38: Supervisory Control and Data Acquisition (SCADA) system security

State Transition Analysis: Race Condition

Page 39: Supervisory Control and Data Acquisition (SCADA) system security

• Purpose:• To provide guidance to the developer to

remove the vulnerabilities detected• Methodology:

• We have developed a set of design patterns supporting targeted best practices guidelines for the ladder logic software developer

• Goal:• Our goal is to keep these design patterns

vendor neutral, not targeting specific industry types or PLC manufacturers

• Allows for the adaptation of our approach by all PLC developers

Supporting Correct Software Development

Page 40: Supervisory Control and Data Acquisition (SCADA) system security

• The Design Pattern Engine uses information received from the Vulnerability Engine to determine the vulnerability assessed and assign the necessary design pattern to mitigate the vulnerability

Supporting Correct Software Development

Page 41: Supervisory Control and Data Acquisition (SCADA) system security

Supporting Correct Software Development: Race Condition Example

Classification Placement and Element Component ErrorsSub-Classification Beginning of Rung Elements

Instance Normally Closed Contacts, Normally Open Contacts (Timer Done Bits)

Problem Incorrect placement of a timer done bit element can cause the process involving this element to go into a race condition

Solution As a timer is encountered in a ladder logic rung, the timer done bit will be paired with that timer and a determination will be made as to the correctness of the current placement. This will be accomplished with the Design Pattern Engine of the Static Analysis Tool

Application The Vulnerability Engine, upon determination of a race condition, will relay that information to the Static Analysis Tool. The Static Analysis Tool will use the Design Pattern Engine to suggest a correct design pattern to mitigate the race condition

Impacts The impact of this solution is the removal of the vulnerabilities ranging from severity levels A – D.

Page 42: Supervisory Control and Data Acquisition (SCADA) system security

Supporting Correct Software Development: Race Condition Example

Page 43: Supervisory Control and Data Acquisition (SCADA) system security

Supporting Correct Software Development: Race Condition Example

Page 44: Supervisory Control and Data Acquisition (SCADA) system security

• Overview• Static Analysis Tool Input• Static Analysis Tool Output• Implementation Example

Static Analysis Tool

Page 45: Supervisory Control and Data Acquisition (SCADA) system security

• Purpose:• Detects PLC Code Vulnerabilities• Recommends Mitigation Strategies

• Detection Methodology:• The Static Analysis Tool uses the Vulnerability

Taxonomy and the State Transition Diagrams• Mitigation Methodology:

• Each vulnerability is cross-referenced with a list of design patterns

Static Analysis Tool: Overview

Page 46: Supervisory Control and Data Acquisition (SCADA) system security

• Input:• Ladder logic from an existing PLC program• The PLC Code Vulnerability Taxonomy• State Transition Diagrams of the vulnerabilities• A list of Design Patterns• The Severity Chart

Static Analysis Tool: Input

Page 47: Supervisory Control and Data Acquisition (SCADA) system security

• Output:• List of vulnerabilities• Severity rankings of the vulnerabilities• Associated Design Patterns• Suggested ladder logic solution

• The level of output provided, once presented to the user, should provide a basis to make a sound decision to substantiate, as well as mitigate, the security risk determined by the vulnerability engine

Static Analysis Tool: Output

Page 48: Supervisory Control and Data Acquisition (SCADA) system security

• Proof of Concept Implementation:• Running on Windows 7• Coded in C#• Screen shots are provided

Static Analysis Tool: Implementation Example

Page 49: Supervisory Control and Data Acquisition (SCADA) system security

• Overview of Research Area:• Programmable Logic Controllers (PLC) are a

relatively new area of SCADA security research• SCADA Systems depend on the data and

control supplied by the PLC• Our research has allowed us to look at the

SCADA system from:• The gathering point of the data• The device that controls the automation

process in its entirety

Conclusions and Future Research

Page 50: Supervisory Control and Data Acquisition (SCADA) system security

• Research Intent:• Provide a mechanism which would allow for

the protection of PLC ladder logic code• Provide protection for the SCADA system in its

entirety, through the protection of its control mechanism

Conclusions and Future Research

Page 51: Supervisory Control and Data Acquisition (SCADA) system security

• Impact• This work instantiates the need to secure not

only the SCADA PC’s but also the PLC’s themselves

• The contributions of this research are:• Classification of PLC software

vulnerabilities• A severity ranking system• Mitigation strategies• A Static Analysis Tool

Conclusions and Future Research