Application design considerations
“There are three kinds of security defects in the world. At the network level, most problems are just configuration errors: you set it up wrong, you didn’t block the right ports, you accidentally put your firewall behind the thing instead of in front of the thing. Those are configuration errors, the first generation of security problems, and the ones we’ve been dealing with the longest. The second kind of defects are bugs. These are implementation errors in code: you use the wrong system call in C or C++, or you used Java incorrectly and now you have a bug that can be tickled from outside by a smart attacker. The third kind of security defect has been generally-speaking ignored by everybody, which are design issues.
When you have a software architecture, you can do an analysis of it. Some people call this a threat model; others say it’s architecture risk analysis. The idea is let’s look for flaws in our design...