Horror on Horr Horr Horror on or on the b or on the b the bus - - PowerPoint PPT Presentation

horror on horr horr horror on or on the b or on the b the
SMART_READER_LITE
LIVE PREVIEW

Horror on Horr Horr Horror on or on the b or on the b the bus - - PowerPoint PPT Presentation

Horror on Horr Horr Horror on or on the b or on the b the bus the bus Hacking COMBUS in a Hacking combus in a Paradox security system Paradox security system Hackfest Decade Quebec, Canada Author Lead researcher at Possible


slide-1
SLIDE 1

Horr Horror on

  • r on the b

the bus

Hacking COMBUS in a Paradox security system

Horr Horror on

  • r on the b

the bus

Hacking combus in a Paradox security system

Hackfest Decade Quebec, Canada

slide-2
SLIDE 2

Author

  • Lead researcher at Possible

Security, Latvia

  • Hacking and breaking things

– Network flow analysis – Reverse engineering – Social engineering – Legal dimension

  • twitter / @KirilsSolovjovs
slide-3
SLIDE 3

Possible Security

  • Pentests & auditing
  • Consulting & trainings
  • Hard problems & reverse engineering

Thanks! possiblesecurity.com

slide-4
SLIDE 4

INTRO

slide-5
SLIDE 5

Paradox security systems

  • Canadian company, founded 1989
  • Modular security alarms

– SPECTRA SP

  • Expandable Security Systems

– EVO

  • High-Security & Access Systems

– MAGELLAN

  • Wireless Security Systems
slide-6
SLIDE 6

Prior research

  • Work on interfacing with SP series via COMBUS

– Martin Harizanov

  • partially working code, moved on to SERIAL
  • Work on interfacing with MG series via SERIAL

– All over forums

  • leaked docs

– Gytis Ramanauskas

  • code on github
slide-7
SLIDE 7

Responsible disclosure process

  • At first:

– General claim that there’s a vulnerability met with doubt – Clearly no process in place

  • In a few of months:

– The information has been “dealt with” – For obvious security reasons, it is our policy to never discuss engineering matters

  • utside of the company and thus we will not be commenting further on this issue
  • A couple years later — I’m in Canada

¯\_( ツ )_/¯

slide-8
SLIDE 8

Components

  • master

heart on the system – “motherboard”

– panel

  • ancillaries

– battery – power supply – siren

slide-9
SLIDE 9

Components

  • combus slaves

provide two-way communication

– keypads – modules

  • expansion
  • printer
  • listen-in
  • etc.
slide-10
SLIDE 10

Components

  • zone interrupt devices

input, measures resistance chaining

  • – magnetic sensors

– PIR sensors – panic buttons – etc.

slide-11
SLIDE 11

Components

  • PGM modules:
  • utput, 100mA relays (solid state)

– external actuators – boost relays

slide-12
SLIDE 12

Components

  • serial devices:

– RS485 – Serial converters (RS232, usb) – IP modules – GSM modules – etc.

slide-13
SLIDE 13

EVO192

16.5 V ⏦ 12 V ⎓ battery COMBUS RTC 3V battery RS485 memkey voice dialer

slide-14
SLIDE 14

REVERSE ENGINEERING

slide-15
SLIDE 15

Hardware tools

  • Saleae Logic 8
  • Arduino UNO
slide-16
SLIDE 16

COMBUS

slide-17
SLIDE 17

Electrical layer

  • combus – 4 wire bus
  • resistance = 0

black = GROUND

  • stable

voltage ⎓ red = POWER

  • ... ?

(keypad)

slide-18
SLIDE 18

Signal layer

  • yellow = CLOCK
  • green = DATA
  • 40ms between packet bursts
  • 1 clock cycle = 1ms; signal = 1kHz
slide-19
SLIDE 19

Signal encoding

  • CLOCK = low

data!!!

  • ... we should have two-way comms

something is missing ☹

0 0 0 0 1 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 1 1 0 1 0 0 1 0 0 0 0 1

0 C 9 1 2 D 2 1

slide-20
SLIDE 20

Full signal encoding

  • CLOCK = high

– slave pulls down to send “1”

  • CLOCK = low

– master pulls up to send “1”

  • ----M-M-M-M-M-M-M-MsMsMsMsMsMsMsMsMsMsMsMsMsMsMsMsMsMsMsMsMsMsMsMsM---
slide-21
SLIDE 21

Hardware setup (read-only)

12 V 5 V 2.4 kΩ 50 Ω 2.4 kΩ

  • Resistors to limit

– voltage – current draw

slide-22
SLIDE 22

Decoding into bytes

  • n

C L K c h a n g e : w a i t 5 µ s i f C L K = = h i g h : m a s t e r =

  • m

a s t e r = < 1 + D A T & 1 e l s e : s l a v e =

  • s

l a v e = < 1 + ! D A T & 1

  • n

i d l e > 2 m s : i f m a s t e r > : p r i n t m a s t e r p r i n t s l a v e m a s t e r =

  • s

l a v e =

  • CLK

DAT

slide-23
SLIDE 23

Packet structure

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 master 40 03 92 02 01 EB 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 C4 00 E2 14 10 0B 0F 37 05 00 01 5D 00 0C 13 38 1B slave 00 02 20 00 00 00 FF 5A 22 00 00 00 00 D5 23 79 E2 00 00 00 C8 B6 00 00 02 00 00 command checksum unused channel-request

slide-24
SLIDE 24

Checksum

c h e c k s u m =

  • f
  • r

i i n @ c

  • m

m a n d t

  • @

c h e c k s u m

  • 1

: c h e c k s u m =

  • (

c h e c k s u m + * i ) % 1

slide-25
SLIDE 25

Commands: heartbeat / clock

C N N D D / M M H H / S S

– N

N = x x x x x x x p = s e q u e n c e n u m b e r

  • p

= = = > C N N D D H H

– D

D = d a y

  • f

t h e m

  • n

t h

– H

H = h

  • u

r

  • p

= = 1 = > C N N M M S S

– M

M = m i n u t e s

– S

S = s e c

  • n

d s

slide-26
SLIDE 26

Commands: code entry

2 2 U T C T C C C C S S S S S S S S = #

– U

T = p x x x x x x x

  • p

= u s e r t y p e = = 1 = > p r

  • g

r a m m e r

– C

T = c

  • d

e t y p e

– C

C C C = c

  • d

e

– S

S S S S S S S = s e r i a l n u m b e r

  • f

s

  • u

r c e d e v i c e

– =

# = c h e c k s u m

slide-27
SLIDE 27

Payloads

  • No encryption used
  • Text as fixed length (often 16 chars) ASCII strings

– 0x20 = filler

  • Numbers usually packed BCD

– “0” is 0b1010 = 0xA – on encryption, but hey, at least we got obfuscation!

slide-28
SLIDE 28

DEMO TIME

Before connecting a module to the combus, remove AC and battery power from the control panel.

slide-29
SLIDE 29

EVO192

“Digiplex and Digiplex EVO systems provide the highest level of protection for banks, high- security military and government sites, luxurious residential homes and any place where maximum security is essential”

– https://www.paradox.com/Products/default.asp?CATID=7

slide-30
SLIDE 30

Exploitation scenarios

3 9 9 8 3 1 1 1 9 3 9 1 4 8 2 4 8 4 5 8 4 9 4 5 5 6 1 7 6 5 5 8 2 4 5 6 9 7 9 9 8 7 8 6 1 1 4 9 7 1 1 2 9 4 9 5 7 6 5 5 2 7 8 9 7 1 1 3 3 6 2 7 6 8 5 6 5 1 3 2 4 9 2 5 7 6 7 5 7 6 5 6 4 3 9 3 2 1 7 4 4 3 7 2 5 8 4 3 2 1 2 7 5 1 1 2 8 1 4 9 7 8 6 5 7 9 2 6 4 7 1 1 3

slide-31
SLIDE 31

SUMMARY

slide-32
SLIDE 32

Results

  • Hardware built, decoding software written
  • Protocol partially transcribed
  • Impact of possible attacks
slide-33
SLIDE 33

Solutions

  • Encryption at command layer

– TLS?

  • Mutual slave-master authentication

– client certificates?

  • Sensitive payload encryption

– with unique per-panel key!

slide-34
SLIDE 34

Further research

  • Anti-collision protocol research
  • DoS attacks
  • Emulating a slave
  • COMBUS over radio
  • RF attacks
  • Firmware reverse engineering
  • Logo. We need a logo, right? How about this one?
slide-35
SLIDE 35

Resources

  • Slides available

– http://kirils.org/ – 4 November 2018

  • Tools available

– https://github.com/0ki/paradox – 18 November 2018

slide-36
SLIDE 36

Horr Horror on

  • r on the b

the bus

Hacking COMBUS in a Paradox security system

Horr Horror on

  • r on the b

the bus

Hacking combus in a Paradox security system

http://kirils.org/ @KirilsSolovjovs