Abstract
The automatic patch-based exploit generation
problem is: given a program P and a patched version of the
program P', automatically generate an exploit for the
potentially unknown vulnerability present in P but fixed in
P'. In this paper, we propose techniques for automatic
patch-based exploit generation, and show that our techniques can
automatically generate exploits for vulnerable programs based upon
patches provided via Windows Update.
In many cases we are able to automatically generate exploits within minutes or less. Although our techniques may not work in all cases, a fundamental tenet of security is to conservatively estimate the capabilities of attackers. Thus, our results indicate that automatic patch-based exploit generation should be considered practical. One important security implication of our results is that current patch distribution schemes which stagger patch distribution over long time periods, such as Windows Update, may allow attackers who receive the patch first to compromise the significant fraction of vulnerable hosts who have not yet received the patch. Thus, we conclude update schemes, such as Windows Update as currently implemented, can detract from overall security, and should be redesigned.
What does this mean?
Attackers can simply wait for a patch to be released, use these
techniques, and with reasonable chance, produce a working exploit
within seconds. Coupled with a worm, all vulnerable hosts could be
compromised before most are even aware a patch is available, let alone
download it.
Thus, Microsoft should redesign Windows Update. We propose solutions
which prevent several possible schemes, some of which could be done
with existing technology.
Read the full paper: PDF