The Art of Software Security Assessment: Identifying and Preventing Software Vulnerabilities
| 2006-11-20 00:00:00 | | 0 | Software Engineering
?There are a number of secure programming books on the market, but none that go as deep as this one. The depth and detail exceeds all books that I know about by an order of magnitude.?
?Halvar Flake, CEO and head of research, SABRE Security GmbH
The Definitive Insider?s Guide to Auditing Software Security
This is one of the most detailed, sophisticated, and useful guides to software security auditing ever written. The authors are leading security consultants and researchers who have personally uncovered vulnerabilities in applications ranging from sendmail to Microsoft Exchange, Check Point VPN to Internet Explorer. Drawing on their extraordinary experience, they introduce a start-to-finish methodology for ?ripping apart? applications to reveal even the most subtle and well-hidden security flaws.
The Art of Software Security Assessment covers the full spectrum of software vulnerabilities in both UNIX/Linux and Windows environments. It demonstrates how to audit security in applications of all sizes and functions, including network and Web software. Moreover, it teaches using extensive examples of real code drawn from past flaws in many of the industry's highest-profile applications.
? Code auditing: theory, practice, proven methodologies, and secrets of the trade
? Bridging the gap between secure software design and post-implementation review
? Performing architectural assessment: design review, threat modeling, and operational review
? Identifying vulnerabilities related to memory management, data types, and malformed data
? UNIX/Linux assessment: privileges, files, and processes
? Windows-specific issues, including objects and the filesystem
? Auditing interprocess communication, synchronization, and state
? Evaluating network software: IP stacks, firewalls, and common application protocols
? Auditing Web applications and technologies
This book is an unprecedented resource for everyone who must deliver secure software or assure the safety of existing software: consultants, security specialists, developers, QA staff, testers, and administrators alike.
ABOUT THE AUTHORS xv
I Introduction to Software Security Assessment
1 SOFTWARE VULNERABILITY FUNDAMENTALS 3
2 DESIGN REVIEW 25
3 OPERATIONAL REVIEW 67
4 APPLICATION REVIEW PROCESS 91
II Software Vulnerabilities
5 MEMORY CORRUPTION 167
6 C LANGUAGE ISSUES 203
7 PROGRAM BUILDING BLOCKS 297
8 STRINGS ANDMETACHARACTERS 387
9 UNIX I: PRIVILEGES AND FILES 459
10 UNIX II: PROCESSES 559
11 WINDOWS I: OBJECTS AND THE FILE SYSTEM 625
12 WINDOWS II: INTERPROCESS COMMUNICATION 685
13 SYNCHRONIZATION AND STATE 755
III Software Vulnerabilities in Practice
14 NETWORK PROTOCOLS 829
15 FIREWALLS 891
16 NETWORK APPLICATION PROTOCOLS 921
17 WEB APPLICATIONS 1007
18 WEB TECHNOLOGIES 1083
INDEX 1129User review
Bible? Rather hell without redemption!
This book was like a blow to the head for me. I'm not a security person, I'm not coveting ever more arcane vulnerabilities. Rather, I'm the poor guy at the other end of things: I'm a programmer. It's my job to avoid all the known and imaginable vulnerabilities while at the same time providing some useful functionality to my customers.
You bet I wouldn't like some self-styled security `researcher` tear apart my poor little programs and expose all their failings. What's troubling me, after reading this book, is that it looks very much like I hardly stand a chance. Security would be hard with the best of tools, unfortunately, at least when it comes to systems programming, the tools -- C, low-level APIs -- are dubious at best and introduce lots and lots of problems of their own. These tools hail from a happier time long ago when we were still trusting trust. I was overcome by a mixture of horror and chagrin when I saw proof in this book that not even the people writing sensitive security software (such as OpenSSH) wield these tools artfully enough to avoid vulnerabilities.
And this is where I come to the only beef I have with an otherwise comprehensive book. It's like a field guide to dangerous beasts that teaches you to recognize sabre-toothed tigers, but doesn't tell you how to get rid of them. Contrary to what the subtitle promises about preventing software vulnerabilities, there is just too little about it. This is a considerable shortcoming, in my view, as a lot of the demonstrated vulnerabilities don't have trivial remedies even after they are exposed.
Wrapping up, I feel left alone in the twilight and I think I saw a tiger over there.User review
The Best Book on Software Security, Bar None
This book is absolutely amazing. The amount of detail they go into for so many subjects -- it's incredible. I particularly enjoyed the section on network protocols. I recommend this to any software engineer -- not just those in security specific positions.
Great job, and I hope to enjoy more material from these wonderful authors!User review
A must have. Being a security researcher for almost ten years now, and already a CISSP holder, there are times you believe you have seen most of the things, and you know the best of them. This book opens a new way of thinking, it's detailed and accurate and goes in depth on every subject.
A real must have.
Nicolas Krassas, CISSPUser review
This is a very comprehensive, and well-organized security assessment book for Software engineers. Yes, it has everything - all done well. If you are into security assessment and testing and live by it every day, you are still bound to learn a lot, to re-evaluate the things you know, and to genuinely improve your results. If you are a software engineer, it *will* help you build superior applications. If you are just an security enthusiast, you will genuinely enjoy the time spent with this book, and you will find this brick handy more often than previously imagined. User review
This is the bible
This book is The Bible for anyone in the security vulnerability research or security software engineering field. I haven't bought a book and studied it so much before ever. This is one book that will never be off my desk.