The first time a buffer overflow was used as part of an attack on information systems, at least the best I can find, was the infamous 1988 Morris worm. While the Morris worm propagated across Unix, buffer overflows have been the bane of Windows security for years. Microsoft is furthering its efforts to push this problem into the history books.Unless you're a programmer, you may never have heard of buffer overflows. But you've probably heard of Code Red
, SQL Slammer
, MS Blaster
, as well as other attacks that buffer overflows made possible. Essentially, buffer overflows are programming errors. They result in the incorrect handling of temporary memory storage areas. And this can result in software crashing, just acting weird, and even be used to inject malicious software onto systems. That's where the worms and software exploits come in, and why it's so important this all-too-common programming mistake goes away.
To that end, Microsoft (as well as CPU manufacturers) started devising ways to make sure unwanted code isn't executed in the default heap or memory stack. It's called Data Execution Prevention (DEP), or No eXecute (NX). The first time this appeared in a Microsoft operating system was with Windows XP SP2. It's part of Vista, as well as Windows Server 2008 and Windows XP SP3.
Today, in his blog, one of Microsoft's security experts, Michael Howard, announced new application programming interfaces (APIs) that make it easier for Windows developers to add DEP protection in their application.
For those interested in how to implement the new APIs, Howard goes into some detail here.
For those of us who aren't so technically inclined, this is another step in the right direction, should developers employ the tools, toward improved software quality.