Editor's Note: This article was originally presented at ESC
Boston 2011. No software engineering process can guarantee
secure code, but following the right coding guidelines can
dramatically increase the security and reliability of your code.
Many embedded systems live in a world where a security breach
can be catastrophic. Embedded systems control much of the
world’s critical infrastructure, such as dams, traffic signals,
and air traffic control. These systems are increasingly
communicating together using COTS networking and in many cases
using the Internet itself. Keeping yourself out of the
courtroom, if not common decency, demands that all such systems
should be developed to be secure. There are many factors that
determine the security of an embedded system. A well-conceived
design is crucial to the success of a project. Also, a team
needs to pay attention to its development process. There are
many different models of how software development ought to be
done, and it is prudent to choose one that makes se