Defeating the Stack Based Buffer Overflow Prevention Mechanism of Microsoft Windows 2003 Server
This paper presents several methods of bypassing the protection mechanism built into Microsoft’s Windows 2003 Server that attempts to prevent the exploitation of stack based buffer overflows. Recommendations about how to thwart these attacks are made where appropriate.
Microsoft is committed to security. I’ve been playing with Microsoft products, as far as security is concerned, since 1997 and in the past year and a half or two I’ve seen a marked difference with some very positive moves made. In a way they had to. With the public relations crisis caused by worms such as Code Red Microsoft needed to do something to stem the flow of customers moving away from the Windows OS to other platforms. Microsoft’s Trustworthy Computing push was born out of this and, in my opinion, I think we as consumers are beginning to see the results; or ironically not see them – as the holes are just not appearing as they would if the security push wasn’t there. We have, of course, seen at least one major security hole appear in Windows 2003 Server, this being the DCOM IRemoteActivation buffer overflow discovered by the Polish security research group, the Last Stages of Delirium. We will see more; but I am confident that the number of security vulnerabilities that will be discovered in Windows 2003 Server will be a fraction of those found in Windows 2000. Acknowledging that there have been holes found and that, yes, more will come to light in the future this paper is going to look at how, currently, the stack based protection built into Windows 2003 Server to protect against buffer overflow vulnerability exploitation can be bypassed. The development of this mechanism is one of the right moves made in the direction of security.
Author: David Litchfield