The Role of Tools in Improving Embedded Software Security / Part 1: Automation is the Key

By Bill Graham

Bill Graham

Security Vulnerabilities are Expensive

Shipping security vulnerabilities in a finished product and having them discovered or worse, exploited, is a very expensive proposition for embedded device vendors. As I’ve discussed in an earlier post, security defects are much more expensive to patch and fix the later they are discovered. If you’re lucky to catch a vulnerability during development, you can likely save your company and project thousands if not hundreds of thousands of dollars. So, security vulnerabilities are expensive and costly not only in dollars but in reputation and customer satisfaction.

On average, a vendor loses around 0.6 percent value in stock price when a vulnerability is reported. This is equivalent to a loss in market capitalization values of $0.86 billion per vulnerability announcement.  –Telang & Wattal 2007

Security needs to be designed into a product rather than tacked on late in development, or after it has shipped. With this in mind, it’s critical to look at software tools as productivity enhancers for the entire software development lifecycle. Moreover, security has quickly become a critical requirement for many embedded devices that might not have addressed security as closely in the past. In other words, security has quickly become the new and important developer “pain in the neck.” In order to effectively deal with security, tools bring automation that make improving embedded device security more practical. After all, your product still needs to be shipped on time, within budget and with the features and quality your customers expect from your brand.

Automation Increases Productivity

Tools play a role in all parts of the embedded device development lifecycle (I’ll elaborate in more detail in a future post how the tools fit with the software lifecycle and Wind River’s 5+1 step security improvement framework). New security requirements for embedded devices introduce new design, development and testing workload for device development which conflict with the same needs for the actual device functions (i.e. “your regular job”). Also, security often requires looking at the design from a different perspective – as an attacker to the system – and often testing the system in ways it wasn’t meant to be used.

Discovering possible threats to your system is a significant effort. However, finding vulnerabilities you haven’t thought of is nearly impossible. Tools such as fuzz testing and static analysis can do just that. Performing subsystem testing on a virtual simulated environment well before you normally would, will save you time and money. Leveraging your existing application lifecycle tools (or adding them if you don’t have them) can help you manage security requirements, design and defect analysis more efficiently than manual techniques.

Improving security in embedded devices will certainly add more work for your development team, but there are tools and processes available and ready to be used to decrease the risk and costs associated with this new reality.


For additional information from Wind River, visit us on Facebook.