Rapid security patches considered harmful?
[Posted April 14, 2004 by corbet]
When a security vulnerability is found, the right thing to do is to prepare
a patch and circulate it as quickly as possible. At least, that would
appear to be the prevailing wisdom.
This
ComputerWorld article, however, takes a different approach: in many
cases, patch circulation should be slowed down, not sped up.
The author is talking, in particular, about vulnerabilities which are found
by "white hat" hackers, as opposed to those which are already being
actively exploited. These vulnerabilities are, presumably, unknown to the
cracker community at the time the patch is prepared. But a security patch
provides an instant road map for anybody looking for vulnerabilities.
Rather than put in some honest work digging through and understanding a
large program, a cracker need only look at the piece of code which is
fixed. The release of a security patch allows administrators to close a
hole, but it also tells the world about the existence and location of that hole. At that
point, the race begins: administrators try to get the patch deployed before
the crackers get their exploits working.
What's needed is a way to give the defenders a larger window of time to
obtain patches before information about the vulnerability they fix is
distributed. Various approaches have been tried to accomplish that goal.
The "vendor-sec" mailing list, for example, helps Linux distributors and
other operating system vendors to all have their updates ready by the time
a vulnerability is announced. Vendor-sec helps, but it does not solve the
problem of actually distributing an update to millions of users.
The OpenSSH project once took a different approach and pushed a major update on users in an attempt to
deploy a security fix without saying what it was; this move was received
poorly, however.
What the ComputerWorld article suggests is that patches should be
distributed in encrypted form. For some period of time, the encrypted
patch is just a useless pile of bits sitting on the disk. This time would
be the window which allows the patch to be distributed without disclosing
the problem which is being fixed. After a given period of time, a key is
distributed which enables the decryption of the patch; at that time, clear
versions of the patch could also be made available. In theory, this
approach would enable the security-conscious users on the net to update
their systems nearly simultaneously as soon as the nature of the problem is
disclosed.
This is a solution which could perhaps work, though steps would have to be
taken to fend off denial-of-service attacks aimed at preventing the
distribution of the decryption key. The provision of encrypted patches
does go somewhat against the spirit of the free software community, and it
could, by some readings, be taken as a violation of the GPL. For almost
all of the security vulnerabilities which are reported, the encrypted patch
mechanism would be far more trouble than it would be worth. The next time
an easily-exploitable vulnerability turns up in a utility like bind or ssh,
however, it might be a nice option to have.
(
Log in to post comments)