A Consultant's View

Prairie Trail Software, Inc. ............................................................. Jan 2007

Security from the First

Given enough time, energy, and motivation, any computer system can be compromised–people can be remarkably creative. For example, most of us don’t worry about our windows (no, not the operating system, the glass things on buildings), but the US Embassy in Moscow had some computer systems compromised by spys shining a laser through the windows of a room to detect which keys were being pressed on a keyboard.

The best way to deal with security is to design it in from the beginning. Jerry Saltzer, professor emeritus at the Massachusetts Institute of Technology says that "the real question is…" not what security needs to be in the system but "...how to keep users from doing stupid things."

Computer systems today are very much like a legendary sports car. People who have owned one talk in depth about the joy of driving, and how well the design fit their ideal of an automobile; however, they can also talk for hours about how it would fail and not be able to be put back together. The design work went into the driving experience not the ownership experience.

Contrast that idea with some GM designs. GM offered more and more combinations of features, making the manufacturing process more and more complicated and thus, likely to fail. Instead of selling the ride, recent commercials mentioned how one model of GM car came in more options than there are people in the country. Their marketing people think that by offering more options, people are more likely to buy their product—never realizing that more options mean more opportunities for manufacturing mistakes.

When we design a computer system to have every sales wish-list item, the system is likely to be fragile and difficult to repair. When we put in more and more options, there are more ways to make mistakes. When we design a system where people can easily comprehend what to do next, then they are less likely to do something stupid and leave tasks undone. Thus, there are many systems still being built on simple operating systems like MS DOS that do only a few things.

Security experts talk about using “containment of failure” as a part of the process. That means figuring out the effects of a failure ahead of time, and making sure that if that security failure happens, damage is limited. For example, if the core of a nuclear power plant should melt, the containment building protects the rest of us. In a database environment, if someone should get at the data, make sure that the data does not make sense by itself. Credit card and bank information can be stored in different places making it more difficult to use any compromised data.

The other major idea is defense in depth. Thus, at home, we lock our doors, and hide jewelry boxes. With data, we use firewalls, passwords, and encryption. By layering, we make it more and more difficult to get to the valuable information.

Security is not an add-on if we want to keep people out of our data. Well over 100 million people have already had their information stolen and the rate of theft is not slowing down. Each of us who have computers on the internet have to plan to keep information secure.

(Parts of this article taken from Linux.com special reports).