A Tale of Two Bridges
Saturday, August 25th, 2007I’m back from vacation — it was a good time. I had some thoughts about software assurance and it’s role in voting, and I thought of this analogy.
Suppose we have two bridges, built by the vendor BridgeTec. Both have the same general design — they look the same, and they use the same materials. Bridge A was built first and B was built shortly after. Some time later, the state in which bridge A was built asks some engineers to do a study. The study finds significant structural defects in the bridge and closes it down until BridgeTec fixes the problems.
BridgeTec admits to the problems but says that it’s not been shown that these problems will manifest themselves in the real world, and that bridge B is fine because “it’s a different bridge”.
Who in their right might would believe that?
Yet, thats the gist of what Diebold, Sequoia, and Hart InterCivic are saying.
To me, the very notion that “it’s different” can be used as an excuse and *anyone* can think that it is valid is confusing to me. Likewise, the idea that problems won’t manifest themselves due to procedures in the real world are almost as equally confusing — you could only really make that claim after you know what the procedures are and have justified why they will protect you.
They really should “prove” to you that it’s secure, and they could do that with assurance building activities as they are talked about in an often cited paper by Brian Snow titled “We Need Assurance!”. Right now people are operating on the principle that “it hasn’t been proven otherwise”, and that’s just flawed on so many levels. Instead we should be operating on the principle “show me why”.
While there are lots of definitions of Software Assurance, I prefer NISTs: “the planned and systematic set of activities that ensures that software processes and products conform to requirements, standards, and procedures to help achieve:
- Trustworthiness - No exploitable vulnerabilities exist, either of malicious or unintentional origin, and
- Predictable Execution - Justifiable confidence that software, when executed, functions as intended.”
Maybe the school of thought is that, indeed, they have shown it is secure by passing certification requirements. However, as Rubin has noted, the certification process isn’t really set up properly. The fact that 3 vendors have been shown to suffer from the most basic security problems only goes to show how badly the process is broken.
What we are doing, and what they really should have been doing all along, is to try to build security into the system from the beginning. Unfortunately, the cost cutting nature of the industry would never allow such a thing back then, but now we can see that they are paying for it now.
