149
Hacking Bluetooth Smart Sławomir Jasek Mobilization, 17.10.2015

Hacking Bluetooth Smart

Embed Size (px)

Citation preview

Page 1: Hacking Bluetooth Smart

Hacking Bluetooth

Smart

Sławomir Jasek

Mobilization, 17.10.2015

Page 2: Hacking Bluetooth Smart

Pentester / konsultant bezpieczeństwa

Konsultacje i ocena bezpieczeństwa

rozmaitych aplikacji – www, mobile,

embedded...

Od 2003 / ponad 400 projektów

Sławomir Jasek

Page 3: Hacking Bluetooth Smart

Internet of Things

Bluetooth Smart

Beacony

Jak ukraść samochód

Podsumowanie

("na bis": opaska sportowa)

Agenda

Page 4: Hacking Bluetooth Smart

INTERNET OF THINGS

- Jak być "SMART"

Page 5: Hacking Bluetooth Smart

"Smart" żarówki – jedynie 70$ sztuka

https://www.indiegogo.com/projects/lightfreq-square2-smart-lightbulb-hd-speaker/

Page 6: Hacking Bluetooth Smart

Dom "Smart" – zrobię inteligentne włączniki!

$$$ $

https://www.youtube.com/watch?v=FXyzm61_eZE

Page 7: Hacking Bluetooth Smart

Po 2 latach ;)

http://geek-and-poke.com/geekandpoke/2015/6/3/smartest-homes

Page 8: Hacking Bluetooth Smart

Rzeczywistość...

Włączenie światła z aplikacji trwa 26 razy dłużej

Page 9: Hacking Bluetooth Smart

"Pierwszy na świecie smart" kosz na śmieci

Okazja! Jedyne 249$ + worki 19$

https://www.kickstarter.com/projects/brunosmartcan/trash-can-vacuum-bruno-the-worlds-first-smartcan

Page 10: Hacking Bluetooth Smart

A może bidon który przypomni o piciu wody?

https://www.kickstarter.com/projects/582920317/hidrateme-smart-water-bottle

Page 11: Hacking Bluetooth Smart

A może kubek który powie co jest w środku?

www.myvessyl.com

Page 12: Hacking Bluetooth Smart

Chip w krowie

www.vitalherd.com

Page 13: Hacking Bluetooth Smart

"A sensor embedded in a tooth could one

day tell doctors when people have defied

medical advice to give up smoking or eat

less. Built into a tiny circuit board that fits in

a tooth cavity, the sensor includes an

accelerometer that sends data on mouth

motion to a smartphone. Machine learning

software is taught to recognise each telltale

jaw motion pattern, then works out how

much of the time the patient is chewing,

drinking, speaking, coughing or smoking"

Chip w zębie

http://nslab.ee.ntu.edu.tw/publication/conf/TeethProbeISWC.pdf

Page 14: Hacking Bluetooth Smart

Chip na głowie – poprawi Ci nastrój

www.thync.com

Page 15: Hacking Bluetooth Smart

1. Wymyślić do czego jeszcze nie włożono chipa.

2. Kupić devkit (Nordic, TI...), czasem odrobinę lutowania

3. Zaimportować kod BLE do aplikacji mobilnej

4. Przekonująca strona + video (bootstrap)

5. Kampania crowdfundingowa!

6. Profit.

Startup

http://southpark.cc.com/full-episodes/s18e01-go-fund-yourself

Page 16: Hacking Bluetooth Smart

Zastosowania w bezpieczeństwie?

https://www.kickstarter.com/projects/xolutronic/passfort-your-digital-life-secure

Page 17: Hacking Bluetooth Smart

Smart Lock?

http://www.august.com

Page 18: Hacking Bluetooth Smart

Poufność, integralność, DOSTĘPNOŚĆ

https://twitter.com/rabcyr/status/643956567818248192/

Page 19: Hacking Bluetooth Smart

Bankowość

http://www.wired.co.uk/news/archive/2015-03/13/halifax-ecg-login

Page 20: Hacking Bluetooth Smart

Medycyna, fabryki, samochody, smart home...

http://www.bluetooth.com/Pages/Medical.aspx

Page 21: Hacking Bluetooth Smart

Internet of Things – najczęstszy scenariusz

machine learning, Big Data "cloud"

"HUB"

Page 22: Hacking Bluetooth Smart

IoT – te scenariusze ataku znamy od lat...

machine learning, Big Data "cloud"

"HUB"

Page 23: Hacking Bluetooth Smart

Bluetooth Smart, Low Energy, 4...

Jedna z najpopularniejszych, najprężniejszych technologii IoT. Kompletnie inny protokół niż poprzednie wersje Bluetooth. Główny cel: niskie zużycie energii. Najczęstsze sposoby użycia: a) Rozgłaszanie pakietów b) Wymiana danych między urządzeniami

Page 24: Hacking Bluetooth Smart

Bluetooth 4.2

http://www.bluetooth.com/SiteCollectionDocuments/4-2/bluetooth4-2.aspx

Page 25: Hacking Bluetooth Smart

Łatwość wdrożenia, dostępność i koszt komponentów.

Coraz więcej urządzeń – "wearables", medyczne, smart home

Rozkwit beacon'ów i pozycjonowania wewnątrz budynków

Physical web

Bluetooth Mesh

Web bluetooth – dostęp do urządzeń z przeglądarki (API)

IPv6 over Bluetooth Smart

Przyszłość IoT należy do Bluetooth Smart

Page 26: Hacking Bluetooth Smart

IPv6 over Bluetooth Smart

machine learning, Big Data "cloud"

IPv6

IPv6

IPv6

IPv6

IPv6 IPv6

IPv6

Page 27: Hacking Bluetooth Smart

Pairing

Key Generation

Encryption

Encryption in Bluetooth LE uses AES-CCM cryptography. Like BR/EDR, the

LE Controller will perform the encryption function. This function generates

128-bit encryptedData from a 128-bit key and 128-bit plaintextData using

the AES-128-bit block cypher as defined in FIPS-1971.

Signed Data

Bezpieczeństwo - wg specyfikacji

https://developer.bluetooth.org/TechnologyOverview/Pages/LE-Security.aspx

Page 28: Hacking Bluetooth Smart

Ochrona przed atakami na różnych warstwach:

• Man-in-the-Middle (MITM)

• Pasywny podsłuch

• Śledzenie urządzeń/użytkowników

"The goal of the LE security mechanism is to protect communication between devices at different levels of the stack. "

Bezpieczeństwo - wg specyfikacji

https://developer.bluetooth.org/TechnologyOverview/Pages/LE-Security.aspx

Page 29: Hacking Bluetooth Smart

BEACONY

Page 30: Hacking Bluetooth Smart

Niewielkie urządzenia Bluetooth Low

Energy do precyzyjnej lokalizacji.

Rozgłaszają:

• unikalne identyfikatory

interpretowane przez aplikacje

(standard Apple iBeacon)

• dodatkowe opcje: URL, dane np.

temperatura (Google Eddystone)

Beacony

Beacon Eddystone rozgłaszający URL

http://www.aislelabs.com/reports/beacon-guide/

Beacon Eddystone widoczny w telefonie

Page 31: Hacking Bluetooth Smart

Dodatkowe informacje (np. o produktach na półce) na

podstawie precyzyjnej lokalizacji.

Nagrody, punkty lojalnościowe, "gamifikacja".

Automatyczny "Check-in".

Nawigacja wewnątrz budynków.

Informacja o kradzieży roweru, portfela.

"Smart home" – automatyczne otwieranie drzwi, włączanie światła...

Beacony – przykładowe scenariusze użycia

Page 32: Hacking Bluetooth Smart

Detal: ktoś inny może użyć naszych beaconów żeby

przedstawić lepszą ofertę konkurencji.

Aplikacje dające jakiś zysk po zbliżeniu do beaconu:

- możliwość oszukania tego faktu

Przejęcie kontroli, rekonfiguracja, kradzież urządzenia:

- wymaga fizycznego zbliżenia, ataki celowe lub przypadkowe

Ryzyka – zależą od użycia

Page 33: Hacking Bluetooth Smart

Beacony rozgłaszają sygnał publicznie

Szczegóły można podglądnąć np. w darmowej aplikacji.

https://play.google.com/store/apps/details?id=uk.co.alt236.btlescan

Page 34: Hacking Bluetooth Smart

Beacony rozgłaszają sygnał publicznie

Page 35: Hacking Bluetooth Smart

Beacony rozgłaszają sygnał publicznie

Page 36: Hacking Bluetooth Smart

iBeacon – emulacja #1 – darmowa aplikacja

https://itunes.apple.com/us/app/locate-beacon/id738709014 https://play.google.com/store/apps/details?id=com.radiusnetworks.locate

Page 37: Hacking Bluetooth Smart

# hcitool cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02

15 84 2A F9 C4 08 F5 11 E3 92 82 F2 3C 91 AE C0 5E FD

E8 AF C8 C5 00

iBeacon – emulacja #2: Bluez

Page 38: Hacking Bluetooth Smart

# hcitool cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02

15 84 2A F9 C4 08 F5 11 E3 92 82 F2 3C 91 AE C0 5E FD

E8 AF C8 C5 00

iBeacon – emulacja #2: Bluez

Page 39: Hacking Bluetooth Smart

# hcitool cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02

15 84 2A F9 C4 08 F5 11 E3 92 82 F2 3C 91 AE C0 5E FD

E8 AF C8 C5 00

iBeacon data broadcast

iBeacon prefix (constant) UUID: 842AF9C4-08F51-1E39-282F-

23C91AEC05E

Major: FD E8 = 65 000

Minor: AF C8 = 45 000

TX power

Page 40: Hacking Bluetooth Smart

Czasami wystarczy spreparować żądanie HTTP...

Page 41: Hacking Bluetooth Smart

iBeacon – dodatkowe informacje w muzeum

Page 42: Hacking Bluetooth Smart

Atak?

Page 43: Hacking Bluetooth Smart

Beacony – nawigacja?

Page 44: Hacking Bluetooth Smart

Atak?

Page 45: Hacking Bluetooth Smart

KONFIGURACJA

Page 46: Hacking Bluetooth Smart

# 1. Aby zrekonfigurować dowolny beacon wystarczy

zainstalować aplikację deweloperską.

# 2. Użytkownik może konfigurować wyłącznie swoje

urządzenia (weryfikacja w "chmurze").

Jednak okazuje się, iż ograniczenie jest tylko w GUI.

Rekonfiguracja urządzenia nadal nie wymaga

uwierzytelnienia.

Beacony - konfiguracja

Page 47: Hacking Bluetooth Smart

Beacony - konfiguracja

Statyczny klucz zaszyty w kodzie SDK – trywialny do podglądnięcia po zdekompilowaniu

Page 48: Hacking Bluetooth Smart

# 3. Stały klucz uwierzytelniający zaszyty w SDK

# 4. Indywidualne dane uwierzytelniające w "chmurze".

Nowa funkcja: możliwość rekonfiguracji urządzenia za

pośrednictwem telefonu użytkownika końcowego (?)

Beacony - konfiguracja

Page 49: Hacking Bluetooth Smart

Po co?

- Wandalizm

- Rozsiewać spam w Physical Web (URL Eddystone)

Warunki wykorzystania

- Fizyczna bliskość

- Przejęcie telefonu

Jeśli atak byłby trywialny (np. publicznie dostępna aplikacja),

mógłby być przeprowadzony przez przypadkowego intruza.

Beacony – konfiguracja: ryzyko ataku

Page 50: Hacking Bluetooth Smart

SAMOCHÓD

Page 51: Hacking Bluetooth Smart

Urządzenie BLE do kontroli nad samochodem

Page 52: Hacking Bluetooth Smart

"Nowoczesność projektu, wysokie tempo, ofiarność załóg i wykorzystanie sił społecznych"

Page 53: Hacking Bluetooth Smart

"hacking challenge"

Page 54: Hacking Bluetooth Smart

Jak, pomożecie?

Page 55: Hacking Bluetooth Smart

PRZEKAŹNIK?

Page 56: Hacking Bluetooth Smart

Atak "relay"

Relay Attacks on Passive Keyless Entry and Start Systems in Modern Cars http://eprint.iacr.org/2010/332.pdf

Page 57: Hacking Bluetooth Smart

Na większą odległość?

Page 58: Hacking Bluetooth Smart

Znany od lat, z powodzeniem stosowany przez złodziei, zwłaszcza

kradnących rzeczy z samochodu (nie potrzebują zapłonu).

Warunki:

• aktywne automatyczne otwieranie po zbliżeniu

• zbliżenie się do ofiary w tym samym czasie co kradzież

• nie pozwala na otwarcie samochodu w dowolnym momencie

później

Ale w samochodzie jest również blokada zapłonu...

Atak "relay"

Page 59: Hacking Bluetooth Smart

PODSŁUCH?

- warstwa fizyczna

Page 60: Hacking Bluetooth Smart

Bluetooth LE - kanały

http://www.connectblue.com/press/articles/shaping-the-wireless-future-with-low-energy-applications-and-systems/

kanały rozgłoszeniowe

Page 61: Hacking Bluetooth Smart

Open-source (software, hardware).

Sprzętowo łapie połączenia i pakiety

Bluetooth.

Podgląd pakietów w Wireshark.

Potrzebne 3 urządzenia aby obstawić

wszystkie 3 kanały rozgłoszeniowe.

Podsłuch Bluetooth: Ubertooth – 120$

http://greatscottgadgets.com/ubertoothone/

Page 62: Hacking Bluetooth Smart

Bardzo drogie skanery komercyjne – profesjonalna

analiza całego pasma jednocześnie

Podsłuch Bluetooth

http://www.ellisys.com/products/bex400/

Ellisys Bluetooth Explorer 400 All-in-One Bluetooth® Protocol Analysis System

http://www.fte.com/products/BPA600.aspx

ComProbe BPA® 600 Dual Mode Bluetooth® Protocol Analyzer

Page 63: Hacking Bluetooth Smart

FAKT TECHNICZNY #1

- Szyfrowanie w Bluetooth Smart

Page 64: Hacking Bluetooth Smart

Szyfrowanie działa domyślnie, transparentnie.

1. Parowanie - ustalenie wspólnego "Long Term Key" obu urządzeń za pomocą jednej z metod:

JustWorks(R) – po prostu działa ;)

PIN

Out of band

2. Połączenia po sparowaniu – szyfrowanie AES za pomocą kluczy sesji z LTK

Bluetooth LE - szyfrowanie

Page 65: Hacking Bluetooth Smart

1. Parowanie

Podsłuchanie parowania => odzyskanie klucza Long Term Key

(narzędzie crackle), umożliwia odszyfrowanie transmisji

szczegóły: http://lacklustre.net/bluetooth/

2. Połączenia po sparowaniu

Teoretycznie możliwy aktywny atak wymuszający renegocjację

LTK, w praktyce w większości przypadków nie działa.

Bluetooth 4.2 (2014) poprawia bezpieczeństwo transmisji.

Bluetooth LE – podsłuch transmisji

Page 66: Hacking Bluetooth Smart

- Szyfrowanie w Bluetooth Smart

//FAKT TECHNICZNY #1

Page 67: Hacking Bluetooth Smart

Podsłuch parowania – trudne do spełnienia warunki:

• musimy być w zasięgu w trakcie pierwszej konfiguracji telefonu z samochodem.

Podsłuchiwanie połączenia już sparowanego nie ma sensu – wymagałoby złamania AES.

Czy podsłuchanie transmisji nam w ogóle coś da?

Atak w praktyce?

Page 68: Hacking Bluetooth Smart

IBEACON

- warstwa aplikacji

Page 69: Hacking Bluetooth Smart

Urządzenie w samochodzie rozgłasza się jako iBeacon.

Pakiety rozgłaszane są publicznie, z łatwością zobaczymy je np. w telefonie.

Jak to działa?

A jak łączy się do urządzenia aplikacja?

Page 70: Hacking Bluetooth Smart

Aplikacja – dekompilacja apk

Page 71: Hacking Bluetooth Smart

1. Wyszukiwanie konkretnego iBeacona po UUID:

ProximityUUIDReady = "61150620-fc5e-11e3-a3ac-0800200c9a01";

int Major, Minor – zapisane w telefonie

2. Nawiązanie połączenia z beaconem

public void onEvent(XxxxxScannedEvent paramXxxxxScannedEvent) {

beaconList.add(xxxxxBeacon);

BleManager.connectManager.connect(xxxxxBeacon.getBluetoothAddress());

To co robimy?

Jak działa aplikacja?

Page 72: Hacking Bluetooth Smart

# hcitool -i hci0 cmd 0x08 0x0008 $IBEACONPROFIX $UUID $MAJOR $MINOR $POWER

Emulacja beacona!

Page 73: Hacking Bluetooth Smart

Czekamy 5 minut

Czekamy 10 minut

Czekamy 20 minut

... samochód nie działa ;)

Jedziemy na miejsce i...

https://www.flickr.com/photos/artvlive/19548772122

Page 74: Hacking Bluetooth Smart

OK, ale jak rozwiązać ten problem?

Alice

Bob

Mallory

Page 75: Hacking Bluetooth Smart

Stanąć bliżej?

Przedłużacz USB?

Nie działa ;)

A jedna próba to 10 minut w plecy.

Podejść bliżej?

http://www.usb-cable.com/html/usb-extension-cables.html

Page 76: Hacking Bluetooth Smart

Class 1 +8dBm

Zasięg 100 m

112.90 PLN

"little difference in range whether the other end of the

link is a Class 1 or Class 2 device as the lower

powered device tends to set the range limit"

https://en.wikipedia.org/wiki/Bluetooth

Silniejszy sygnał?

http://www.lairdtech.com/products/bt820

Page 77: Hacking Bluetooth Smart

Może odseparować sygnał?

Page 78: Hacking Bluetooth Smart

FAKT TECHNICZNY #2

- Fale elektromagnetyczne

Page 79: Hacking Bluetooth Smart

Dyfrakcja (ugięcie fali) to zjawisko fizyczne

zmiany kierunku rozchodzenia się fali na

krawędziach przeszkód oraz w ich pobliżu.

https://pl.wikipedia.org/wiki/Dyfrakcja

Zasada Huygensa:

"każdy punkt ośrodka, do którego dotarło czoło

fali można uważać za źródło nowej fali kulistej"

https://pl.wikipedia.org/wiki/Zasada_Huygensa

Wróćmy do podstaw

https://ilf.fizyka.pw.edu.pl/podrecznik/3/5/10

Page 80: Hacking Bluetooth Smart

Zagłuszyć sygnał?

https://media.defcon.org/DEF%20CON%2023/DEF%20CON%2023%20presentations/Richo%20Healey%20&%20Mike%20Ryan/DEFCON-23-Richo-Healey-Mike-Ryan-Hacking-Electric-Skateboard.pdf

"It’s like they designed the protocol itself to stop us from doing this exact thing" Richo Healey, Mike Ryan – Hacking Electric Skateboard, Defcon 23

Page 81: Hacking Bluetooth Smart

- Fale elektromagnetyczne

//FAKT TECHNICZNY #2

Page 82: Hacking Bluetooth Smart

Wiele sygnałów?

Na każdym interfejsie wystawiamy iBeacon. Jedziemy na miejsce i.... Znowu wyładował się akumulator ;) Poza tym trudności z ogarnięciem w systemie wielu interfejsów.

Page 83: Hacking Bluetooth Smart

Aplikacja łączy się do pierwszego beacon-a którego

usłyszy.

Co zrobić żeby to naszego beacon-a usłyszała wcześniej niż beacon samochodu?

Częściej wysyłać pakiety rozgłoszeniowe!

My nie musimy się martwić o baterię.

Zaraz, zastanówmy się raz jeszcze...

Page 84: Hacking Bluetooth Smart

Bluetooth 4 Core Specification - Advertising

Page 85: Hacking Bluetooth Smart

Bluetooth 4 Core Specification - Advertising

BLUETOOTH SPECIFICATION Version 4.0 [Vol 2] page 813

Page 86: Hacking Bluetooth Smart

hcitool -i hci0 cmd 0x08 0x0006 A0 00 A0 00

00 00 00 00 00 00 00 00 00 07 00

0x0006 – set advertising parameters

0x00A0 (100 ms)

0x07 = 00000111b Default (all channels enabled)

hcitool

Page 87: Hacking Bluetooth Smart

FAKT TECHNICZNY #3

- Stabilność nie jest cechą nowych technologii

Page 88: Hacking Bluetooth Smart

Bluetooth – Host Controller Interface

https://developer.bluetooth.org/TechnologyOverview/Pages/HCI.aspx

Linux, BlueZ $ hcitool

Page 89: Hacking Bluetooth Smart

CSR nie działa stabilnie przy mniej niż 100ms.

Komunikacja z firmware niekiedy wymaga specjalnej uwagi.

Gdy coś nie działa jak powinno, trzeba wykonać sekwencję różnych komend w odpowiedniej kolejności ;)

Problemy z firmware...

Page 90: Hacking Bluetooth Smart

BLE – funkcja zapewnienia

prywatności przez zmianę

adresu MAC co sekundę...

... powoduje crash Androida ;)

"Bluedroid can only handle seeing

1,990 different Bluetooth MAC

addresses before the Android

BluetoothService crashes"

Stabilność nowych technologii...

http://developer.radiusnetworks.com/2014/04/02/a-solution-for-android-bluetooth-crashes.html

Page 91: Hacking Bluetooth Smart

- Stabilność nie jest cechą nowych technologii

//FAKT TECHNICZNY #3

Page 92: Hacking Bluetooth Smart

OK to jedziemy jeszcze raz, i...

https://www.flickr.com/photos/artvlive/19548772122

Próbujemy ... działa! Aplikacja łączy się do naszego beacona! Ale od razu przerywa połączenie i łączy się do samochodu... Po dłuższej chwili jednak udało się "zhakować" samochód! Ale mój ;)

Page 93: Hacking Bluetooth Smart

FAKT TECHNICZNY #4

- Akumulator

Page 94: Hacking Bluetooth Smart

Akumulator kwasowo-ołowiowy – rodzaj akumulatora elektrycznego, opartego na

ogniwach galwanicznych zbudowanych z elektrody ołowiowej, elektrody z tlenku

ołowiu(IV) (PbO2) oraz ok. 37% roztworu wodnego kwasu siarkowego,

spełniającego funkcję elektrolitu.

Akumulator ołowiowy został wynaleziony przez francuskiego fizyka Gastona

Planté w 1859 r. Mimo wielu jego wad jest to wciąż najbardziej popularny rodzaj

akumulatorów elektrycznych. Występuje w niemal wszystkich samochodach, a

także wielu innych pojazdach (np. Melex). Oprócz tego stanowi często jeden z

elementów awaryjnego zasilania budynków, zakładów przemysłowych, szpitali,

central telefonicznych i polowych systemów oświetleniowych.

Akumulator kwasowo-ołowiowy

https://pl.wikipedia.org/wiki/Akumulator_kwasowo-o%C5%82owiowy

Page 95: Hacking Bluetooth Smart

- Akumulator

//FAKT TECHNICZNY #4

Page 96: Hacking Bluetooth Smart

Oprócz cennika parkingu:

Ech...

Zapoznajemy się z opłatami dodatkowymi taxi:

Page 97: Hacking Bluetooth Smart

ANALIZA APLIKACJI

Page 98: Hacking Bluetooth Smart

Jak działa parowanie?

Tryb konfiguracji

Generuj 24 losowe

hasła

Zapisz hasła w urządzeniu

Używaj pierwszego hasła

Page 99: Hacking Bluetooth Smart

Jak działa uwierzytelnienie po sparowaniu?

ID hasła (00)

AES("LOGIN",

AES (Challenge,

hasło

Pobierz "Challenge"

Komendy

Challenge

AES("LOGIN",AES(Challenge,hasło)

Page 100: Hacking Bluetooth Smart

Tablica haseł?

ID hasła (00)

ID hasła (25)?

AES("LOGIN",

AES (Challenge,

hasło

Pobierz "Challenge"

Komendy

Challenge

AES("LOGIN",AES(Challenge,hasło)

Hasło00 Hasło01 Hasło02 Hasło03

...

...

...

...

... Hasło23

Hasło00 Hasło01 Hasło02 Hasło03

...

...

...

...

... Hasło23

FFFF? 0000?

?

0000 FFFF?

Page 101: Hacking Bluetooth Smart

FAKT TECHNICZNY #5

- GATT – jak rozmawiać z urządzeniami BLE

Page 102: Hacking Bluetooth Smart

"Charakterystyki" i "serwisy"

"Charakterystyka" to w skrócie zmienna do której można zapisywać lub odczytywać – w zależności od uprawnień. Komunikacja odbywa się za pomocą protokołu GATT. Serwisy i charakterystyki typowe mają krótsze, ustandaryzowane nazwy:

GATT

Service

Characteristic

Characteristic

Characteristic

Service

Characteristic

Characteristic https://developer.bluetooth.org/gatt/services/Pages/ServicesHome.aspx

Page 103: Hacking Bluetooth Smart

Serwisy własne mają nazwy w formie UUID:

public static void readStatus() {

BleManager.connectManager.readCharacteristic("f8718d0

0-a51e-11e3-a5e2-0800200c9a66", "8e4f78d0-f6c5-11e3-

a3ac-0800200c9a66");

}

Odczyt "challenge" w kodzie aplikacji

Characteristic Service

Page 104: Hacking Bluetooth Smart

BlueZ www.bluez.org - gatttool

noble (nodejs) https://github.com/sandeepmistry/noble

Go https://godoc.org/github.com/paypal/gatt

PyBT https://github.com/mikeryan/PyBT

"PyBT is a crappy half implementation of a Bluetooth

stack in Python"

GATT – klient

Page 105: Hacking Bluetooth Smart

- GATT – jak rozmawiać z urządzeniami BLE

//FAKT TECHNICZNY #5

Page 106: Hacking Bluetooth Smart

Uzbrojeni w wiedzę o akumulatorach i opłatach parkingowych bierzemy

2 laptopy + rower.

Jedziemy na miejsce...

https://www.flickr.com/photos/mikecogh/6628027085/

Niestety atak na tablicę haseł nie działa. Może funkcja uwierzytelnienia innym kluczem nie jest jeszcze zaimplementowana w urządzeniu? W aplikacji mobilnej nie jest...

Page 107: Hacking Bluetooth Smart

"My, towarzysze, te trudności znamy!"

Page 108: Hacking Bluetooth Smart

Schemat działania jeszcze raz

Page 109: Hacking Bluetooth Smart

To już nam się udało wcześniej...

Alice

Bob

Mallory

Page 110: Hacking Bluetooth Smart

Atak?

Page 111: Hacking Bluetooth Smart

- setEngineBlockadeSetting – włączenie/wyłączenie

blokady zapłonu

- setBlinker – ustawienie sekwencji migaczy odblokowującego zapłon

- initConfigMode – konfiguracja od nowa (nowe hasła)

- initiateDataTransfer – pobranie aktualnej

konfiguracji (w tym wszystkie hasła)

Komendy po zalogowaniu

Page 112: Hacking Bluetooth Smart

Atak!

PWND! Mój telefon ma hasła i pełną kontrolę nad samochodem

Page 113: Hacking Bluetooth Smart

ATAK W PRAKTYCE

Page 114: Hacking Bluetooth Smart

MITM GATT?

GA

TT "SER

VER

"

GA

TT "CLIEN

T"

Page 115: Hacking Bluetooth Smart

Potrzebny serwer GATT z którym połączy się ofiara + klient GATT do

jednoczesnego połączenia z samochodem.

Dostępne opcje:

BlueZ

bleno (node)https://github.com/sandeepmistry/bleno

go (wtedy jeszcze nie działa)

https://godoc.org/github.com/paypal/gatt

PyBT (wtedy jeszcze nie było)

BlueZ – wygląda najbardziej obiecująco, od razu wbudowany też

klient GATT.

MITM Bluetooth GATT ?

Page 116: Hacking Bluetooth Smart

BlueZ – próba po dobroci...

http://www.deezer.com/album/8932449

Dobry wieczór, siadamy do kodu

Page 117: Hacking Bluetooth Smart

BlueZ – próba po dobroci...

http://www.deezer.com/album/8786649

Mają DBUS, możemy to wysterować z command-line

Page 118: Hacking Bluetooth Smart

BlueZ – próba po dobroci...

http://www.deezer.com/album/6761388

Niestety jesteśmy w lesie, DBUS jest w trakcie tworzenia ;)

Page 119: Hacking Bluetooth Smart

BlueZ – próba po dobroci...

http://www.deezer.com/album/434685

Wychodzimy z lasu – są przykładowe profile urządzeń. Wystarczy podmienić charakterystyki i zrekompilować.

Page 120: Hacking Bluetooth Smart

BlueZ – próba po dobroci...

http://www.deezer.com/album/9121411

Niestety znowu piętrzą się trudności. Nie działa.

Page 121: Hacking Bluetooth Smart

BlueZ...

http://www.deezer.com/album/6823356

No dobra, zaczynam się denerwować...

Page 122: Hacking Bluetooth Smart

BlueZ – wyższy poziom abstrakcji

http://www.deezer.com/artist/6807821

Wielowątkowość jest tu nieźle zamieszana. Tego kodu nie da się tego tak łatwo zrozumieć...

Page 123: Hacking Bluetooth Smart

BlueZ – wyższy poziom abstrakcji

http://www.deezer.com/album/550125

Gypsy Punk na ratunek!

Page 124: Hacking Bluetooth Smart

BlueZ – wyższy poziom abstrakcji

http://www.deezer.com/album/550140

Dopiero druga płyta daje radę

Page 125: Hacking Bluetooth Smart

Emulator samochodu działa w "lab" z moim telefonem!

Wydajność: 800 challenge+response na minutę.

Przy okazji spostrzeżenie: telefon loguje się do

urządzenia nawet jeśli ma wyłączoną funkcję automatycznego otwarcia zbliżeniowo.

Ta podatność ułatwiłaby atak w praktyce.

Wreszcie...

Page 126: Hacking Bluetooth Smart

Atak w praktyce

Page 127: Hacking Bluetooth Smart

Moja żona wspominając że potrzebuje nowy samochód nie myślała o

takim modelu ;) No i miała dla mnie ważniejsze prace...

Niestety limit czasu się wyczerpał...

Page 128: Hacking Bluetooth Smart

The circuit behaved in a manner that was inconsistent with

the design due to jitter in the setting clock. The voltage across the main power rail fluctuated more than ten volts in either direction during normal operation due to stray

harmonics. Moreover, spurious data corruption was noted in the RAM due to residual capacitance caused by the microcontroller. Attempts to further diagnose the source of

the problem were unsuccessful due to excessive heat emitted by the bluetooth and the PCB inducing current in the USB connector. We recommend further analysis to rule out electromagnetic interference.

Wreszcie przekonujące wyjaśnienie dlaczego nie zadziałało!

Page 129: Hacking Bluetooth Smart

Hardware Excuse Generator!

http://natashenka.ca/hardware-excuse-generator/

Page 130: Hacking Bluetooth Smart

"Challenge" statyczny, lub problemy z losowością.

Fuzzing serwisów GATT.

Nadmiarowa, ukryta funkcjonalność (np. debug OTA

chipsetu).

Funkcjonalność pożyczania.

Brute-force?

... i jeszcze kilka innych pomysłów

Co jeszcze mogło pójść nie tak?

Page 131: Hacking Bluetooth Smart

Tego się nie dowiemy w tych warunkach...

"Ja tu na deszczu, wilki jakieś!"

Page 132: Hacking Bluetooth Smart

Niestety kontakt się urwał...

Page 133: Hacking Bluetooth Smart

Uwierzytelnienie drugiej strony transmisji! Traktuj BLE

jako niezaufane medium.

Aplikacja loguje się do samochodu również gdy opcja autounlock jest wyłączona.

Zaciemnienie kodu aplikacji – trzeba jednak pamiętać że to tylko spowalnia analizę.

Warunki "bug bounty" - po kupieniu urządzenia intruz mógłby wykonać analizę i atak dużo łatwiej.

Co można było zrobić lepiej?

Page 134: Hacking Bluetooth Smart

PODSUMOWANIE

Page 135: Hacking Bluetooth Smart

Bezpieczeństwo urządzeń BLE...

BLE != CACY

https://www.flickr.com/photos/samstanton/299610271/

Analogicznie jak WWW 20 lat temu - był SSL ale nikt

nie słyszał o SQL injection.

Za bezpieczeństwo warstwy aplikacji odpowiedzialny

jest programista. Traktuj BLE jako niezaufane medium.

Ryzyko ataku na urządzenia BLE zależy od scenariusza

użycia, może zmienić się w czasie – nowe narzędzia,

powszechność technologii.

Bluetooth Low Energy: ograniczenia sprzętowe,

problemy ze wsparciem, problemy ze stabilnością.

Page 136: Hacking Bluetooth Smart

WHITE VS BLACKBOX

Page 137: Hacking Bluetooth Smart

http://www.ibtimes.com/canadian-military-puts-630k-bounty-hacking-defending-2015-pickup-truck-2132579

Page 138: Hacking Bluetooth Smart

http://thehill.com/policy/cybersecurity/255832-fear-of-lawsuits-chills-car-hack-research

Page 139: Hacking Bluetooth Smart

Bądź czujny – tak, strzeż tajemnicy – tak, opieraj bezpieczeństwo na tajemnicy – NIE!

Page 140: Hacking Bluetooth Smart

Zaciemnienie, ograniczenia mogą co najwyżej spowolnić

intruza.

We współpracy osiągniemy najwięcej w (zawsze)

ograniczonym czasie.

Wspólnie jesteśmy w stanie wypracować najlepsze

rozwiązania problemów.

Nawet krótka rozmowa ze specjalistą od bezpieczeństwa

może bardzo dużo zmienić, zwłaszcza na etapie koncepcji.

Bezpieczeństwa często nie da się "dorobić" później.

Whitebox!

Page 141: Hacking Bluetooth Smart

Zamiast narzekać na bezpieczeństwo aplikacji, postanowiliśmy zrobić coś dla lepszego Świata ;)

Co tydzień przeznaczamy godzinę naszego czasu na nieodpłatne konsultacje.

www.securing.pl/konsultacje

Ta prezentacja (wkrótce), inne:

www.securing.pl

Darmowe konsultacje!

Page 142: Hacking Bluetooth Smart

Dziękuję,

zapraszam do kontaktu!

[email protected]

WIĘCEJ NIŻ TESTY BEZPIECZEŃSTWA

Page 143: Hacking Bluetooth Smart

W prezentacji wykorzystano dostępne w serwisie YouTube fragmenty polskich kronik filmowych (m.in z przemówieniami Edwarda Gierka),

a także programu edukacyjnego "Przybysze z Matplanety".

Page 144: Hacking Bluetooth Smart

OPASKA SPORTOWA

- "Na bis"

Page 145: Hacking Bluetooth Smart

Nike FuelBand

Page 146: Hacking Bluetooth Smart

Opaska sportowa - uwierzytelnienie

Hello!

Challenge

CRC(Challenge, hasło)

indywidualne hasło: F67C76EA 9C50

OK!

0xF495C98693075322225EB8B8A4D79B39

Co tu mogło pójść nie tak?

http://www.evilsocket.net/2015/01/29/nike-fuelband-se-ble-protocol-reversed/

Page 147: Hacking Bluetooth Smart

private short calculateChallengeResponse(byte[] paramArrayOfByte) {

CopperheadCRC32 localCopperheadCRC32 = new CopperheadCRC32();

localCopperheadCRC32.update(paramArrayOfByte);

localCopperheadCRC32.update(mAuthToken);

return (short)(0xFFFF & localCopperheadCRC32.getValue() ^ 0xFFFF &

localCopperheadCRC32.getValue() >>> 16);

}

Nie, algorytm jest OK.

Opaska sportowa – może CRC32?

Page 148: Hacking Bluetooth Smart

Opaska sportowa - uwierzytelnienie

Hello!

Challenge

CRC(Challenge, hasło)

indywidualne hasło:

OK!

0xF495C98693075322225EB8B8A4D79B39

W praktyce zamiast hasła używane jest zawsze FF FF FF FF FF FF. Każdy kto się zbliży może się zalogować.

F67C76EA 9C50 FFFFFFFFFFFFFF

http://www.evilsocket.net/2015/01/29/nike-fuelband-se-ble-protocol-reversed/

Page 149: Hacking Bluetooth Smart

Warunki

- bliska odległość

Skutki

- odczyt bieżącego pulsu?

może być stotny np. przy negocjacjach

lub jeśli jest daną biometryczną

Ryzyko?

http://www.ibtimes.co.uk/fears-barack-obamas-new-fitbit-fitness-tracker-represent-national-security-risk-1492705