Book description
Learn the Root Causes of Software Vulnerabilities and How to Avoid Them
Commonly exploited software vulnerabilities are usually caused by avoidable software defects. Having analyzed tens of thousands of vulnerability reports since 1988, CERT has determined that a relatively small number of root causes account for most of the vulnerabilities.
Secure Coding in C and C++, Second Edition, identifies and explains these root causes and shows the steps that can be taken to prevent exploitation. Moreover, this book encourages programmers to adopt security best practices and to develop a security mindset that can help protect software from tomorrow’s attacks, not just today’s. Drawing on the CERT’s reports and conclusions, Robert C. Seacord systematically identifies the program errors most likely to lead to security breaches, shows how they can be exploited, reviews the potential consequences, and presents secure alternatives.
Coverage includes technical detail on how to
Improve the overall security of any C or C++ application
Thwart buffer overflows, stack-smashing, and return-oriented programming attacks that exploit insecure string manipulation logic
Avoid vulnerabilities and security flaws resulting from the incorrect use of dynamic memory management functions
Eliminate integer-related problems resulting from signed integer overflows, unsigned integer wrapping, and truncation errors
Perform secure I/O, avoiding file system vulnerabilities
Correctly use formatted output functions without introducing format-string vulnerabilities
Avoid race conditions and other exploitable vulnerabilities while developing concurrent code
The second edition features
Updates for C11 and C++11
Significant revisions to chapters on strings, dynamic memory management, and integer security
A new chapter on concurrency
Access to the online secure coding course offered through Carnegie Mellon’s Open Learning Initiative (OLI)
Secure Coding in C and C++, Second Edition, presents hundreds of examples of secure code, insecure code, and exploits, implemented for Windows and Linux. If you’re responsible for creating secure C or C++ software–or for keeping it safe–no other book offers you this much detailed, expert assistance.
Table of contents
- Title Page
- Copyright Page
- Dedication Page
- Contents
- Foreword
- Preface
- Acknowledgments
- About the Author
- Chapter 1. Running with Scissors
- Chapter 2. Strings
-
Chapter 3. Pointer Subterfuge
- 3.1. Data Locations
- 3.2. Function Pointers
- 3.3. Object Pointers
- 3.4. Modifying the Instruction Pointer
- 3.5. Global Offset Table
- 3.6. The .dtors Section
- 3.7. Virtual Pointers
- 3.8. The atexit() and on_exit() Functions
- 3.9. The longjmp() Function
- 3.10. Exception Handling
- 3.11. Mitigation Strategies
- 3.12. Summary
- 3.13. Further Reading
- Chapter 4. Dynamic Memory Management
- Chapter 5. Integer Security
- Chapter 6. Formatted Output
- Chapter 7. Concurrency
- Chapter 8. File I/O
- Chapter 9. Recommended Practices
- References
- Acronyms
- Index
- Ad Page
Product information
- Title: Secure Coding in C and C++, Second Edition
- Author(s):
- Release date: April 2013
- Publisher(s): Addison-Wesley Professional
- ISBN: 9780132981989
You might also like
book
Learn C the Hard Way: A Clear & Direct Introduction To Modern C Programming
This is the Rough Cut version of the printed book. Need to learn C? Now you …
book
Modern C for Absolute Beginners: A Friendly Introduction to the C Programming Language
Learn the C programming language easily and in a straightforward way. This book teaches the basics …
book
Understanding and Using C Pointers
Improve your programming through a solid understanding of C pointers and memory management. With this practical …
book
C Programming Language, 2nd Edition
This book is meant to help the reader learn how to program in C. It is …