73
Hey operator, where’s your crane? Attacking Industrial Remote Controllers Marco Balduzzi, Federico Maggi, Jonathan Andersson Joint work with Philippe Lin, Akira Urano, Stephen Hilt and Rainer Vosseler

Hey operator, where’s your crane?

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Hey operator, where’s your crane?

Hey operator, where’s your crane?

Attacking Industrial Remote ControllersMarco Balduzzi, Federico Maggi, Jonathan Andersson

Joint work with Philippe Lin, Akira Urano, Stephen Hilt and Rainer Vosseler

Page 2: Hey operator, where’s your crane?

Industrial Remote Controllers

Page 3: Hey operator, where’s your crane?
Page 4: Hey operator, where’s your crane?
Page 5: Hey operator, where’s your crane?
Page 6: Hey operator, where’s your crane?
Page 7: Hey operator, where’s your crane?
Page 8: Hey operator, where’s your crane?

8 Copyright © 2019 Trend Micro Incorporated. All rights reserved.

Page 9: Hey operator, where’s your crane?

Preliminary on-site testing

Page 10: Hey operator, where’s your crane?
Page 11: Hey operator, where’s your crane?

TW SAGA TW JuukoIT AutecIT ELCATW TelecraneJP Circuit DesignDEHetronic International

World-wide testing

Page 12: Hey operator, where’s your crane?

SDR

Page 13: Hey operator, where’s your crane?

Record & Reply

REPLYRECORD

Page 14: Hey operator, where’s your crane?

What happened?

Page 16: Hey operator, where’s your crane?

TX RX

MESSAGE 1 “UP”“UP”

Page 17: Hey operator, where’s your crane?

TX RX

MESSAGE 1

MESSAGE 2

“UP” “UP”

Page 18: Hey operator, where’s your crane?

TX RX

MESSAGE 1

MESSAGE 2

. . . . . .

MESSAGE 100

“UP” “UP”

MESSAGE 3

Page 19: Hey operator, where’s your crane?

ALL messages are

the same!

Page 20: Hey operator, where’s your crane?

1: Record & Replay

Difficulty CostVendors

ALL $$$$

ATTACKS

DEMO

Page 21: Hey operator, where’s your crane?

Arbitrary Command

Execution

Page 22: Hey operator, where’s your crane?

101010101010101010101010 1001001100001011 101000111011110 00001101 10100010 11110101…

Page 23: Hey operator, where’s your crane?

SID CODE … CHECKSUM OF“UP”

UP

REVERSEENGINEERING

Page 24: Hey operator, where’s your crane?

SID CODE … CHECKSUM OF“E-STOP”

COMMAND REPLACEMENTFor example: UP -> E-STOP

UPE-STOP

E-Stop Button

Page 25: Hey operator, where’s your crane?

SID CODE … CHECKSUM OF“E-STOP”

UPE-STOP

DOS OF PRODUCTION!

Page 26: Hey operator, where’s your crane?

DEMO

Page 27: Hey operator, where’s your crane?

Example of Analysis

Page 28: Hey operator, where’s your crane?
Page 29: Hey operator, where’s your crane?
Page 30: Hey operator, where’s your crane?

Reverse Engineering

0001

1011

RF Analysis

Page 31: Hey operator, where’s your crane?

Reverse Engineering is Challenging• Capture signal… then what?

Page 32: Hey operator, where’s your crane?

Reverse Engineering is Challenging

Logic Analyzer

Page 33: Hey operator, where’s your crane?

Semantic of the controller

Page 34: Hey operator, where’s your crane?

Decoding the data of logic analyzer • Created tool to convert waveforms to SPI

operations (R/W register X)• Tedious to read SPI ops and determine

many radio states– Boot, Idle– Press ‘UP’, Release ‘UP’– Press ‘DOWN’…

Page 35: Hey operator, where’s your crane?

Decoding the data of logic analyzer

Page 36: Hey operator, where’s your crane?

SPI Ops to Radio Registers• Copy/Paste radio register set from

datasheet into python• Now we can easily see what is being

accessed, set, programmed.• But when you have 100’s of register

operations…

Page 37: Hey operator, where’s your crane?

SPI Ops to Radio Registers

Page 38: Hey operator, where’s your crane?

Persist Radio Register State• Emulate internal radio registers

– Default register states are in datasheet• Allow dumping of current radio state• Allow pausing at key triggers (TX/RX)• Now we know exact signal parameters at

TX/RX

Page 39: Hey operator, where’s your crane?

Persist Radio Register State

Page 40: Hey operator, where’s your crane?

Exercising complex protocols

Page 41: Hey operator, where’s your crane?

Exercising complex protocols

Page 42: Hey operator, where’s your crane?

Developing complex attacks• Can instrument emulator at any point in

the stack to determine state• Replay LA data to generate RF and

interact with physical devices• Never touched a physical device…

Page 43: Hey operator, where’s your crane?

Developing complex attacks

Page 44: Hey operator, where’s your crane?

Juuko RX Radio

Page 45: Hey operator, where’s your crane?

Payload Reverse Engineering

Page 46: Hey operator, where’s your crane?

Payload Reverse Engineering

Preamble Sync Words Trailer??? ??? ????

Custom application protocol(with security through obscurity baked in, usually)

Page 47: Hey operator, where’s your crane?

47 Copyright © 2019 Trend Micro Incorporated. All rights reserved.

Payload Reverse Engineering

Sequential ID

Preamble Sync Words TrailerSEQ.ID

Page 48: Hey operator, where’s your crane?

48 Copyright © 2019 Trend Micro Incorporated. All rights reserved.

Payload Reverse Engineering

Fixed Sequential ID

Page 49: Hey operator, where’s your crane?

49 Copyright © 2019 Trend Micro Incorporated. All rights reserved.

Payload Reverse Engineering

Interesting 4 bytes

Page 50: Hey operator, where’s your crane?

50 Copyright © 2019 Trend Micro Incorporated. All rights reserved.

Play Around With the Pairing Code

Page 51: Hey operator, where’s your crane?

51 Copyright © 2019 Trend Micro Incorporated. All rights reserved.

Payload Reverse Engineering

Pairing code: 20 10 77 C8

Page 52: Hey operator, where’s your crane?

52 Copyright © 2019 Trend Micro Incorporated. All rights reserved.

Payload Reverse Engineering

Zeroed code: 00 00 00 00

Page 53: Hey operator, where’s your crane?

53 Copyright © 2019 Trend Micro Incorporated. All rights reserved.

Payload Reverse Engineering

Pairing code: 20 10 77 C8

Preamble Sync Words TrailerSEQ.ID Pairing Code

Page 54: Hey operator, where’s your crane?

54 Copyright © 2019 Trend Micro Incorporated. All rights reserved.

Payload Reverse Engineering

Preamble Sync Words TrailerSEQ.ID Pairing CodePairing CodeSUM

SUM

Page 55: Hey operator, where’s your crane?

1: Record & Replay

2: Command Injection

ALL $$$$

ALL $$$$

DIFFICULTY COSTVENDORSATTACKS

Page 56: Hey operator, where’s your crane?

1: Record & Replay

2: Command Injection

3: E-Stop Abuse

4: Malicious Re-pairing

ALL $$$$

ALL $$$$

ALL

PART

$$$$

$$$$

OFF

E-STOP

E-STOP

E-STOP

DIFFICULTY COSTVENDORSATTACKS

Page 57: Hey operator, where’s your crane?

Malicious Re-Programming

Page 58: Hey operator, where’s your crane?

FCC schematics of the SAGA radio controller.https://fccid.io/NCTSAGA1-L8/Schematics/schematics-4-273419

?!

Page 59: Hey operator, where’s your crane?
Page 60: Hey operator, where’s your crane?

MSP430F1101A BSL

• 1KB Bootloader• Password is 16 * 2 bytes 🡺 IVT• BSL ver 1.3

Page 61: Hey operator, where’s your crane?
Page 62: Hey operator, where’s your crane?

$ MSPFet.EXE +r "psw.txt“ –BLS=COM5

Check firmware integrity in the flash

Page 63: Hey operator, where’s your crane?

Malicious Firmware• Clear-text password

transmission• Unprotected firmware• Forgeable integrity check

• Backdoors

Page 64: Hey operator, where’s your crane?

64 Copyright © 2019 Trend Micro Incorporated. All rights reserved.

1: Record & Replay

2: Command Injection

3: E-Stop Abuse

4: Malicious Re-pairing

$$$$

$$$$

$$$$

$$$$

OFF

E-STOP

E-STOP

E-STOP

5: MaliciousRe-programming $$$$

DIFFICOLTY COSTVENDORSATTACKS

ALL

ALL

ALL

PART

PART

Page 65: Hey operator, where’s your crane?

Remote, Stealthy and Persistent Attacks

Page 66: Hey operator, where’s your crane?

Lower Barrier

$299$480 $99 $40

Page 67: Hey operator, where’s your crane?

TARGET

REMOTEATTACKER

LOCAL BRIDGE$40

Page 68: Hey operator, where’s your crane?

DEMO

Page 69: Hey operator, where’s your crane?

Responsible Disclosure DiscussionVendor CVE-ID Status

Circuit Design ZDI-CAN-6185 (replay attack) Closed (No fix)SAGA CVE-2018-17903 (replay attack / command forgery)

CVE-2018-20783 (malicious pairing)CVE-2018-17923 (malicious firmware upgrade)

Patch ReleasedPatch ReleasedPatch Released

Telecrane CVE-2018-17935 (replay attack) Patch ReleasedJuuko ZDI-18-1336 (replay attack)

ZDI-18-1362 (command forgery)0day (No response)0day (No response)

ELCA CVE-2018-18851 (replay attack) Closed (EOL)Autec ZDI-CAN-6183 (replay attack) Closed (No fix)Hetronic CVE-2018-19023 (replay attack) Patch Released

Page 70: Hey operator, where’s your crane?

Conclusions• Patterns of Vulnerabilities

– No rolling-code– Weak or no encryption at all– Lack of software / firmware protection

• Need for security programs / awareness in the field of IIoT

Page 71: Hey operator, where’s your crane?

Vendors Users• Use open technologies

and standards (e.g., Bluetooth)

• Adopt rolling codes and encryption

• Protect the firmware• User maintenance!

• Promote vendors adopting open technologies

• Maintenance– Updates – Period change of

secrets

Page 72: Hey operator, where’s your crane?

Paper

• White-paper on Trend Micro Researchhttps://tinyurl.com/indradio

• Academic paper published at DIMVA ’19http://www.madlab.it/papers/rfquack-dimva19.pdf

Page 73: Hey operator, where’s your crane?

Thanks! Questions?

Marco Balduzzi, Federico Maggi, Jonathan Andersson

Internal Use Only

Joint work with Philippe Lin, Akira Urano, Stephen Hilt and Rainer Vosseler