Get in Touch
 Duration 21 hours

Course Outline

Introduction to Secure C and C++ Development

  • Core principles of secure software development
  • Prevalent security risks in C and C++ environments
  • The link between programming errors and security vulnerabilities
  • Industry standards and best practices for secure coding

Common C and C++ Programming Vulnerabilities

  • Recognizing coding errors that introduce security risks
  • Memory safety challenges specific to C and C++
  • Typical vulnerability patterns and their potential impact
  • Analyzing examples of insecure code

Secure Programming Principles

  • Implementing defence-in-depth strategies
  • Writing code that is both robust and maintainable
  • Reducing the application's attack surface
  • Applying secure design principles to C and C++ projects

Input Validation and Data Handling

  • The critical role of input validation in security
  • Strategies to prevent exploitation of malicious inputs
  • Effective data sanitisation methods
  • Secure management of user-generated and external data

Error Handling and Exception Management

  • Security risks arising from inadequate error handling
  • Designing secure mechanisms for error and exception management
  • Preventing information leakage via error messages
  • Building resilient application architectures

Memory Safety and Buffer Overflow Protection

  • Understanding memory management flaws
  • Stack-based buffer overflow issues
  • Heap-based buffer overflow scenarios
  • Techniques for detecting and preventing memory corruption
  • Best practices for safe memory handling

Stack Protection and Runtime Security Features

  • Navigating stack overflow vulnerabilities
  • Leveraging compiler-based security features
  • Utilizing stack canaries and related protection mechanisms
  • Address Space Layout Randomization (ASLR)
  • Modern operating system security capabilities

Advanced C++ Security Considerations

  • Managing secure object lifecycles
  • Mitigating use-after-free vulnerabilities
  • Safe management of pointers and references
  • Preventing type confusion issues
  • Utilizing C++ language features securely

Secure Coding Tools and Techniques

  • Employing static analysis tools for vulnerability detection
  • Conducting security-focused code reviews
  • Implementing automated security testing approaches
  • Integrating security checks into the development workflow

Secure Coding Standards and Best Practices

  • Reviewing industry-standard secure coding guidelines
  • Applying defensive programming methodologies
  • Embedding security within the software development lifecycle
  • Maintaining high standards for secure and reliable C/C++ applications

Practical Secure Coding Workshop

  • Examining vulnerable C/C++ code samples
  • Implementing security fixes and enhancements
  • Testing code against common vulnerability classes
  • Course wrap-up and recommendations for secure development

Requirements

Foundational knowledge of C/C++

Number of participants


Price per participant

Testimonials (6)

Upcoming Courses

Related Categories