Video description
The C++ programming language is widely used, but C++ programs are often insecure. A number of different vulnerabilities can exist in C++ code and make it vulnerable to exploitation. If you want to write secure C++ code, you need to identify and understand the numerous potential errors that can be made in C++ programs. This includes everything from identification of a potential vulnerability to understanding how it could be exploited to knowing how to correct your vulnerable code. This course walks you through this entire process by providing examples of vulnerable code, exploiting this code, and then demonstrating corrected code that is immune to exploitation.
Table of Contents
Chapter 1: Introduction to C++ Programming
Course Overview
The Object-Oriented Paradigm
Getting Familiar with C++ Libraries and Frameworks
Developing Your First C++ Application
Chapter 2: Battling Integer Vulnerabilities in C++
Variable Types and Typecasting in C++
Integer Overflow Vulnerabilities
Integer Underflow Vulnerabilities
Secure File Management through Files, Classes, and Streams
Introduction to Format String Specifiers
Controlled Execution with Formatted Outputs
Chapter 3: Memory Management in C++
Inside the Stack
Stack-based Buffer Overflow Vulnerabilities
Introduction to the Heap
Non-stack Buffer Overflow
Dynamic Memory Management
Chapter 4: Pointer Subterfuge and Object Misuse in C++
A Few Key Points about Pointers
Null Pointer Dereference
Misusing Freed Memory
Deep vs. Shallow Object Copies
Chapter 5: Code Injection Attacks and Run-time Countermeasures
The Dangers of Untrusted Input
Database Injection with SQL
Running Malicious Code with Command Injection
Breaking LDAP with Injection
XML Hijinks with XPath Injection
Manipulating the Filesystem with Resource Injection
Chapter 6: Eliminate Common Issues with Multithreaded Programming: Concurrency and Parallelism
The Many Benefits of Parallel Processing
Race Conditions Make Code Unpredictable
Locking Down Parallel Processing
Securely Using Temporary Files
Chapter 7: Exceptions and Error Handling in C++
Introduction to Error and Exception Handling
Many Different Types of Exceptions
Handling All of the Errors
Plugging Information Leaks in Error Messages
Chapter 8: Industry Resources and Best Practices for C++ Development
Introduction to the OWASP Top Ten
Tracking Errors and Vulnerabilities
Exploring C++ Best Practices