Introduction
Internet of Things (IoT) and Smart Home devices are everywhere.
Q: Can we completely trust a device’s {security, privacy}?
A:
- Developers are humans.
- Humans make mistakes.
- Developers make
mistakes bugs
- Or maybe secret company agendas?
Proposal
Digital Privacy
Investigate the nature of network data (i.e. content, frequency, destination) from the Roborock S6, and how the data is used.
Product Security
Investigate potential security vulnerabilities of the Roborock S6, and assess the effectiveness of current security fortifications.
Literature Review
IoT โ
The majority of hardware hacks / custom firmwares have originated from the desire to decouple hardware from cloud services
IoT | 2018 - Michael Steigerwald (VTRUST)
Talk: Smart home - Smart hack
- Products from different manufacturers used the same cloud infrastructure each with their own ‘customised’ (white-label) smartphone apps
- Supposed ‘military-grade security’
- Used the Espressif ESP8266 chip
- WiFi-enabled SoC with Arduino support
- Often used by tinkerers and enthusiasts
- Anyone can become an ‘IoT company’ regardless of “having in-depth technical knowledge of IoT or IT security.”
IoT | 2018 - Michael Steigerwald (VTRUST)
Talk: Smart home - Smart hack
“The analysis of the ‘smart’ devices using this basic platform is generally frightening […] serious […] shortcomings”
- Insecure transmission of encryption keys, serial number, etc…
- Insecure transmission of wireless credentials during pairing
- Ease of white-labelling and starting your own IoT business
- Ease of selling malicious devices
IoT | 2018 - Michael Steigerwald (VTRUST)
Talk: Smart home - Smart hack
Automated flashing tool tuya-convert
created that exploited prior vulnerabilities to flash custom decoupled firmware
(i.e. ESPhome, Tasmota, etc…)
IoT | 2018 - Michael Steigerwald (VTRUST)
Tuya’s Response
- 28th January 2019 - patch released (later subverted)
- TLS encrypted firmware update procedure
- Encryption of flash memory
- 3rd January 2020 - new patch released
- 23rd April 2020 - Switched from the ESP8266 to a custom SoC
- 16th June 2021 - Announced official support for HomeAssistant
IoT | 2017/2018 - Xiaomi Dafang Hacks
- Cheap WiFi camera that can be made to boot off a microSD card
- Circuit board exposed UART (
baud_rate=115200
) pins that allowed interaction with U-Boot bootloader
- Modification of boot environment to start
/bin/sh
([link])
- Gain root shell access
- Dump firmware
- Analyse, modify and package updated firmware
Access and Control
Gaining access to a shell / stored data / things we shouldn’t.
Flash IC Dumping
- May require a proprietary flash programmer (above: US$3655)
- Budget solution for common flash types: Raspberry Pi (AU$100)
- Some flash chips (depending on form factor) may require to be desoldered
- ๐งจ Possibly a destructive process ๐งจ
- Open-source software:
flashrom
Source: J. Jimenez - Practical Reverse Engineering
BGA shorting to gain access to FEL
- FEL mode is a “fallback” system on Allwinner SoCs
- Allows the flashing and reprogramming of the SoC
- Generally triggered by pulling
FEL pin (
LRADC0
) LOW during boot
- FEL mode can also be entered if the bootloader fails to load ๐ค
BGA shorting to gain access to FEL
- On the Allwinner R16 (BGA package) FEL pin located on ball location
L14
- Not located on package edge the chip so
Enter FEL mode by preventing (e)MMC load?
- SoC has a solder plane height of around 0.3mm
- Too shallow for a wire, but tall enough for aluminium foil…
BGA shorting to gain access to FEL
- Thickness: ~0.02mm (… 0.02mm « 0.3mm)
- Conductive: Yep!
- $$$
Documented: SEEMOO-MSC-0142
BGA shorting to gain access to FEL | Aside (2021)
On later versions (post 2020), U-Boot shell access was patched, so shell access via UART was mitigated
Pin TPA17 on the Roborock S7 circuit board was discovered to connect to ball location L14 on the SoC.
Therefore by pulling TPA17 / L14 / LRADC0 LOW (i.e connect to GND), FEL mode can be entered
Vacuums in the Cloud: Analyzing Security in a Hardened IoT Ecosystem
Presentation: USENIX WOOT 19
- Security analysis performed on a Neato BotVac Connected robot vacuum cleaner (popular in the US)
- AM335x Microprocessor (ARM Cortex-A8)
- Cold-boot attack allowed RAM to be dumped over serial
- - restarting the system whilst keeping memory modules powered on, keeping memory (mostly) in-tact
- USB + Serial communication allowed boot into custom image that could then dump the memory for later triage
Vacuums in the Cloud: Analyzing Security in a Hardened IoT Ecosystem
- Memory dumps contained confidential keys
- ๐โโ๏ธ Auth/Authz to the robot
- ๐โโ๏ธ Auth/Authz to the cloud infrastructure
- Logs and coredumps were encrypted… but keys hardcoded
- Secret key RNG algorithm determined to be weak
- Small keyspace given known data = bruteforceable
- RSA key was shared with all devices ๐
Also discovered vulnerability in an unauthenticated stage.
2014 - Firmware Analysis
Paper: A Large-Scale Analysis of the Security of Embedded Firmwares
- Broad analysis of a large number of firmware images
- Discovered 38 new vulnerabilities over 693 images
- Similarities in vulnerabilities
- Static analysis and extraction of keys, credentials, configurations and other ‘tells’
2014 - Firmware Analysis
- Source code changes largely remain the same
- But binary files change ‘arbitrarily’
- Difficult to compare binary files
- Calculate fuzzy hashes instead to compare similarity
e.g. binwalk, ssdeep, sdhash
Client-Side and Infrastructural Security
iOS application of a smart doorlock was analysed to (in)validate claims made by the device company
- Lock events and other sensitive information were being logged independent of locking functionality
- Access to lock settings were purely client-side UI checks
- Certificate pinning bypass-able
Source: Backdooring the Frontdoor
LIDAR - Acoustic Eavesdropping
LIDAR - Light Detection and Ranging
- Uses laser lights to sense distance
- Side-channel also exposes intensity (on some units)
- Can use to detect minute vibrations induced by audio sources
Xiaomi Ecosystem | 2017-2019 - Dennis Giese
Paper: SEEMOO-MSC-0142
(July 10, 2019)
- Research available: dontvacuum.me
- Performed security analysis of a range of Xiaomi products
- Found ways to root the Mi Home Robotic Vacuum Cleaner and the Roborock S6
- UART, hardware fault injection, etc…
- Developed cloud emulation software (DustCloud)
- Research led to development of 3rd party software (i.e. Valeduto)
Xiaomi Ecosystem | 2017-2019 - Dennis Giese
“How secure is the implementation of the ecosystem of the IoT market leader Xiaomi?”
- โ The company quickly responds to security concerns
- ๐ Many exposed endpoints of deprecated APIs
- ๐ Many devices do not enforce proper HTTPS checks
- ๐ค Difficult to enforce security for plugins (vendor-provided)
- โ CIA principles generally kept
Xiaomi Ecosystem | 2017-2019 - Dennis Giese
More to be done