Monocultures and software security
[Posted October 16, 2002 by corbet]
A vulnerability which allows a cracker to break into a computer is, in
general, a bad news. But a vulnerability which exposes a large percentage
of the entire network can be catastrophic. There will come a day when a
truly malicious individual or group finds a hole first and makes use of it
to trash as many machines as possible; how can one, reading the headlines,
doubt that claim? We have been lucky that it has not happened yet.
When that time comes, our biggest problem will be the "monocultural" aspect
of much of the software landscape. If everybody is running the same
software, it only takes a single vulnerability to expose all systems.
Unfortunately, that is exactly the situation we find ourselves in with a
number of security-critical applications. Consider Apache, OpenSSH, Bind,
and Sendmail for starters. Each accounts for well over half the installed
systems in its class. A vulnerability in any of these programs puts a
large portion of the net at risk.
Of course, it is easy to point out that this situation is going to bite
us. It is harder to suggest things to be done about it.
The free software community produces a great diversity of products. There
are, seemingly, almost as many editors available as users to run them. We
have multiple desktops, numerous mail clients, a wealth of scripting
languages, etc. But the core infrastructural components tend to narrow
down to a small number of choices. We have many shells, but only one
secure shell protocol and implementation worthy of note. When a free
infrastructure component achieve dominance, it seems a waste of time to
work on (or use) a competitor. That is a perception that, perhaps, needs
to change.
If we can improve the diversity of our network ecosystem, we will all be
better off as a result. A wide choice of distributions (and operating
systems), along with multiple machine architectures, is a good start;
exploits tend to be specific to a particular distribution and processor.
But we really need a wealth of choices for the individual software
components as well. In some areas (i.e. mail transfer agents) that range
of choices exists now. But in others it does not: where are the viable,
free alternatives to OpenSSH and Bind? We will all be better off when
popular alternatives to those programs emerge - even if we do not run them
ourselves.
(
Log in to post comments)