1

What’s the DFIRence
for ICS?
Chris Sistrunk, PE
Senior Consultant, FireEye@chrissistrunk
Josh Triplett
Senior Reverse Engineer, FireEye

2

Agenda• Digital Forensics and Incident Response Overview• DFIR for ICS• What’s the DFIRence?

• Embedded Devices• What to Collect• What to Analyze• RTU Examples• GE D20MX• VxWorks DFIR Tool
• SEL-3530 RTAC
3

Incident Response Overview“Find Evil”• Assess the situation• Define objectives• Collect evidence• Perform analysis• Communicate• Develop remediation plan
• Document findings
http://www.cumbriafire.gov.uk/about/photo/engines/incident-response.asp
4

Digital Forensics Overview• Data Collection• Data Files• OS (volatile and non-volatile)• Network Traffic• Applications• Examination• Analysis• Reporting

NIST SP 800-865

Traditional DFIR tools
Mature• Tools• Redline• Volatility• Websites• Cheatsheets• Books6

What’s the DFIRence for ICS?
IT/OT Differences
Assess the situation• When/Where/How is the ICS affected?

Define objectives• Return the ICS to normal quickly and safely

Collect evidence• ICS devices have RTOS and ICS protocols

Perform analysis• Analysis must be done to verify anomalies

Communicate• Regularly report status to management

Develop remediation plan

• How/When to regain control of the ICS

Document findings• Write a report of what exactly happened

Similar!

Physical Processes!

Must be collectedmanually!

No ICS-specific
DFIR tools
Similar!

ICS devices haveconstraints
Similar
7

ICS anomaly  incident?
• An anomaly of some kind has occurred• Increased network activity, strange behavior, failure• Now we need to investigate the anomaly• Is it known bad?
• Is it unknown bad?
• Do we escalate this to a security incident?
• Who do we call?
• Engineers, Admins, PR, Safety• Vendors

8

Don’t!

9

ICS forensics collection tools• No ICS-specific DFIR tools…especially embedded devices• But, we can collect data manually using other tools

10Embedded devices: What to collect?
Physical data

Digital data

• Exact location of device• Running configuration (including user accounts)• Device description• Last-known good configuration• Identifying info (manufacturer, S/N, P/N, name)• Running firmware, approved firmware• Connections (serial, ethernet, USB)

• CPU usage %, Memory usage % (RAM, Storage)• Front/back panel LED status• Running processes• Power consumption• Active ports (serial, ethernet, USB, etc)

• Temperature (if running hot)• Logs (security, events)• Evidence of tampering• Memory dump (if possible)

11

Embedded devices: What to analyze?
Find Evil…or ways for evil to do evil

TimeFirst Responders: ICS Engineer or Technician, Network Engineer, Vendor

Fast• What do the user and event logs reveal? (these need to be viewed first as they may rollover)• Does the configuration match the firmware? Is the firmware approved from FAT/SAT?
• Running config / last known good config / standard config• Is the configuration and logic correct for the process?
• Are communications (serial, ethernet, USB, wireless) normal as compared with known good?
Vendor, Digital Forensics Specialist, Embedded Systems Analyst• Analyze embedded OS files, captured data at rest, captured data in transit• Volatile memory if possible (to look for code injection and potential rootkits)

Slower12

Let’s do DFIR on two substation RTUs

13

Time to…RTFM

14

Data Collection: D20MXSpecs• 667 MHz embedded PowerQUICC II Pro• 1024 MB of 266 MHz DDR2 RAM with ECC• 16 MB NVRAM for persistent event storage• 8 MB boot flash, 256 MB firmware flash• VxWorks RTOSTools to use• D20MX Product Documentation Binder.pdf• GE SGconfig software• Terminal (Tera Term, PuTTY)• WinSCP

15

Data Collection: D20MX
You will need three manuals from the binder pdf:
1. 994-0140 D20MX Substation Controller Instruction Manual• Chapter 11: Troubleshooting
2. B014-1NUG Westmaint II+ for D20MX User’s Guide• Shows how to use the D20 console interface, menus,
error and user logs
3. SWM0080 D20MX Shells User’s Guide

16

Data Collection: D20MX
Error Log and User Log
The error log tells what’s wrong with theconfiguration.

The user log shows logins, logouts, andall user activity. Can be exported to CSV.
This data also gets put into the syslog.
17

The power of the 3 Shells• You can access the shell remotely withSSH, but the most powerful access isthrough the front serial port.
• Some of these commands requireassistance from GE unless you reallyknow what you are doing.

18

The main shell• D20M Shell is the main shell• Very similar to 68k monitor shell inolder D20s
• Incident Responders will want tocollect data from this shell• All of the commands are explained
in detail in the D20MX Shells UG

19

Data Collection: D20MX• Running configuration• CPU usage %, Memory usage % Use SGConfig, ConfigPro, or TeraTerm pr – performance monitor

 Very common task qr – query ram (volatile and nvram)• Last-known good configuration
 Look in email, config database, engineer’slaptop, or it may be on a USB in the cabinet• Running firmware - img• Running processes - qp

20

Data Collection: D20MX
Serial analyzer• Very popular shell command(what’s Wireshark?)• In the D20M shell, use sa com#
where # is the port number Turn on logging in TeraTermbeforehand to save thetraffic This example is DNP3

21

Data Collection: D20MX• Dump memory
 si – shows system information
including the memory base addresses

 d – dumps memory, but you have totell it where to start and stop
(only available over serial connection)• Hand the output to someone who
understands VxWorks for analysis• Look for strings, injected code, or rootkits

22Data Collection: D20MX
VxWorks C Shell

VxWorks CMD Shell• OS level shell only accessible from the RS-232
port (access is denied from SSH)

• OS 2nd level shell, accessed by typing cmd• Mainly used by GE customer support fortroubleshooting• We can use some commands for forensics• VxWorks Kernel Shell Command Reference 6.9
 d (dump), netstat, ipf (firewall), syslog,
show devices, show drivers, show
history, ifconfig, route, and even pcap!

23

Example of live memory code injection & mem dump on the D20MX• Inject code via VxWorks C shell memory edit command m to simulate a rootkit[SCREENSHOTS OR VIDEO RECORDING HERE]• Collect volatile memory using the dump memory command d[SCREENSHOTS OR VIDEO RECORDING HERE]

24

Data Collection: VxWorks DFIR Tool – Problem• We need tools that enable us to perform DFIR on ICS and embedded devices.

25

Data Collection: VxWorks DFIR Tool - Solution
A collection of utilities that enable us to:• Read (and write) to memory on the device programmatically• We don’t want to have do dump memory manually• Cache the live memory locally• We shouldn’t need to fetch the same memory twice to check for different issues.

• Compare the system image• Knowing the image is good is the first step toward looking somewhere else.

• Provide the ability to read/write and cache device data to other tools• Tools can be written more generically when they don’t need to worry about how to get the data

26

Data Collection: VxWorks DFIR Tool - Cool Features• Can easily accommodate different transport mechanisms• Serial• TCP/Serial bridges• Protocols specific to other dumping utilities• Supports caching• Allows resuming if connectivity is lost
• Sparse memory dumping• Comparative analysis works on• Anything that looks like a seek-able Python File Object• Cache Files• Memory Dumps• Sparse Memory Maps
• Special Objects that request live memory27

Data Collection: VxWorks DFIR Tool – Validating the host image

28Data Collection: VxWorks DFIR Tool - Cool Projects We Used
• CLE Loads Everything – (angr/CLE)• Loads our system image and provides an abstraction to a process memory space• Identifies architecture, endianness, etc.
• Will soon support relocatable images (important for modules like appl.out)• Capstone - Nguyen Anh Quynh• Easy access to disassemble exactly what we needed29

Data Collection: VxWorks DFIR Tool – Plans for the Future• Documentation• Expand the tool to work on other devices• Refine the scripts into easy-to-use modules• Moving the code to GitHub• Allow for feedback / feature requests / bug submissions

30Data Collection: SEL-3530 RTACSpecs• 533 MHz Power PC• 1024 MB DDR2 ECC RAM• 2GB Storage• Embedded SEL LinuxTools to use• SEL-3530 RTAC Instruction Manual• SEL-5033 Instruction Manual• SEL-5033 software• Web Browser (Chrome, FireFox, etc)

• Terminal for SSH (Tera Term, PuTTY)
31

Data Collection: SEL-3530
Digital data
• Running configuration• User Accounts• Running firmware• CPU usage %• Memory usage %• POST checks• Reports (several)
Physical Data
• Password jumper

32

Data Collection: SEL-3530

These are the screenshots fromwhen I sent a malformed DNP3
message that caused the RTAC
to lose the configuration.
https://ics-cert.us-cert.gov/advisories/ICSA-13-219-01
33

Data Collection: SEL-3530• Section 3: Testing and Troubleshooting• Section 5: Web HMI and Logging• Section 6: Security• There are tags in the RTAC database that are assigned
to help troubleshoot but are also useful for forensics as well.
• Several log types• SOE report• IED report• syslog34Data Collection: SEL-3530• Example of IED Report• Can be accessed via
web or ODBC (MS Access)• No Linux Shell• Pros & cons

• No SSH Interface with RTAC
• SSH used for engineering
remote access to relays

35

Data Collection: SEL-3530• The RTAC can capture ethernet and serial traffic
 SEL-5033 software and the Comm Monitor• AG2012-15 Using Wireshark® to Troubleshoot Protocol
Communications Issues on an RTAC
 DNP3 example• AG2015-15 Using Wireshark® to Decode RTAC Serial
Line Messages and SEL Protocols

 SEL Fast Messaging example• SEL published several serial Wireshark dissectors
 SELFM, Telegyr 8979

36

For Further Reading…
• HD Moore’s blogpost on VxWorks from 2010.
• https://community.rapid7.com/community/metasploit/blog/2010/08/02/shiny-old-vxworksvulnerabilities• Metasploit module for VxWorks remote memory dump (wdbrpc_memory_dump)• David Odell’s blogpost on QNX from 2012.
• https://www.optiv.com/blog/pentesting-qnx-neutrino-rtos• ICS-CERT recommended practices for ICS forensics• https://ics-cert.us-cert.gov/sites/default/files/recommended_practices/Forensics_RP.pdf
37

For Further Reading…
• Travis Goodspeed’s embedded device work on the MSP430 family• http://travisgoodspeed.blogspot.com/2007/11/ti-ez430-in-linux-with-iar-kickstart.html• http://travisgoodspeed.blogspot.com/2008/08/repurposing-ti-ez430u-part-3.html• Ralph Langner’s forensics work on Stuxnet payloads for Siemens PLCs
• http://www.langner.com/en/wp-content/uploads/2013/11/To-kill-a-centrifuge.pdf• The Dec 23, 2015 Ukrainian Power Grid attack included writing over firmwareof embedded Ethernet-serial converters.
• https://ics.sans.org/media/E-ISAC_SANS_Ukraine_DUC_5.pdf
38

QUESTIONS?

39