|
SecureSMX™ Secure RTOS
What is the Problem?
Cyber criminals have been exploiting the low-hanging fruit of email phishing and similar methods to break into computer systems. However these vulnerabilities are being closed off. Now, breaching of unprotected embedded and IoT devices is a growing problem, and it has become necessary for device OEMs to take action to protect their devices. Once a device has been hacked it is too late to avoid the negative consequences.
What is Our Solution?
SecureSMX™ is our secure RTOS that provides a high-level of security for embedded and IoT devices. It is aimed at microcontroller systems based upon the Arm Cortex-M v7 and v8 architectures and contains many innovative solutions. It is now distributed freely under the Apache v2 license in our GitHub repository.
How Does It Work?
SecureSMX enables dividing an application into fully isolated partitions. Should a bad actor gain access to one partition, he or she cannot access other partitions. In addition, strong limitations are applied to partitions such that bad actors cannot bring down the rest of the system through stratagems such as infinite loops or exhausting system resources. Security is further strengthened by putting critical resources below the pmode barrier (see diagram) and keeping vulnerable resources above it.
Does It Support Existing Systems?
Yes. SecureSMX is specifically designed to enable moving vulnerable code into isolated partitions above the pmode barrier. A series of demos showing this process is posted below. Mission-critical and other code continue to run with little or no modification below the pmode barrier. Code moved into isolated partitions also requires little modification. SecureSMX fosters an iterative process wherein device security can be slowly improved over a period of time. Even if a device cannot be upgraded, once in production, if it has a long lifetime ahead, it makes sense to start shipping less vulnerable versions by updating its firmware.
What About New Systems?
SecureSMX enables creating secure frameworks, wherein security is "baked-in" from the outset. These start with determining what modules are needed and how they must interconnect. Then a framework is built in which each module is placed inside of an isolated partition, its estimated size is emulated with an array, and its estimated processor usage is emulated with a loop. Interconnections are emulated with generic portals and stub code. The entire framework will run by itself, thus emulating the final system. Individual developers can work on their modules and continuously test them within the full framework environment. The framework approach supports modern programming techniques such as Agile and CI/CD. As portals are fleshed out, misunderstandings are ironed out. The net result is a well-implemented system with built-in security and a strong possibility of on-time delivery!
What If I Am Not Using SMX?
We provide FreeRTOS and ThreadX ports, and other ports are being developed. Hence, via the porting layer, your application can be moved over to the SMX engine where it will run as well or better than it did before. Once this is accomplished, the security features of SecureSMX can be employed.
What Is Included In SecureSMX?
SMX is a rich RTOS with considerable functionality and many security and reliability features already built in, such as parameter testing, event monitoring, error management, function callbacks, etc. It is not a new RTOS. It has been used in hundreds of devices since 1989.
SecureSMX runs on top of SMX and includes innovative features to efficiently utilize the v7 and v8 MPUs and Cortex-M security features in order to enable truly isolated partitions, runtime limiting, resource control via tokens, moving ISR code into umode partitions, and numerous other protections. SecureSMX is designed to be flexibile; it allows security features to be applied only where needed, thus minimizing change to mission-critical and other trusted code. Also it provides many alternative methods to achieve security objectives.
smxAware is an RTOS plug-in for the IAR C-SPY debugger. It not only provides in-depth support for SMX, but it also permits viewing MPAs and MPUs conveniently.
MpuMapper creates a map showing which partitions variables and functions are in. This is helpful during debugging.
MpuPacker facilitates getting the most efficient ordering of region blocks in memory for Cortex-v7M processors to minimize memory waste.
FreeRTOS and ThreadX ports facilitate moving applications from these RTOSs to SMX in order to utilize SecureSMX security features.
SecureSMX User's Guide, smx User's Guide, and smx Reference Manual. Each of these 200+ page, carefully-written manuals provides a wealth of accurate information. In addition manuals are available for smxAware, smxBase, eheap, target guide, and others. Manuals can be freely downloaded.
Benefits
- Add high security to microcontroller designs.
- Existing designs: Upgrade security by incrementally isolating vulnerable code in unprivileged mode (umode) with little or no change to trusted code.
- New designs: Create security frameworks that bake in high security and enforce good coding practices to accelerate development and testing.
- Isolated partitions block hacker malware from accessing critical code and data.
- Partition limitations prevent system damage from malware inside of hacked partitions.
- Mission-critical code is protected in privileged mode (pmode) by the pmode barrier.
- Partition-only recovery or disable permits the main system to continue operating when the partition has been hacked.
- Partition-only updates minimize exposure of critical software during updates.
- Security extended to other RTOSes via porting layers.
Support
Contact sales@smxrtos.com for support contract pricing. This gives access to the latest code repository and support from Micro Digital developers.
Downloads
ebook
Introduction to SecureSMX.
User's Guide
Documentation for SecureSMX. Supplements SMX RTOS manuals.
GitHub Repository
Full source code and manuals.
Partition Demos (pd0-pd4)
Series of demos that shows how to create an isolated partition in pmode and then move it to umode, following the included guide. Quick introduction to SecureSMX and how to use it. This is an older release but may be helpful.
Whitepapers
Secure RTOS Enables High Security for Microcontroller Systems
Patching vs. Isolating Vulnerabilities
Blogs
High Security for FreeRTOS Applications
Simple Ways to Improve Cortex-M Security
A Sensible Solution for Addressing the CVE Explosion in IoT Devices
Will the Small IoT Device OEM Survive?
Why Security Patching Does Not Fit IoT Devices
Smash-and-Grab Extortion
One and Done Security
Guidelines for Reliable RTOS Usage
|
|
|
|
 |
Register for More Info |
|
|
 |
Get SecureSMX News |
|
|
eBook
Learn how to use SecureSMX to partition embedded and IoT devices.
Read More
Is Your Thing in Danger?
Embedded devices added to the Internet are in danger of being hacked if they are not protected.
Read More
Where's the Gold?
SecureSMX partitioning stops hackers dead in their tracks.
Read More
What's in Your Soup?
SOUP can be put into an isolated partition to protect the rest of the system.
Read More
FreeRTOS Security? Not to Worry
FRPort enables FreeRTOS applications to be ported to SecureSMX.
Read More
Uptown to Umode
Unprivileged mode provides the strongest protection against hacking.
Read More
Get Along Little Dogies
Corralling CWEs with SecureSMX provides strong protection.
Read More
|
|