A book written by leading security researchers on writing code to exploit security flaws in software, including Microsoft Windows, has caused some raised eyebrows in the technical community for publishing previously unknown techniques for exploiting vulnerable systems.
The Shellcoder's Handbook: Discovering and Exploiting Security Holes, is an advanced guide to writing software exploits. The book is intended as a resource for network administrators who are interested in closing security holes.
However, the book also contains working examples of code for exploiting vulnerable systems and previously unpublished techniques for launching attacks such as heap overflows and kernel attacks.
Shellcode is a term that describes small pieces of computer code that launch operating system "shells", or command interfaces such as the common "C:\" command line interface on Microsoft DOS (Disk Operating System). Shellcode is often a component of attacks in which malicious hackers use software exploits to get control of vulnerable systems.
The book is published by John Wiley & Sons and is scheduled to be released on 22 March. It contains chapters on a variety of attack types, including stack overflows, heap overflows and format string bugs. Authors discuss everything from how to write Windows shellcode to exploiting security holes in Hewlett-Packard's Tru64 operating system, according to a description of the book published on the Wiley web page.
There are also fully functional examples of software exploits, according to co-author Dave Aitel, founder of New York security consulting company Immunity.
"The book is trying to teach you how to write exploits, so of course there are exploits," he said.
Aitel contributed chapters on heap overflows and Windows exploits to the book, as well a technique for finding flaws in network communications protocols called "fuzzing".
He said the information contained in the book is essential to administrators who want to secure the computer systems under their management.
"It's hard to get context on a vulnerability if you don't know how to exploit it. People who know how to write exploits make better strategic decisions."
Co-author Chris Anley agreed and said the Shellcoder's Handbook is not a cookbook for hackers.
"It's a book that tells you how to find the bugs and understand what the impact of the bugs is," said Anley, a director at Surrey-based Next Generation Security Software.
Early chapters focus on basic concepts like stack overflows and use examples written for the open-source Linux platform. Later chapters focus on more complicated problems and obscure operating systems such as Sun Microsystems Solaris and HP's Tru64.
The book pulls together information that could be obtained from security discussion groups on the internet or from a university-level network security administration course, say Anley and co-author David Litchfield, also of NGSSoftware.
However, The Shellcoder's Handbook also delves into more arcane exploit writing topics that are not commonly discussed, such as format string bugs, which concern vulnerabilities in the way some programs written in the C programming language output data.
Another chapter, titled "Alternative Payload Strategies", discusses ways in which an exploit writer can manipulate a compromised machine other than to produce a shell prompt, such as extracting data from a database or tampering with cryptographic services.
The Shellcoder's Handbook and other books like it stir up controversy within the information technology security community about whether researchers should publicly disclose holes in software products, said Alan Paller, director of research at The SANS Institute, adding that the authors who publish software exploits walk a fine line between informing the public and lowering the bar for malicious hackers.
However, Paller believed that those defending networks from attack benefit more from books like The Shellcoder's Handbook, than do attackers.
"In the security world there's lots of advice, and a lot of it doesn't make much sense. So if you understand why you have to do certain things and can connect the defense back to an actual attack, that helps."
Paul Roberts writes for IDG News Service