Free software and malevolent code
[Posted April 12, 2004 by corbet]
The CEO of Green Hills Software, a proprietary embedded software company,
has sent out
an
amazing press release on how the use of free software in defense
systems "violates every principle of security." The PR tells us about how
"developers in Russia and China" are contributing to Linux, and the
horrible fate that awaits us:
Linux in the defense environment is the classic Trojan horse
scenario -- a gift of 'free' software is being brought inside our
critical defenses. If we proceed with plans to allow Linux to run
these defense systems without demanding proof that it contains no
subversive or dangerous code waiting to emerge after we bring it
inside, then we invite the fate of Troy.
The strident tone of the release, combined with the focus on threats from
Russia and China, makes it look like something from the Reagan
administration. It's hard to take this thing seriously.
The press release has been quickly written off as a desperate outburst from
a proprietary company that is losing business to Linux. And that is
probably exactly what it is. It would be interesting to hear how Green
Hills would explain this
Cisco security alert which came out on the same day as the anti-Linux
press release. Some of Cisco's products, it would seem, were shipped with a back
door which gives attackers full access; "there is no workaround." It is
also worth noting that the InterBase backdoor
existed in the proprietary product for years, but was discovered when the
product went open source. The remote shutdown "feature" found in a number
of software products is also relevant here. Proprietary software is not
immune to backdoors and Trojan horses; indeed, the opaque nature of
closed-source programs would seem to encourage that sort of misfeature.
Another point worthy of note: attempts to place back doors in free software
have mostly been carried out via the distribution network. Last year's kernel backdoor attempt tried to slip the code
in after compromising a CVS server. Trojan horse attacks on tcpdump, sendmail, OpenSSH, and others have worked by corrupting
distribution files, again via a compromised server. On the other hand, it
is very hard to find any record of an attempt to insert any sort of back
door via the free software development process. Such an attack, it would
seem, is not that easy to carry out; if it were, why would attackers prefer
direct assaults on infrastructure and distribution files - an approach
which is certain to lead to quick detection?
The free software development process is, perhaps, more robust than its
detractors would have people believe. But, once we're done patting
ourselves on the back (and let's not be too long about it) we have to face
a fundamental fact: code containing security vulnerabilities is committed
to project repositories every day. These vulnerabilities do not result
from deliberate attacks; they are, instead, simple bugs. But they get
into the code base, despite our heavily promoted review process.
It is also true that, sooner or later, somebody will certainly attempt to
get bad code accepted by a free software project. That code may contain a
back door, or it may be one of those "intellectual property" violations
that some people would so dearly love to find in Linux. Given that we
prove on a daily basis that insecure code is able to survive our
development process, how confident are we, really, that we'll trap a
deliberate, well-hidden hole? There are reasons to believe that our
processes are better than the proprietary variety; at least some outsiders
are looking at the code, and the chances that a backdoor will lurk for
years are small. But we cannot simply write off this threat; sooner or
later, it is going to come back to us.
(
Log in to post comments)