dos exploitation of allen-bradley s legacy protocol ... tacliad-dos... · i tcp rst flag for...

37
DoS Exploitation of Allen-Bradley’s Legacy Protocol through Fuzz Testing* Francisco Tacliad Thuy D. Nguyen Mark Gondree *The views expressed in this material are those of the authors and do not reflect the official policy or position of the Naval Postgraduate School, the Department of Defense, or the U.S. Government. December 5, 2017 1 / 37

Upload: dangdan

Post on 31-Aug-2018

226 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DoS Exploitation of Allen-Bradley s Legacy Protocol ... Tacliad-DoS... · I TCP RST Flag for indicating target device has crashed ... I Mac OS X running Wireshark 15/37. ... Sept

DoS Exploitation of Allen-Bradley’s LegacyProtocol through Fuzz Testing*

Francisco Tacliad Thuy D. Nguyen Mark Gondree

*The views expressed in this material are those of the authors and do not reflectthe official policy or position of the Naval Postgraduate School, the Department

of Defense, or the U.S. Government.

December 5, 2017

1 / 37

Page 2: DoS Exploitation of Allen-Bradley s Legacy Protocol ... Tacliad-DoS... · I TCP RST Flag for indicating target device has crashed ... I Mac OS X running Wireshark 15/37. ... Sept

Introduction

I EtherNet/IP is a TCP/IP-based industrial protocol commonlyused in industrial control systems (ICS)

I Using a custom Scapy-based fuzzer, we uncover a previouslyunreported denial-of-service (DoS) vulnerability in theEthernet/IP implementation of the RockwellAutomation/Allen-Bradley MicroLogix 1100 PLC

I ICS-CERT recently announces this vulnerability in the securityadvisory ICSA-17-138-03

2 / 37

Page 3: DoS Exploitation of Allen-Bradley s Legacy Protocol ... Tacliad-DoS... · I TCP RST Flag for indicating target device has crashed ... I Mac OS X running Wireshark 15/37. ... Sept

Introduction

I Modern industrial network protocols have evolved fromserial-based fieldbus protocols to TCP/IP-based protocols thatare transported over standard Ethernet links

I Common Industrial Protocol (CIP) [21] andEthernet/Industrial Protocol (EtherNet/IP) [22] are twowell-known Open DeviceNet Vendors Association (ODVA)TCP/IP-based industrial protocols used by large number ofindustrial automation vendors

I Rockwell Automation/Allen-Bradley (RA/AB) PLCs (e.g.,ControlLogix and MicroLogix) implement these protocols

3 / 37

Page 4: DoS Exploitation of Allen-Bradley s Legacy Protocol ... Tacliad-DoS... · I TCP RST Flag for indicating target device has crashed ... I Mac OS X running Wireshark 15/37. ... Sept

Introduction

I Fuzz testing, or fuzzing, is a penetration testing technique toverify the robustness of target software in handling invalid,malformed, or unexpected input data

I Fuzzing the implementations of control network protocols isan important step towards developing more secure industrialcontrol systems

I Little information has been made publicly available on thevulnerabilities of the EtherNet/IP software used in commercialPLCs

I To examine the robustness of the EtherNet/IP implemenationof select RA/AB devices, we create a fuzz testing tool (ENIPFuzz) using Scapy, a Python module used for packet parsingand crafting [19]

4 / 37

Page 5: DoS Exploitation of Allen-Bradley s Legacy Protocol ... Tacliad-DoS... · I TCP RST Flag for indicating target device has crashed ... I Mac OS X running Wireshark 15/37. ... Sept

Introduction

I A Scapy-based fuzzer for exploiting EtherNet/IP securityvulnerabilities

I Remote fault detection strategy

I Deficiency in MicroLogix’s handling of the ProgrammableController Communication Commands (PCCC) protocol

I Preliminary exploration of potential cross-generationalvulnerabilities

5 / 37

Page 6: DoS Exploitation of Allen-Bradley s Legacy Protocol ... Tacliad-DoS... · I TCP RST Flag for indicating target device has crashed ... I Mac OS X running Wireshark 15/37. ... Sept

EtherNet/IP Protocols

Common Industrial Protocol (CIP)

I objects: particular component within a product

I class: a set of objects of the same component

I object instance: actual representation of particular object

I instance: class or object share same attributes, but has ownunique values [21]

EtherNet/IP

I Allow CIP communications to be transported over standardEthernet

I TCP and UDP over port 44818

I Implicit messaging enables exchange of scheduled,time-critical control data [22]

I Explicit messaging provides general request reply/replycommunication [22]

6 / 37

Page 7: DoS Exploitation of Allen-Bradley s Legacy Protocol ... Tacliad-DoS... · I TCP RST Flag for indicating target device has crashed ... I Mac OS X running Wireshark 15/37. ... Sept

EtherNet/IP Protocols

Programmable Controller Communication Commands (PCCC)

I Provides legacy support for older RA/AB PLCs, e.g., PLC5and SLC500 [7]

I Used with EtherNet/IP, encapsulated in CIP

I Encapsulation is accomplished through ”Execute PCCC” CIPservice (service code = 0x4B)

I Each message contains command code and function code

7 / 37

Page 8: DoS Exploitation of Allen-Bradley s Legacy Protocol ... Tacliad-DoS... · I TCP RST Flag for indicating target device has crashed ... I Mac OS X running Wireshark 15/37. ... Sept

Fuzzing Methodologies

Mutation-based fuzzers

I Apply transformations (mutations) on existing data samplesto create test cases

I Brute force testing

Generation-based fuzzers

I Test cases employ rules defining a grammar-basedspecification for inputs

I Requires up-front understanding of specification or sourcecode

8 / 37

Page 9: DoS Exploitation of Allen-Bradley s Legacy Protocol ... Tacliad-DoS... · I TCP RST Flag for indicating target device has crashed ... I Mac OS X running Wireshark 15/37. ... Sept

ICS Protocol Fuzzers

Name Type Protocol AvailabilityAegis Fuzzer [2, 3] custom DNP3, Modbus commercially licensed,

early version open-source

Beyond Security’s beSTORM [5] framework several, including DNP3 commercially licensed

blackPeer [10] framework several, including Modbus NA

Codenomicon’s Defensics [11] framework several, including CIP, EtherNet/IP, Modbus, OPC UAServer, Profinet, Scada GOOSE

commercially licensed

ICCP Fuzzer [13] custom ICCP NA

LZFuzz [9] framework several, including SNMP [20] NA

MTF [25] custom Modbus NA

OPC-MFuzzer [26] custom OPC, DCOM, RPC [18] NA

OPC Server Fuzzer [15] custom OPC Server NA

Peach [16] framework several, including Modbus, BACNet, DNP3, OPC [16,26]

open-source

ProFuzz [14] custom Profinet open-source

scada-tools [24, 23] custom Profinet open-source

Sulley [17] framework several, including Modbus, DNP3, TPKT, COPT [12] open-source

Wuldtech’s Achilles [1] custom several, including EtherNet/IP, Foundation Fieldbus,MMS, Modbus, OPC UA, Profinet, DNP3, MMS, SES-92

commercially licensed

9 / 37

Page 10: DoS Exploitation of Allen-Bradley s Legacy Protocol ... Tacliad-DoS... · I TCP RST Flag for indicating target device has crashed ... I Mac OS X running Wireshark 15/37. ... Sept

Design and Implementation

Fuzzers operate under two basic assumptions:

I Faults in a target application can be triggered through inputcontrolled by the user

I The execution of a faulty portion of an application will resultin some behavioral manifestation (e.g., bricking the device orproducing unexpected output)

10 / 37

Page 11: DoS Exploitation of Allen-Bradley s Legacy Protocol ... Tacliad-DoS... · I TCP RST Flag for indicating target device has crashed ... I Mac OS X running Wireshark 15/37. ... Sept

Implementation of Support Library

I Library uses Scapy, a Python module used for packet craftingand manipulation

I Library conforms to EtherNet/IP specifications [22, 21]

I ENIP Fuzz is complete in its support of EtherNet/IP and onefourth of CIP specification

I EtherNet/IP traffic characterized from ICS lab environment,which included the AB/RA MicroLogix 1100 and ControlLogix5570

11 / 37

Page 12: DoS Exploitation of Allen-Bradley s Legacy Protocol ... Tacliad-DoS... · I TCP RST Flag for indicating target device has crashed ... I Mac OS X running Wireshark 15/37. ... Sept

Implementation of Fuzzer

EtherNet/IP Register Session Request

I Used for establishing a session between an originator and atarget

I Originator sends Register Session Request on port 0xAF12,the target shall assign and reply with a Session Handle [22]

CIP NOP Request

I CIP common service request that generates a No OperationResponse [21, §A-4.17]

I Receiver does not execute any other internal action

12 / 37

Page 13: DoS Exploitation of Allen-Bradley s Legacy Protocol ... Tacliad-DoS... · I TCP RST Flag for indicating target device has crashed ... I Mac OS X running Wireshark 15/37. ... Sept

Implementation of Fuzzer

Execute PCCC Service

I PCCC is a vendor specific application layer protocol used forcommunication between certain RA/AB processors

I Used primarily to “ease communication between legacynetworks and the new CIP networks” [6, p. 7.17]

I The Protected Typed Logical Read with Three Address Fieldscommand is the specific Execute PCCC Service functionchosen for fuzzing; function is used to read data from a logicaladdress [6, p. 7.17].

13 / 37

Page 14: DoS Exploitation of Allen-Bradley s Legacy Protocol ... Tacliad-DoS... · I TCP RST Flag for indicating target device has crashed ... I Mac OS X running Wireshark 15/37. ... Sept

Fault Monitoring

Liveness Check

I Remote analysis to determine crashes occurred

I TCP RST Flag for indicating target device has crashed [20]

I Socket timeout, reset, or close; failure in reopening a closedsocket; and failure in opening a new socket [25]

Unexpected responses

I Filter for responses outside of specification

Performance degradation

I Malformed packets impacting timely delivery of responses maybe considered soft failure

I Records captured during fuzzing are compared to baseline andanalyzed for irregularities in response times

14 / 37

Page 15: DoS Exploitation of Allen-Bradley s Legacy Protocol ... Tacliad-DoS... · I TCP RST Flag for indicating target device has crashed ... I Mac OS X running Wireshark 15/37. ... Sept

Test Environment

SUTI MicroLogix 1100

FuzzerI Kali 2.0 VM with the fuzzer

Background traffic generatorsI Windows 7 Virtual Machine with RSLinxI Kali 2.0 VM with the Ping Utility

MonitorI Mac OS X running Wireshark

15 / 37

Page 16: DoS Exploitation of Allen-Bradley s Legacy Protocol ... Tacliad-DoS... · I TCP RST Flag for indicating target device has crashed ... I Mac OS X running Wireshark 15/37. ... Sept

Experimentation

I A liveness check is performed using the Ping utility todetermine that the target is still responsive

I Monitor the latency in responses to both ICMP Echo requestsand EtherNet/IP requests made by the RSLinx

I SUT is also monitored for unexpected responses, i.e.,responses outside the EtherNet/IP specification or otherwiseincorrect (e.g., responses that contain erroneous data).

16 / 37

Page 17: DoS Exploitation of Allen-Bradley s Legacy Protocol ... Tacliad-DoS... · I TCP RST Flag for indicating target device has crashed ... I Mac OS X running Wireshark 15/37. ... Sept

Results and Analysis

I Three metrics were used for analysis: the deltas betweenICMP Echo requests from Ping, List Identity requests fromRSLinx, and the response from the service request beingfuzzed

I SUT interacts with the traffic generators during “warm-upperiod,” fuzzer sends either correctly formed packets (duringbaseline) or malformed packets (during testing) for a period ofapproximately 20 minutes

I Wireshark packet capture of the fuzzing session is thentruncated into a 10 minute window, after which each of themetrics is analyzed

I Each delta is calculated by taking the difference between thetimestamp of the response and the request.

17 / 37

Page 18: DoS Exploitation of Allen-Bradley s Legacy Protocol ... Tacliad-DoS... · I TCP RST Flag for indicating target device has crashed ... I Mac OS X running Wireshark 15/37. ... Sept

Results and Analysis

I Three baseline measurements and fourteen trials wereperformed

I Each baseline and trial was repeated twice

Trial Name Field Fuzzedenip-register-session-baseline NAenip-register-session-fuzz-protocol-version Versionenip-register-session-fuzz-option-flag Optionsenip-register-session-fuzz-protocol-option Version,Optionscip-nop-baseline NAcip-nop-fuzz-class Classcip-nop-fuzz-instance Instancecip-nop-fuzz-class-instance Class,Instancepccc-exec-baseline NApccc-exec-fuzz-byte Byte Sizepccc-exec-fuzz-file-no File Numberpccc-exec-fuzz-file-type File Typepccc-exec-fuzz-element Element No.pccc-exec-fuzz-all File No., File Type, Element No.

18 / 37

Page 19: DoS Exploitation of Allen-Bradley s Legacy Protocol ... Tacliad-DoS... · I TCP RST Flag for indicating target device has crashed ... I Mac OS X running Wireshark 15/37. ... Sept

Response Time Analysis

I Deltas in response times from ICMP Echo requests and ListIdentity requests may not be meaningful metrics

I Using Tukey’s Honest Significant Difference (HSD) test thereis no significant difference in response times when fuzzingcompared to when sending non-malformed traffic

19 / 37

Page 20: DoS Exploitation of Allen-Bradley s Legacy Protocol ... Tacliad-DoS... · I TCP RST Flag for indicating target device has crashed ... I Mac OS X running Wireshark 15/37. ... Sept

Response Time Analysis

20 / 37

Page 21: DoS Exploitation of Allen-Bradley s Legacy Protocol ... Tacliad-DoS... · I TCP RST Flag for indicating target device has crashed ... I Mac OS X running Wireshark 15/37. ... Sept

Response Time Analysis

21 / 37

Page 22: DoS Exploitation of Allen-Bradley s Legacy Protocol ... Tacliad-DoS... · I TCP RST Flag for indicating target device has crashed ... I Mac OS X running Wireshark 15/37. ... Sept

Response Time Analysis

I Tests against Execute PCCC Service shows some sensitivitywith performance metrics

I More testing warranted to claim fuzzed inputs wereresponsible for performance degradation

22 / 37

Page 23: DoS Exploitation of Allen-Bradley s Legacy Protocol ... Tacliad-DoS... · I TCP RST Flag for indicating target device has crashed ... I Mac OS X running Wireshark 15/37. ... Sept

Response Time Analysis

23 / 37

Page 24: DoS Exploitation of Allen-Bradley s Legacy Protocol ... Tacliad-DoS... · I TCP RST Flag for indicating target device has crashed ... I Mac OS X running Wireshark 15/37. ... Sept

Denial-of-Service Fault

I When fuzzing the Execute PCCC Service, we discover apreviously unreported DoS vulnerability

I To clear fault, device must be power-cycled and reset usingRSLogix Clear Major Fault utility

I SUT used to test fault condition is a MicroLogix 1100 PLC(1763-L16BWA Series B, FRN 14)

24 / 37

Page 25: DoS Exploitation of Allen-Bradley s Legacy Protocol ... Tacliad-DoS... · I TCP RST Flag for indicating target device has crashed ... I Mac OS X running Wireshark 15/37. ... Sept

Denial-of-Service Fault

I To exploit the vulnerability, the attacker sends a singleExecute PCCC Service - Protected Typed Logical Read withThree Address Fields packet with a File Number of 0x02–0x08and File Type 0x48 or 0x47. Any combination of File Number0x02–0x08 and File Type 0x48 or 0x47 will trigger a MajorError (0x08)

I Data files store status and data information associated withinstructions used in ladder subroutines [8, p. 40–41]

25 / 37

Page 26: DoS Exploitation of Allen-Bradley s Legacy Protocol ... Tacliad-DoS... · I TCP RST Flag for indicating target device has crashed ... I Mac OS X running Wireshark 15/37. ... Sept

26 / 37

Page 27: DoS Exploitation of Allen-Bradley s Legacy Protocol ... Tacliad-DoS... · I TCP RST Flag for indicating target device has crashed ... I Mac OS X running Wireshark 15/37. ... Sept

ControlLogix Experiment

I We speculate that the same PCCC vulnerability couldpotentially exist in newer RA/AB PLC models

I Same PCCC stress tests on the ControlLogix 5570 did notcause expected DoS fault

I Experiment yields insight into the differences in the wayMicroLogix and ControlLogix respond to the Protected TypedLogical Read with Three Address Fields PCCC command

27 / 37

Page 28: DoS Exploitation of Allen-Bradley s Legacy Protocol ... Tacliad-DoS... · I TCP RST Flag for indicating target device has crashed ... I Mac OS X running Wireshark 15/37. ... Sept

ControlLogix Experiment

I A PCCC reply always has a status (STS) byte, and for somecommands, an extended status (EXT STS) byte

I MicroLogix only returns the STS byte (0x10= ”Illegalcommand or format”) whereas ControlLogix returns both STSand EXT STS bytes– STS = 0xF0 (”Error code in the EXTSTS byte”) and EXT STS = 0x06 (”Address doesn’t point tosomething usable”)[6]

I Functional difference indicates that it may be more valuableto fingerprint PLCs using information at the application level

28 / 37

Page 29: DoS Exploitation of Allen-Bradley s Legacy Protocol ... Tacliad-DoS... · I TCP RST Flag for indicating target device has crashed ... I Mac OS X running Wireshark 15/37. ... Sept

Future Work

I EtherNet/IP support library can be expanded so that is fullycompliant with specifications

I Testing TCP and IP layers may expose vulnerabilities in theENIP/IP implementation

I Explore EtherNet/IP implementations across related products,i.e., products that conforms to the ODVA specification ordeemed interoperable with related models

I OpENer is a POSIX-compliant implementation of ENIP thatis partially supported by Rockwell Automation [4]

29 / 37

Page 30: DoS Exploitation of Allen-Bradley s Legacy Protocol ... Tacliad-DoS... · I TCP RST Flag for indicating target device has crashed ... I Mac OS X running Wireshark 15/37. ... Sept

Questions

Francisco Tacliad - [email protected] D. Nguyen, Naval Postgraduate School, [email protected] Gondree, Sonoma State University, [email protected]

30 / 37

Page 31: DoS Exploitation of Allen-Bradley s Legacy Protocol ... Tacliad-DoS... · I TCP RST Flag for indicating target device has crashed ... I Mac OS X running Wireshark 15/37. ... Sept

References I

[1] Achilles Platform. Accessed: March 25, 2016. n.d. url:https://www.wurldtech.com/product/achilles.

[2] Aegis. Accessed: March 25, 2016. n.d. url:https://www.automatak.com/aegis/.

[3] Automatak. Accessed March 25, 2016. aegis-opensource.url: https://github.com/ITI/ICS-Security-Tools/tree/master/protocols.

[4] Rockwell Automation. Rockwell Automation SponsorsDevelopment of Open-Source Software Stack. AccessedSept. 8, 2017. 2009. url: http://phx.corporate-ir.net/phoenix.zhtml?c=196186&p=irol-

newsArticle&ID=1356918.

31 / 37

Page 32: DoS Exploitation of Allen-Bradley s Legacy Protocol ... Tacliad-DoS... · I TCP RST Flag for indicating target device has crashed ... I Mac OS X running Wireshark 15/37. ... Sept

References II

[5] BeSTORM software software security testing tool.Accessed: March 25, 2016. n.d. url:http://www.beyondsecurity.com/bestorm.html.

[6] Allen Bradley. DF1 Protocol and Command Set, ReferenceManual. 1770-65.16. Milwaukee, WI, 1996.

[7] Allen Bradley. Logix5000 Data Access ProgrammingManual. 1756-PM020D-EN-P. Milwaukee, WI, 2016.

[8] Allen Bradley. MicroLogix 1100 Programmable ControllerInstruction Set Reference Manual. 1763-RM001B-EN-P.Milwaukee, WI, 2011.

[9] Sergey Bratus, Axel Hansen, and Anna Shubina. LZfuzz: afast compression-based fuzzer for poorly documentedprotocols. Tech. rep. TR-2008 634. Hanover, NH:Darmouth College, Sept. 2008.

32 / 37

Page 33: DoS Exploitation of Allen-Bradley s Legacy Protocol ... Tacliad-DoS... · I TCP RST Flag for indicating target device has crashed ... I Mac OS X running Wireshark 15/37. ... Sept

References III

[10] Eric J Byres, Dan Hoffman, and Nate Kube. “On ShakyGround–A Study of Security Vulnerabilities in ControlProtocols”. In: (2006), pp. 782–788.

[11] Defensics. Accessed: March 25, 2016. n.d. url:http://www.codenomicon.com/products/defensics/.

[12] Ganesh Devarajan. “Unraveling SCADA Protocols: UsingSulley Fuzzer”. In: Las Vegas, NV, 2007.

[13] Matthew Franz. “ICCP Exposed: Assessing the AttackSurface of the Utility Stack”. In: Proceedings of SCADASecurity Scientific Symposium. Miami, FL, 2007.

[14] Roland Koch. Accessed March 25, 2016. ProFuzz. url:https://github.com/HSASec/ProFuzz.

33 / 37

Page 34: DoS Exploitation of Allen-Bradley s Legacy Protocol ... Tacliad-DoS... · I TCP RST Flag for indicating target device has crashed ... I Mac OS X running Wireshark 15/37. ... Sept

References IV

[15] Luis Mora. OPC Security White Paper. Byres Research.Jan. 2007. url:https://scadahacker.com/library/Documents/OPC_

Security/OPC%20Security%20-%20OPC%20Exposed.pdf.

[16] Peach Introduction. Accessed: March 25, 2016. Deja VuSecurity, n.d. url: http://community.peachfuzzer.com/Introduction.html.

[17] Aaron Portnoy, Pedram Amini, and Ryan Sears. AccessedMarch 25, 2016. sulley. url:https://github.com/OpenRCE/sulley.

34 / 37

Page 35: DoS Exploitation of Allen-Bradley s Legacy Protocol ... Tacliad-DoS... · I TCP RST Flag for indicating target device has crashed ... I Mac OS X running Wireshark 15/37. ... Sept

References V

[18] Xiong Qi et al. “OPC-MFuzzer: A Novel Multi-LayersVulnerability Detection Tool for OPC Protocol Based onFuzzing Technology”. In: International Journal of Computerand Communication Engineering 3.4 (July 2014). url:http:

//search.proquest.com/docview/1618797232?pq-

origsite=gscholar.

[19] Scapy. Accessed: Aug. 14, 2016. 2011. url:http://www.secdev.org/projects/scapy.

[20] Rebecca Shapiro et al. “Identifying Vulnerabilities in SCADASystems via Fuzz-Testing”. In: International Conference onCritical Infrastructure Protection. Heidelberg, Germany,2011, pp. 57–72.

35 / 37

Page 36: DoS Exploitation of Allen-Bradley s Legacy Protocol ... Tacliad-DoS... · I TCP RST Flag for indicating target device has crashed ... I Mac OS X running Wireshark 15/37. ... Sept

References VI

[21] The CIP Networks Library Volume 1: Common IndustrialProtocol. 3.22. Open DeviceNet Vendor Association, Inc.Ann Arbor, MI, Apr. 2017.

[22] The CIP Networks Library Volume 2: EtherNet/IPAdaptation of CIP. 1.23. Open DeviceNet VendorAssociation, Inc. Ann Arbor, MI, Apr. 2017.

[23] A. Timorin. Scada deep inside: protocols and securitymechanisms. unpublished.

[24] Alexander Timorin. Accessed March 25, 2016. url:https://github.com/atimorin/scada-tools.

[25] Artemios G Voyiatzis, Konstantinos Katsigiannis, andStavros Koubias. “A Modbus/TCP fuzzer for testinginternetworked industrial systems”. In: 2015 IEEE 20thConference on Emerging Technologies & FactoryAutomation. Luxembourg City, Luxembourg, 2015, pp. 1–6.

36 / 37

Page 37: DoS Exploitation of Allen-Bradley s Legacy Protocol ... Tacliad-DoS... · I TCP RST Flag for indicating target device has crashed ... I Mac OS X running Wireshark 15/37. ... Sept

References VII

[26] Ting Wang et al. “Design and Implementation of FuzzingTechnology for OPC Protocol”. In: 2013 Ninth InternationalConference on Intelligent Information Hiding and MultimediaSignal Processing. Beijing, China, 2013, pp. 424–428.

37 / 37