29
NDSS 2019 @ San Diego, US Nearby Threats: Reversing, Analyzing, and Attacking Google’s ‘Nearby Connections’ on Android Daniele Antonioli 1 , Nils Ole Tippenhauer 2 , Kasper Rasmussen 3 1 Singapore University of Technology and Design (SUTD) 2 CISPA Helmholtz Center for Information Security 3 University of Oxford Daniele Antonioli Nearby Threats: Reversing, Analyzing and Attacking Google’s ’Nearby Connections’ on Android 1

Nearby Threats: Reversing, Analyzing, and Attacking Google ...NDSS 2019 @ San Diego, US Nearby Threats: Reversing, Analyzing, and Attacking Google’s ‘Nearby Connections’ on Android

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Nearby Threats: Reversing, Analyzing, and Attacking Google ...NDSS 2019 @ San Diego, US Nearby Threats: Reversing, Analyzing, and Attacking Google’s ‘Nearby Connections’ on Android

NDSS 2019 @ San Diego, US

Nearby Threats: Reversing, Analyzing, andAttacking Google’s ‘Nearby Connections’ on Android

Daniele Antonioli1, Nils Ole Tippenhauer2, Kasper Rasmussen3

1Singapore University of Technology and Design (SUTD)2CISPA Helmholtz Center for Information Security3University of Oxford

Daniele Antonioli Nearby Threats: Reversing, Analyzing and Attacking Google’s ’Nearby Connections’ on Android 1

Page 2: Nearby Threats: Reversing, Analyzing, and Attacking Google ...NDSS 2019 @ San Diego, US Nearby Threats: Reversing, Analyzing, and Attacking Google’s ‘Nearby Connections’ on Android

What are Google Nearby Connections?

• Public API for Android and Android ThingsI In-app proximity-based servicesI E.g. peer-to-peer file editing

• Implemented in the Google Play ServicesI Available across different Android versionsI Applications use it as a shared library

Daniele Antonioli Nearby Threats: Reversing, Analyzing and Attacking Google’s ’Nearby Connections’ on Android Motivation 2

Page 3: Nearby Threats: Reversing, Analyzing, and Attacking Google ...NDSS 2019 @ San Diego, US Nearby Threats: Reversing, Analyzing, and Attacking Google’s ‘Nearby Connections’ on Android

Why Analyzing Nearby Connections?

• Wide attack surfaceI Android (version ≥ 4.0) and Android ThingsI Uses Bluetooth and Wi-Fi (at the same time)

• Proprietary technologyI No public specificationsI Implementation is closed-source and obfuscated

Daniele Antonioli Nearby Threats: Reversing, Analyzing and Attacking Google’s ’Nearby Connections’ on Android Motivation 3

Page 4: Nearby Threats: Reversing, Analyzing, and Attacking Google ...NDSS 2019 @ San Diego, US Nearby Threats: Reversing, Analyzing, and Attacking Google’s ‘Nearby Connections’ on Android

Our Core Contributions

• First (security) analysis of Nearby ConnectionsI Uncovers its proprietary mechanisms and protocolsI Based on reversing its Android implementation

• Re-implementation of Nearby Connections (REarby)I Exposes parameters not accessible with the official APII Impersonates nearby devices from any application

• Attacking Nearby Connections on AndroidI Connection manipulation and range extension attacksI Responsible disclosure with Google

Daniele Antonioli Nearby Threats: Reversing, Analyzing and Attacking Google’s ’Nearby Connections’ on Android Motivation 4

Page 5: Nearby Threats: Reversing, Analyzing, and Attacking Google ...NDSS 2019 @ San Diego, US Nearby Threats: Reversing, Analyzing, and Attacking Google’s ‘Nearby Connections’ on Android

Nearby Connections Public Information

• Server advertises a service, client discovers it (sid)• Connection strategies: P2P_STAR and P2P_CLUSTER

Daniele Antonioli Nearby Threats: Reversing, Analyzing and Attacking Google’s ’Nearby Connections’ on Android Background 5

Page 6: Nearby Threats: Reversing, Analyzing, and Attacking Google ...NDSS 2019 @ San Diego, US Nearby Threats: Reversing, Analyzing, and Attacking Google’s ‘Nearby Connections’ on Android

Nearby Connections Public Information 2

• Client and server connect using Bluetooth and/or Wi-Fi• Nodes exchange encrypted payloads (peer-to-peer)

Daniele Antonioli Nearby Threats: Reversing, Analyzing and Attacking Google’s ’Nearby Connections’ on Android Background 6

Page 7: Nearby Threats: Reversing, Analyzing, and Attacking Google ...NDSS 2019 @ San Diego, US Nearby Threats: Reversing, Analyzing, and Attacking Google’s ‘Nearby Connections’ on Android

Our Dynamic Binary Instrumentation

• Workhorse: Frida, https://www.frida.reI Profiling of processes, e.g. NC-App, NC-GPSI Hook function and methods callsI Override parameters and return valuesI Read and write processes’ memory

Daniele Antonioli Nearby Threats: Reversing, Analyzing and Attacking Google’s ’Nearby Connections’ on Android Setup 7

Page 8: Nearby Threats: Reversing, Analyzing, and Attacking Google ...NDSS 2019 @ San Diego, US Nearby Threats: Reversing, Analyzing, and Attacking Google’s ‘Nearby Connections’ on Android

Reversed Phases of a Nearby Connection

1 Discovery: Bluetooth BR/EDR name and BLE reports

2 Connection Request: Bluetooth BR/EDR, not authenticated

3 Key Exchange Protocol: establishment of a shared secret

4 Optional Authentication: based on the shared secret

5 Application Layer Connection Establishment: interactive

6 Key Derivation Functions: session, AES and HMAC keys

7 Optional Physical Layer Switch: Bluetooth BR/EDR to Wi-Fi

8 Exchange Encrypted Payloads: 30 seconds timeout

9 Disconnection

Daniele Antonioli Nearby Threats: Reversing, Analyzing and Attacking Google’s ’Nearby Connections’ on Android RE 8

Page 9: Nearby Threats: Reversing, Analyzing, and Attacking Google ...NDSS 2019 @ San Diego, US Nearby Threats: Reversing, Analyzing, and Attacking Google’s ‘Nearby Connections’ on Android

Reversed Phases of a Nearby Connection

1 Discovery: Bluetooth BR/EDR name and BLE reports

2 Connection Request: Bluetooth BR/EDR, not authenticated

3 Key Exchange Protocol: establishment of a shared secret

4 Optional Authentication: based on the shared secret

5 Application Layer Connection Establishment: interactive

6 Key Derivation Functions: session, AES and HMAC keys

7 Optional Physical Layer Switch: Bluetooth BR/EDR to Wi-Fi

8 Exchange Encrypted Payloads: 30 seconds timeout

9 Disconnection

Daniele Antonioli Nearby Threats: Reversing, Analyzing and Attacking Google’s ’Nearby Connections’ on Android RE 8

Page 10: Nearby Threats: Reversing, Analyzing, and Attacking Google ...NDSS 2019 @ San Diego, US Nearby Threats: Reversing, Analyzing, and Attacking Google’s ‘Nearby Connections’ on Android

Reversed Phases of a Nearby Connection

1 Discovery: Bluetooth BR/EDR name and BLE reports

2 Connection Request: Bluetooth BR/EDR, not authenticated

3 Key Exchange Protocol: establishment of a shared secret

4 Optional Authentication: based on the shared secret

5 Application Layer Connection Establishment: interactive

6 Key Derivation Functions: session, AES and HMAC keys

7 Optional Physical Layer Switch: Bluetooth BR/EDR to Wi-Fi

8 Exchange Encrypted Payloads: 30 seconds timeout

9 Disconnection

Daniele Antonioli Nearby Threats: Reversing, Analyzing and Attacking Google’s ’Nearby Connections’ on Android RE 8

Page 11: Nearby Threats: Reversing, Analyzing, and Attacking Google ...NDSS 2019 @ San Diego, US Nearby Threats: Reversing, Analyzing, and Attacking Google’s ‘Nearby Connections’ on Android

Reversed Phases of a Nearby Connection

1 Discovery: Bluetooth BR/EDR name and BLE reports

2 Connection Request: Bluetooth BR/EDR, not authenticated

3 Key Exchange Protocol: establishment of a shared secret

4 Optional Authentication: based on the shared secret

5 Application Layer Connection Establishment: interactive

6 Key Derivation Functions: session, AES and HMAC keys

7 Optional Physical Layer Switch: Bluetooth BR/EDR to Wi-Fi

8 Exchange Encrypted Payloads: 30 seconds timeout

9 Disconnection

Daniele Antonioli Nearby Threats: Reversing, Analyzing and Attacking Google’s ’Nearby Connections’ on Android RE 8

Page 12: Nearby Threats: Reversing, Analyzing, and Attacking Google ...NDSS 2019 @ San Diego, US Nearby Threats: Reversing, Analyzing, and Attacking Google’s ‘Nearby Connections’ on Android

Reversed Phases of a Nearby Connection

1 Discovery: Bluetooth BR/EDR name and BLE reports

2 Connection Request: Bluetooth BR/EDR, not authenticated

3 Key Exchange Protocol: establishment of a shared secret

4 Optional Authentication: based on the shared secret

5 Application Layer Connection Establishment: interactive

6 Key Derivation Functions: session, AES and HMAC keys

7 Optional Physical Layer Switch: Bluetooth BR/EDR to Wi-Fi

8 Exchange Encrypted Payloads: 30 seconds timeout

9 Disconnection

Daniele Antonioli Nearby Threats: Reversing, Analyzing and Attacking Google’s ’Nearby Connections’ on Android RE 8

Page 13: Nearby Threats: Reversing, Analyzing, and Attacking Google ...NDSS 2019 @ San Diego, US Nearby Threats: Reversing, Analyzing, and Attacking Google’s ‘Nearby Connections’ on Android

Reversed Phases of a Nearby Connection

1 Discovery: Bluetooth BR/EDR name and BLE reports

2 Connection Request: Bluetooth BR/EDR, not authenticated

3 Key Exchange Protocol: establishment of a shared secret

4 Optional Authentication: based on the shared secret

5 Application Layer Connection Establishment: interactive

6 Key Derivation Functions: session, AES and HMAC keys

7 Optional Physical Layer Switch: Bluetooth BR/EDR to Wi-Fi

8 Exchange Encrypted Payloads: 30 seconds timeout

9 Disconnection

Daniele Antonioli Nearby Threats: Reversing, Analyzing and Attacking Google’s ’Nearby Connections’ on Android RE 8

Page 14: Nearby Threats: Reversing, Analyzing, and Attacking Google ...NDSS 2019 @ San Diego, US Nearby Threats: Reversing, Analyzing, and Attacking Google’s ‘Nearby Connections’ on Android

Reversed Phases of a Nearby Connection

1 Discovery: Bluetooth BR/EDR name and BLE reports

2 Connection Request: Bluetooth BR/EDR, not authenticated

3 Key Exchange Protocol: establishment of a shared secret

4 Optional Authentication: based on the shared secret

5 Application Layer Connection Establishment: interactive

6 Key Derivation Functions: session, AES and HMAC keys

7 Optional Physical Layer Switch: Bluetooth BR/EDR to Wi-Fi

8 Exchange Encrypted Payloads: 30 seconds timeout

9 Disconnection

Daniele Antonioli Nearby Threats: Reversing, Analyzing and Attacking Google’s ’Nearby Connections’ on Android RE 8

Page 15: Nearby Threats: Reversing, Analyzing, and Attacking Google ...NDSS 2019 @ San Diego, US Nearby Threats: Reversing, Analyzing, and Attacking Google’s ‘Nearby Connections’ on Android

Reversed Phases of a Nearby Connection

1 Discovery: Bluetooth BR/EDR name and BLE reports

2 Connection Request: Bluetooth BR/EDR, not authenticated

3 Key Exchange Protocol: establishment of a shared secret

4 Optional Authentication: based on the shared secret

5 Application Layer Connection Establishment: interactive

6 Key Derivation Functions: session, AES and HMAC keys

7 Optional Physical Layer Switch: Bluetooth BR/EDR to Wi-Fi

8 Exchange Encrypted Payloads: 30 seconds timeout

9 Disconnection

Daniele Antonioli Nearby Threats: Reversing, Analyzing and Attacking Google’s ’Nearby Connections’ on Android RE 8

Page 16: Nearby Threats: Reversing, Analyzing, and Attacking Google ...NDSS 2019 @ San Diego, US Nearby Threats: Reversing, Analyzing, and Attacking Google’s ‘Nearby Connections’ on Android

Reversed Phases of a Nearby Connection

1 Discovery: Bluetooth BR/EDR name and BLE reports

2 Connection Request: Bluetooth BR/EDR, not authenticated

3 Key Exchange Protocol: establishment of a shared secret

4 Optional Authentication: based on the shared secret

5 Application Layer Connection Establishment: interactive

6 Key Derivation Functions: session, AES and HMAC keys

7 Optional Physical Layer Switch: Bluetooth BR/EDR to Wi-Fi

8 Exchange Encrypted Payloads: 30 seconds timeout

9 Disconnection

Daniele Antonioli Nearby Threats: Reversing, Analyzing and Attacking Google’s ’Nearby Connections’ on Android RE 8

Page 17: Nearby Threats: Reversing, Analyzing, and Attacking Google ...NDSS 2019 @ San Diego, US Nearby Threats: Reversing, Analyzing, and Attacking Google’s ‘Nearby Connections’ on Android

Reversed Phases of a Nearby Connection

1 Discovery: Bluetooth BR/EDR name and BLE reports

2 Connection Request: Bluetooth BR/EDR, not authenticated

3 Key Exchange Protocol: establishment of a shared secret

4 Optional Authentication: based on the shared secret

5 Application Layer Connection Establishment: interactive

6 Key Derivation Functions: session, AES and HMAC keys

7 Optional Physical Layer Switch: Bluetooth BR/EDR to Wi-Fi

8 Exchange Encrypted Payloads: 30 seconds timeout

9 Disconnection

Daniele Antonioli Nearby Threats: Reversing, Analyzing and Attacking Google’s ’Nearby Connections’ on Android RE 8

Page 18: Nearby Threats: Reversing, Analyzing, and Attacking Google ...NDSS 2019 @ San Diego, US Nearby Threats: Reversing, Analyzing, and Attacking Google’s ‘Nearby Connections’ on Android

Key Exchange Protocol (KEP)

Client

C

Server

S

Generate skC , pkCPick NC

cC = Hash(pkC)

Generate skS , pkSPick NS

Kep1: 1, endpointId, ncname, version

Kep2: 2, NC , cC , algo

Kep3: 3, NS , pkS

Kep4: 4, pkC

Verify cC(Sx, Sy) = skS · pkC

(Sx, Sy) = skC · pkS

• Based on ECDH, NIST P256 curve, shared secret is Sx

Daniele Antonioli Nearby Threats: Reversing, Analyzing and Attacking Google’s ’Nearby Connections’ on Android RE 9

Page 19: Nearby Threats: Reversing, Analyzing, and Attacking Google ...NDSS 2019 @ San Diego, US Nearby Threats: Reversing, Analyzing, and Attacking Google’s ‘Nearby Connections’ on Android

Optional Physical Layer Switch

• Bluetooth to soft access point (Wi-Fi Direct, hostapd)I Server instructs the client over BluetoothI Client contacts the server over Wi-Fi

Daniele Antonioli Nearby Threats: Reversing, Analyzing and Attacking Google’s ’Nearby Connections’ on Android RE 10

Page 20: Nearby Threats: Reversing, Analyzing, and Attacking Google ...NDSS 2019 @ San Diego, US Nearby Threats: Reversing, Analyzing, and Attacking Google’s ‘Nearby Connections’ on Android

Range Extension MitM Attack

Daniele Antonioli Nearby Threats: Reversing, Analyzing and Attacking Google’s ’Nearby Connections’ on Android Attacks 11

Page 21: Nearby Threats: Reversing, Analyzing, and Attacking Google ...NDSS 2019 @ San Diego, US Nearby Threats: Reversing, Analyzing, and Attacking Google’s ‘Nearby Connections’ on Android

Range Extension MitM Attack

Daniele Antonioli Nearby Threats: Reversing, Analyzing and Attacking Google’s ’Nearby Connections’ on Android Attacks 12

Page 22: Nearby Threats: Reversing, Analyzing, and Attacking Google ...NDSS 2019 @ San Diego, US Nearby Threats: Reversing, Analyzing, and Attacking Google’s ‘Nearby Connections’ on Android

Soft Access Point Manipulation Attack

Daniele Antonioli Nearby Threats: Reversing, Analyzing and Attacking Google’s ’Nearby Connections’ on Android Attacks 13

Page 23: Nearby Threats: Reversing, Analyzing, and Attacking Google ...NDSS 2019 @ San Diego, US Nearby Threats: Reversing, Analyzing, and Attacking Google’s ‘Nearby Connections’ on Android

Victim Connects to Attacker’s REarby Server

Daniele Antonioli Nearby Threats: Reversing, Analyzing and Attacking Google’s ’Nearby Connections’ on Android Attacks 14

Page 24: Nearby Threats: Reversing, Analyzing, and Attacking Google ...NDSS 2019 @ San Diego, US Nearby Threats: Reversing, Analyzing, and Attacking Google’s ‘Nearby Connections’ on Android

Attacker Manipulates Bluetooth to Wi-Fi Switch

Daniele Antonioli Nearby Threats: Reversing, Analyzing and Attacking Google’s ’Nearby Connections’ on Android Attacks 15

Page 25: Nearby Threats: Reversing, Analyzing, and Attacking Google ...NDSS 2019 @ San Diego, US Nearby Threats: Reversing, Analyzing, and Attacking Google’s ‘Nearby Connections’ on Android

Victim Connects to Attacker’s Wi-Fi AP

Daniele Antonioli Nearby Threats: Reversing, Analyzing and Attacking Google’s ’Nearby Connections’ on Android Attacks 16

Page 26: Nearby Threats: Reversing, Analyzing, and Attacking Google ...NDSS 2019 @ San Diego, US Nearby Threats: Reversing, Analyzing, and Attacking Google’s ‘Nearby Connections’ on Android

Attacker Configures Victim’s Network Interface

Daniele Antonioli Nearby Threats: Reversing, Analyzing and Attacking Google’s ’Nearby Connections’ on Android Attacks 17

Page 27: Nearby Threats: Reversing, Analyzing, and Attacking Google ...NDSS 2019 @ San Diego, US Nearby Threats: Reversing, Analyzing, and Attacking Google’s ‘Nearby Connections’ on Android

Attacker Eavesdrops All Wi-Fi Traffic

Daniele Antonioli Nearby Threats: Reversing, Analyzing and Attacking Google’s ’Nearby Connections’ on Android Attacks 18

Page 28: Nearby Threats: Reversing, Analyzing, and Attacking Google ...NDSS 2019 @ San Diego, US Nearby Threats: Reversing, Analyzing, and Attacking Google’s ‘Nearby Connections’ on Android

Conclusions

• First security analysis of Nearby Connections

• Reversed its Android implementation and re-implemented it (REarby)

• Range extension and soft access point manipulation attacks

• Try the Soft Access Point Manipulation attack:https://github.com/francozappa/REarby/tree/master/poc-hostapd

• Thanks for your time! Questions?

Daniele Antonioli Nearby Threats: Reversing, Analyzing and Attacking Google’s ’Nearby Connections’ on Android Conclusions 19

Page 29: Nearby Threats: Reversing, Analyzing, and Attacking Google ...NDSS 2019 @ San Diego, US Nearby Threats: Reversing, Analyzing, and Attacking Google’s ‘Nearby Connections’ on Android

Conclusions

• First security analysis of Nearby Connections

• Reversed its Android implementation and re-implemented it (REarby)

• Range extension and soft access point manipulation attacks

• Try the Soft Access Point Manipulation attack:https://github.com/francozappa/REarby/tree/master/poc-hostapd

• Thanks for your time! Questions?

Daniele Antonioli Nearby Threats: Reversing, Analyzing and Attacking Google’s ’Nearby Connections’ on Android Conclusions 19