Forum Discussion

glovebox's avatar
glovebox
Icon for Microsoft rankMicrosoft
Jul 23, 2020
Solved

Ask The IoT Expert: Azure Sphere, Embedded Hardware, and IoT Security

Are you running into questions while working on projects built around Azure Sphere and embedded hardware like the Raspberry Pi? Do you have ideas that you want to share around IoT security in general...
  • glovebox's avatar
    glovebox
    Aug 01, 2020

    Hey pjmlp Paul, thank you for your question

     

    I would like to frame my response within two constraints, the first technical, the second business.

     

    I am sure you appreciate the realities of embedded systems, resources are scarce, particularly memory, there is limited space for the OS and applications. There is not the luxury of being able to load memory managed, type-safe systems such as the Android JVM, or .NET. All of the Azure Sphere system components are highly optimized to ensure they can run within the memory constraints of the MCU.

     

    The other reality is that customers have years of investments in C drivers and applications and they are not willing to rewrite, debug, and test these. If they were forced to choose between rewriting or an alternate C based platform then they will likely choose the path of least resistance and forego security. Customers are balancing investments in code, skills, the cost of silicon, and the cost of security.

     

    The focus of Azure Sphere is to protect the system, this includes protecting buggy code to ensure the system cannot be compromised and abused. The system is secure by default, all resources are locked down unless explicitly “allowed”.

     

    Here for completeness. Azure Sphere compromises of three major components.

     

    Hardware which is inherently more difficult to hack. A certified Azure Sphere MCU includes hardware root of trust ensuring an unforgeable device identity. An MMU to ensure hardware protected memory spaces for the OS and applications, a “sticky” silicon firewall ensuring only “allowed” peripherals can be accessed and cores are isolated. The silicon firewall cannot be altered after boot. There is a true random number generator, critical for cryptography, and protection against various attack vectors.

     

    The Operating system, a custom hardened Linux kernel with measured boot. The Pluton security subsystem runs on an isolated core, an isolated security monitor, “no execute memory” support, preventing memory an application writes being executed, address space layout randomization (ASLR), heap and stack protections. Add network endpoint protection, ensuring only access to “allowed” endpoint, mitigating against DOS attacks, as well as OS and App update and error reporting services.

     

    The cloud-based Azure Sphere Security Serviceprovides an aggregate view of the ecosystem, helping to spot, patch, and update against emerging security threats, application error reporting, and OTA OS and app update services.

     

    There is an appreciation of the benefits of RUST, and I see that you have raised RUST on Azure Sphere user voice, thank you. For now, and within the constraints of the MCU, and customers’ existing investment in C, the focus is building a secure by default platform, with ongoing security updates and protection.

     

    Do check out the following links for more on Azure Sphere security.

     

    1. Azure Sphere Security Research Challenge 
    2. Azure Sphere 20.07 Security Enhancements
    3. How Azure Sphere prevents rollback attacks

     

    A couple of projects that you might be interested in.

     

    1. CheckedC (https://github.com/microsoft/checkedc). CheckedC adds static and dynamic checking to C to detect or prevent common programming errors such as buffer overruns and out-of-bounds memory accesses. 
    2. There are a couple of community-based RUST initiatives that we are excited to see. 
    3. Azure Sphere Micropython.

     

    The IoT Technical Community blog is the place to be to track Azure Sphere. There is a constant stream of new articles related to security, or more developer-oriented posts like mine.

     

    Cheers Dave

     

     

     

     

Resources