Course Outline
Foundations of Secure C and C++ Development
- Core principles of secure software development
- Typical security risks found in C and C++ applications
- How programming errors lead to security vulnerabilities
- Industry standards and best practices for secure coding
Identifying C and C++ Programming Vulnerabilities
- Recognizing coding mistakes that pose security threats
- Memory safety challenges specific to C and C++
- Common vulnerability patterns and their potential impact
- Analysis of insecure code examples
Principles of Secure Programming
- Implementing defense-in-depth strategies
- Developing robust and maintainable code
- Reducing the application's attack surface
- Secure design methodologies for C and C++ systems
Input Validation and Data Management
- The critical role of input validation
- Preventing exploitation through malicious inputs
- Techniques for data sanitization
- Secure processing of user and external data
Error Handling and Exception Control
- Risks arising from inadequate error handling
- Designing secure error and exception mechanisms
- Preventing information disclosure via errors
- Building resilient applications
Memory Safety and Buffer Overflow Defense
- Understanding vulnerabilities in memory management
- Stack-based buffer overflow issues
- Heap-based buffer overflow issues
- Detection and prevention of memory corruption
- Safe practices for memory handling
Stack Protection and Runtime Security
- Analyzing stack overflow vulnerabilities
- Security protections provided by compilers
- Stack canaries and related defense mechanisms
- Address Space Layout Randomization (ASLR)
- Security features in modern operating systems
Advanced C++ Security Topics
- Securing object lifecycle management
- Mitigating use-after-free vulnerabilities
- Safe management of pointers and references
- Preventing type confusion issues
- Secure utilization of C++ language features
Tools and Techniques for Secure Coding
- Employing static analysis tools to detect vulnerabilities
- Code review methods for security assessment
- Approaches to automated security testing
- Integrating security checks into the development workflow
Secure Coding Standards and Best Practices
- Reviewing industry-wide secure coding guidelines
- Implementing defensive programming techniques
- Embedding security into the software development lifecycle
- Maintaining secure and reliable C/C++ applications
Practical Secure Coding Workshop
- Analyzing vulnerable C/C++ code samples
- Applying security fixes and enhancements
- Testing code against common vulnerabilities
- Course summary and recommendations for secure development
Requirements
Foundational knowledge of C and 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
The lectures
Fernando Afonso - EID
Course - C/C++ Secure Coding
Machine Translated
General course information