C/C++ Secure Coding Training Course
Developing secure C and C++ code demands a robust defense against malicious exploitation, memory corruption, and input validation bypasses. This program explores vulnerability patterns such as buffer overflows, use-after-free errors, integer overflows, and type confusion. Participants will apply secure coding guidelines, utilize static analysis tools, and employ defensive programming techniques to eliminate weaknesses, enforce input sanitization, and deliver hardened software that is resilient against cyberattacks.
This course is available as onsite live training in Greece or online live training.Course Outline
- Common bugs in C/C++ programming
- Core protection principles
- Input validation techniques
- Improper error and exception handling
- Buffer overflow vulnerabilities
- Stack overflow risks
- Heap overflow risks
- Defense mechanisms against stack overflow
- Address Space Layout Randomization (ASLR)
- Resources for secure coding practices
Requirements
Fundamentals 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
Advanced C++
35 HoursThis instructor-led live training in Greece (online or onsite) is designed for 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.
Advanced C++ : Practical workshop
21 HoursThis C++ workshop explores essential modern programming paradigms, such as templates, move semantics, and first-class functions.
It places a strong focus on memory management through the use of smart pointers and adheres to secure coding standards.
Participants will study runtime errors, operator overloading, polymorphism, and the use of STL containers alongside algorithms.
The course wraps up with an overview of effective testing strategies within the C++ ecosystem.
C++ for Modeling Quantitative Finance
49 HoursThis course empowers quantitative developers with sophisticated C++ techniques specifically designed for financial modeling. It covers essential computational algorithms, data structures, derivatives pricing models, risk analytics, and high-performance implementations. Through a comprehensive, project-driven curriculum, the course bridges theoretical finance with production-quality code, enabling professionals to construct accurate, high-speed simulation systems critical for trading, market analysis, and risk management.
Network Security and Secure Communication
21 HoursBuilding a secure networked application can be challenging, even for developers who have previously utilized various cryptographic building blocks, such as encryption and digital signatures. To help participants grasp the role and application of these cryptographic primitives, this course first establishes a solid foundation in the core requirements of secure communication: secure acknowledgment, integrity, confidentiality, remote identification, and anonymity. It also addresses common issues that can compromise these requirements and presents real-world solutions.
Given that cryptography is a critical component of network security, the course covers essential cryptographic algorithms in symmetric cryptography, hashing, asymmetric cryptography, and key agreement. Rather than focusing on in-depth mathematical theory, these concepts are explored from a developer's perspective, featuring typical use-case examples and practical considerations such as public key infrastructures. Additionally, the course introduces security protocols used across various domains of secure communication, with a detailed discussion on widely adopted protocol families like IPSEC and SSL/TLS.
Common cryptographic vulnerabilities are examined, both concerning specific algorithms and protocols. Examples include BEAST, CRIME, TIME, BREACH, FREAK, Logjam, Padding oracle, Lucky Thirteen, POODLE, and others, as well as the RSA timing attack. For each issue, the course outlines practical considerations and potential consequences without delving into complex mathematical details.
Finally, since XML technology is central to data exchange for networked applications, the course describes the security aspects of XML. This covers the use of XML in web services and SOAP messages, along with protection measures such as XML Signature and XML Encryption. It also addresses weaknesses in these protections and XML-specific security issues, including XML injection, XML External Entity (XXE) attacks, XML bombs, and XPath injection.
Participants attending this course will
- Grasp the fundamental concepts of security, IT security, and secure coding
- Understand the requirements for secure communication
- Learn about network attacks and defenses across different OSI layers
- Gain a practical understanding of cryptography
- Comprehend essential security protocols
- Understand recent attacks targeting cryptosystems
- Receive information on recent related vulnerabilities
- Understand the security concepts of web services
- Access resources and further readings on secure coding practices
Audience
Developers, Professionals
Advanced Java Security
21 HoursEven seasoned Java developers often do not fully master the diverse security services provided by Java, nor are they always aware of the various vulnerabilities relevant to Java-based web applications.
This course introduces the security components of Standard Java Edition while addressing security challenges in Java Enterprise Edition (JEE) and web services. The discussion begins with the fundamentals of cryptography and secure communication. Participants will explore declarative and programmatic security techniques in JEE through practical exercises, and examine both transport-layer and end-to-end security for web services. All components are demonstrated via hands-on exercises, allowing participants to experiment with the discussed APIs and tools firsthand.
The curriculum also covers the most common and critical programming flaws and web-related vulnerabilities in the Java language and platform. Beyond typical errors made by Java developers, the course addresses security vulnerabilities stemming from both language-specific issues and the runtime environment. These vulnerabilities and associated attacks are illustrated through accessible exercises, followed by recommended coding guidelines and mitigation strategies.
Participants attending this course will
- Grasp core concepts of security, IT security, and secure coding
- Learn about web vulnerabilities beyond the OWASP Top Ten and how to prevent them
- Understand the security architecture of Web services
- Acquire skills in utilizing various security features within the Java development environment
- Develop a practical understanding of cryptography
- Comprehend security solutions in Java EE
- Identify typical coding mistakes and learn how to avoid them
- Gain insight into recent vulnerabilities in the Java framework
- Acquire hands-on experience with security testing tools
- Receive resources and further reading materials on secure coding practices
Audience
Developers
Standard Java Security: Secure Coding & Development Practices
14 HoursDescription
The Java language and the Runtime Environment (JRE) were designed to be free from the most problematic common security vulnerabilities experienced in other languages, like C/C++. Yet, software developers and architects should not only know how to use the various security features of the Java environment (positive security), but should also be aware of the numerous vulnerabilities that are still relevant for Java development (negative security).
The introduction of security services is preceded with a brief overview of the foundations of cryptography, providing a common baseline for understanding the purpose and the operation of the applicable components. The use of these components is presented through several practical exercises, where participants can try out the discussed APIs for themselves.
The course also goes through and explains the most frequent and severe programming flaws of the Java language and platform, covering both the typical bugs committed by Java programmers and the language- and environment-specific issues. All vulnerabilities and the relevant attacks are demonstrated through easy-to-understand exercises, followed by the recommended coding guidelines and the possible mitigation techniques.
Participants attending this course will
- Understand basic concepts of security, IT security and secure coding
- Learn Web vulnerabilities beyond OWASP Top Ten and know how to avoid them
- Learn to use various security features of the Java development environment
- Have a practical understanding of cryptography
- Learn about typical coding mistakes and how to avoid them
- Get information about some recent vulnerabilities in the Java framework
- Get sources and further readings on secure coding practices
Audience
Developers
.NET, C# and ASP.NET Security Development
14 HoursToday, a variety of programming languages can compile code for the .NET and ASP.NET frameworks. While this environment offers robust tools for security development, developers must understand how to apply architecture-level and coding-level techniques to implement desired security functions, avoid vulnerabilities, and limit potential exploitation.
This course aims to equip developers with the skills to prevent untrusted code from executing privileged actions, secure resources via 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 pitfalls in .NET development. It also examines ASP.NET vulnerabilities in the context of environment settings and their impact. Furthermore, the discussion on ASP.NET-specific vulnerabilities covers general web application security challenges alongside specialized issues, such as ViewState attacks and string termination exploits.
Participants attending this course will
- Comprehend the fundamental concepts of security, IT security, and secure coding practices
- Gain insights into web vulnerabilities beyond the OWASP Top Ten and learn how to mitigate them
- Master the use of various security features within the .NET development environment
- Acquire practical experience with security testing tools
- Identify typical coding mistakes and learn how to avoid them
- Stay informed about recent vulnerabilities affecting .NET and ASP.NET
- Access resources and further reading materials on secure coding standards
Audience
Software Developers
Secure coding in PHP
21 HoursThis course equips PHP developers with the vital skills needed to shield applications from modern internet-based threats. It explores web vulnerabilities through practical PHP examples that extend beyond the OWASP Top Ten, addressing diverse injection attacks, script injection, weaknesses in PHP session handling, insecure direct object references, file upload issues, and more. PHP-specific vulnerabilities are categorized into standard types such as missing or flawed input validation, incorrect error and exception handling, misuse of security features, and time- and state-related issues. For the latter category, we examine attacks like open_basedir circumvention, denial-of-service via magic floats, and hash table collision attacks. Throughout, participants learn the essential techniques and functions required to mitigate these risks.
Special attention is given to client-side security, addressing issues in JavaScript, Ajax, and HTML5. The course introduces key PHP security extensions, including hash, mcrypt, and OpenSSL for cryptography, as well as Ctype, ext/filter, and HTML Purifier for input validation. We cover best hardening practices related to PHP configuration (php.ini settings), Apache, and general server setup. Additionally, an overview of various security testing tools and techniques is provided, enabling developers and testers to utilize security scanners, penetration testing frameworks, exploit packs, sniffers, proxy servers, fuzzing tools, and static source code analyzers.
Both the introduction of vulnerabilities and configuration practices are reinforced by hands-on exercises. These exercises demonstrate the impact of successful attacks, illustrate the application of mitigation techniques, and guide participants through the use of various extensions and tools.
Participants attending this course will
- Comprehend fundamental concepts of security, IT security, and secure coding
- Explore web vulnerabilities beyond the OWASP Top Ten and learn how to prevent them
- Understand client-side vulnerabilities and adhere to secure coding practices
- Gain a practical understanding of cryptography
- Learn to utilize various PHP security features
- Identify common coding mistakes and discover how to avoid them
- Stay informed about recent vulnerabilities affecting the PHP framework
- Acquire practical experience with security testing tools
- Access resources and further reading on secure coding practices
Audience
Developers
Microsoft SDL Core
14 HoursThis combined core training provides an in-depth look at secure software design, development, and testing via the Microsoft Secure Development Lifecycle (SDL). It offers a level 100 overview of SDL's fundamental building blocks, followed by design techniques aimed at detecting and correcting flaws during the early stages of the development process.
Focusing on the development phase, the course outlines typical security-relevant programming bugs in both managed and native code. It presents attack methods for the discussed vulnerabilities alongside their corresponding mitigation techniques, all illustrated through numerous hands-on exercises that offer participants a practical 'live hacking' experience. The training introduces various security testing methods and demonstrates the effectiveness of different testing tools. Participants gain a clear understanding of how these tools operate by applying them to the vulnerable code examples covered in the course through practical exercises.
Participants attending this course will
Understand basic 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
Learn about secure implementation principles
Understand security testing methodology
- Access sources 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?
Should object-oriented programming be employed in microcontrollers?
Is C++ too abstracted from the hardware to ensure efficiency?
This instructor-led, live training tackles these questions by demonstrating through discussion and practical exercises how C++ can be utilized to develop embedded systems with code that is precise, readable, and efficient. Participants apply theoretical knowledge by creating a sample embedded application in C++.
Upon completion of this training, participants will be able to:
- Grasp the principles of object-oriented modeling, embedded software programming, and real-time programming
- Generate code for embedded systems that is compact, fast, and secure
- Prevent code bloat caused by templates, exceptions, and other language features
- Comprehend the challenges associated with using C++ in safety-critical and real-time systems
- Debug a C++ program on a target device
Audience
- Developers
- Designers
Format of the course
- Part lecture, part discussion, exercises and heavy hands-on practice
DevOps Security: Creating a DevOps Security Strategy
7 HoursIn this instructor-led, live course in Greece, participants will learn how to formulate the proper security strategy to face the DevOps security challenge.
EC-Council Certified DevSecOps Engineer (ECDE)
28 HoursThe EC-Council Certified DevSecOps Engineer (ECDE) program is a practical course tailored to empower professionals with the expertise to weave security throughout the DevOps lifecycle, ensuring robust software development from the planning phase through to deployment.
This instructor-led live training, available both online and onsite, targets intermediate-level software and DevOps professionals aiming to embed security practices into CI/CD pipelines, thereby guaranteeing the delivery of secure and compliant code.
Upon completion of this training, participants will be able to:
- Comprehend the core principles and practices of DevSecOps.
- Secure every stage of the CI/CD pipeline utilizing automated tools.
- Apply secure coding standards and perform vulnerability scanning.
- Prepare for the ECDE certification through practical labs and comprehensive review.
Course Format
- Interactive lectures and discussions.
- Hands-on application of DevSecOps tools within simulated pipelines.
- Guided exercises focused on secure development and deployment.
Course Customization Options
- To request customized training for this course tailored to your team’s workflows or toolchain, please contact us to arrange.
How to Write Secure Code
35 HoursThis course aims to help in the following:
- Assist developers in mastering the techniques for writing secure code.
- Enable software testers to evaluate application security before deployment to the production environment.
- Help software architects understand the risks surrounding applications.
- Support team leaders in establishing security baselines for developers.
- Aid web masters in configuring servers to avoid misconfigurations.
Secure Developer Java (Inc OWASP)
21 HoursThis course explores secure coding concepts and principles in Java, applying the testing methodology of the Open Web Application Security Project (OWASP). OWASP is a global online community dedicated to producing freely available articles, methodologies, documentation, tools, and technologies focused on enhancing web application security.
Secure Developer .NET (Inc OWASP)
21 HoursThis course addresses secure coding concepts and principles using ASP.NET, grounded in the testing methodologies of the Open Web Application Security Project (OWASP). OWASP is an open community dedicated to producing freely available articles, methodologies, documentation, tools, and technologies focused on web application security.
The course delves into the security features of the .NET Framework and demonstrates techniques for securing web applications.