Get in Touch
 Duration 21 hours

Course Outline

Introduction to Secure C and C++ Development

  • Foundations of secure software development principles
  • Typical security risks found in C and C++ applications
  • How programming errors contribute to security vulnerabilities
  • Established secure coding standards and best practices

Common C and C++ Programming Vulnerabilities

  • Recognising coding mistakes that lead to security risks
  • Memory safety concerns specific to C and C++
  • Vulnerability patterns and their potential impact
  • Analyzing examples of insecure code

Secure Programming Principles

  • Implementing defence-in-depth strategies
  • Writing robust and maintainable code
  • Reducing the attack surface
  • Secure design principles tailored for C and C++ applications

Input Validation and Data Handling

  • The critical role of input validation
  • Mitigating exploitation through malicious input
  • Techniques for data sanitisation
  • Secure management of user and external data sources

Error Handling and Exception Management

  • Risks posed by inadequate error handling
  • Designing secure mechanisms for errors and exceptions
  • Preventing information leakage via error messages
  • Building application resilience

Memory Safety and Buffer Overflow Protection

  • Understanding vulnerabilities in memory management
  • Stack-based buffer overflows
  • Heap-based buffer overflows
  • Techniques for detecting and preventing memory corruption
  • Best practices for safe memory handling

Stack Protection and Runtime Security Features

  • Understanding stack overflow vulnerabilities
  • Security protections provided by compilers
  • Stack canaries and related protection mechanisms
  • Address Space Layout Randomization (ASLR)
  • Security features in modern operating systems

Advanced C++ Security Considerations

  • Managing the secure lifecycle of objects
  • Preventing use-after-free vulnerabilities
  • Safely managing pointers and references
  • Avoiding type confusion issues
  • Secure utilisation of C++ language features

Secure Coding Tools and Techniques

  • Employing static analysis tools to detect vulnerabilities
  • Conducting security-focused code reviews
  • Approaches to automated security testing
  • Integrating security checks into the development workflow

Secure Coding Standards and Best Practices

  • Examining industry-standard secure coding guidelines
  • Applying defensive programming techniques
  • Embedding security within the software development lifecycle
  • Maintaining secure and reliable C/C++ applications

Practical Secure Coding Workshop

  • Analysing vulnerable C/C++ code samples
  • Applying security fixes and enhancements
  • Testing code against common vulnerabilities
  • Course recap and recommendations for secure development

Requirements

Fundamentals of C/C++

Number of participants


Price per participant

Testimonials (6)

Provisional Upcoming Courses (Require 5+ participants)

Related Categories