C/C++ Secure Coding Training Course
Developing secure C and C++ applications demands robust protection against malicious exploitation, memory corruption, and the circumvention of input validation. This program explores common vulnerability patterns such as buffer overflows, use-after-free errors, integer overflows, and type confusion. Participants will learn to apply secure coding standards, utilize static analysis tools, and implement defensive programming practices to eliminate weaknesses, ensure proper input sanitization, and build software that is resilient against cyber threats.
This course is available as onsite live training in Brazil or online live training.Course Outline
- Bugs in C/C++ programming
- Core security principles
- Input validation techniques
- Handling errors and exceptions improperly
- Buffer overflows
- Stack overflows
- Heap overflows
- Strategies to prevent stack overflows
- Address Space Layout Randomization (ASLR)
- Resources for secure coding
Requirements
Foundational knowledge of C/C++
Open Training Courses require 5+ participants.
C/C++ Secure Coding Training Course - Booking
C/C++ Secure Coding Training Course - Enquiry
Testimonials (6)
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
Upcoming Courses
Related Courses
ABAP Secure code
14 HoursUpon completion of this training, participants will be equipped to:
- Articulate the principles of application security and potential vulnerabilities
- Outline ABAP programming best practices, including the proper handling of SY-SUBRC
- Gain a deep understanding of injection vulnerabilities
- Identify and utilize security testing tools
- Explain the functionality of ATC and CVA
Course Format
- Interactive lectures and discussions.
- Extensive exercises and practical practice.
- Hands-on implementation within a live-lab environment.
Advanced C++
35 HoursThis instructor-led live training in Brazil (online or on-site) is targeted at developers who wish to utilize advanced C++ programming techniques to develop complex, secure, and high-performance systems and applications.
By the end of this training, participants will be able to:
- Set up a development environment that includes all C++ libraries, packages and frameworks.
- Understand the features, components, and basic elements of C++.
- Create complex C++ applications using advanced programming techniques.
- Learn how to write readable, fast, and secure code in C++.
- Know the common security pitfalls in C++ language and how to mitigate them.
- Implement test strategies for code quality and security control.
- Use the diagnostics and debugging tools in C++ development.
Network Security and Secure Communication
21 HoursDeveloping a secure networked application can be challenging, even for developers familiar with cryptographic building blocks like encryption and digital signatures. To help participants grasp the role and application of these cryptographic primitives, the course begins by establishing a solid foundation on the core requirements of secure communication—secure acknowledgment, integrity, confidentiality, remote identification, and anonymity. It also addresses common threats that compromise these requirements and presents real-world solutions.
As cryptography is central to network security, the course covers key algorithms in symmetric cryptography, hashing, asymmetric cryptography, and key agreement. Rather than focusing on complex mathematics, these topics are explored from a developer’s perspective, featuring typical use-case examples and practical considerations such as public key infrastructures. The course introduces security protocols used in secure communication, offering an in-depth look at widely adopted protocol families like IPsec and SSL/TLS.
Common cryptographic vulnerabilities are discussed, covering issues related to specific algorithms and protocols such as BEAST, CRIME, TIME, BREACH, FREAK, Logjam, Padding oracle, Lucky Thirteen, POODLE, and RSA timing attacks. For each problem, the course outlines practical implications and potential consequences without delving into deep mathematical details.
Finally, recognizing the centrality of XML technology in data exchange for networked applications, the course examines the security aspects of XML. This includes the use of XML in web services and SOAP messages, along with protection mechanisms like XML Signature and XML Encryption. It also addresses weaknesses in these protections and XML-specific security issues such as XML injection, XML External Entity (XXE) attacks, XML bombs, and XPath injection.
Participants attending this course will
- Understand fundamental concepts of security, IT security, and secure coding
- Comprehend the requirements of secure communication
- Learn about network attacks and defenses across different OSI layers
- Gain practical knowledge of cryptography
- Understand essential security protocols
- Learn about recent attacks against cryptosystems
- Receive information on recent related vulnerabilities
- Grasp security concepts for web services
- Access resources and further readings on secure coding practices
Audience
Developers, Professionals
Advanced Java Security
21 HoursEven seasoned Java developers often struggle to fully master the extensive array of security services provided by Java, while also remaining unaware of the diverse vulnerabilities that can affect web applications built with Java.
In addition to introducing the security components of the Standard Java Edition, this course addresses security concerns within Java Enterprise Edition (JEE) and web services. The discussion begins with the foundational principles of cryptography and secure communication before moving on to specific services. Various exercises focus on declarative and programmatic security techniques in JEE, while covering both transport-layer and end-to-end security for web services. Participants will gain hands-on experience through practical exercises, allowing them to explore the discussed APIs and tools firsthand.
The course also examines and explains the most common and severe programming flaws associated with the Java language and platform, as well as web-related vulnerabilities. Beyond typical errors made by Java programmers, the covered security vulnerabilities include language-specific issues and problems arising from the runtime environment. All vulnerabilities and related attack vectors are demonstrated through clear, easy-to-understand exercises, followed by recommended coding guidelines and possible mitigation techniques.
Participants attending this course will
- Grasp the basic concepts of security, IT security, and secure coding
- Learn about web vulnerabilities beyond the OWASP Top Ten and understand how to avoid them
- Comprehend the security concepts underlying web services
- Acquire skills in using various security features of the Java development environment
- Gain a practical understanding of cryptography
- Understand the security solutions provided by Java EE
- Learn about typical coding mistakes and strategies to prevent them
- Receive information regarding recent vulnerabilities in the Java framework
- Obtain practical knowledge in using security testing tools
- Access sources and further reading materials on secure coding practices
Audience
Developers
.NET, C# and ASP.NET Security Development
14 HoursToday, numerous programming languages can compile code for the .NET and ASP.NET frameworks. While this environment offers robust security development capabilities, developers must understand how to apply architecture-level and coding-level techniques to implement desired security features, prevent vulnerabilities, and mitigate their exploitation.
This course aims to equip developers with the skills to prevent untrusted code from executing privileged actions, safeguard resources through strong authentication and authorization, manage remote procedure calls and sessions, and explore various implementation strategies through extensive hands-on exercises.
The course introduces various vulnerabilities by highlighting common programming issues in .NET development. It also examines ASP.NET vulnerabilities, including the impact of different environment settings. Additionally, it covers ASP.NET-specific security challenges, such as ViewState attacks and string termination attacks, alongside broader web application security concerns.
Participants in this course will
- Grasp the fundamental concepts of security, IT security, and secure coding practices
- Identify web vulnerabilities beyond the OWASP Top Ten and learn how to avoid them
- Utilize the various security features available in the .NET development environment
- Acquire practical experience with security testing tools
- Recognize typical coding errors and understand how to prevent them
- Stay informed about recent vulnerabilities in .NET and ASP.NET
- Access resources and further reading materials on secure coding practices
Audience
Developers
Secure coding in PHP
21 HoursThis course equips PHP developers with the essential skills needed to build applications that are resilient against modern internet-based threats. We explore web vulnerabilities through PHP examples, extending beyond the OWASP Top Ten to cover a wide range of issues, including various injection attacks, script injections, weaknesses in PHP session handling, insecure direct object references, file upload vulnerabilities, and more. PHP-related vulnerabilities are categorized into standard types such as missing or improper input validation, incorrect error and exception handling, misuse of security features, and time- and state-related issues. For the latter, we examine attacks like open_basedir circumvention, denial-of-service via magic floats, and hash table collision attacks. In every scenario, participants will learn the key techniques and functions required to mitigate these risks.
A special emphasis is placed on client-side security, addressing security concerns related to JavaScript, Ajax, and HTML5. We introduce several PHP extensions for security purposes, such as hash, mcrypt, and OpenSSL for cryptography, as well as Ctype, ext/filter, and HTML Purifier for input validation. Best practices for hardening are provided in the context of PHP configuration (php.ini), Apache, and general server settings. Finally, we provide an overview of various security testing tools and techniques that developers and testers can utilize, including security scanners, penetration testing and exploit packs, sniffers, proxy servers, fuzzing tools, and static source code analyzers.
Both the introduction of vulnerabilities and the configuration practices are supported by hands-on exercises that demonstrate the consequences of successful attacks, show how to apply mitigation techniques, and introduce the use of various extensions and tools.
Participants attending this course will
- Grasp fundamental concepts of security, IT security, and secure coding
- Learn about web vulnerabilities beyond the OWASP Top Ten and understand how to prevent them
- Gain insight into client-side vulnerabilities and secure coding practices
- Develop a practical understanding of cryptography
- Learn to utilize various security features within PHP
- Identify typical coding mistakes and learn how to avoid them
- Stay informed about recent vulnerabilities in the PHP framework
- Acquire practical knowledge in using security testing tools
- Receive sources and further reading on secure coding practices
Audience
Developers
Microsoft SDL Core
14 HoursThis comprehensive SDL core training offers a deep dive into secure software design, development, and testing methodologies via the Microsoft Secure Development Lifecycle (SDL). It begins with a foundational Level 100 overview of the essential building blocks of SDL, progressing to design techniques aimed at identifying and remedying flaws during the early stages of the development process.
Focusing on the development phase, the course examines common security-related programming bugs in both managed and native code. It presents attack vectors associated with these vulnerabilities alongside corresponding mitigation strategies, all illustrated through hands-on exercises that provide participants with practical, live hacking experience. The training then introduces various security testing methods and demonstrates the effectiveness of different testing tools. Participants gain insight into how these tools operate by applying them to previously discussed vulnerable code through practical exercises.
Participants attending this course will
Grasp fundamental concepts of security, IT security, and secure coding.
Become familiar with the essential steps of the Microsoft Secure Development Lifecycle.
Learn secure design and development practices.
Understand principles of secure implementation.
Comprehend security testing methodology.
- Access resources and further readings on secure coding practices.
Audience
Developers, Managers
C++ for Embedded Systems
21 HoursIs C++ appropriate for embedded systems like microcontrollers and real-time operating systems (RTOS)?
Is object-oriented programming suitable for microcontrollers?
Is C++ too abstracted from hardware to be efficient?
This instructor-led live training explores these questions, demonstrating through discussion and hands-on practice how C++ can be utilized to develop embedded systems with code that is precise, readable, and efficient. Participants apply theoretical concepts by building a sample embedded application in C++.
Upon completion of this training, participants will be able to:
- Comprehend the principles of object-oriented modeling, embedded software programming, and real-time programming.
- Produce embedded system code that is compact, fast, and safe.
- Avoid code bloat caused by templates, exceptions, and other language features.
- Understand challenges associated with using C++ in safety-critical and real-time systems.
- Debug C++ programs on a target device.
Audience
- Developers
- Designers
Course Format
- Combination of lectures, discussions, exercises, and extensive hands-on practice.
C++ 11 Programming
14 HoursThis is a 2 day course aimed at C++ programmers who are interested in applying the new C++11 standard in their industry. It is particularly useful for financial applications developers covering all new features with coding examples to be executed within the lab
DevOps Security: Creating a DevOps Security Strategy
7 HoursIn this instructor-led live course in Brazil, participants will learn how to formulate a proper security strategy to tackle DevOps security challenges.
EC-Council Certified DevSecOps Engineer (ECDE)
28 HoursThe EC-Council Certified DevSecOps Engineer (ECDE) is a practical, hands-on program designed to empower professionals with the expertise needed to weave security throughout the entire DevOps lifecycle, ensuring robust security from the initial planning phases through to final deployment.
This live, instructor-led training—available both online and on-site—is tailored for intermediate-level software engineers and DevOps specialists who aim to incorporate security protocols into their CI/CD pipelines, guaranteeing the delivery of secure and compliant code.
Upon completion of this training, participants will be equipped to:
- Comprehend the core principles and practices of DevSecOps.
- Secure all stages of the CI/CD pipeline utilizing automated tools.
- Adopt secure coding standards and perform vulnerability scanning.
- Prepare effectively for the ECDE certification through practical laboratory exercises and review sessions.
Course Format
- Engaging lectures and interactive discussions.
- Practical application of DevSecOps tools within simulated pipelines.
- Guided exercises concentrating on secure development and deployment methodologies.
Customization Options
- For a tailored training experience aligned with your team’s specific workflows or toolchain, please reach out to us to arrange your custom session.
Using C++ in Embedded Systems - Applying C++11/C++14
21 HoursThis training aims to present C++ as the natural extension of C for object-oriented embedded system development. Because C++ encompasses C, this course guides you from C to C++ in a seamless manner, revealing the inner workings of C++ implementation. This insight is particularly valuable when applying C++ in resource-constrained embedded environments. The C++ standard has recently undergone a major revision known as C++11, with C++14 following closely behind. This course covers subjects introduced in these revisions that are especially beneficial, such as high-performance memory management, concurrency in multicore environments, and bare-metal programming close to the hardware.
GOAL/BENEFITS
The primary objective of this class is to enable you to use C++ in a "correct way".
- Introduce C++ as an object-oriented alternative to C in the context of embedded systems
- Demonstrate the similarities and differences with the C language
- Understand various memory management strategies, particularly the move semantics introduced in C++11
- Examine the underlying mechanics to understand how different C++ paradigms translate into machine code
- Utilize templates to achieve type-safe, high-level abstractions for bare-metal, hardware-close programming, including memory-mapped I/O and interrupts, especially leveraging the variadic templates introduced in C++11
- Present useful design patterns, particularly those applicable in embedded contexts
- Include exercises to practice key concepts
AUDIENCE/PARTICIPANTS
This training is targeted at C++ programmers who intend to start using C++ in an embedded system context.
PREVIOUS KNOWLEDGE
The course requires basic knowledge of C++ programming, corresponding to our trainings "C++ – Level 1" and "C++ Level 2 – Introducing C++11".
PRACTICAL EXERCISES
During the training, you will practice the presented concepts through a series of exercises. We will use the open and free integrated development environment provided by Eclipse.
How to Write Secure Code
35 HoursThis Course in Brazil aims to assist with the following:
- Help Developers master the techniques of writing Secure Code
- Help Software Testers verify the security of applications before publishing to the production environment
- Help Software Architects understand the risks surrounding applications
- Help Team Leaders establish security baselines for developers
- Help Web Masters configure Servers to avoid misconfigurations
Secure Developer Java (Inc OWASP)
21 HoursThis course delves into secure coding principles and practices for Java, utilizing the testing methodologies of the Open Web Application Security Project (OWASP). The Open Web Application Security Project is an online community that provides freely available articles, methodologies, documentation, tools, and technologies focused on web application security.
Secure Developer .NET (Inc OWASP)
21 HoursThis course explores secure coding concepts and principles for ASP.NET, guided by the Open Web Application Security Project (OWASP) testing methodology. OWASP is an online community that develops freely available articles, methodologies, documentation, tools, and technologies focused on web application security.
The course examines the security features of the .NET Framework and demonstrates how to secure web applications.