Вы находитесь на странице: 1из 5

2017 IEEE 30th Canadian Conference on Electrical and Computer Engineering (CCECE)

Enhancing Suricata Intrusion Detection System for


Cyber Security in SCADA Networks
Kevin Wong, Craig Dillabaugh, Nabil Seddigh and Biswajit Nandy
Solana Networks, Ottawa, Canada
{kwong, cdillabaugh, nseddigh, bnandy}@solananetworks.com

Abstract — Industrial Control and SCADA (Supervisory Opening up of ICS networks has led to a number of security
Control and Data Acquisition) networks control critical issues. This is because the specialized protocols at the heart of
infrastructure such as power plants, nuclear facilities, and water ICS devices such as PLCs (Programmable Logic Controllers)
supply systems. These systems are increasingly the target of were designed for an environment which did not consider the
cyber attacks by threat actors of different kinds, with successful impact that networking would have on security of such systems
attacks having the potential to cause damage, cost and injury/loss - leaving the ICS systems susceptible to cyber security threats.
of life. As a result, there is a strong need for enhanced tools to
detect cyber threats in SCADA networks. This paper makes a In seeking to protect ICS networks from cyber attacks,
number of contributions to advance research in this area. First, security tools including firewalls and Intrusion Detection
we study the level of support for SCADA protocols in well-known Systems (IDS) must support the different specialized SCADA
open source intrusion detection systems (IDS). Second, we select protocols - support which has been limited to date.
a specific IDS, Suricata, and enhance it to include support for
detecting threats against SCADA systems running the This paper presents the results of research focused on
EtherNet/IP (ENIP) industrial control protocol. Finally, we broadening the coverage of IDS systems to support additional
conduct a traffic-based study to evaluate the performance of the SCADA protocols. As part of the study, we analyzed multiple
new ENIP module in Suricata - analyzing its performance in low open source IDS systems and implemented support in the
performance hardware systems. well-known Suricata IDS to detect cyber threats against
industrial controllers running the ENIP (EtherNet/IP) protocol -
Keywords—SCADA; Industrial Control; Cyber Security; a protocol widely used in the manufacturing sector. Finally,
Intrusion Detection Systems, IDS, Suricata; EtherNet/IP Protocol through an experimental study, we evaluated the performance
of running the ENIP-enabled version of Suricata on resource
I. INTRODUCTION constrained hardware. This is important because it would allow
the solution to be deployed on small form factor industrial
Industrial Control Systems (ICS) refer to the networked
grade hardware which could be cheaply and widely deployed
equipment and software used to control and monitor industrial
in a large number of places in an industrial control network -
processes. Such systems are used in critical infrastructure
thus ensuring higher cyber security coverage.
sectors and other industries including electrical, water,
wastewater, oil and natural gas, chemical, manufacturing and The rest of this paper is organized as follows. Section 2
transport. These systems may be localized, as in the case of a discusses related work. Section 3 evaluates open source IDS
manufacturing facility, or highly distributed, as in the case of systems for SCADA protocol support. Sections 4 and 5 analyze
an oil or gas pipeline or electrical grid. ICS are composed of the Suricata IDS design and present enhancements to support
specialized components including Programmable Logic ENIP. Section 6 provides a description of the performance
Controllers (PLCs), Distributed Control Systems (DCSs), and study and results. Section 7 concludes the document.
Supervisory Control and Data Acquisition (SCADA) systems.
In this paper we use the term SCADA and ICS interchangeably II. RELATED WORK
as is common in the literature - noting however, that SCADA
systems are but one component of ICS networks. Signature based intrusion detection systems are one of the
key components of a cyber security solution in IT networks. In
Historically, proprietary technologies were utilized for [1], the authors studied and compared the performance of the
SCADA and ICS networks including specialized protocols three most popular open source Intrusion Detection System
such as Modbus, DNP3, Profinet, BACnet and EtherNet/IP (IDS) tools - Snort, Suricata[2] and Bro. In the study, each IDS
(not to be confused with either the Ethernet or IP protocols). was built with default settings. The throughput of the multi-
This proprietary nature greatly assisted in their security – a threaded Suricata IDS is striking in comparison to the other
factor sometimes referred to as “security by obscurity”. The two systems - Snort in particular. In [3] the authors study the
standardization of various elements of ICS networks over the performance of Snort and Suricata on the Windows and Linux
last few years coupled with the trend of connecting these operating systems. However, none of these studies focus on
systems to WAN (Wide Area Networks), Enterprise Networks SCADA protocols specifically.
and the Internet, has opened up access to such networks.

-1-

978-1-5090-5538-8/17/$31.00 ©2017 IEEE


2017 IEEE 30th Canadian Conference on Electrical and Computer Engineering (CCECE)

There have been attempts to utilize Snort and Suricata in vulnerabilities for various SCADA related threats related to
SCADA networks as well. However, support for SCADA other technologies such as ODBC and ActiveX.
protocols is limited for these IDS systems. The Digital Bond
project Quickdraw provided signatures for the Modbus and As part of the Quickdraw project DigitalBond also
DNP3 protocols. These modules have been part of the Snort developed SCADA IDS preprocessors and plugins for the
distribution since 2012. Quick draw also appears to have Snort IDS. Early in the project, rules were also developed for
support [4] for the EtherNet/IP protocol which can be utilized the ICCP protocol, but ongoing support for the rules was
with Snort. As of November 2014, the Suricata IDS only dropped as they were found to be ineffective without a
supported signatures and detection of attacks against the preprocessor, which apparently had not been developed [8].
Modbus protocol. The SCADA preprocessors allow the usage of keywords
Academic research on intrusion detection for SCADA that can be used in Snort rules to evaluate the decoded content
systems has continued. In one example, signatures for ICS of the preprocessor. In 2011 the Open Information Security
protocols used in electrical utilities were developed [5] by a Foundation [9] announced that work would be carried out to
team in the United Kingdom and added as a module to Snort. ensure that these preprocessors would be updated to work with
In [6], Niventhan and Papa proposed a framework for dynamic the latest versions of Snort. However, this no longer appears to
be part of the plans. DigitalBond dropped support for the
rule generation and deep packet inspection. Their approach is
applicable for both Snort and Suricata. preprocessors and moved the signatures to GitHub around
April 2015 [10]. In addition, Emerging Threats does not
While the majority of work on signature based methods in appear to have done any work to upgrade the signatures or
Academia has focused on the popular Snort IDS, Lin et al. [7] preprocessor.
examined adapting the well-known Bro IDS to support
SCADA protocols. Like Quickdraw, while this research B. Findings and Proposed Approach
initially presents an add-on product to an existing open source TABLE I. presents a summary of our findings. Our study
IDS, aspects of this research have since been integrated into the indicates that Snort had the best support with preprocessor and
mainline Bro distribution signatures for all three SCADA protocols under review, while
Bro had support for Modbus and DNP3. At the time, Suricata
III. OPEN SOURCE IDS-COVERAGE OF SCADA PROTOCOLS only had support (under development) for Modbus. At the time
Our initial research focused on studying the level of support of publication we understand that DNP3 support may also be
available in existing open source IDS tools to detect cyber available in a future distribution of Suricata.
threats against SCADA networks. IDS systems almost
exclusively rely on signature based threat detection in which TABLE I. SUPPORT FOR SCADA PROTOCOLS IN OPEN SOURCE
network packets are examined to find traffic which matches the IDS (AS OF JANUARY 2016)
bit patterns (signature) for known threats. Due to a variety of
reasons, IDS support for SCADA protocols lags behind IDS Protocol Preprocessor Signatures
support for more commonly used IT network protocols. Such Snort Modbus Yes Yes
systems lack both extensive libraries of signatures, and base DNP3 Yes Yes
support for decoding the protocols themselves. EtherNet/IP No Yes
Suricata Modbus Yes Yes
A. Study of SCADA Protocol Coverage DNP3 No Yes
EtherNet/IP No Yes
Our work covered multiple open source IDS systems with
Bro Modbus Yes Modbus Events
particular focus on the three most widely deployed systems-
DNP3 Yes DNP Events
Snort, Suricata, and Bro. We initially sought to study the level
EtherNet/IP No No
of support for a wide-range of SCADA protocols. However,
due to the paucity of support, we refocused our efforts on three
of the more popular SCADA protocols - Modbus, DNP3, and As a result of the above, steps were taken to design and
EtherNet/IP. implement a new module for Suricata with support for the
We examined two aspects of protocol support, first whether EtherNet/IP protocol. Suricata was selected because it had
the system included a pre-processor capable of handling the more widespread deployment relative to Bro, provides
protocol specifically, and whether the systems could employ significant performance advantages over Snort, and yet had
signatures for known threats. A pre-processor is important less SCADA preprocessor support than the other 2 older open
because in its absence, cyber attackers can use packet source IDS tools.
fragmentation to defeat the signature matching engines.
IV. SURICATA IDS
The Quickdraw package referenced earlier in this paper
took an important first step to enhance Snort with SCADA Suricata [2] is a newer IDS. It was initially funded by the
protocol support. The package provides a number of Snort Department of Homeland Security's Directorate for Science
SCADA rules that can be used by Snort and Suricata. There and Technology and is designed to work with the Snort
are 23 DNP3 rules, 16 EtherNet/IP rules, and 14 Modbus TCP rulesets. Rule sets are available from Emerging Threats or
rules in total. In addition there are rules to identify 85 Emerging Threats Pro.

-2-
2017 IEEE 30th Canadian Conference on Electrical and Computer Engineering (CCECE)

Suricata was developed to be a “next generation IDS V. DESIGN TO SUPPORT ENIP PROTOCOL
engine” with IPS (Intrusion Prevention System) capabilities In order to develop support for a new protocol in an IDS
designed to be backwards compatible with Snort rulesets. system it is first important to understand and deconstruct the
Suricata was designed as a multi-threaded system, enabling it protocol. EtherNet Industrial Protocol (EtherNet/IP) is an
to take advantage of multiple cores. On a single core machine, industrial network protocol that combines standard Ethernet
Snort has been shown to outperform Suricata. However, technologies with the media-independent Common Industrial
Suricata exhibits superior performance on multi-core machines Protocol (CIP). CIP is widely used as a unified communication
with rulesets optimized for Suricata. As a result, it can easily architecture in the manufacturing sector.
examine large volumes of traffic without having to reduce the
number of rules. Suricata is also distinguished by its ability to The EtherNet/IP encapsulation protocol can be used over
provide visibility into the Application layer and faster parsing TCP and UDP. The same reserved port number (44818) is
of HTTP Streams. It can examine HTTP traffic regardless of used for TCP/UDP communications on EtherNet/IP devices.
the port number used and does not rely on port numbers to EtherNet/IP can be viewed as consisting of two parts: (i) the
identify traffic. Suricata also allows inspection inside protocol EtherNet/IP encapsulation and (ii) CIP. The EtherNet/IP
streams and as a result can extract files from HTTP sessions for encapsulation header contains data describing the connections,
further examination [2]. sessions, and methods of communications. The CIP portion
contains the information on objects, instances, attributes and
values.
CIP connected messages fall into one of 7 transport classes
(labeled 0 through 6). Class 0 and 1 connections are
transmitted using UDP, while class 2 and 3 are transmitted
using TCP. In both cases the messages are encapsulated using
the encapsulation protocol (with a full Encapsulation Header
and Encapsulated Data section). Classes 4, 5 and 6 do not use
the encapsulation protocol described here.

Fig. 1. Suricata Architecture [11]

With the high speed of today's networks and increasing


sophistication in cyber attacks, there is a need for high
performance IDS tools to rapidly process packets, reconstruct
streams and apply pattern matching for signature-based threat
detection. Performance of such systems depends on multiple
factors including the performance of its pattern matching
engine where incoming packets are checked against signatures
(rulesets) representing known security threats. A typical IDS
ruleset may contain tens of thousands of signatures.
In seeking to develop a high-performance IDS, Suricata Fig. 2. Suricata EtherNet/IP Parser
was designed to take advantage of the advent of cheap multi-
core processors which enable parallelization of packet EtherNet/IP (ENIP) defines two message types as follows:
processing operations. In order to fully utilize the available 1. Explicit Message – runs over TCP and contains the ENIP
processing power in a multi-core system and to avoid processor encapsulation header and the encapsulated data which has
race conditions, there is a need to ensure even Load Balancing the CIP portion. Explicit Messages are one of two types:
(LB) among cores. The aim of Suricata's LB is to dispatch the Connected and Unconnected.
workload equally across all cores and to minimize idle time -
as depicted in the Suricata architecture illustrated in Fig. 1. 2. Implicit Message – runs over UDP and does not contain the
ENIP header. It includes just the CIP portion.
In terms of SCADA protocol support, we note that Modbus
support was added to the mainline Suricata code repository Designing and implementing support for the ENIP protocol
very recently - in November 2014. This update occurred after in Suricata involves the following high level work (i) Rule
the release of version 2.0.4 of Suricata in September 2014. definition for the new protocol (ii) Parse the rule and store it in
Conversely, support for Modbus/DNP3 in the mainline Snort the rule matching data structure (iii) Adding an ENIP packet
distribution was added to Snort version 2.9.2 around the start parser
of 2012 [12]. Two different design solutions were implemented for the
ENIP module - one based on examining individual packets and

-3-
2017 IEEE 30th Canadian Conference on Electrical and Computer Engineering (CCECE)

a second based on examination of packet streams. The second package. We also expanded the HOME_NET and
solution was ultimately adopted and accepted for integration as EXTERNAL_NET in the suricata.yaml configuration file so no
part of the main distribution of Suricata. The remainder of this packets would be filtered based on IP addresses.
paper concentrates on the second solution.
We elaborate briefly on the parser design. The parser B. Test Approach - Traffic Generation
performs the task of decoding the EtherNet/IP encapsulation An offline test approach was utilized to test Suricata which
header as well as most of the encapsulated data and placing it relied on replaying previously captured traffic. Since it is not
in a data structure for use by the Match function. As illustrated easy to obtain large traffic traces from SCADA networks we
in Fig. 2, the packet parser call graph involves: created a synthetic traffic trace as described below.
1. Add session initializer to store EtherNet/IP packet data To generate traffic during the tests, we used a packet
capture (pcap) file made available by the makers of
2. Parse EtherNet/IP packet based on specification details TCPREPLAY. This file (smallFlows.pcap) is often used for
outlined earlier in this document benchmarking the performance of IDS systems. We merged
3. If command is of type SendUnitData, parse common this file with a pcap file from Digital Bond which contained
packet format with DecodeCommonPacketFormat(). EtherNet/IP traffic - CL5000EIP-FirmwareChange.pcap. Care
Otherwise, skip and continue. was taken to ensure that disparate timing and IP addresses in
the two files did not conflict.
4. DecodeCommonPacketFormat() would determine if we
are looking at a Connected data item. If so then we The original packet trace was 12.265Mb in size consisting
would call DecodeCIP() which would parse the CIP of a 5 minute packet capture which included 24,988 packets,
portion of the common packet format. 83pkt/per second rate, with 229 conversations (bi-directional
flows between the same end-points). This original trace
5. DecodeCIP() would decode the CIP requests and generated traffic at a rate of 324Kbps.
responses. The requests and responses may have
multiple services within them so we would need to be In order to replay the traffic at a faster rate, we used the Bit-
able to parse each one. Twist Libpcap-based EtherNet packet generator. Bit-Twist read
the packet traces and replayed the packets from the traffic
6. For the individual service request/response we would generation computer to the host running Suricata. We ran Bit-
need a decoder to extract the CIP service code. Twist with the "-l 0 -m 0" options which configures Bit-Twist
7. A parser can be added for the CIP path but it will be to run in a loop and send out the packets as fast as possible.
unused - a decision needs to be taken whether to add Replaying a single file as fast as possible generated traffic at a
the parser at this time or leave this as a future task. rate of approximately 18Mbps. In order to achieve higher rates,
multiple instances of Bit-Twist were run.
8. Store all data from the above steps in ENIP_PACKET
structure. C. Results & Analysis
The experiments involved running each test 5 times at
VI. PERFORMANCE STUDY AND EVALUATION different throughput rates. Each time we recorded the
We sought to experimentally evaluate the performance of percentage of packet drops and the CPU usage percentage.
the new Suricata ENIP module to match signatures against The same experiments were repeated while limiting the
monitored packet traffic. We were particularly interested in the memory usage of Suricata. One test limited Suricata to using
performance when Suricata was run on a hardware platform 750MB while the other ran with 1.5GB of Memory. The
with low resource footprint (small memory and CPU), following figures capture the results of the tests and represent
potentially allowing one hardware unit with Suricata to be the average rate seen over a 1 minute run of Bit-Twist.
deployed in front of each PLC deployed in a field network.

A. Experimental Setup - Systems


The experimental setup included two computers. One
computer generated traffic while the other computer ran
Suricata. Both computers had a Gigabit EtherNet adapter
ensuring that they would not drop packets during testing.
The computer hosting Suricata had a Intel Core2Duo dual
core processor (CPU E7300) running at 2 x 2.66GHz with 3Gb
RAM. Suricata v3.2 was used for the tests, running on the
Ubuntu Linux v14.04 operating system.
In the tests, Suricata was installed with a set of
approximately 18,000 rules taken from a standard package at
the Emerging Threats website [13] along with a baseline of 250 Fig. 3. Suricata Packet Drop - Constrained Memory - 750Mb & 1.5Gb
rules which come installed by default with the Suricata

-4-
2017 IEEE 30th Canadian Conference on Electrical and Computer Engineering (CCECE)

devices using the EtherNet/IP protocol. We conducted tests to


study the performance of the ENIP-enhanced Suricata on
Fig. 3 captures the percentage of packets dropped when constrained-resource hardware platforms. We make two
Suricata processes traffic at different throughput rates. From observations from the study (i) At a throughput of 18Mbps
the figure we make two key observations: (i) There are no representing many SCADA networks, Suricata can viably
packet drops for either test until the throughput reaches operate on hardware platforms with smaller memory and a less
37Mbps (ii) As the traffic reaches 50Mbps, the test with lower powerful CPU. (ii) Addition of a module to process ENIP rules
memory begins to drop more packets than the higher memory on Suricata did not impact performance in terms of CPU
test. utilization or Packet Drops. In general, we observe that the 3
Fig. 4 captures the CPU utilization when Suricata processes most popular open source IDS systems have varying levels of
traffic at different throughput rates. From the figure, we make support for 3 SCADA protocols.
the following observation and analysis: (i) At a throughput of The ENIP implementation used for the experiments in this
~18Mbps, CPU utilization is around 20% which is a very paper was integrated into Suricata Release 3.2beta1 in October
reasonable and sustainable figure for a machine with 2 cores 2016 [14]. Since December 2016, it has been available as part
(ii) CPU utilization continues to increase almost linearly with of Release 3.2 in the main Suricata distribution. For future
increased throughput. Utilization of 120% for a 2 core machine
work, we recommend addition of pre-processor based support
is a concern if the test is intended to represent constrained for additional SCADA protocols such as ICCP.
hardware that can be procured cheaply. We note however, that
the throughput tested (130Mbps) represents high levels of
bandwidth in an industrial control network and would only be ACKNOWLEDGMENT
experienced during peak periods for very short intervals. The We are grateful for the discussions with Paul O' Brien and
bandwidth of 18Mbps is a more realistic measure of bandwidth Frank Turbide in completing aspects of this work. We
on such networks. acknowledge that some of this work was carried out during a
project with Public Safety Canada and Defence R&D Canada.

REFERENCES

[1] M. Pihelgas,"A Comparative Analysis of Open-Source Intrusion


Detection Systems", Master's Thesis, Tallin Univ. of Technology, 2012
[2] http://suricata-ids.org/ Accessed 23/02/2017
[3] B. Brumen and J. Legvart, "Performance analysis of two open source
intrusion detection systems", MIPRO Conference, May 2016, Croatia
[4] D. Peterson “Quickdraw: Generating security log events for legacy
SCADA and control system devices.” Conference for Homeland
Security, 2009. CATCH’09. pp. 227-229. IEEE, 2009.
Fig. 4. Suricata CPU Usage - Constrained Memory- 750Mb and 1.5Gb [5] Y. Yang , K. McLaughlin, T. Litter, S. Sezer, B. Pranggono, H. F.
Wang; “Intrusion Dtection System for IEC 60870-5-104 based SCADA
networks”, IEEE Power & Energy Society General Meeting, 2013
The above tests were rerun with the set of EtherNet/IP rules
[6] J. Nivethan and M. Papa, “Dynamic Rule Generation for SCADA
enabled - 30 rules were added which exercise the EtherNet/IP Intrusion Detection,” in IEEE Symposium on Technologies for
module added to Suricata. These tests were run in order to Homeland Security (HST), May 2016
study the impact of the ENIP-supported Suricata running on a [7] H. Lin, et al. “Adapting Bro into SCADA: Building a specification
hardware platform with limited resources. We do not reproduce based intrusion detection system for DNP3 Protocol”, 8th Cyber
the graphs from those tests as the results are very similar to the Security & Info Intelligence Research Workshop, ACM, 2013.
results in Fig. 3 and Fig. 4. [8] D. Peterson, Blog. “Quickdraw IDS4.1 Release.” Accessed 24/02/2017
http://www.digitalbond.com/blog/2011/02/28/quickdraw-ids-4-1-
Analysis of the tests carried out in this section lead to two release/
strong conclusions: (i) Addition of a module to parse the [9] Open Information Security Foundation. “EnergySEC and OISF
complicated ENIP protocol and maintain flow state announce new SCADA Research.” Posted Aug., 29th, 2011, accessed
information does not adversely impact Suricata packet drop 24 February 2017; https://lists.emergingthreats.net/pipermail/emerging-
sigs/2011-August/015545.html
and CPU performance for the range of throughputs tested (ii)
The performance tests for 750Mb indicate the viability of [10] D. Peterson, Personal Communication. December 2014.
https://github.com/digitalbond/quickdraw; Last Accessed 24 Feb 207
running Suricata on resource constrained hardware which can
[11] H. Jiang, G Xie and K Salamatian. “Load Balancing by Ruleset
be deployed at cheap cost in front of individual PLC systems - Partition for Parallel IDS on Multi-Core Processors.”, ICCCN 2013
leading to improved cyber security protection for IC networks. [12] M. H. Pelaez, “Snort 2.9.2 now supporting SCADA protocol checks”
Posted 8 Jan 2012, Accessed 22/02/2017.
VII. CONCLUSION https://isc.sans.edu/diary/Snort+2.9.2+now+supporting+SCADA+protoc
ol+checks/12346
This paper reports on an effort to enhance the Suricata open [13] https://rules.emergingthreats.net/open/snort-2.9.0/emerging-all.rules
source IDS with a new module to allow specification of rules Accessed 23/02/2017
which detect cyber threats against SCADA software and [14] https://suricata-ids.org/2016/10/03/suricata-3-2beta1-ready-for-testing/

-5-

Вам также может понравиться