Re:Dramatically Reducing Software Vulnerabilities [pdf]
by nitrogen on Wednesday October 05, 2016 @04:36PM
(#12647607)
If each state is a function that simply waits for events and returns the next state, the C code doesn't look that bad.
Re:Dramatically Reducing Software Vulnerabilities [pdf]
by nickpsecurity on Wednesday October 05, 2016 @05:02PM
(#12647845)
It doesn't look bad versus regular C. You still have the C-specific risks in the module and at module interfaces that other language reduce. It's also harder to parse, analyze, and compile in a secure way. With SPARK & formal tools, one can get a strong analysis that the code will always meet the spec. The ability to fully do that for C has only come online in the past few years. It appears to take more work, too.
On page 15, you can see Rockwell-Collins combining model-driven development with Z, SPARK, and state-machines. It's a nice example of power of interacting, state machine approach combined with some other elements.
https://www.nsa.gov/resources/everyone/digital-media-center/...