SlideShare a Scribd company logo
Drew Moseley
Technical Solutions Architect
Mender.io
IOT Development from Prototype to Production
Session overview
● Define IOT and markets
● Selecting hardware.
● Selecting system software.
● Design considerations for IOT
development
About me
● Drew Moseley
○ 10 years in Embedded Linux/Yocto
development.
○ More than that in general Embedded
Software.
○ Project Lead and Solutions Architect.
○ drew.moseley@mender.io
○ https://twitter.com/drewmoseley
○ https://www.linkedin.com/in/drewmoseley/
○ https://twitter.com/mender_io
● Mender.io
○ Over-the-air updater for Embedded Linux
○ Open source (Apache License, v2)
○ Dual A/B rootfs layout (client)
○ Remote deployment management (server)
○ Under active development
● “A network of internet-connected objects able to collect and exchange data
using embedded sensors.”1
IOT Definition
1
http://www.businessinsider.com/what-is-the-internet-of-things-definition-2016-8
● A “network of physical devices, vehicles, home appliances and other items
embedded with electronics, software, sensors, actuators, and connectivity
which enables these objects to connect and exchange data.”3
● IEEE (86 page PDF)2
● Key characteristics:
⎻ Connected
⎻ Sensors
⎻ Actuators
⎻ Cloud Infrastructure
2
https://iot.ieee.org/definition.html
3
https://en.wikipedia.org/wiki/Internet_of_things
● Consumer1
⎻ Nest thermostat
⎻ Smart lighting
⎻ Home security
⎻ Connected automobiles
IOT Applications
1
Not an endorsement; I’ve not even used most of these examples
● Municipal
⎻ Infrastructure monitoring/management
⎻ Traffic control
⎻ Public Transit
● Industrial
⎻ Operations Centers
⎻ Factory/inventory management
● Enterprise
⎻ Supply chain management
⎻ Medical Device
Used for device control and data store.
May provide AI and big data services.
May provide device fleet management/dashboard.
Cloud Infrastructure
IOT Network Architecture
● Short Distance (inches):
⎻ NFC
⎻ Bluetooth
● Medium Distance (within a building):
⎻ Wi-Fi
⎻ Ethernet
● Long Distance (within a city, battery life measured in
years):
⎻ LoRa®/LoRaWAN™; governed by industry
alliance
⎻ Sigfox; governed by single commercial entity
● Wide Area (nationwide):
⎻ Cellular/LTE
IOT Connectivity Options
● HTTP/HTTPS REST APIs
● 6LoWPAN
⎻ IPv6 over LP-WAN protocols
● MQTT
⎻ Pub/Sub model
⎻ Lightweight in both code and bandwidth
⎻ OASIS Standard
● ZeroMQ
⎻ Pub/Sub, Push/Pull, Router/Dealer
⎻ Open source (LGPL with a Static Linking
Exception )
● Zigbee
⎻ Primarily for Home Automation
⎻ IEEE 802.15.4
● DDS (Data Distribution Service)
⎻ Global Data Space
⎻ Distributed with access controls
IOT Communication Protocols
● MCU vs SOC
⎻ MCU generally not Linux
● On-board peripherals
● Hobbyist vs Commercial Vendor
⎻ Lead times
⎻ Inventories
● Battery vs Hard-wired
● Price
● Form factor:
⎻ Board (Beaglebone Black,
Raspberry Pi 3)
⎻ Module (Toradex SOM, Raspberry
Pi Compute Module)
Hardware Criteria
● OS vs RTOS vs Bare Metal
● System Development Tools
⎻ Yocto
⎻ Buildroot
⎻ OpenWRT
⎻ Debian
● Deployment Strategies
⎻ Hypervisors/Containers
⎻ AMP
● Security/Safety
⎻ ISO 26262
⎻ SELinux
⎻ AppArmor
⎻ SMACK: Simplified Mandatory Access Control Kernel
System Software Criteria
● Application Development
Frameworks
⎻ NodeRED
⎻ NodeJS
⎻ Eclipse Kura
⎻ Qt
● Application Development
Environments
⎻ Eclipse
⎻ CLI
⎻ Commercial vs RYO/OSS
● Language Availability
⎻ C/C++/Python/Java/Javascript/
Golang
● 3rd party package availability
Application Software Criteria
● Bare Metal/Embedded Control Loop
● Embedded RTOS1
○ OSS: FreeRTOS, IncludeOS, Apache Mynewt, Zephyr
○ Commercial: Nucleus, vxWorks, QNX
● “Desktop” class OS
○ Windows IOT Core
System Software Options - Non-Linux
Not my
fault.
1
https://en.wikipedia.org/wiki/Comparison_of_real-time_operating_systems
System Software Options - Linux
● Embedded Linux Options
⎻ Desktop Class Distro
⎻ Embedded Distro Builder
■ Yocto
■ Buildroot
■ OpenWRT
⎻ Hybrid
■ ISAR
■ ELBE
● Embedded Linux Build Systems Talk from ELC Portland 2018
● Article about Yocto for IOT
I got this!!
“It’s not an embedded Linux distribution -- it creates a custom one for you”1
● Recipes, metadata, dependencies and configuration
● Primary output: package feed
● Secondary output: boot images
● Builds all components from source
● Mechanism, not policy
Products:
● Root filesystem image
● Kernel, Bootloader, Toolchain
● Package Feed
Yocto Project - Overview
1
See more at https://www.yoctoproject.org
“Buildroot is a simple, efficient and easy-to-use tool to generate embedded Linux
systems through cross-compilation.”1
● Primary output: boot images
● Does not support rpm-style package mgmt
● “Firmware Generator”
● Builds all components from source
● Focus on simplicity
Products:
● Root filesystem image
● Kernel, Bootloader, Toolchain
Buildroot - Overview
1
See more at https://buildroot.org/
OpenWRT - Overview
“OpenWrt provides a fully writable filesystem with package management.”1
Primary focus is networking
○ Replacement firmware for consumer devices
○ Primarily a binary distribution
○ On-device package management
Products:
○ Firmware image in device-specific format
○ Network available package repositories
1
See more at https://openwrt.org/
● Device lifetimes.
● Managed vs unmanaged fleet:
⎻ Will you have direct control of deployed devices?
● Operating Environment:
⎻ How hostile is it?
⎻ How reliable is power and connectivity?
● Can the user modify the software?
● Is there some kind of end-user interface?
● Bandwidth:
⎻ Network
⎻ Cloud compute
Deployment Considerations
What can
go wrong?
Securing IOT Devices
● “The ‘s’ in IOT stands for security” - @tkadlec
● 1-25 bugs per 1000 lines of code*
○ Assume that all software components have
vulnerabilities
● Use well-maintained software and keep it updated
● Review vendors for update policies
● General Security Practices
○ Principle of least privilege
○ Separation of privilege
○ Kerckhoff’s principle
■ “You can only design an encryption system
that someone dumber than you cannot
crack.”
*Source: Steve McConnell, Code Complete
Securing IOT Devices
● “The ‘s’ in IOT stands for security” - @tkadlec
● 1-25 bugs per 1000 lines of code*
○ Assume that all software components have
vulnerabilities
● Use well-maintained software and keep it updated
● Review vendors for update policies
● General Security Practices
○ Principle of least privilege
○ Separation of privilege
○ Kerckhoff’s principle
■ “You can only design an encryption system
that someone dumber than you cannot
crack.”
*Source: Steve McConnell, Code Complete
OTA updates are
a must have.
Security patching is done too late
60 days: >90% probability it is exploited
110 days: remediation time avg.
5-10 days: <10% probability it is exploited
Source: How the Rise in Non-Targeted Attacks Has Widened the Remediation Gap, Kenna Security
IOT Device Patching and Updates
● “33% of current recalls are for problems that could be fixed OTA” -
ABI Research
● “OTA updates will save carmakers $35B in 2022” - IHS Automotive
● Considerations:
○ Long expected lifetime
○ No/expensive physical access
○ Unreliable power
○ Unreliable network connectivity
○ Public and insecure networks
OTA Update Design Criteria
● Robust - no bricked devices
● Secure - TLS and image signing
● Atomic - installed completely or not at all
● Consistent - test environment == production
environment
● Automatic Rollback - safety
● Plugin architecture - expandability
Resources:
● https://bit.ly/2GlKlUQ - My ELC Talk on Embedded Linux build systems
● https://ubm.io/2Iazdfn - My article on the Yocto build system
● https://bit.ly/2KYFLzz - Script to build Yocto for Raspberry Pi with Mender.
@drewmoseley
drew.moseley@mender.io
Q&A - Thank you!

More Related Content

What's hot (20)

PPTX
Tinker cad intro
Archita Singh
 
DOCX
Report
IshworKhatiwada
 
PDF
IRJET- Home Automation System using IoT
IRJET Journal
 
PDF
Internet Of Things
PiTechnologies
 
PPTX
Design connected thermometer
S Martial Anicet KIEMDE
 
PPTX
Brain controlled robot
Pantech ProLabs India Pvt Ltd
 
PDF
IT Solution through IoT Development
Andri Yadi
 
PPTX
Android and processors
Adarsh Gowda
 
PPTX
M2M and IoT Design Methodologies
Selvaraj Seerangan
 
PDF
Bluetooth Home Automation System
AI Publications
 
PDF
The Rise of Maker Movement in Indonesia
Andri Yadi
 
PDF
IRJET- Rescue of Psycological Infirmity People using Wirless Network
IRJET Journal
 
PPTX
Java ring
Etty94
 
PPTX
Java ring Engg SEMINAR
rajdeepsatapathy
 
PPTX
Taller IoT en la Actualidad
Laurence HR
 
PDF
Road to Republic of IoT - IoT Technologies & Machine Learning
Andri Yadi
 
PPT
Intro to the Arduino Entrepreneurial System
todbotdotcom
 
PDF
Ubiquitous home
swati sonawane
 
PDF
IRJET- Smart Drive
IRJET Journal
 
PDF
IRJET- Multi Plug Control using Internet of Things
IRJET Journal
 
Tinker cad intro
Archita Singh
 
IRJET- Home Automation System using IoT
IRJET Journal
 
Internet Of Things
PiTechnologies
 
Design connected thermometer
S Martial Anicet KIEMDE
 
Brain controlled robot
Pantech ProLabs India Pvt Ltd
 
IT Solution through IoT Development
Andri Yadi
 
Android and processors
Adarsh Gowda
 
M2M and IoT Design Methodologies
Selvaraj Seerangan
 
Bluetooth Home Automation System
AI Publications
 
The Rise of Maker Movement in Indonesia
Andri Yadi
 
IRJET- Rescue of Psycological Infirmity People using Wirless Network
IRJET Journal
 
Java ring
Etty94
 
Java ring Engg SEMINAR
rajdeepsatapathy
 
Taller IoT en la Actualidad
Laurence HR
 
Road to Republic of IoT - IoT Technologies & Machine Learning
Andri Yadi
 
Intro to the Arduino Entrepreneurial System
todbotdotcom
 
Ubiquitous home
swati sonawane
 
IRJET- Smart Drive
IRJET Journal
 
IRJET- Multi Plug Control using Internet of Things
IRJET Journal
 

Similar to Iot development from prototype to production (20)

PDF
IoT Development from Prototype to Production
Mender.io
 
PDF
IoT: Contrasting Yocto/Buildroot to binary OSes
Mender.io
 
PDF
Why the yocto project for my io t project elc_edinburgh_2018
Mender.io
 
PDF
The ultimate guide to software updates on embedded linux devices
Mender.io
 
PDF
IOT Exploitation
Cysinfo Cyber Security Community
 
PDF
LAS16 100 K1 - Keynote George Grey
96Boards
 
PDF
LAS16-100K1: Welcome Keynote
Linaro
 
PDF
BKK16-500K2 CTO talk - The End to End Story
Linaro
 
PDF
The Considerations for Internet of Things @ 2017
Jian-Hong Pan
 
PDF
George Grey Welcome Keynote - BUD17-100K1
Linaro
 
PDF
Peripheral Programming using Arduino and Python on MediaTek LinkIt Smart 7688...
MediaTek Labs
 
PDF
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux – Unified IoT Pl...
mCloud
 
PDF
Embedded Linux Build Systems - Texas Linux Fest 2018
Mender.io
 
PDF
Integrate IoT cloud analytics and over the-air (ota) updates with google and ...
Mender.io
 
PDF
Fluent Bit
Eduardo Silva Pereira
 
PDF
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Stéphanie Roger
 
PDF
libreCMC : The Libre Embedded GNU/Linux Distro
All Things Open
 
PDF
Open_IoT_Summit-Europe-2016-Building_an_IoT-class_Device_0
Igor Stoppa
 
PDF
Is Android the New Embedded Linux? at AnDevCon V
Opersys inc.
 
PDF
Is Android the New Embedded Linux? at AnDevCon VI
Opersys inc.
 
IoT Development from Prototype to Production
Mender.io
 
IoT: Contrasting Yocto/Buildroot to binary OSes
Mender.io
 
Why the yocto project for my io t project elc_edinburgh_2018
Mender.io
 
The ultimate guide to software updates on embedded linux devices
Mender.io
 
LAS16 100 K1 - Keynote George Grey
96Boards
 
LAS16-100K1: Welcome Keynote
Linaro
 
BKK16-500K2 CTO talk - The End to End Story
Linaro
 
The Considerations for Internet of Things @ 2017
Jian-Hong Pan
 
George Grey Welcome Keynote - BUD17-100K1
Linaro
 
Peripheral Programming using Arduino and Python on MediaTek LinkIt Smart 7688...
MediaTek Labs
 
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux – Unified IoT Pl...
mCloud
 
Embedded Linux Build Systems - Texas Linux Fest 2018
Mender.io
 
Integrate IoT cloud analytics and over the-air (ota) updates with google and ...
Mender.io
 
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Stéphanie Roger
 
libreCMC : The Libre Embedded GNU/Linux Distro
All Things Open
 
Open_IoT_Summit-Europe-2016-Building_an_IoT-class_Device_0
Igor Stoppa
 
Is Android the New Embedded Linux? at AnDevCon V
Opersys inc.
 
Is Android the New Embedded Linux? at AnDevCon VI
Opersys inc.
 
Ad

More from Mender.io (14)

PDF
Mender: The open-source software update solution
Mender.io
 
PDF
A million ways to provision embedded linux devices
Mender.io
 
PDF
Embedded linux build systems
Mender.io
 
PDF
Configuring wifi in open embedded builds
Mender.io
 
PDF
Mender; the open-source software update solution
Mender.io
 
PDF
IoT Prototyping using BBB and Debian
Mender.io
 
PDF
Strategies for developing and deploying your embedded applications and images
Mender.io
 
PDF
Software Updates for Connected Devices - OSCON 2018
Mender.io
 
PDF
Linux IOT Botnet Wars and the Lack of Basic Security Hardening - OSCON 2018
Mender.io
 
PDF
Linux IoT Botnet Wars - ESC Boston 2018
Mender.io
 
PDF
Securing the Connected Car - SCaLE 2018
Mender.io
 
PDF
Mender.io | Securing the Connected Car
Mender.io
 
PDF
Linux IoT Botnet Wars and the lack of basic security hardening
Mender.io
 
PDF
Mender.io | Develop embedded applications faster | Comparing C and Golang
Mender.io
 
Mender: The open-source software update solution
Mender.io
 
A million ways to provision embedded linux devices
Mender.io
 
Embedded linux build systems
Mender.io
 
Configuring wifi in open embedded builds
Mender.io
 
Mender; the open-source software update solution
Mender.io
 
IoT Prototyping using BBB and Debian
Mender.io
 
Strategies for developing and deploying your embedded applications and images
Mender.io
 
Software Updates for Connected Devices - OSCON 2018
Mender.io
 
Linux IOT Botnet Wars and the Lack of Basic Security Hardening - OSCON 2018
Mender.io
 
Linux IoT Botnet Wars - ESC Boston 2018
Mender.io
 
Securing the Connected Car - SCaLE 2018
Mender.io
 
Mender.io | Securing the Connected Car
Mender.io
 
Linux IoT Botnet Wars and the lack of basic security hardening
Mender.io
 
Mender.io | Develop embedded applications faster | Comparing C and Golang
Mender.io
 
Ad

Recently uploaded (20)

PDF
AI Image Enhancer: Revolutionizing Visual Quality”
docmasoom
 
PDF
SAP GUI Installation Guide for Windows | Step-by-Step Setup for SAP Access
SAP Vista, an A L T Z E N Company
 
PDF
Enhancing Healthcare RPM Platforms with Contextual AI Integration
Cadabra Studio
 
PDF
Enhancing Security in VAST: Towards Static Vulnerability Scanning
ESUG
 
PPTX
classification of computer and basic part of digital computer
ravisinghrajpurohit3
 
PDF
New Download MiniTool Partition Wizard Crack Latest Version 2025
imang66g
 
PDF
Download iTop VPN Free 6.1.0.5882 Crack Full Activated Pre Latest 2025
imang66g
 
PDF
Protecting the Digital World Cyber Securit
dnthakkar16
 
PDF
Applitools Platform Pulse: What's New and What's Coming - July 2025
Applitools
 
PPTX
TRAVEL APIs | WHITE LABEL TRAVEL API | TOP TRAVEL APIs
philipnathen82
 
PPTX
ASSIGNMENT_1[1][1][1][1][1] (1) variables.pptx
kr2589474
 
PDF
System Center 2025 vs. 2022; What’s new, what’s next_PDF.pdf
Q-Advise
 
PDF
Virtual Threads in Java: A New Dimension of Scalability and Performance
Tier1 app
 
PDF
Salesforce Implementation Services Provider.pdf
VALiNTRY360
 
PDF
Summary Of Odoo 18.1 to 18.4 : The Way For Odoo 19
CandidRoot Solutions Private Limited
 
PDF
10 posting ideas for community engagement with AI prompts
Pankaj Taneja
 
PDF
On Software Engineers' Productivity - Beyond Misleading Metrics
Romén Rodríguez-Gil
 
PPTX
Presentation about variables and constant.pptx
kr2589474
 
PDF
Generating Union types w/ Static Analysis
K. Matthew Dupree
 
PPT
Why Reliable Server Maintenance Service in New York is Crucial for Your Business
Sam Vohra
 
AI Image Enhancer: Revolutionizing Visual Quality”
docmasoom
 
SAP GUI Installation Guide for Windows | Step-by-Step Setup for SAP Access
SAP Vista, an A L T Z E N Company
 
Enhancing Healthcare RPM Platforms with Contextual AI Integration
Cadabra Studio
 
Enhancing Security in VAST: Towards Static Vulnerability Scanning
ESUG
 
classification of computer and basic part of digital computer
ravisinghrajpurohit3
 
New Download MiniTool Partition Wizard Crack Latest Version 2025
imang66g
 
Download iTop VPN Free 6.1.0.5882 Crack Full Activated Pre Latest 2025
imang66g
 
Protecting the Digital World Cyber Securit
dnthakkar16
 
Applitools Platform Pulse: What's New and What's Coming - July 2025
Applitools
 
TRAVEL APIs | WHITE LABEL TRAVEL API | TOP TRAVEL APIs
philipnathen82
 
ASSIGNMENT_1[1][1][1][1][1] (1) variables.pptx
kr2589474
 
System Center 2025 vs. 2022; What’s new, what’s next_PDF.pdf
Q-Advise
 
Virtual Threads in Java: A New Dimension of Scalability and Performance
Tier1 app
 
Salesforce Implementation Services Provider.pdf
VALiNTRY360
 
Summary Of Odoo 18.1 to 18.4 : The Way For Odoo 19
CandidRoot Solutions Private Limited
 
10 posting ideas for community engagement with AI prompts
Pankaj Taneja
 
On Software Engineers' Productivity - Beyond Misleading Metrics
Romén Rodríguez-Gil
 
Presentation about variables and constant.pptx
kr2589474
 
Generating Union types w/ Static Analysis
K. Matthew Dupree
 
Why Reliable Server Maintenance Service in New York is Crucial for Your Business
Sam Vohra
 

Iot development from prototype to production

  • 1. Drew Moseley Technical Solutions Architect Mender.io IOT Development from Prototype to Production
  • 2. Session overview ● Define IOT and markets ● Selecting hardware. ● Selecting system software. ● Design considerations for IOT development
  • 3. About me ● Drew Moseley ○ 10 years in Embedded Linux/Yocto development. ○ More than that in general Embedded Software. ○ Project Lead and Solutions Architect. ○ [email protected] ○ https://twitter.com/drewmoseley ○ https://www.linkedin.com/in/drewmoseley/ ○ https://twitter.com/mender_io ● Mender.io ○ Over-the-air updater for Embedded Linux ○ Open source (Apache License, v2) ○ Dual A/B rootfs layout (client) ○ Remote deployment management (server) ○ Under active development
  • 4. ● “A network of internet-connected objects able to collect and exchange data using embedded sensors.”1 IOT Definition 1 http://www.businessinsider.com/what-is-the-internet-of-things-definition-2016-8 ● A “network of physical devices, vehicles, home appliances and other items embedded with electronics, software, sensors, actuators, and connectivity which enables these objects to connect and exchange data.”3 ● IEEE (86 page PDF)2 ● Key characteristics: ⎻ Connected ⎻ Sensors ⎻ Actuators ⎻ Cloud Infrastructure 2 https://iot.ieee.org/definition.html 3 https://en.wikipedia.org/wiki/Internet_of_things
  • 5. ● Consumer1 ⎻ Nest thermostat ⎻ Smart lighting ⎻ Home security ⎻ Connected automobiles IOT Applications 1 Not an endorsement; I’ve not even used most of these examples ● Municipal ⎻ Infrastructure monitoring/management ⎻ Traffic control ⎻ Public Transit ● Industrial ⎻ Operations Centers ⎻ Factory/inventory management ● Enterprise ⎻ Supply chain management ⎻ Medical Device
  • 6. Used for device control and data store. May provide AI and big data services. May provide device fleet management/dashboard. Cloud Infrastructure
  • 8. ● Short Distance (inches): ⎻ NFC ⎻ Bluetooth ● Medium Distance (within a building): ⎻ Wi-Fi ⎻ Ethernet ● Long Distance (within a city, battery life measured in years): ⎻ LoRa®/LoRaWAN™; governed by industry alliance ⎻ Sigfox; governed by single commercial entity ● Wide Area (nationwide): ⎻ Cellular/LTE IOT Connectivity Options
  • 9. ● HTTP/HTTPS REST APIs ● 6LoWPAN ⎻ IPv6 over LP-WAN protocols ● MQTT ⎻ Pub/Sub model ⎻ Lightweight in both code and bandwidth ⎻ OASIS Standard ● ZeroMQ ⎻ Pub/Sub, Push/Pull, Router/Dealer ⎻ Open source (LGPL with a Static Linking Exception ) ● Zigbee ⎻ Primarily for Home Automation ⎻ IEEE 802.15.4 ● DDS (Data Distribution Service) ⎻ Global Data Space ⎻ Distributed with access controls IOT Communication Protocols
  • 10. ● MCU vs SOC ⎻ MCU generally not Linux ● On-board peripherals ● Hobbyist vs Commercial Vendor ⎻ Lead times ⎻ Inventories ● Battery vs Hard-wired ● Price ● Form factor: ⎻ Board (Beaglebone Black, Raspberry Pi 3) ⎻ Module (Toradex SOM, Raspberry Pi Compute Module) Hardware Criteria
  • 11. ● OS vs RTOS vs Bare Metal ● System Development Tools ⎻ Yocto ⎻ Buildroot ⎻ OpenWRT ⎻ Debian ● Deployment Strategies ⎻ Hypervisors/Containers ⎻ AMP ● Security/Safety ⎻ ISO 26262 ⎻ SELinux ⎻ AppArmor ⎻ SMACK: Simplified Mandatory Access Control Kernel System Software Criteria
  • 12. ● Application Development Frameworks ⎻ NodeRED ⎻ NodeJS ⎻ Eclipse Kura ⎻ Qt ● Application Development Environments ⎻ Eclipse ⎻ CLI ⎻ Commercial vs RYO/OSS ● Language Availability ⎻ C/C++/Python/Java/Javascript/ Golang ● 3rd party package availability Application Software Criteria
  • 13. ● Bare Metal/Embedded Control Loop ● Embedded RTOS1 ○ OSS: FreeRTOS, IncludeOS, Apache Mynewt, Zephyr ○ Commercial: Nucleus, vxWorks, QNX ● “Desktop” class OS ○ Windows IOT Core System Software Options - Non-Linux Not my fault. 1 https://en.wikipedia.org/wiki/Comparison_of_real-time_operating_systems
  • 14. System Software Options - Linux ● Embedded Linux Options ⎻ Desktop Class Distro ⎻ Embedded Distro Builder ■ Yocto ■ Buildroot ■ OpenWRT ⎻ Hybrid ■ ISAR ■ ELBE ● Embedded Linux Build Systems Talk from ELC Portland 2018 ● Article about Yocto for IOT I got this!!
  • 15. “It’s not an embedded Linux distribution -- it creates a custom one for you”1 ● Recipes, metadata, dependencies and configuration ● Primary output: package feed ● Secondary output: boot images ● Builds all components from source ● Mechanism, not policy Products: ● Root filesystem image ● Kernel, Bootloader, Toolchain ● Package Feed Yocto Project - Overview 1 See more at https://www.yoctoproject.org
  • 16. “Buildroot is a simple, efficient and easy-to-use tool to generate embedded Linux systems through cross-compilation.”1 ● Primary output: boot images ● Does not support rpm-style package mgmt ● “Firmware Generator” ● Builds all components from source ● Focus on simplicity Products: ● Root filesystem image ● Kernel, Bootloader, Toolchain Buildroot - Overview 1 See more at https://buildroot.org/
  • 17. OpenWRT - Overview “OpenWrt provides a fully writable filesystem with package management.”1 Primary focus is networking ○ Replacement firmware for consumer devices ○ Primarily a binary distribution ○ On-device package management Products: ○ Firmware image in device-specific format ○ Network available package repositories 1 See more at https://openwrt.org/
  • 18. ● Device lifetimes. ● Managed vs unmanaged fleet: ⎻ Will you have direct control of deployed devices? ● Operating Environment: ⎻ How hostile is it? ⎻ How reliable is power and connectivity? ● Can the user modify the software? ● Is there some kind of end-user interface? ● Bandwidth: ⎻ Network ⎻ Cloud compute Deployment Considerations What can go wrong?
  • 19. Securing IOT Devices ● “The ‘s’ in IOT stands for security” - @tkadlec ● 1-25 bugs per 1000 lines of code* ○ Assume that all software components have vulnerabilities ● Use well-maintained software and keep it updated ● Review vendors for update policies ● General Security Practices ○ Principle of least privilege ○ Separation of privilege ○ Kerckhoff’s principle ■ “You can only design an encryption system that someone dumber than you cannot crack.” *Source: Steve McConnell, Code Complete
  • 20. Securing IOT Devices ● “The ‘s’ in IOT stands for security” - @tkadlec ● 1-25 bugs per 1000 lines of code* ○ Assume that all software components have vulnerabilities ● Use well-maintained software and keep it updated ● Review vendors for update policies ● General Security Practices ○ Principle of least privilege ○ Separation of privilege ○ Kerckhoff’s principle ■ “You can only design an encryption system that someone dumber than you cannot crack.” *Source: Steve McConnell, Code Complete OTA updates are a must have.
  • 21. Security patching is done too late 60 days: >90% probability it is exploited 110 days: remediation time avg. 5-10 days: <10% probability it is exploited Source: How the Rise in Non-Targeted Attacks Has Widened the Remediation Gap, Kenna Security
  • 22. IOT Device Patching and Updates ● “33% of current recalls are for problems that could be fixed OTA” - ABI Research ● “OTA updates will save carmakers $35B in 2022” - IHS Automotive ● Considerations: ○ Long expected lifetime ○ No/expensive physical access ○ Unreliable power ○ Unreliable network connectivity ○ Public and insecure networks
  • 23. OTA Update Design Criteria ● Robust - no bricked devices ● Secure - TLS and image signing ● Atomic - installed completely or not at all ● Consistent - test environment == production environment ● Automatic Rollback - safety ● Plugin architecture - expandability
  • 24. Resources: ● https://bit.ly/2GlKlUQ - My ELC Talk on Embedded Linux build systems ● https://ubm.io/2Iazdfn - My article on the Yocto build system ● https://bit.ly/2KYFLzz - Script to build Yocto for Raspberry Pi with Mender. @drewmoseley [email protected] Q&A - Thank you!