Course Outline
Introduction to Secure C and C++ Development
- Core principles of secure software development
- Prevalent security risks in C and C++ applications
- The correlation between programming errors and security vulnerabilities
- Industry-standard secure coding practices
Common C and C++ Programming Vulnerabilities
- Identifying coding errors that introduce security risks
- Memory safety challenges specific to C and C++
- Impact analysis of common vulnerability patterns
- Reviewing examples of insecure code
Secure Programming Principles
- Implementing defense-in-depth strategies
- Crafting robust and maintainable code
- Reducing the attack surface
- Secure design methodologies for C and C++ applications
Input Validation and Data Handling
- The critical role of input validation
- Mitigating exploitation through malicious input
- Data sanitization techniques
- Secure processing of user and external data
Error Handling and Exception Management
- Risks posed by inadequate error handling
- Designing secure error and exception mechanisms
- Preventing information leakage via error messages
- Building application resilience
Memory Safety and Buffer Overflow Protection
- Understanding memory management vulnerabilities
- Stack-based buffer overflows
- Heap-based buffer overflows
- Strategies for detecting and preventing memory corruption
- Techniques for safe memory management
Stack Protection and Runtime Security Features
- Stack overflow vulnerabilities explained
- Compiler-based security protections
- Stack canaries and related protection mechanisms
- Address Space Layout Randomization (ASLR)
- Modern operating system security features
Advanced C++ Security Considerations
- Secure object lifecycle management
- Preventing use-after-free vulnerabilities
- Safe management of pointers and references
- Mitigating type confusion issues
- Secure utilization of C++ language features
Secure Coding Tools and Techniques
- Utilizing static analysis tools for vulnerability detection
- Security-focused code review methods
- Automated security testing approaches
- Integrating security checks into development workflows
Secure Coding Standards and Best Practices
- Evaluating industry secure coding guidelines
- Applying defensive programming techniques
- Incorporating security throughout the software development lifecycle
- Maintaining secure and reliable C/C++ applications
Practical Secure Coding Workshop
- Analyzing vulnerable C/C++ code samples
- Implementing security fixes and enhancements
- Testing code against common vulnerabilities
- Course recap and recommendations for secure development
Requirements
Foundational knowledge of C/C++
Testimonials (7)
Experience sharing, it's teacher's know-how and valuable.
Carey Fan - Logitech
Course - C/C++ Secure Coding
the balance between lectures and practice, the rhythm, the trainer knowledge and pedagogic skill
Armando Pinto - EID
Course - C/C++ Secure Coding
The trainer provided up-to-date information and valuable references and tools.
Jose Vicente - EID
Course - C/C++ Secure Coding
to get a lot of good info about the course subject
Paulo Pereira - EID
Course - C/C++ Secure Coding
The coach solid knowledge and the experience, nice slides, good examples.
Celso Almeida - EID
Course - C/C++ Secure Coding
General course information
Paulo Gouveia - EID
Course - C/C++ Secure Coding
The excellent level of knowledge of the instructor, their willingness and kindness.
Luis Antonio Salazar Rivero - Banco de Mexico
Course - C/C++ Secure Coding
Machine Translated