Blog Post

Internet of Things Blog
2 MIN READ

Azure Sphere MT3620 Insights - September 2021

josephalloyd's avatar
josephalloyd
Icon for Microsoft rankMicrosoft
Oct 12, 2021

Azure Sphere can do so many things across many domains, but Security is a deep domain, so vast it seems sometimes to impact every line of code ever written. Sometimes security is a big, bright, and showy focal point, other times it sits humbly away from the spotlights; you might not even notice it if you don’t peer into the shadows. Through this series, I intend to share our team perspective and insights to give some context around the work we’re doing for the MT3620.

 

In our 21.09 Azure Sphere OS, we’re shipping a kernel update to version 5.10.60. This update has no new features. So, why take the risk of making the change then?

 

Can a product be known to be secure? Or is a locked-down product one that just has not yet been exploited? Evidence suggests that security is not a binary state but a spectrum of how often and how long a product can establish trust and regain trust once it has been lost. The key difference is time—how long it takes to find and exploit unknown vulnerabilities and how trusted something can be over time. By updating the Azure Sphere OS kernel version, we’re lowering the risk of exploitation. This minor kernel update includes bug fixes and security patches, and its configuration is newer and less familiar to exploits that have been packaged for mass application.

 

Last year we ran a public Azure Sphere research challenge. During the challenge we received a couple of complaints from legitimately annoyed researchers. Though the challenge spanned several months, each month the researchers’ findings were patched, making it hard to string together multiple vulnerabilities into exploits that dig deeper into the system. We had to explain that Azure Sphere’s security isn’t based on one build of its OS. Regular updates are part of the security story of Azure Sphere; making changes that disrupt exploits isn’t a bug, it’s a feature. Azure Sphere’s security is designed to take into account. Changes, patches, fixes, and updates build up a product whose We’ve taken to heart any complaints from participants to better design future challenges that play to researchers’ strengths. But we continue to make updates available for operational devices, like this latest kernel update, because these changes are an essential part of our security story, a story that drives us to renew trust at every opportunity and every interaction with the platform.

 

Azure Sphere defense-in-depth features are designed to mitigate potential impacts. Nominally, by the time a proper exploit has been packaged, Azure Sphere devices will be on a newer version, through another update, maybe even several updates from now. Azure Sphere changes with time. I think that’s worth thinking about when it comes to security.

Updated Oct 11, 2021
Version 1.0
  • pjmlp's avatar
    pjmlp
    Brass Contributor

    Given that Azure Sphere OS only offers C as programming language, without memory tagging, despite the security talk around Sphere, there are still plenty of opportunities for those researchers to work out their exploits.

  • Hey again pjmlp!

     

    As a Microsoft employee I agree with your assessment that an embarrassing number of modern vulnerabilities come from a lack of memory safety, particularly in C. Personally, I have been an Ada dev, I am a fan of Rust and Golang and I love the innovation and progress being made in the space of language design. That being said, the value of open source software is in building what you need on top of what exists, and a huge amount of software exists in the open or in the private IP that is in C. As an engineer, the drive for purity and perfection in me would love to see it all converted to something like Rust. But I also recognize there is value in not reinventing the wheel for every project and that technology enables smaller groups to do more by building on things that exist. Also, keep in mind that while those languages are promising in many ways, supporting any additional languages is a challenge in the very small memory footprint Azure Sphere has.

     

    Your concerns about C are a quality sentiment. But customer C applications in Azure Sphere are extremely limited in scope. A customer application is never serving as the foundation in a complex platform whose security is built on the combination of hardware, OS software and cloud services. A search will lead you to some impressive blog posts and whitepapers from researchers who have attempted to breach the foundations of Azure Sphere, even bringing 0-day Linux kernel exploits to the table, and not finding much of a foothold. What I think drives Azure Sphere forward is that “being perfect” in coding, even in memory safety, is not the meaning of security. Azure Sphere implements the 7 properties of highly secure devices, none of which are “be perfect in your code”. What Azure Sphere brings to the table is not a promise that trust can never be lost, it is the idea that trust can be renewed.