stuxnet -infecting industrial control systems - virus … · stuxnet -infecting industrial control...

18
Stuxnet - Infecting Industrial Control Systems Stuxnet - Infecting Industrial Control Systems Liam O Murchu Operations Manager, Symantec Security Response 1 Sep 2010

Upload: haquynh

Post on 14-Jun-2018

227 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Stuxnet -Infecting Industrial Control Systems - Virus … · Stuxnet -Infecting Industrial Control Systems 2 1.5 Mb each Step7 Projects Win32k.sys EoP 2 ... Programmable Logic Controller

Stuxnet - Infecting Industrial Control SystemsStuxnet - Infecting Industrial Control SystemsLiam O Murchu

Operations Manager, Symantec Security Response

1

Sep 2010

Page 2: Stuxnet -Infecting Industrial Control Systems - Virus … · Stuxnet -Infecting Industrial Control Systems 2 1.5 Mb each Step7 Projects Win32k.sys EoP 2 ... Programmable Logic Controller

Stuxnet

2 Versions.lnk vulnWinCCNetwork SharesPrint SpoolerP2P UpdatesMS08-067Step7 ProjectsC&CZero Day EoPZero Day EoP 21 Goal = Infect ICSInfect PLCsCheck AV Installed

Check Def Dates

Stuxnet - Infecting Industrial Control Systems 2

2 Versions

1.5 Mb each

.lnk vulnWinCCNetwork SharesPrint SpoolerP2P UpdatesMS08-067Step7 ProjectsC&CZero Day EoP

Win32k.sys

Zero Day EoP 2

Task Scheduler

1 Goal = Infect ICSInfect PLCsCheck Def Dates

Page 3: Stuxnet -Infecting Industrial Control Systems - Virus … · Stuxnet -Infecting Industrial Control Systems 2 1.5 Mb each Step7 Projects Win32k.sys EoP 2 ... Programmable Logic Controller

Agenda

60 second Intro to PLCs1

Programming a PLC 2

How Stuxnet infects 3

Stuxnet & PLCs 3

How Stuxnet infects 3

What Stuxnet does 4

Demonstration 5

Page 4: Stuxnet -Infecting Industrial Control Systems - Virus … · Stuxnet -Infecting Industrial Control Systems 2 1.5 Mb each Step7 Projects Win32k.sys EoP 2 ... Programmable Logic Controller

PLCs

• Monitors Input and Output lines

– Sensors on input

– switches/equipment on outputs

– Many different vendors

Programmable Logic Controller

• Stuxnet seeks specific Models

– s7-300 s7-400

Stuxnet & PLCs 4

Stuxnet is Targeted

Targeting a Specific type of PLC

Searches for a Specific Configuration

Page 5: Stuxnet -Infecting Industrial Control Systems - Virus … · Stuxnet -Infecting Industrial Control Systems 2 1.5 Mb each Step7 Projects Win32k.sys EoP 2 ... Programmable Logic Controller

Hardware configuration

• Each PLC must be configured before use.

• Configuration is stored in System Data Blocks (SDBs)

• Stuxnet parses these blocks

• Looks for magic bytes 2C CB 00 01 at offset 50h

System Data Blocks

• Looks for magic bytes 2C CB 00 01 at offset 50h

• Signifies a Profibus network card attached - CP 342-5

• Looks for 7050h and 9500h

• Must have more than 33 of these values

• Injects different code based on number of occurrences

Stuxnet & PLCs 5

Page 6: Stuxnet -Infecting Industrial Control Systems - Virus … · Stuxnet -Infecting Industrial Control Systems 2 1.5 Mb each Step7 Projects Win32k.sys EoP 2 ... Programmable Logic Controller

How Stuxnet Infects PLCs

6Stuxnet – Inside the PLC

Page 7: Stuxnet -Infecting Industrial Control Systems - Virus … · Stuxnet -Infecting Industrial Control Systems 2 1.5 Mb each Step7 Projects Win32k.sys EoP 2 ... Programmable Logic Controller

Programming a PLC

Step7, STL and MC7

• Simatic or Step 7 software

– Used to write code in STL or other languages

• STL code is compiled to MC7 byte code

• MC7 byte code is transferred to the PLC

• Control PC can now be disconnected

Stuxnet Infecting PLCs 7

Page 8: Stuxnet -Infecting Industrial Control Systems - Virus … · Stuxnet -Infecting Industrial Control Systems 2 1.5 Mb each Step7 Projects Win32k.sys EoP 2 ... Programmable Logic Controller

Stuxnet: Man in the Middle attack on PLCs

• Step7 uses a library to access the PLC

– S7otbxdx.dll

“Man in the App” attack

• Stuxnet replaces that dll with its own version

• Stuxnet’s version intercepts reads and writes to the PLC and changes the code at this point.

Stuxnet Infecting PLCs 8

Page 9: Stuxnet -Infecting Industrial Control Systems - Virus … · Stuxnet -Infecting Industrial Control Systems 2 1.5 Mb each Step7 Projects Win32k.sys EoP 2 ... Programmable Logic Controller

Stuxnet MC7 Byte code

• Stuxnet contains at least 70 binary blobs of data

• They are encoded and stored in the fake dll

• These are actually blocks of MC7 byte code

• This is the code that is injected onto the PLCs• This is the code that is injected onto the PLCs

• Must be converted back to STL to understand it

• Difficult task but we have now converted all the MC7 byte code to readable STL code

• Just unsure of real world effects of this code.

Presentation Identifier Goes Here 9

Page 10: Stuxnet -Infecting Industrial Control Systems - Virus … · Stuxnet -Infecting Industrial Control Systems 2 1.5 Mb each Step7 Projects Win32k.sys EoP 2 ... Programmable Logic Controller

OB1 and OB35

• OB1 = main() on PLCs

– Stuxnet inserts its own code at the beginning of OB1 so it runs first.

• OB35 is a 100ms interrupt routine

– Used to monitor inputs that would require fast action

Stuxnet changes these blocks

– Used to monitor inputs that would require fast action

– Stuxnet infects OB35 too

• Stuxnet will return clean versions of these functions when they are read from the PLC.

Stuxnet infecting PLCs 10

Page 11: Stuxnet -Infecting Industrial Control Systems - Virus … · Stuxnet -Infecting Industrial Control Systems 2 1.5 Mb each Step7 Projects Win32k.sys EoP 2 ... Programmable Logic Controller

Demo

• Inflate a balloon for 5 seconds

• Infect the PLC

• Inflate balloon again for 5 seconds

Show Infection of a PLC

Stuxnet Demo 11

Page 12: Stuxnet -Infecting Industrial Control Systems - Virus … · Stuxnet -Infecting Industrial Control Systems 2 1.5 Mb each Step7 Projects Win32k.sys EoP 2 ... Programmable Logic Controller

Stuxnet’s PLC code

• Demo was just 8 lines of code.

• Stuxnet contains hundreds of lines of code

• It is difficult to understand the real world actions without knowing what is connected on the inputs and outputs.

Complex and large amount of code

Presentation Identifier Goes Here 12

UC FC 1865;

POP ;

L DW#16#DEADF007;

==D ;

BEC ;

L DW#16#0;

L DW#16#0;

Page 13: Stuxnet -Infecting Industrial Control Systems - Virus … · Stuxnet -Infecting Industrial Control Systems 2 1.5 Mb each Step7 Projects Win32k.sys EoP 2 ... Programmable Logic Controller

Stuxnet 13

Page 14: Stuxnet -Infecting Industrial Control Systems - Virus … · Stuxnet -Infecting Industrial Control Systems 2 1.5 Mb each Step7 Projects Win32k.sys EoP 2 ... Programmable Logic Controller

Stuxnet 14

Page 15: Stuxnet -Infecting Industrial Control Systems - Virus … · Stuxnet -Infecting Industrial Control Systems 2 1.5 Mb each Step7 Projects Win32k.sys EoP 2 ... Programmable Logic Controller

Targets

Stats for Command and Control Servers

Stuxnet - Infecting Industrial Control Systems 15

Page 16: Stuxnet -Infecting Industrial Control Systems - Virus … · Stuxnet -Infecting Industrial Control Systems 2 1.5 Mb each Step7 Projects Win32k.sys EoP 2 ... Programmable Logic Controller

Stuxnet Infections

Stuxnet - Infecting Industrial Control Systems 16

Page 17: Stuxnet -Infecting Industrial Control Systems - Virus … · Stuxnet -Infecting Industrial Control Systems 2 1.5 Mb each Step7 Projects Win32k.sys EoP 2 ... Programmable Logic Controller

White Paper Available

• Stuxnet Technical Details Available here:

• http://www.symantec.com/content/en/us/enterprise/media/security_response/whitepapers/w32_stuxnet_dossier.pdf

W32.Stuxnet Dossier

curity_response/whitepapers/w32_stuxnet_dossier.pdf

Stuxnet - Infecting Industrial Control Systems 17

Page 18: Stuxnet -Infecting Industrial Control Systems - Virus … · Stuxnet -Infecting Industrial Control Systems 2 1.5 Mb each Step7 Projects Win32k.sys EoP 2 ... Programmable Logic Controller

Thank you!Thank you!

Copyright © 2010 Symantec Corporation. All rights reserved. Symantec and the Symantec Logo are trademarks or registered trademarks of Symantec Corporation or its affiliates in the U.S. and other countries. Other names may be trademarks of their respective owners.

This document is provided for informational purposes only and is not intended as advertising. All warranties relating to the information in this document, either express or implied, are disclaimed to the maximum extent allowed by law. The information in this document is subject to change without notice.

Stuxnet – Infecting Industrial Control systems 18

Liam O Murchu - [email protected]

Nicolas Falliere

Eric Chien

Threat Intelligence Team

All Stuxnet Reverse Engineers