C/C++ Secure Coding Training Course
Over the course of three days, this training provides an introduction to safeguarding C/C++ code against malicious exploitation, particularly regarding vulnerabilities linked to memory management and input handling. Participants will learn the core principles for developing secure software.
This course is available as onsite live training in Romania or online live training.Course Outline
- Common C/C++ programming vulnerabilities
- Core principles of protection
- Input validation techniques
- Correct handling of errors and exceptions
- Buffer overflow attacks
- Stack overflow attacks
- Heap overflow attacks
- Strategies to mitigate stack overflow
- Address Space Layout Randomization (ASLR)
- Resources for secure coding
Requirements
Fundamental 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
Android Security
14 HoursAndroid is an open platform for mobile devices such as handsets and tablets. It offers a wide range of security features designed to simplify the development of secure software; however, it lacks certain security aspects found in other handheld platforms. This course provides a comprehensive overview of these features and highlights the most critical gaps related to the underlying Linux environment, the file system, and general Android ecosystem dynamics, including the use of permissions and other software development components.
We explore common security pitfalls and vulnerabilities in both native code and Java applications, offering recommendations and best practices to prevent and mitigate them. Many discussed issues are illustrated with real-world examples and case studies. Additionally, we provide a brief overview of how to utilize security testing tools to uncover security-related programming bugs.
Upon completing this course, participants will
- Grasp fundamental concepts of security, IT security, and secure coding
- Gain knowledge of Android security mechanisms
- Learn to effectively utilize various security features of the Android platform
- Acquire information on recent Java vulnerabilities specific to Android
- Understand typical coding errors and how to avoid them
- Develop insight into native code vulnerabilities on Android
- Recognize the severe consequences of insecure buffer handling in native code
- Comprehend architectural protection techniques and their limitations
- Access resources and further reading materials on secure coding practices
Target Audience
Professionals
Network Security and Secure Communication
21 HoursImplementing 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, the course first establishes a solid foundation on the core requirements of secure communication—secure acknowledgment, integrity, confidentiality, remote identification, and anonymity. It also highlights typical threats to these requirements alongside real-world solutions.
Since cryptography is a critical aspect of network security, the course discusses the most important algorithms in symmetric cryptography, hashing, asymmetric cryptography, and key agreement. Rather than focusing on deep mathematical backgrounds, these elements are presented from a developer's perspective, illustrating typical use-case examples and practical considerations related to cryptography, such as public key infrastructures. Security protocols used in various areas of secure communication are introduced, with an in-depth discussion on widely-used protocol families like IPSEC and SSL/TLS.
Common cryptographic vulnerabilities are examined, both concerning specific crypto algorithms and protocols, such as BEAST, CRIME, TIME, BREACH, FREAK, Logjam, Padding oracle, Lucky Thirteen, POODLE, and others, as well as RSA timing attacks. For each issue, practical considerations and potential consequences are described, without delving into complex mathematical details.
Finally, given that XML technology is central to data exchange for networked applications, the security aspects of XML are covered. This includes the usage of XML within web services and SOAP messages, along with protection measures such as XML signature and XML encryption. The course also addresses weaknesses in these protection measures and XML-specific security issues like XML injection, XML external entity (XXE) attacks, XML bombs, and XPath injection.
Participants attending this course will
- Understand basic concepts of security, IT security, and secure coding
- Understand the requirements of secure communication
- Learn about network attacks and defenses at different OSI layers
- Have a practical understanding of cryptography
- Understand essential security protocols
- Understand some recent attacks against cryptosystems
- Get information about some recent related vulnerabilities
- Understand security concepts of Web services
- Get sources and further readings on secure coding practices
Audience
Developers, Professionals
Advanced Java Security
21 HoursEven seasoned Java developers often do not fully master the breadth of security services provided by Java, nor are they always aware of the various vulnerabilities pertinent to Java-based web applications.
Aside from introducing the security components of Standard Java Edition, this course addresses security challenges in Java Enterprise Edition (JEE) and web services. Before exploring specific services, the curriculum covers the fundamentals of cryptography and secure communication. Through a variety of exercises, participants explore both declarative and programmatic security techniques in JEE, as well as transport-layer and end-to-end security for web services. All components are illustrated through practical exercises, allowing participants to experiment with the discussed APIs and tools firsthand.
The course also examines and clarifies the most common and critical programming flaws in the Java language and platform, along with web-related vulnerabilities. Beyond typical errors made by Java programmers, the security vulnerabilities discussed encompass both language-specific issues and problems arising from the runtime environment. All vulnerabilities and their corresponding attacks are demonstrated through straightforward exercises, followed by recommended coding guidelines and potential mitigation techniques.
Participants attending this course will
- Grasp the fundamental concepts of security, IT security, and secure coding
- Learn about web vulnerabilities beyond the OWASP Top Ten and understand how to prevent them
- Comprehend the security concepts of Web services
- Gain proficiency in using the various security features of the Java development environment
- Develop a practical understanding of cryptography
- Understand the security solutions offered by Java EE
- Identify typical coding mistakes and learn how to avoid them
- Receive information on recent vulnerabilities within the Java framework
- Acquire practical knowledge in utilizing security testing tools
- Access resources and further reading on secure coding practices
Audience
Developers
Standard Java Security
14 HoursDescription
The Java programming language and its Runtime Environment (JRE) were engineered to eliminate many of the common, severe security vulnerabilities that affect other languages, such as C and C++. However, software developers and architects must do more than just understand how to leverage the positive security features available in Java; they must also recognize the persistent negative security risks—vulnerabilities that remain relevant in modern Java development.
Before diving into the implementation of security services, the course provides a concise overview of cryptographic foundations. This establishes a shared baseline for comprehending the purpose and mechanics of the components used in secure systems. Participants will reinforce this knowledge through practical exercises, allowing them to experiment directly with the discussed APIs.
The curriculum also addresses the most frequent and critical programming flaws inherent to the Java language and platform. This includes both typical errors made by Java developers and issues specific to the language’s architecture and environment. Each vulnerability and its corresponding attack vectors are illustrated through clear, hands-on exercises, followed by recommended coding guidelines and effective mitigation strategies.
Participants attending this course will
- Grasp core concepts related to general security, IT security, and secure coding practices
- Identify web vulnerabilities extending beyond the OWASP Top Ten and learn how to prevent them
- Master the utilization of various security features within the Java development environment
- Develop a practical understanding of cryptography
- Recognize typical coding mistakes and learn strategies to avoid them
- Gain insights into recent vulnerabilities affecting the Java framework
- Access resources and further reading materials on secure coding practices
Audience
Developers
.NET, C# and ASP.NET Security Development
14 HoursToday, numerous programming languages allow code to be compiled for the .NET and ASP.NET frameworks. While this environment offers robust security development capabilities, developers must understand how to apply architectural and coding-level techniques to implement effective security measures, mitigate vulnerabilities, and limit potential exploitation.
This course aims to equip developers with the skills to prevent untrusted code from executing privileged actions, safeguard 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 common vulnerabilities by highlighting typical programming pitfalls specific to .NET. It also examines ASP.NET vulnerabilities, covering how different environment settings impact security. Furthermore, the discussion on ASP.NET-specific threats addresses general web application security challenges alongside specialized attack vectors, such as ViewState manipulation and string termination attacks.
Participants attending this course will
- Gain a solid understanding of fundamental security concepts, IT security principles, and secure coding practices
- Identify and learn to avoid web vulnerabilities beyond the OWASP Top Ten
- Master the various security features available within the .NET development environment
- Acquire practical experience in utilizing security testing tools
- Recognize common coding mistakes and learn strategies to prevent them
- Stay informed about recent vulnerabilities affecting .NET and ASP.NET
- Access resources and further reading materials on secure coding practices
Audience
Developers
The Secure Coding Landscape
14 HoursThis course provides an introduction to fundamental security concepts, offering a broad perspective on vulnerability types across different programming languages and platforms. It explains how to manage software security risks throughout the various phases of the software development lifecycle. Moving beyond deep technical intricacies, the course highlights prevalent and critical vulnerabilities in modern development technologies and addresses the challenges of security testing, presenting practical techniques and tools for identifying issues within your code.
Upon completing this course, participants will be able to:
- Comprehend the basic principles of security, IT security, and secure coding practices.
- Identify web vulnerabilities affecting both server-side and client-side environments.
- Recognize the severe implications of improper buffer handling.
- Gain awareness of recent vulnerabilities within development environments and frameworks.
- Learn about common coding errors and strategies to prevent them.
- Understand the approaches and methodologies used in security testing.
Target Audience
Managers
Secure coding in PHP
21 HoursThis course equips PHP developers with the critical skills needed to protect their applications from modern internet-based threats. Through PHP-based examples that extend beyond the OWASP Top Ten, the program covers various injection attacks, script injections, session handling vulnerabilities, insecure direct object references, file upload issues, and more. PHP-specific vulnerabilities are categorized into standard types such as missing or improper input validation, incorrect error and exception handling, misuse of security features, and time- or state-related problems. In the latter category, we examine attacks like open_basedir circumvention, denial-of-service via magic floats, and hash table collision attacks. Participants will learn the essential techniques and functions required to mitigate these risks.
A significant emphasis is placed on client-side security, addressing issues related to 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. Best practices for hardening are provided regarding PHP configuration (php.ini), Apache, and server settings generally. Additionally, an overview of security testing tools and techniques available to developers and testers is presented, covering security scanners, penetration testing, exploit kits, sniffers, proxy servers, fuzzing tools, and static source code analyzers.
Both the explanation of vulnerabilities and the configuration practices are reinforced with hands-on exercises. These exercises demonstrate the impact of successful attacks, show how to implement mitigation strategies, and introduce the use of various extensions and tools.
Participants attending this course will
- Understand fundamental concepts of security, IT security, and secure coding
- Learn about web vulnerabilities beyond the OWASP Top Ten and understand how to avoid them
- Gain knowledge of client-side vulnerabilities and secure coding practices
- Develop a practical understanding of cryptography
- Learn to utilize various PHP security features
- Identify typical coding mistakes and learn how to prevent them
- Stay informed about recent vulnerabilities in the PHP framework
- Acquire practical experience using security testing tools
- Access resources and further reading materials on secure coding practices
Audience
Developers
Microsoft SDL Core
14 HoursThis comprehensive training module offers a detailed look at secure software design, development, and testing methodologies, guided by the Microsoft Secure Development Lifecycle (SDL). It begins with a Level 100 overview of the fundamental SDL building blocks, progressing to design techniques aimed at detecting and correcting flaws during the early stages of the development process.
Addressing the development phase, the course outlines common security-related programming bugs found in both managed and native code environments. Potential attack vectors associated with these vulnerabilities are presented alongside their corresponding mitigation strategies. Participants engage in hands-on exercises that provide practical, live-hacking experience. The curriculum also introduces various security testing methodologies and demonstrates the effectiveness of different testing tools. Through practical exercises, participants apply these tools to previously discussed vulnerable code, gaining a deeper understanding of their operation.
Upon completion, participants will be able to
Grasp the fundamental concepts of security, IT security, and secure coding
Familiarize themselves with the essential steps of the Microsoft Secure Development Lifecycle
Acquire knowledge of secure design and development practices
Learn the principles of secure implementation
Understand security testing methodology
- Access sources and further reading materials on secure coding practices
Target Audience
Software Developers, Managers
Security Testing
14 HoursOnce participants have grasped the nature of vulnerabilities and attack vectors, they will explore the general approach and methodology for security testing, along with techniques designed to uncover specific flaws. Effective security testing begins with comprehensive information gathering regarding the system under evaluation. This is followed by thorough threat modeling to identify and prioritize all potential threats, ultimately leading to a risk-analysis-driven test plan.
Security evaluations can occur at various stages of the Software Development Life Cycle (SDLC). Consequently, the curriculum covers design and code reviews, reconnaissance, and information gathering about the system, as well as testing implementation and hardening the environment for secure deployment. Detailed instruction is provided on numerous security testing techniques, including taint analysis, heuristics-based code review, static code analysis, dynamic web vulnerability testing, and fuzzing. A variety of tools are introduced to automate the security evaluation of software products, complemented by hands-on exercises where participants execute these tools to analyze previously discussed vulnerable code. Real-world case studies are integrated to deepen understanding of various vulnerabilities.
This course equips testers and QA professionals with the ability to effectively plan and accurately execute security tests, select and utilize the most suitable tools and techniques to identify even subtle security flaws, and acquire essential practical skills applicable immediately in the workplace.
Participants attending this course will
- Understand fundamental concepts of security, IT security, and secure coding
- Learn about Web vulnerabilities beyond the OWASP Top Ten and how to prevent them
- Gain knowledge of client-side vulnerabilities and secure coding practices
- Understand security testing approaches and methodologies
- Acquire practical knowledge in applying security testing techniques and tools
- Access resources and further reading on secure coding practices
Audience
Developers, Testers
Secure Web Application Development and Testing
21 HoursSecuring web-accessible applications demands highly skilled security professionals who remain constantly informed about current attack vectors and emerging trends. A wide array of technologies and environments facilitates the comfortable development of web applications. It is crucial to not only understand the specific security issues associated with these platforms but also to be aware of general vulnerabilities that persist regardless of the development tools used.
This course provides an overview of applicable security solutions for web applications, with a special emphasis on understanding the most critical cryptographic measures to be implemented. Web application vulnerabilities are presented from both server-side (aligning with the OWASP Top Ten) and client-side perspectives, demonstrated through relevant attacks, and followed by recommended coding techniques and mitigation methods to prevent associated issues. The topic of secure coding is concluded by discussing typical security-related programming errors in the areas of input validation, misuse of security features, and code quality.
Testing plays a vital role in ensuring the security and robustness of web applications. Various approaches, ranging from high-level auditing and penetration testing to ethical hacking, can be employed to identify different types of vulnerabilities. However, to look beyond easily discoverable low-hanging fruit, security testing must be well-planned and properly executed. Keep in mind: security testers should ideally find all bugs to protect a system, whereas adversaries only need to find one exploitable vulnerability to gain access.
Practical exercises will aid in understanding web application vulnerabilities, programming mistakes, and, most importantly, mitigation techniques. Through hands-on trials with various testing tools—including security scanners, sniffers, proxy servers, fuzzing tools, and static source code analyzers—this course provides essential practical skills that can be applied immediately upon returning to the workplace.
Participants attending this course will
- Understand the fundamental concepts of security, IT security, and secure coding
- Learn about web vulnerabilities beyond the OWASP Top Ten and know how to avoid them
- Learn about client-side vulnerabilities and secure coding practices
- Gain a practical understanding of cryptography
- Understand security testing approaches and methodologies
- Obtain practical knowledge in using security testing techniques and tools
- Stay informed about recent vulnerabilities in various platforms, frameworks, and libraries
- Access resources and further readings on secure coding practices
Audience
Developers, Testers
DevOps Security: Creating a DevOps Security Strategy
7 HoursIn this instructor-led live course in Romania, participants will learn how to formulate the appropriate security strategy to confront the DevOps security challenge.
EC-Council Certified DevSecOps Engineer (ECDE)
28 HoursThe EC-Council Certified DevSecOps Engineer (ECDE) program is a practical course designed to empower professionals with the expertise needed to integrate security measures throughout the entire DevOps lifecycle, thereby ensuring secure software development from the initial planning stages through to final deployment.
Delivered as an instructor-led, live training session—available either online or onsite—this program targets intermediate-level software engineers and DevOps practitioners who aim to weave security practices directly into their CI/CD pipelines, guaranteeing that code delivery remains both secure and compliant.
Upon completion of this training, participants will be capable of:
- Gaining a comprehensive understanding of DevSecOps principles and best practices.
- Securing all phases of the CI/CD pipeline through the use of automated tools.
- Adopting secure coding standards and executing vulnerability scans.
- Preparing effectively for the ECDE certification by engaging in practical labs and review sessions.
Course Format
- Engaging lectures combined with interactive discussions.
- Practical application of DevSecOps tools within simulated pipeline environments.
- Guided exercises dedicated to secure development and deployment processes.
Customization Options
- For teams seeking tailored training aligned with their specific workflows or toolchains, please reach out to us to make arrangements.
How to Write Secure Code
35 HoursThis course aims to help in the following:
- Help Developers to master the techniques of writing Secure Code
- Help Software Testers to test the security of the application before publishing to the production environment
- Help Software Architects to understand the risks surrounding the applications
- Help Team Leaders to set the security base lines for the developers
- Help Web Masters to configure the Servers to avoid miss-configurations
Secure Developer Java (Inc OWASP)
21 HoursThis course explores secure coding principles and practices for Java using the testing methodology of the Open Web Application Security Project (OWASP). OWASP is an online community that produces freely available articles, methodologies, documentation, tools, and technologies focused on web application security.
Secure Developer .NET (Inc OWASP)
21 HoursThis course delves into secure coding concepts and principles for ASP.NET, utilizing the testing methodology of the Open Web Application Security Project (OWASP). OWASP is an online community dedicated to producing freely available articles, methodologies, documentation, tools, and technologies focused on web application security.
The course examines the security features of the .NET Framework and provides guidance on securing web applications.