Course Outline
Introduction to Secure C and C++ Development
- Grasping the core principles of secure software development
- Identifying prevalent security risks in C and C++ applications
- Exploring the link between coding errors and security vulnerabilities
- Reviewing secure coding standards and industry best practices
Common C and C++ Programming Vulnerabilities
- Recognizing coding errors that introduce security risks
- Addressing memory safety concerns in C and C++
- Understanding vulnerability patterns and their consequences
- Analyzing examples of insecure code
Secure Programming Principles
- Implementing defense-in-depth strategies
- Writing code that is both robust and maintainable
- Reducing the potential attack surface
- Applying secure design principles to C and C++ applications
Input Validation and Data Handling
- Recognizing the critical role of input validation
- Blocking malicious input exploitation
- Employing data sanitization techniques
- Securing the handling of user and external data
Error Handling and Exception Management
- Mitigating risks from inadequate error handling
- Designing secure error and exception management systems
- Preventing information leakage via error messages
- Building resilient applications
Memory Safety and Buffer Overflow Protection
- Comprehending memory management flaws
- Addressing stack-based buffer overflows
- Addressing heap-based buffer overflows
- Detecting and preventing memory corruption
- Utilizing safe memory management techniques
Stack Protection and Runtime Security Features
- Understanding stack overflow vulnerabilities
- Leveraging compiler-based security protections
- Implementing stack canaries and related protection mechanisms
- Utilizing Address Space Layout Randomization (ASLR)
- Applying modern operating system security features
Advanced C++ Security Considerations
- Managing object lifecycles securely
- Preventing use-after-free vulnerabilities
- Safely managing pointers and references
- Avoiding type confusion issues
- Securely leveraging C++ language features
Secure Coding Tools and Techniques
- Using static analysis tools to detect vulnerabilities
- Applying code review methods for security assessment
- Employing 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
- Embedding security into the software development lifecycle
- Maintaining secure and reliable C/C++ applications
Practical Secure Coding Workshop
- Analyzing vulnerable C/C++ code examples
- Implementing security fixes and enhancements
- Testing code against common vulnerabilities
- Reviewing course concepts and secure development recommendations
Requirements
Fundamentals 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
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