reversing internet of things from mobile applications · reversing internet of things from mobile...

41
Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10, 2016

Upload: others

Post on 22-May-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

Reversing Internet of Things from Mobileapplications

Axelle Apvrille - FortiGuard Labs, Fortinet

AREA 41, Zurich, June 10, 2016

Page 2: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

Why reverse IoT?

1.5B 1.8B 2BNumber of units in 2014

I To understand how(in)secure they are

I To protect ourselvesagainst viruses, exploits,privacy leaks

I More features &interactivity

Hot prediction

Yes, there will be(many) viruses on IoT (oneday)

AREA41 2016 - A. Apvrille 2/37

Page 3: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

Reversing Internet of Things (IoT) is difficult

Different hardware

Different OSLinux, Windows Mobile,Android, Contiki, RIOT,

TinyOS, Brillo...

Different formatsELF, BFLT...

Researche.g firmware.re

AREA41 2016 - A. Apvrille 3/37

Page 4: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

So, how do we get started?

Focus first on themobile app

Apktool, dex2jar, IDAPro...

It’s faster First step

AREA41 2016 - A. Apvrille 4/37

Page 5: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

Real examples

AREA41 2016 - A. Apvrille 5/37

Page 6: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

Real examples

AREA41 2016 - A. Apvrille 5/37

Page 7: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

Real examples

AREA41 2016 - A. Apvrille 5/37

Page 8: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

Beam Toothbrush - Smart Glasses - Safety Alarm

AREA41 2016 - A. Apvrille 6/37

Page 9: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

Where to start?

Let’s reverse the Android and/or iOSapplications

AREA41 2016 - A. Apvrille 7/37

Page 10: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

List SQL tables

AREA41 2016 - A. Apvrille 8/37

Page 11: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

Getting table columns

AREA41 2016 - A. Apvrille 9/37

Page 12: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

Results: What You Learn

InsuredI insuredID: primary

key

I title

I first name

I middle initial

I last name

I post name

I relation to -policy holder

I gender

I ...

DeviceI deviceID: primary

key

I battery remaining

I bluetooth id

I color int

I firmware revision

I hardware revision

I initial setup

I mac address

I ...

AREA41 2016 - A. Apvrille 10/37

Page 13: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

Getting methods of classes

I Methods: OBJC INSTANCE METHODS

I Instance variables: OBJC INSTANCE METHODS - containsname and type of variables

AREA41 2016 - A. Apvrille 11/37

Page 14: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

Results: What You Learn

AREA41 2016 - A. Apvrille 12/37

Page 15: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

BLE characteristics

AREA41 2016 - A. Apvrille 13/37

Page 16: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

Results: What You Learn

UUID Description

a8902afd-4937-4346-... Boolean indicator for active brushing267b09fd-fb8e-4bb9-... Motor state3530b2ca-94f8-4a1d-... Current time833da694-51c5-4418-... Motor speed19dc94fa-7bb3-4248-... Auto-off and quadrant buzz indicators

(2 bits)6dac0185-e4b7-4afd-... Battery level (2 bytes)0971ed14-e929-49f9-... Brush color (1 byte)0227f1b0-ff5f-40e3-... Accelerometer data (6 bytes)ed1aa0cf-c85f-4262-... Gyroscope (6 bytes)cf0848aa-ccdb-41bf-... Button state

AREA41 2016 - A. Apvrille 14/37

Page 17: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

So, what?

Device Smartphone Cloud

● Firmware● Hardware● Flash● Battery: level● Motor: control speed● Gyroscope: 3 axis● Accelerometer: 3 axis● Auto off timer● Bluetooth: MAC addr● Serial no

User name,Birthdate,

Email,Zip

Stars ...

User name,Birthdate,

Email,Zip

Stars ...

*.beamtoothbrush.com/

Dentist map database

Discount database

User database

SYNC HTTPS

BLE

AREA41 2016 - A. Apvrille 15/37

Page 18: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

Why are we investigating toothbrushes?!

Come on!Attackers don’t care about our teeth!!!

Truebut you are missing the point!Attackers care about money

AREA41 2016 - A. Apvrille 16/37

Page 19: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

Why are we investigating toothbrushes?!

Come on!Attackers don’t care about our teeth!!!

True

but you are missing the point!Attackers care about money

AREA41 2016 - A. Apvrille 16/37

Page 20: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

Why are we investigating toothbrushes?!

Come on!Attackers don’t care about our teeth!!!

Truebut you are missing the point!Attackers care about money

AREA41 2016 - A. Apvrille 16/37

Page 21: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

Toothbrush attack scenario 1/4: Targeted business

You own a connected toothbrush?

Attacker knows:

I Name and ages of member of your family

I Likely to be wealthy high tech user

I You value your health

→ Sell health plans + high-tech ads

Known business, more or less legal, privacy issues

AREA41 2016 - A. Apvrille 17/37

Page 22: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

Toothbrush Attack Scenario 2/4: Ransomware

Ransom kids pocket moneySee also Candid Wuest, IsRansomware coming to IoTdevices?

Efficient but low revenue

AREA41 2016 - A. Apvrille 18/37

Page 23: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

Toothbrush Attack Scenario 3/4: Undeserved rewards

What can the attacker get for forged brushing rewards:

I Free toothpaste ;) not very attractive

I Insurance fraud... more scary

Watch for this in the future

AREA41 2016 - A. Apvrille 19/37

Page 24: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

Toothbrush Attack Scenario 4/4: Infection vector

Your toothbrush (or other IoT) infects other devices

Watch for this in the future

AREA41 2016 - A. Apvrille 20/37

Page 25: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

Toothbrush - Recon Jet Smart Glasses - Safety Alarm

AREA41 2016 - A. Apvrille 21/37

Page 26: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

A shell on the glasses

I Enable USB debugging on the glasses

I Add udev rule

I Add vendor in/.android/adb usb.ini

$ adb devices

List of devices attached

291052171 device

$ adb -s 291052171 shell

shell@android:/ $

AREA41 2016 - A. Apvrille 22/37

Page 27: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

System properties

shell@android:/ $ getprop ro.boot.bootloader

U-Boot_1.1.4-4.4-SUN^0-dirty

shell@android:/ $ getprop ro.build.description

lean_jet_sun-user 4.1.2 JZO54K 11 release-keys

The glasses are using Android 4.1.2 - Jelly Bean

AREA41 2016 - A. Apvrille 23/37

Page 28: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

Hardware investigations

Hey, what hardware is it using?

/system/board

properties/soc/revision:OMAP4430

/system/lib/hw/sensors.conf:

I STM LSM9DS0 accelerome-ter/gyroscope/compass

I STM LPS25 pressure

I TI TMP103 temperature

I Recon Free Fall

I Avago Tech APDS9900 ambientlight

AREA41 2016 - A. Apvrille 24/37

Page 29: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

System applications

shell@android:/system/app $ ls

...

ReconCamera.apk

ReconCompass.apk

ReconItemHost.apk

...

Pull them, analyze themApktool, dex2jar, JEB, baksmali...

AREA41 2016 - A. Apvrille 25/37

Page 30: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

Data leak

Events : Start/

Pause …Battery level

+ Logcat, dmesg

ZIP Hard-coded password

Sent during synchronization

HTTPS

Recon Instrumentsservers

Recon Jetglasses

AREA41 2016 - A. Apvrille 26/37

Page 31: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

Example of data{

"component": "battery_monitor",

"data1": "99%; 4172mV",

"data2": "Charging USB",

"data3": "29",

"event_type": "BatteryMeasurement",

"time_stamp": "1434115258015"

},

{

"component": "ActivityManager",

"data1": "com.reconinstruments.

jetconnectdevice/.ReconnectSmartphoneActivity",

"data2": "",

"data3": "",

"event_type": "PauseActivity",

"time_stamp": "1434115211239"

},

AREA41 2016 - A. Apvrille 27/37

Page 32: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

Vulnerability status

Vulnerability foundVendor contacted

Issue fixed in Recon OS 4.4 (February 2016)

AREA41 2016 - A. Apvrille 28/37

Page 33: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

Toothbrush - Smart Glasses - Meian Home Safety Alarm

AREA41 2016 - A. Apvrille 29/37

Page 34: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

There’s an Android app for the alarm

I Protect your house against burglars

I Controllable by SMS

But it’s not very user friendly...

Comply to a strict SMS formatting

So, they created an Android app to assistend-users

AREA41 2016 - A. Apvrille 30/37

Page 35: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

(Known?) Security issue

In the outbox, the SMS contains thepassword and phone number of thealarm.You get it? You control thealarm!

Fake data, of course :D

Let’s suppose you are a wise person and erase the SMSYou are wise, aren’t you?

AREA41 2016 - A. Apvrille 31/37

Page 36: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

With the Android app, it’s worse!

Weak protection for password: we can recover alarm’s phonenumber, password, delay, emergency phone...

Your credentials are at risk even if you erased the SMS!

Without the app, 1 security issue.With the app, 2 security issues !!!

AREA41 2016 - A. Apvrille 32/37

Page 37: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

Recap’ (1/2)

How to reverse Internet of Things

1. Get the mobile application, reverse it

2. Then, use what you have learned to go deeper down and e.g.inspect hardware, protocols etc.

AREA41 2016 - A. Apvrille 33/37

Page 38: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

Recap’ (2/2)

I We know how to communicate with the toothbrush

I We know where stars and challenges are handled

I One vulnerability found and fixed

I We know what hardware is used

I One vulnerability found, advisory published

I Don’t use the app!

AREA41 2016 - A. Apvrille 34/37

Page 39: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

I’m an IoT vendor: what can I do?

DO

I Design security of IoT from thebeginning

I Review security of mobile apps

I Help security researchers workon your devices

I Consider open sourcing some -or all - of your code

DO NOT

Do not underestimate your device/ data

It may not seem interesting to youbut an attacker has different goals!There are viruses out there

“Okay, now I’ll obfuscate mymobile code!”

That’s plain stupid and inefficient!Security by obscurity has never

worked

AREA41 2016 - A. Apvrille 35/37

Page 40: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

Acknowledgements

Thanks to Beam Technologies for providing a free user account fortesting purposes.

Thanks to Recon Instruments for their responsiveness.

That’s how security works and improves, folks!

AREA41 2016 - A. Apvrille 36/37

Page 41: Reversing Internet of Things from Mobile applications · Reversing Internet of Things from Mobile applications Axelle Apvrille - FortiGuard Labs, Fortinet AREA 41, Zurich, June 10,

Thanks for your attention!

@cryptax or aapvrille (at) fortinet (dot) comhttp://www.fortiguard.com

http://blog.fortinet.com

Awesome slides? Thanks! That’s LATEX

AREA41 2016 - A. Apvrille 37/37