did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780321822130

Secure Coding in C and C++

by
  • ISBN13:

    9780321822130

  • ISBN10:

    0321822137

  • Edition: 2nd
  • Format: Paperback
  • Copyright: 2013-04-11
  • Publisher: Addison-Wesley Professional
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $64.99 Save up to $6.50
  • Digital
    $58.49
    Add to Cart

    DURATION
    PRICE

Supplemental Materials

What is included with this book?

Summary

Write secure C and C++ code -- and avoid the software defects most likely to cause exploitable vulnerabilities! Straight from the world-renowned security experts at CERT/CC, this book identifies the root causes of today's most widespread software vulnerabilities, shows how they can be exploited, reviews the potential consequences, and presents secure alternatives. Fully updated for the new C++11 standard, Secure Coding in C and C++, Second Editionpresents extensive new coverage of strings, dynamic memory management, integer security, and many other topics -- including an entirely new chapter on writing secure concurrent code. It contains hundreds of Windows- and Linux-based examples of secure code, insecure code, and exploits; comprehensive practical guidance for adopting modern security best practices; and important new insights for developing a security mindset that can help you protect software against tomorrow's attacks, not just today's. This edition also provides unique access to CERT's pioneering Online Learning Initiative (OLI) course on secure coding, originally funded by Cisco, Siemens, and other industry leaders to provide internal training to their own mission-critical developers. For every C/C++ developer who wants to write more secure code.

Author Biography

Robert C. Seacord is currently the Secure Coding Technical Manager  in the CERT Program of Carnegie Mellon’s Software Engineering Institute (SEI). He is the author or coauthor of five books, including The CERT® C Secure Coding Standard (Addison-Wesley, 2009), and is the author and instructor of a video training series, Professional C Programming Live Lessons, Part I: Writing Robust, Secure, Reliable Code (Addison-Wesley, 2013).

Table of Contents

Foreword

Preface

About the Author

 

Chapter 1:  Running with Scissors

1.1  Gauging the Threat

1.2  Security Concepts

1.3  C and C++

1.4  Development Platforms

1.5  Summary

1.6  Further Reading

 

Chapter 2:  Strings

2.1  Character Strings

2.2  Common String Manipulation Errors

2.3  String Vulnerabilities and Exploits

2.4  Mitigation Strategies for Strings

2.5  String-Handling Functions

2.6  Runtime Protection Strategies

 

Chapter 3:  Pointer Subterfuge

3.1  Data Locations

3.2  Function Pointers

3.3  Data 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

4.1  C Memory Management

4.2  Common C Memory Management Errors

4.3  C++ Dynamic Memory Management

4.4  Common C++ Memory Management Errors

4.5  Improperly Paired Memory Management Functions

4.6  Memory Managers

4.7  Doug Lea’s Memory Allocator

4.8  Double-Free Vulnerabilities

4.9  Mitigation Strategies

4.10  Notable Vulnerabilities

4.11  Summary

 

Chapter 5:  Integer Security

5.1  Introduction to Integer Security

5.2  Integer Data Types

5.3  Integer Conversions

5.4  Integer Operations

5.5  Integer Vulnerabilities

5.6  Mitigation Strategies

5.7  Summary

 

Chapter 6:  Formatted Output

6.1  Variadic Functions

6.2  Formatted Output Functions

6.3  Exploiting Formatted Output Functions

6.4  Stack Randomization

6.5  Mitigation Strategies

6.6  Notable Vulnerabilities

6.7  Summary

6.8 Further Reading

 

Chapter 7:  Concurrency

7.1  Introduction

7.2  Performance Goals

7.3  Concurrency Pitfalls

7.4  Concurrency Mitigations

7.5  Concurrency in C and C++

7.6  Concurrency Vulnerabilities

 

Chapter 8:  File I/O

8.1  File I/O Basics

8.2  File I/O Interfaces

8.3  Access Control

8.4  File Identification

8.5  Race Conditions

8.6  Mitigation Strategies

8.7  Summary

 

Chapter 9:  Recommended Practices

9.1  The Security Development Lifecycle

9.2  Security Training

9.3  Requirements

9.4  Design

9.5  Implementation

9.6  Verification

9.7  Summary

9.8  Further Reading

 

References

Acronyms

Index

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program