Birds of a Feather Session - OSS Vancouver Eystein Stenberg, Mender.io

Similar documents
Software Updates for Connected Devices

Securing the Connected Car. Eystein Stenberg CTO Mender.io

The ultimate guide to software updates on embedded Linux devices

Securing the Connected Car. Eystein Stenberg Product Manager Mender.io

Surviving in the wilderness integrity protection and system update. Patrick Ohly, Intel Open Source Technology Center Preliminary version

Handling Top Security Threats for Connected Embedded Devices. OpenIoT Summit, San Diego, 2016

Session Overview. Background Integration Mender libostree (aktualizr) SWUpdate resin.io

IoT devices: secure boot and sw maintenance. Open IoT Summit Igor Stoppa

AN APPROACH TO DELIVER HARDWARE - DEPENDENT PACKAGES IN ORDER TO REDUCE EFFORT OF UPDATING AGL DISTRIBUTION IMAGES

How we added software updates to AGL

Backporting is so 1993

UEFI Secure Boot and DRI. Kalyan Kumar N

EMBEDDED LINUX ON ARM9 Weekend Workshop

Securing Software Updates for IoT Devices with TUF and Uptane. Ricardo Salveti Principal Engineer

Use of Mojo PowerPoint Template. Your name, Title

Linux+ Guide to Linux Certification, Third Edition. Chapter 2 Linux Installation and Usage

Build the unified end to end IoT solution on ARM LEADING COLLABORATION IN THE ARM ECOSYSTEM

DUAL OS INSTALLATION

Firmware. OSF (open System. Gundrala Devender Goud Engineering Director/Azure/Microsoft OCP/OSF Project Lead

RTOS, Linux & Virtualization Wind River Systems, Inc.

Parallels Virtuozzo Containers

mbed OS Update Sam Grove Technical Lead, mbed OS June 2017 ARM 2017

Real-Time Systems and Intel take industrial embedded systems to the next level

Qt for Device Creation

ECE 471 Embedded Systems Lecture 16

Managing build infrastructure of a Debian derivative

Android System Development Training 4-day session

IoT usecase for Yocto Project

Alongside Windows 8.1

An Operating System Tailored for Containers and Built for the Embedded World

Advanced Operating Systems and Virtualization. Alessandro Pellegrini A.Y. 2017/2018

January 28 29, 2014San Jose. Engineering Workshop

Open Source in Automotive Infotainment

ECE 471 Embedded Systems Lecture 16

Kick Start your Embedded Development with Qt

Android Bootloader and Verified Boot

ECE 471 Embedded Systems Lecture 12

Arch Linux Grub You Need To Load The Kernel First

Ubuntu Unleashed 2016 Updates, Installing, and Upgrading to Ubuntu 16.04

Developing on DragonBoard

ovirt Node June 9, 2012 Mike Burns ovirt Node 1

Dynamic Mobile Sensor Network Platform for ID-based Communication

The Yocto Project. Chris Young S/W Specialist SILICA Europe. Harmonising Software Development across multiple Embedded ARM SOC targets

VMware Mirage Getting Started Guide

Debian & Yocto: State of the Art

A NEW CONCEPT IN OTA UPDATING FOR AUTOMOTIVE

Lifecycle Controller Platform Update in Dell PowerEdge 1 2 th Generation Servers

Kernel Internals. Course Duration: 5 days. Pre-Requisites : Course Objective: Course Outline

TERRA. Boneh. A virtual machine-based platform for trusted computing. Presented by: David Rager November 10, 2004

The HiKey AOSP collaborative experience

Sicherheitsaspekte für Flashing Over The Air in Fahrzeugen. Axel Freiwald 1/2017

Supporting a new ARM platform: the Allwinner example

Enterprise Linux vs. Embedded Linux

Automotive Linux Summit 2017 May 31-June 2, 2017, Tokyo, Japan Advances and challenges in remote configuration of connected cars

Secure boot under attack: Simulation to enhance fault injection & defenses

Building a reference IoT product with Zephyr. Ricardo Salveti Michael Scott Tyler Baker

What s New in VMware vsphere 5.1 Platform

Welcome to Linux Foundation Virtual Training

Windows Vista. Northwestern University

How to use Wi-Fi module

Installation of Fedora 12 with CD

Yocto Project and OpenEmbedded training 3-day session

Apache Manually Install Ubuntu From Usb

DS2 Products Auto-Update Tool BSP

Security features for UBIFS. Richard Weinberger sigma star gmbh

Using a Certified Hypervisor to Secure V2X communication

Strengthening the Chain of Trust. Kevin Lane HP Jeff Bobzin Insyde Software

OP-TEE Using TrustZone to Protect Our Own Secrets

ABOUT ZEPCAM SOFTWARE INSTALLATION MANAGEMENT AND BACKUPS. Description What is it Installation requirement Server requirement

Hard Disk Organization. Vocabulary

How I survived to a SoC with a terrible Linux BSP

PI System Pervasive Data Collection

Loosely Coupled Actor Systems

Rooting Android. Lecture 10. Security of Mobile Devices. SMD Rooting Android, Lecture 10 1/33

Key Threats Melissa (1999), Love Letter (2000) Mainly leveraging social engineering. Key Threats Internet was just growing Mail was on the verge

Open Source Facebook. David Hendricks: Firmware Engineer Andrea Barberio: Production Engineer

Notes & Lessons Learned from a Field Engineer. Robert M. Smith, Microsoft

VMware Mirage Getting Started Guide

OpenSwitch OPX Installation Guide. Release 2.1.0

Solved How To Manually Remove Old Kernels From Ubuntu 12.04

Prototyping IoT with. Pierre Ficheux 02/2017. Prototyping IoT with Yocto

What s new in System Center Configuration Manager Current Branch? Ievgen Liashov

PL-I Assignment Broup B-Ass 5 BIOS & UEFI

Ubuntu Install Instructions Macbook Pro >>>CLICK HERE<<<

Ubuntu Unleashed 2015 Updates, Installing, and Upgrading to Ubuntu 15.04

Installing Linux (Chapter 8) Note packet # 4. CSN 115 Operating Systems Ken Mead Genesee Community College. Objectives

Supporting a new ARM platform: the Allwinner example

WD AV GP Large Capacity Hard Drives

Be smart. Think open source.

Yocto Project components

How To Uninstall A App Windows 8 Programs Using Ubuntu In Dual Boot

Release Notes - MC67NA Android KK Update Image AJ22-K-00-M

McAfee epo Deep Command

96Boards - TV Platform

QuickStart Guide for Managing Computers. Version

Apache Manually Install Ubuntu On Windows 8 Themes

OpenSwitch OPX Installation Guide with Enhancement Package. Release 2.1.0

Ftp Get Command Line Win 7 Boot Repair

Welcome to SUSE Expert Days 2017 Service Delivery with DevOps

Secure Boot from A to Z

Transcription:

Birds of a Feather Session - OSS Vancouver 2018 Eystein Stenberg, Mender.io

Typical product development process Prototyping Production design Mass production Release deadline panic

Updater is too often an afterthought Prototyping Production design Oh no! There will be bugs in production! Mass production Release deadline panic

Updater is too often an afterthought Prototyping Production design This is where you should design for OTA updates. Mass production Release deadline panic

The embedded environment Remote Expensive to reach physically Long expected lifetime 5-10 years What can go wrong? Unreliable power Battery Suddenly unplugged Unreliable network Intermittent connectivity Low bandwidth Insecure

Key criteria for embedded updates 1. Robust and secure 2. Integrates with existing environments 3. Easy to get started 4. Bandwidth consumption 5. Downtime during update 6. Update server enabling mass updates

Generic embedded updater workflow Detect update (secure channel) Compatibility check Download (secure channel) Integrity (e.g. checksum) Pre-install actions Extract Decrypt Authenticate (e.g. signature) Install Post-install actions (re)start* Sanity checks Failure recovery (e.g. roll back) Choose a strategy Must-have Environment-specific *E.g. reboot, restart service, start container

Mender provides integrated client and update server Client-server model Mender provides both Easy integration: No need to glue several projects Server can integrate with 3rd party clients through its REST API Dual A/B rootfs partition layout Atomic deployments Deploy to inactive partition Robust update process Apache License v. 2.0 Supports updating Kernel, device tree Applications

Mender demo!

Embedded system updaters need board integrations Atomic system updates (like Mender) need integration to the boot process Write to inactive root fs partition, then flip This means interaction with the boot loader & boot process Highly custom for embedded, e.g. proprietary boot code for drivers, many vendor-forks of U-Boot Board market highly fragmented No single Single Board Computer / System on Module vendor has more than 5% market share* 80% of product companies manufacture their own boards* How we make Mender easily available to everyone in this environment? * 2017 Embedded Markets Study, Aspencore

Approaches for addressing fragmentation Community! I integrated my board, and want to share my code & lessons! Product Create run-time abstractions

Community project for device integrations (WIP) Make the world s largest repository of OTA-enabled devices A page / area for each device (family), e.g. Raspberry Pi family Community can edit (wiki-style) and contribute code/scripts

Product: abstractions released for Yocto Mender 1.5 (June) UEFI (x86) Mender 1.6 (September) BIOS (x86) UEFI emulation ( higher end ARM w/ U-Boot) Automatic integration patch generation ( lower end ARM w/ U-Boot)

Product: Support for binary OS integration (WIP) mender-conversion-tools https://github.com/mendersoftware/mender-conversion-tools Input: Standard OS disk image (.img) Output: Image repartitioned & Mender support added Enables easy support for binary distributions Debian, Ubuntu, Raspbian Last step in Buildroot integration https://patchwork.ozlabs.org/patch/908627

Feedback? What is missing for you? Is simplifying device integration worthwhile? How? Other product-related items? Areas for community & contributions?

Appendix

Installer strategy 1: run-time installation User space Kernel, initramfs Bootloader Updater Updater deploys to running environment Package managers (ipkg, rpm, deb...) OSTree Many homegrown (tar.gz) Robustness is hard Atomicity: Hard or impossible Consistency (dev=test): Hard Integrates well May already have packages Some userspace tools Low bandwidth use (<1mb) Short downtime (seconds)

Installer strategy 2: boot to maintenance mode User space Robustness is hard Not atomic (can get partial update) Consistent on success (image) Bootloader Kernel, initramfs Updater Updater deploys up the stack while running in bootloader Used in older Androids (before N ) Rescue environment common in embedded Integrates fairly well Bootloader features & intelligence High bandwidth use* Whole image Long downtime Whole image install 2 reboots *Can mitigate: compressed/delta

Installer strategy 3: dual A/B rootfs layout Updater A User space A Kernel, initramfs A User space B Updater B Kernel, initramfs B Very robust Fully atomic and consistent Integrates fairly well OS, kernel, apps unchanged Needs bootloader flip support Partition layout, requires 2x rootfs storage Bootloader Updater deploys to inactive partition, then reboots into it Used in newer Androids ( N and later) Common in mid/high-end embedded High bandwidth use* Whole image Fairly short downtime (minute) 1 reboot *Can mitigate: compressed/delta

Installer strategy 4: proxy Updater deploys to remote system Gateway Remote device (sensor, ECU, etc.) Updater Used on smaller devices (sensors, ECUs, etc.), such as in Smart Home or Automotive Requires intelligent gateway to manage Slightly different scenario Smaller devices (no client) Complements the others Suited for closeby installations only, not internet Robustness (e.g. connection/power loss) Security