| | Copyright |
| | About the Authors |
| | Preface |
| | Acknowledgments |
| | Part I: Introduction to Software Security Assessment |
| | | Chapter 1. Software Vulnerability Fundamentals |
| | | Introduction |
| | | Vulnerabilities |
| | | The Necessity of Auditing |
| | | Classifying Vulnerabilities |
| | | Common Threads |
| | | Summary |
| | | Chapter 2. Design Review |
| | | Introduction |
| | | Software Design Fundamentals |
| | | Enforcing Security Policy |
| | | Threat Modeling |
| | | Summary |
| | | Chapter 3. Operational Review |
| | | Introduction |
| | | Exposure |
| | | Web-Specific Considerations |
| | | Protective Measures |
| | | Summary |
| | | Chapter 4. Application Review Process |
| | | Introduction |
| | | Overview of the Application Review Process |
| | | Preassessment |
| | | Application Review |
| | | Documentation and Analysis |
| | | Reporting and Remediation Support |
| | | Code Navigation |
| | | Code-Auditing Strategies |
| | | Code-Auditing Tactics |
| | | Code Auditor's Toolbox |
| | | Case Study: OpenSSH |
| | | Summary |
| | Part II: Software Vulnerabilities |
| | | Chapter 5. Memory Corruption |
| | | Introduction |
| | | Buffer Overflows |
| | | Shellcode |
| | | Protection Mechanisms |
| | | Assessing Memory Corruption Impact |
| | | Summary |
| | | Chapter 6. C Language Issues |
| | | Introduction |
| | | C Language Background |
| | | Data Storage Overview |
| | | Arithmetic Boundary Conditions |
| | | Type Conversions |
| | | Type Conversion Vulnerabilities |
| | | Operators |
| | | Pointer Arithmetic |
| | | Other C Nuances |
| | | Summary |
| | | Chapter 7. Program Building Blocks |
| | | Introduction |
| | | Auditing Variable Use |
| | | Auditing Control Flow |
| | | Auditing Functions |
| | | Auditing Memory Management |
| | | Summary |
| | | Chapter 8. Strings and Metacharacters |
| | | Introduction |
| | | C String Handling |
| | | Metacharacters |
| | | Common Metacharacter Formats |
| | | Metacharacter Filtering |
| | | Character Sets and Unicode |
| | | Summary |
| | | Chapter 9. UNIX I: Privileges and Files |
| | | Introduction |
| | | UNIX 101 |
| | | Privilege Model |
| | | Privilege Vulnerabilities |
| | | File Security |
| | | File Internals |
| | | Links |
| | | Race Conditions |
| | | Temporary Files |
| | | The Stdio File Interface |
| | | Summary |
| | | Chapter 10. UNIX II: Processes |
| | | Introduction |
| | | Processes |
| | | Program Invocation |
| | | Process Attributes |
| | | Interprocess Communication |
| | | Remote Procedure Calls |
| | | Summary |
| | | Chapter 11. Windows I: Objects and the File System |
| | | Introduction |
| | | Background |
| | | Objects |
| | | Sessions |
| | | Security Descriptors |
| | | Processes and Threads |
| | | File Access |
| | | The Registry |
| | | Summary |
| | | Chapter 12. Windows II: Interprocess Communication |
| | | Introduction |
| | | Windows IPC Security |
| | | Window Messaging |
| | | Pipes |
| | | Mailslots |
| | | Remote Procedure Calls |
| | | COM |
| | | Summary |
| | | Chapter 13. Synchronization and State |
| | | Introduction |
| | | Synchronization Problems |
| | | Process Synchronization |
| | | Signals |
| | | Threads |
| | | Summary |
| | Part III: Software Vulnerabilities in Practice |
| | | Chapter 14. Network Protocols |
| | | Introduction |
| | | Internet Protocol |
| | | User Datagram Protocol |
| | | Transmission Control Protocol |
| | | Summary |
| | | Chapter 15. Firewalls |
| | | Introduction |
| | | Overview of Firewalls |
| | | Stateless Firewalls |
| | | Simple Stateful Firewalls |
| | | Stateful Inspection Firewalls |
| | | Spoofing Attacks |
| | | Summary |
| | | Chapter 16. Network Application Protocols |
| | | Introduction |
| | | Auditing Application Protocols |
| | | Hypertext Transfer Protocol |
| | | Internet Security Association and Key Management Protocol |
| | | Abstract Syntax Notation (ASN.1) |
| | | Domain Name System |
| | | Summary |
| | | Chapter 17. Web Applications |
| | | Introduction |
| | | Web Technology Overview |
| | | HTTP |
| | | State and HTTP Authentication |
| | | Architecture |
| | | Problem Areas |
| | | Common Vulnerabilities |
| | | Harsh Realities of the Web |
| | | Auditing Strategy |
| | | Summary |
| | | Chapter 18. Web Technologies |
| | | Introduction |
| | | Web Services and Service-Oriented Architecture |
| | | Web Application Platforms |
| | | CGI |
| | | Perl |
| | | PHP |
| | | Java |
| | | ASP |
| | | ASP.NET |
| | | Summary |
| | Bibliography |
| | Index |