SlideShare a Scribd company logo
#RSAC
SESSION ID:
Ray Potter Yier Jin
Don't Touch That Dial: How Smart
Thermostats Have Made Us
Vulnerable
HT-W04
Assistant Professor
University of Central Florida
@jinyier
CEO
SafeLogic
@SafeLogic_Ray
#RSAC
 The threat is real
 Connected convenience comes with risk
 Challenges
 What’s at Stake
Flow
#RSAC
 Pattern recognition
 Identity theft
 Corporate espionage
 Life
What’s at Stake
#RSAC
Use Cases
#RSAC
 Nest Labs founded by Tony Fadell
 Debuted in October 2011
 Acquired by Google in January 2014 ($3.2B)
 Over 40,000 sold each month
Data from GigaOM as of January 2013
 Available in UK in April 2014
 Smart home API is released in June 2014
Nest Thermostat
#RSAC
“Yes, hacking is in our thoughts. When you're talking
about the home, these are very private things. We
thought about what people could do if they got access to
your data. We have bank-level security, we encrypt
updates, and we have an internal hacker team testing the
security. It's very, very private and it has to be, because
it'll never take off if people don't trust it.”
- Tony Fadell
#RSAC
Nest Hardware
#RSAC
 “Display” board
 Graphics/UI, Networking
 Chips:
 ARM Cortex A8 app processor
 USB OTG
 RAM/Flash (2Gb)
 ZigBee/WiFi Radios
 Proximity Sensors
 UART test points (silenced at bootloader)
Front Plate
Courtesy of iFixit
#RSAC
 Hooks up to AC/Heating system. Charges battery via engineering
wizardry
 Chips:
 Independent ARM Cortex M3
 Temp and Humidity Sensor
 Communications
 Front to Back – UART
 NEST Weave (802.15.4)
 USB MSD (FW update)
“Backplate” and Comms
Courtesy of iFixit
#RSAC
Nest Software
#RSAC
 Runs on a Linux based platform
 Handles interfacing between device
and Nest Cloud services
 Automatically handles firmware
updates
 Manual update available
 Plug Nest into PC
 Handled as a storage device
 Copy firmware to drive
 Reboot
Nest Client
Nest
#RSAC
Nest Firmware
 Signed firmware 
 Manifest.plist
 Hashes contents
 Manifest.p7s
 Compressed but not encrypted or obfuscated
 Includes
– U-boot image
– Linux Kernel image
– File system
– nlbpfirmware.plist
#RSAC
 Firmware signing using PKCS7
 Pinned Nest certificates for firmware verification
 All critical communications (any with secrets) over HTTPS
 Other less secure ones over HTTP (firmware, weather)
Things Done the Right Way™
#RSAC
 Firmware links downloaded using HTTP and download links do not
expire
 Hardware backdoor left for anyone with a USB port to use
 Automatic updates
Things Done the Wrong Way™
#RSAC
 Log Files
 Internally stored and uploaded to Nest
 Contents
 User Interface
 Users are unaware of the contents of the log files
 Users cannot turn off this option
 User network credentials are stored … in plain text!
 Users should be allowed to opt-out of the data collection?
User Privacy
#RSAC
Log Files
#RSAC
Processor and boot
#RSAC
 TI Sitara AM3703
 ARM Cortex-A8 core
 Version 7 ISA
 JazelleX Java accelerator and media extensions
 ARM NEON core SIMD coprocessor
 DMA controller
 HS USB controller
 General Purpose Memory Controller to handle flash
 SDRAM memory scheduler and controller
 112KB on-chip ROM (boot code)
 64KB on-chip SRAM
 Configurable boot options
Hardware Analysis
#RSAC
#RSAC
Boot Process
Root ROM
starts execution
ROM initializes
basic
subsystems
ROM copies
X-Loader to
SRAM
X-Loader
executes
X-Loader
initializes
SDRAM
Userland
loaded
U-boot
executes
Linux kernel
U-boot
configures
environment
U-boot
executes
X-Loader copies
U-boot to
SDRAM
#RSAC
Boot Process
Root ROM
starts execution
ROM initializes
basic
subsystems
ROM reads
X-Loader from
USB
X-Loader
executes
X-Loader
initializes
SDRAM
Userland
loaded
U-boot
executes
Linux kernel
U-boot
configures
environment
U-boot
executes
X-Loader copies
U-boot to
SDRAM
#RSAC
Boot Process
Root ROM
starts execution
ROM initializes
basic
subsystems
ROM reads
X-Loader from
USB
X-Loader
executes
X-Loader
initializes
SDRAM
Userland
loaded
U-boot
executes
Linux kernel
U-boot
configures
environment
U-boot
executes
X-Loader copies
U-boot to
SDRAM
#RSAC
Boot Process
Root ROM
starts execution
ROM initializes
basic
subsystems
ROM reads
X-Loader from
USB
X-Loader
executes
X-Loader
initializes
SDRAM
Userland
loaded
U-boot
executes
Linux kernel
U-boot
configures
environment
U-boot
executes
X-Loader copies
U-boot to
SDRAM
#RSAC
Boot Process
Root ROM
starts execution
ROM initializes
basic
subsystems
ROM reads
X-Loader from
USB
X-Loader
executes
X-Loader
initializes
SDRAM
Userland
loaded
U-boot
executes
Linux kernel
U-boot
configures
environment
U-boot
executes
X-Loader copies
U-boot to
SDRAM
#RSAC
Boot Process
Root ROM
starts execution
ROM initializes
basic
subsystems
ROM reads
X-Loader from
USB
X-Loader
executes
X-Loader
initializes
SDRAM
Userland
loaded
U-boot
executes
Linux kernel
U-boot
configures
environment
U-boot
executes
X-Loader copies
U-boot to
SDRAM
#RSAC
Boot Process
Root ROM
starts execution
ROM initializes
basic
subsystems
ROM reads
X-Loader from
USB
X-Loader
executes
X-Loader
initializes
SDRAM
Userland
loaded
U-boot
executes
Linux kernel
U-boot
configures
environment
U-boot
executes
X-Loader copies
U-boot to
SDRAM
#RSAC
Boot Process
Root ROM
starts execution
ROM initializes
basic
subsystems
ROM reads
X-Loader from
USB
X-Loader
executes
X-Loader
initializes
SDRAM
Userland
loaded
U-boot
executes
Linux kernel
U-boot
configures
environment
U-boot
executes
X-Loader copies
U-boot to
SDRAM
#RSAC
Boot Process
Root ROM
starts execution
ROM initializes
basic
subsystems
ROM reads
X-Loader from
USB
X-Loader
executes
X-Loader
initializes
SDRAM
Userland
loaded
U-boot
executes
Linux kernel
U-boot
configures
environment
U-boot
executes
X-Loader copies
U-boot to
SDRAM
#RSAC
 Boot Configuration read from sys_boot[5:0]
Device Initialization
Selected boot configurations
sys_boot [5:0] First Second Third Fourth Fifth
001101
001110
001111
XIP
XIPwait
NAND
USB
DOC
USB
UART3
USB
UART3
MMC1
UART3
MMC1
MMC1
101101
101110
101111
USB
USB
USB
UART3
UART3
UART3
MMC1
MMC1
MMC1
XIP
XIPwait
NAND
DOC
#RSAC
 Boot configuration pins 4..0 are fixed
in Nest’s hardware
 sys_boot[5] is changes based on reset type
 Conveiently, circuit board exposes sys_boot[5] on an unpopulated
header…
Device Programming
#RSAC
Nest USB Device Descriptor
#RSAC
TI USB Device Descriptor
#RSAC
 Full control over the house
 Away detection
 Network credentials
 Zip Code
 Remote exfiltration
 Pivoting to other devices
Implications
#RSAC
 Unauthorized ability to access Nest account
 We now have the OAUTH secrets
 Ability to brick the device
 We can modify the NAND
 Persistent malware in NAND
 X-loader bootkit in NAND
Control over all Nest devices
#RSAC
The Attack
#RSAC
 Device Reset
 Press the button for 10 seconds causing sys_boot[5] = 1’b1
 Inject code through the USB into memory and execute
 Be quick!
Attack
#RSAC
 Custom X-Loader to chainload U-Boot + initrd
 Custom U-Boot
 Utilize existing kernel
 Load our ramdisk (initrd)
 Ramdisk
 Mount Nest’s filesystem and write at will
 Arbitrary, scriptable, code execution
 Netcat already comes with the Nest
Initial Attack
#RSAC
 Rebuild toolchain
 Cross-compile dropbear (SSH server)
 Add user accounts and groups
 Reset root password
Refining a Backdoor
#RSAC
 A custom Linux kernel
 Custom logo
 Debugging capabilities (kgdb)
 Polling on OMAP serial ports
Linux Kernel Modification
#RSAC
Demo
#RSAC
 Positive View
 The backdoor provide legitimate users to opt-out of uploading logs
files
 Negative View
 The backdoor may be maliciously exploited
 A Relief to Nest Labs
 The backdoor needs physical access to the device (although remote
attack is under investigation)
Double-Edged Sword
#RSAC
 Code Authentication
 Processor must authenticate the first stage bootloader before it is run
 Use public key cryptography
 Userland protection
 Only execute signed binaries
 Filesystem encryption
 Processor-DRAM channel protection
A Solution – Chain of Trust
#RSAC
How to Apply This Knowledge
47
 Identify whether your product shares vulnerabilities with these
examples.
 Build security strategy and implement NOW, don’t wait.
 Explore 3rd party validation and other ways to leverage proven
security measures.
 Regardless of form factor, focus on the data.
 And of course, as a user, quarantine WiFi access for each of your
IoT devices.

More Related Content

PDF
Web Application Security Testing: Kali Linux Is the Way to Go
PPTX
Kali Linux - CleveSec 2015
PDF
Kali tools list with short description
PPT
[ENG] IPv6 shipworm + My little Windows domain pwnie
PDF
DEFCON 22: Bypass firewalls, application white lists, secure remote desktops ...
PPTX
BackTrack5 - Linux
PDF
" Breaking Extreme Networks WingOS: How to own millions of devices running on...
PPT
Backtrack os 5
Web Application Security Testing: Kali Linux Is the Way to Go
Kali Linux - CleveSec 2015
Kali tools list with short description
[ENG] IPv6 shipworm + My little Windows domain pwnie
DEFCON 22: Bypass firewalls, application white lists, secure remote desktops ...
BackTrack5 - Linux
" Breaking Extreme Networks WingOS: How to own millions of devices running on...
Backtrack os 5

What's hot (20)

PDF
Solnik secure enclaveprocessor-pacsec
PPTX
2016 TTL Security Gap Analysis with Kali Linux
PDF
Tools kali
PPT
Attacking Automatic Wireless Network Selection
PDF
Hacking Highly Secured Enterprise Environments by Zoltan Balazs
PDF
Breaking Vaults - Stealing Lastpass Protected Secrets by Martin Vigo
PDF
Kasza smashing the_jars
PDF
Database Firewall with Snort
PDF
CSW2017 Yuhao song+Huimingliu cyber_wmd_vulnerable_IoT
PDF
Defcon 22-jesus-molina-learn-how-to-control-every-room
PDF
Snort-IPS-Tutorial
PDF
Defcon 22-adrian-crenshaw-dropping-docs-on-darknets-how-peop
PDF
Automated Malware Analysis and Cyber Security Intelligence
PDF
Hack Attack! An Introduction to Penetration Testing
PDF
Hack wifi password using kali linux
PDF
Nikita Abdullin - Reverse-engineering of embedded MIPS devices. Case Study - ...
PPTX
Telehack: May the Command Line Live Forever
PDF
Order vs. Mad Science: Analyzing Black Hat Swarm Intelligence
Solnik secure enclaveprocessor-pacsec
2016 TTL Security Gap Analysis with Kali Linux
Tools kali
Attacking Automatic Wireless Network Selection
Hacking Highly Secured Enterprise Environments by Zoltan Balazs
Breaking Vaults - Stealing Lastpass Protected Secrets by Martin Vigo
Kasza smashing the_jars
Database Firewall with Snort
CSW2017 Yuhao song+Huimingliu cyber_wmd_vulnerable_IoT
Defcon 22-jesus-molina-learn-how-to-control-every-room
Snort-IPS-Tutorial
Defcon 22-adrian-crenshaw-dropping-docs-on-darknets-how-peop
Automated Malware Analysis and Cyber Security Intelligence
Hack Attack! An Introduction to Penetration Testing
Hack wifi password using kali linux
Nikita Abdullin - Reverse-engineering of embedded MIPS devices. Case Study - ...
Telehack: May the Command Line Live Forever
Order vs. Mad Science: Analyzing Black Hat Swarm Intelligence
Ad

Viewers also liked (16)

PPTX
IoT_Ethics
PDF
CurrentRegs
PDF
Naming, Search and Discovery in IoT: Issues and proposed solutions in the FP7...
PPS
An introduction to Digital Security - Rishabh Dangwal
PPTX
Tesla iot case study
PDF
Internet of Things (IOT) - Demo - Part I
PDF
Design challenges in IoT
PPTX
IoT Security: Cases and Methods
PDF
Cybesecurity of the IoT
PDF
The Internet of Things: Privacy and Security Issues
PDF
Overview of IoT and Security issues
PPT
IoT security (Internet of Things)
PPTX
IoT Security Imperative: Stop your Fridge from Sending you Spam
PPTX
Internet-of-things- (IOT) - a-seminar - ppt - by- mohan-kumar-g
PPT
Internet of Things and its applications
PPTX
IoT - IT 423 ppt
IoT_Ethics
CurrentRegs
Naming, Search and Discovery in IoT: Issues and proposed solutions in the FP7...
An introduction to Digital Security - Rishabh Dangwal
Tesla iot case study
Internet of Things (IOT) - Demo - Part I
Design challenges in IoT
IoT Security: Cases and Methods
Cybesecurity of the IoT
The Internet of Things: Privacy and Security Issues
Overview of IoT and Security issues
IoT security (Internet of Things)
IoT Security Imperative: Stop your Fridge from Sending you Spam
Internet-of-things- (IOT) - a-seminar - ppt - by- mohan-kumar-g
Internet of Things and its applications
IoT - IT 423 ppt
Ad

Similar to How Smart Thermostats Have Made Us Vulnerable (20)

PDF
OSX Pirrit : Why you should care about malicious mac adware
PDF
RSA APJ Velociraptor Lab
PDF
Hacking Exposed: The Mac Attack
PDF
Hacking Exposed: The Mac Attack
PPT
Attacking Embedded Devices (No Axe Required)
PPTX
DevOOPS: Attacks and Defenses for DevOps Toolchains
PDF
RAT - Repurposing Adversarial Tradecraft
PDF
SREcon Europe 2016 - Full-mesh IPsec network at Hosted Graphite
PDF
Dns rebinding
PDF
D1 t1 t. yunusov k. nesterov - bootkit via sms
PDF
Offline attacks-and-hard-disk-encription
PDF
Timings of Init : Android Ramdisks for the Practical Hacker
PDF
Docker, Linux Containers (LXC), and security
PPT
Security & ethical hacking p2
PDF
Defcon 22-zoltan-balazs-bypass-firewalls-application-whiteli
PDF
Root via SMS: 4G access level security assessment, Sergey Gordeychik, Alexand...
PDF
Stop Passing the Bug: IoT Supply Chain Security
PDF
Docker, Linux Containers, and Security: Does It Add Up?
PPTX
Teensy Programming for Everyone
PPSX
Software security
OSX Pirrit : Why you should care about malicious mac adware
RSA APJ Velociraptor Lab
Hacking Exposed: The Mac Attack
Hacking Exposed: The Mac Attack
Attacking Embedded Devices (No Axe Required)
DevOOPS: Attacks and Defenses for DevOps Toolchains
RAT - Repurposing Adversarial Tradecraft
SREcon Europe 2016 - Full-mesh IPsec network at Hosted Graphite
Dns rebinding
D1 t1 t. yunusov k. nesterov - bootkit via sms
Offline attacks-and-hard-disk-encription
Timings of Init : Android Ramdisks for the Practical Hacker
Docker, Linux Containers (LXC), and security
Security & ethical hacking p2
Defcon 22-zoltan-balazs-bypass-firewalls-application-whiteli
Root via SMS: 4G access level security assessment, Sergey Gordeychik, Alexand...
Stop Passing the Bug: IoT Supply Chain Security
Docker, Linux Containers, and Security: Does It Add Up?
Teensy Programming for Everyone
Software security

Recently uploaded (20)

PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PPTX
A Presentation on Touch Screen Technology
PDF
Approach and Philosophy of On baking technology
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PPTX
1. Introduction to Computer Programming.pptx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PPTX
OMC Textile Division Presentation 2021.pptx
PDF
Encapsulation theory and applications.pdf
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
August Patch Tuesday
PDF
WOOl fibre morphology and structure.pdf for textiles
PDF
Mushroom cultivation and it's methods.pdf
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PDF
Hybrid model detection and classification of lung cancer
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
project resource management chapter-09.pdf
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
A Presentation on Touch Screen Technology
Approach and Philosophy of On baking technology
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
1. Introduction to Computer Programming.pptx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Group 1 Presentation -Planning and Decision Making .pptx
OMC Textile Division Presentation 2021.pptx
Encapsulation theory and applications.pdf
A comparative analysis of optical character recognition models for extracting...
August Patch Tuesday
WOOl fibre morphology and structure.pdf for textiles
Mushroom cultivation and it's methods.pdf
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
Hybrid model detection and classification of lung cancer
Building Integrated photovoltaic BIPV_UPV.pdf
project resource management chapter-09.pdf
Univ-Connecticut-ChatGPT-Presentaion.pdf
Programs and apps: productivity, graphics, security and other tools
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf

How Smart Thermostats Have Made Us Vulnerable

  • 1. #RSAC SESSION ID: Ray Potter Yier Jin Don't Touch That Dial: How Smart Thermostats Have Made Us Vulnerable HT-W04 Assistant Professor University of Central Florida @jinyier CEO SafeLogic @SafeLogic_Ray
  • 2. #RSAC  The threat is real  Connected convenience comes with risk  Challenges  What’s at Stake Flow
  • 3. #RSAC  Pattern recognition  Identity theft  Corporate espionage  Life What’s at Stake
  • 5. #RSAC  Nest Labs founded by Tony Fadell  Debuted in October 2011  Acquired by Google in January 2014 ($3.2B)  Over 40,000 sold each month Data from GigaOM as of January 2013  Available in UK in April 2014  Smart home API is released in June 2014 Nest Thermostat
  • 6. #RSAC “Yes, hacking is in our thoughts. When you're talking about the home, these are very private things. We thought about what people could do if they got access to your data. We have bank-level security, we encrypt updates, and we have an internal hacker team testing the security. It's very, very private and it has to be, because it'll never take off if people don't trust it.” - Tony Fadell
  • 8. #RSAC  “Display” board  Graphics/UI, Networking  Chips:  ARM Cortex A8 app processor  USB OTG  RAM/Flash (2Gb)  ZigBee/WiFi Radios  Proximity Sensors  UART test points (silenced at bootloader) Front Plate Courtesy of iFixit
  • 9. #RSAC  Hooks up to AC/Heating system. Charges battery via engineering wizardry  Chips:  Independent ARM Cortex M3  Temp and Humidity Sensor  Communications  Front to Back – UART  NEST Weave (802.15.4)  USB MSD (FW update) “Backplate” and Comms Courtesy of iFixit
  • 11. #RSAC  Runs on a Linux based platform  Handles interfacing between device and Nest Cloud services  Automatically handles firmware updates  Manual update available  Plug Nest into PC  Handled as a storage device  Copy firmware to drive  Reboot Nest Client Nest
  • 12. #RSAC Nest Firmware  Signed firmware   Manifest.plist  Hashes contents  Manifest.p7s  Compressed but not encrypted or obfuscated  Includes – U-boot image – Linux Kernel image – File system – nlbpfirmware.plist
  • 13. #RSAC  Firmware signing using PKCS7  Pinned Nest certificates for firmware verification  All critical communications (any with secrets) over HTTPS  Other less secure ones over HTTP (firmware, weather) Things Done the Right Way™
  • 14. #RSAC  Firmware links downloaded using HTTP and download links do not expire  Hardware backdoor left for anyone with a USB port to use  Automatic updates Things Done the Wrong Way™
  • 15. #RSAC  Log Files  Internally stored and uploaded to Nest  Contents  User Interface  Users are unaware of the contents of the log files  Users cannot turn off this option  User network credentials are stored … in plain text!  Users should be allowed to opt-out of the data collection? User Privacy
  • 18. #RSAC  TI Sitara AM3703  ARM Cortex-A8 core  Version 7 ISA  JazelleX Java accelerator and media extensions  ARM NEON core SIMD coprocessor  DMA controller  HS USB controller  General Purpose Memory Controller to handle flash  SDRAM memory scheduler and controller  112KB on-chip ROM (boot code)  64KB on-chip SRAM  Configurable boot options Hardware Analysis
  • 19. #RSAC
  • 20. #RSAC Boot Process Root ROM starts execution ROM initializes basic subsystems ROM copies X-Loader to SRAM X-Loader executes X-Loader initializes SDRAM Userland loaded U-boot executes Linux kernel U-boot configures environment U-boot executes X-Loader copies U-boot to SDRAM
  • 21. #RSAC Boot Process Root ROM starts execution ROM initializes basic subsystems ROM reads X-Loader from USB X-Loader executes X-Loader initializes SDRAM Userland loaded U-boot executes Linux kernel U-boot configures environment U-boot executes X-Loader copies U-boot to SDRAM
  • 22. #RSAC Boot Process Root ROM starts execution ROM initializes basic subsystems ROM reads X-Loader from USB X-Loader executes X-Loader initializes SDRAM Userland loaded U-boot executes Linux kernel U-boot configures environment U-boot executes X-Loader copies U-boot to SDRAM
  • 23. #RSAC Boot Process Root ROM starts execution ROM initializes basic subsystems ROM reads X-Loader from USB X-Loader executes X-Loader initializes SDRAM Userland loaded U-boot executes Linux kernel U-boot configures environment U-boot executes X-Loader copies U-boot to SDRAM
  • 24. #RSAC Boot Process Root ROM starts execution ROM initializes basic subsystems ROM reads X-Loader from USB X-Loader executes X-Loader initializes SDRAM Userland loaded U-boot executes Linux kernel U-boot configures environment U-boot executes X-Loader copies U-boot to SDRAM
  • 25. #RSAC Boot Process Root ROM starts execution ROM initializes basic subsystems ROM reads X-Loader from USB X-Loader executes X-Loader initializes SDRAM Userland loaded U-boot executes Linux kernel U-boot configures environment U-boot executes X-Loader copies U-boot to SDRAM
  • 26. #RSAC Boot Process Root ROM starts execution ROM initializes basic subsystems ROM reads X-Loader from USB X-Loader executes X-Loader initializes SDRAM Userland loaded U-boot executes Linux kernel U-boot configures environment U-boot executes X-Loader copies U-boot to SDRAM
  • 27. #RSAC Boot Process Root ROM starts execution ROM initializes basic subsystems ROM reads X-Loader from USB X-Loader executes X-Loader initializes SDRAM Userland loaded U-boot executes Linux kernel U-boot configures environment U-boot executes X-Loader copies U-boot to SDRAM
  • 28. #RSAC Boot Process Root ROM starts execution ROM initializes basic subsystems ROM reads X-Loader from USB X-Loader executes X-Loader initializes SDRAM Userland loaded U-boot executes Linux kernel U-boot configures environment U-boot executes X-Loader copies U-boot to SDRAM
  • 29. #RSAC  Boot Configuration read from sys_boot[5:0] Device Initialization Selected boot configurations sys_boot [5:0] First Second Third Fourth Fifth 001101 001110 001111 XIP XIPwait NAND USB DOC USB UART3 USB UART3 MMC1 UART3 MMC1 MMC1 101101 101110 101111 USB USB USB UART3 UART3 UART3 MMC1 MMC1 MMC1 XIP XIPwait NAND DOC
  • 30. #RSAC  Boot configuration pins 4..0 are fixed in Nest’s hardware  sys_boot[5] is changes based on reset type  Conveiently, circuit board exposes sys_boot[5] on an unpopulated header… Device Programming
  • 31. #RSAC Nest USB Device Descriptor
  • 32. #RSAC TI USB Device Descriptor
  • 33. #RSAC  Full control over the house  Away detection  Network credentials  Zip Code  Remote exfiltration  Pivoting to other devices Implications
  • 34. #RSAC  Unauthorized ability to access Nest account  We now have the OAUTH secrets  Ability to brick the device  We can modify the NAND  Persistent malware in NAND  X-loader bootkit in NAND Control over all Nest devices
  • 36. #RSAC  Device Reset  Press the button for 10 seconds causing sys_boot[5] = 1’b1  Inject code through the USB into memory and execute  Be quick! Attack
  • 37. #RSAC  Custom X-Loader to chainload U-Boot + initrd  Custom U-Boot  Utilize existing kernel  Load our ramdisk (initrd)  Ramdisk  Mount Nest’s filesystem and write at will  Arbitrary, scriptable, code execution  Netcat already comes with the Nest Initial Attack
  • 38. #RSAC  Rebuild toolchain  Cross-compile dropbear (SSH server)  Add user accounts and groups  Reset root password Refining a Backdoor
  • 39. #RSAC  A custom Linux kernel  Custom logo  Debugging capabilities (kgdb)  Polling on OMAP serial ports Linux Kernel Modification
  • 41. #RSAC  Positive View  The backdoor provide legitimate users to opt-out of uploading logs files  Negative View  The backdoor may be maliciously exploited  A Relief to Nest Labs  The backdoor needs physical access to the device (although remote attack is under investigation) Double-Edged Sword
  • 42. #RSAC  Code Authentication  Processor must authenticate the first stage bootloader before it is run  Use public key cryptography  Userland protection  Only execute signed binaries  Filesystem encryption  Processor-DRAM channel protection A Solution – Chain of Trust
  • 43. #RSAC How to Apply This Knowledge 47  Identify whether your product shares vulnerabilities with these examples.  Build security strategy and implement NOW, don’t wait.  Explore 3rd party validation and other ways to leverage proven security measures.  Regardless of form factor, focus on the data.  And of course, as a user, quarantine WiFi access for each of your IoT devices.

Editor's Notes

  • #3: Sales data according to
  • #4: Sales data according to
  • #5: Health Corporate Manufacturing Retail Transportation Utilities Consumer
  • #6: Sales data according to
  • #8: Mention that Nest Labs definitely takes security seriously. Let this talk show that even the best of the designers can make mistakes.
  • #11: Front plate uses ttyO2 to talk to the back plate. Show live hardware and demonstrate some of its functions.
  • #13: This smart device may be too smart for its own good. Firmware does everything for the user. Attacking the firmware will result in greater damages to the user.
  • #14: Nlbpfirmware.plist is an XML document which contains among other things base64 encoded data (firmware image for backplate). Tool to flash firmware is included in the device’s filesystem.
  • #15: Firmware is downloaded using HTTP
  • #17: Usage statistics System logs Nest software logs (Zip Code, device settings, wired option)
  • #31: Boot configurations are read by ROM code and latched into CONTROL.CONTROL_STATUS register. Pins can be used for anything afterwards.
  • #43: Other findings: Nest attempts to start a secure shell server of its own, no binaries found. SSH server keys are on device and unique to each unit.
  • #45: Boot device, use netcat as payload. Have small shell to target computer.