C/C++ Secure Coding Training Course
This three-day course provides foundational knowledge on securing C/C++ code against potential exploitation by malicious actors, focusing on vulnerabilities related to memory management and input handling. It emphasizes the core principles necessary for writing robust and secure software.
This course is available as onsite live training in South Korea or online live training.Course Outline
- Common C/C++ programming bugs
- Key protection principles
- Input validation techniques
- Proper error and exception handling
- Buffer overflow vulnerabilities
- Stack overflow risks
- Heap overflow risks
- Strategies to protect against stack overflow
- Address Space Layout Randomization (ASLR)
- Recommended 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
Advanced C++
35 HoursThis instructor-led, live training in South Korea (online or onsite) is aimed at developers who wish to use 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.
C++ for Modeling Quantitative Finance
49 HoursThis course empowers quantitative developers with advanced C++ techniques specifically designed for financial modeling. It covers essential areas such as core computational algorithms and data structures, derivatives pricing models, risk analytics, and performance-optimized implementations. Through a comprehensive, project-based curriculum, the course bridges the gap between theoretical finance and production-grade code. This enables professionals to construct accurate, high-speed simulation systems crucial 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 components like encryption and digital signatures. To help participants grasp the role and application of these cryptographic primitives, the course first establishes a strong foundation on the core requirements of secure communication—including secure acknowledgment, integrity, confidentiality, remote authentication, and anonymity. It also outlines common threats that can compromise these requirements alongside real-world mitigation strategies.
Given that cryptography is a critical component of network security, the course examines essential cryptographic algorithms, including symmetric cryptography, hashing, asymmetric cryptography, and key agreement protocols. Rather than focusing on complex mathematical theories, the material is presented from a developer's perspective, featuring typical use-case examples and practical considerations such as public key infrastructure (PKI). Additionally, security protocols across various domains of secure communication are introduced, with a detailed examination of widely adopted protocol families like IPSEC and SSL/TLS.
The course addresses common cryptographic vulnerabilities associated with specific algorithms and protocols, such as BEAST, CRIME, TIME, BREACH, FREAK, Logjam, Padding oracle, Lucky Thirteen, POODLE, and RSA timing attacks. For each issue, practical implications and potential consequences are explained without delving into deep mathematical details.
Finally, since XML technology is central to data exchange in networked applications, the course covers XML security aspects. This includes the use of XML in web services and SOAP messages, protection mechanisms like XML Signature and XML Encryption, and potential weaknesses in these measures. XML-specific security issues such as XML injection, XML external entity (XXE) attacks, XML bombs, and XPath injection are also discussed.
Participants attending this course will
- Understand basic concepts of security, IT security, and secure coding
- Comprehend the requirements for secure communication
- Learn about network attacks and defenses across different OSI layers
- Gain practical knowledge of cryptography
- Understand essential security protocols
- Recognize recent attacks targeting cryptosystems
- Gain insights into recent related vulnerabilities
- Understand security concepts within web services
- Access resources and further reading materials on secure coding practices
Audience
Developers, Professionals
Advanced Java Security
21 HoursEven seasoned Java developers do not necessarily master every security service provided by Java, nor are they always fully aware of the various vulnerabilities pertinent to Java-based web applications.
In addition to introducing the security components of the Standard Java Edition, this course addresses security issues within Java Enterprise Edition (JEE) and web services. Before diving into specific services, the course covers the foundations of cryptography and secure communication. Through various exercises, participants will explore declarative and programmatic security techniques in JEE, as well as both transport-layer and end-to-end security for web services. Practical exercises allow participants to experiment with the discussed APIs and tools firsthand.
The course also examines and explains the most common and severe programming flaws and web-related vulnerabilities associated with the Java language and platform. Beyond typical bugs made by Java programmers, the security vulnerabilities covered include both language-specific issues and problems arising from the runtime environment. All vulnerabilities and corresponding attacks are demonstrated through accessible exercises, followed by recommended coding guidelines and mitigation strategies.
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 how to avoid them
- Understand the security concepts of web services
- Learn to utilize various security features of the Java development environment
- Gain a practical understanding of cryptography
- Understand the security solutions of Java EE
- Learn about typical coding mistakes and how to avoid them
- Receive information on some recent vulnerabilities in the Java framework
- Acquire practical knowledge in using security testing tools
- Obtain resources and further readings on secure coding practices
Audience
Developers
Standard Java Security: Secure Coding & Development Practices
14 HoursDescription
The Java language and its Runtime Environment (JRE) were intentionally designed to eliminate many of the common, problematic security vulnerabilities frequently found in other languages, such as C and C++. However, software developers and architects must do more than just know how to utilize the various security features available in the Java environment (positive security); they must also be fully aware of the numerous vulnerabilities that remain relevant to Java development (negative security).
The introduction of security services begins with a brief overview of cryptographic foundations, establishing a common baseline for understanding the purpose and operation of applicable components. Participants will explore the practical use of these components through several hands-on exercises, allowing them to experiment with the discussed APIs firsthand.
The course also examines and explains the most frequent and severe programming flaws within the Java language and platform. This covers both typical errors made by Java programmers and issues specific to the language and environment. All vulnerabilities and related attack vectors are demonstrated through easy-to-understand exercises, followed by recommended coding guidelines and effective mitigation techniques.
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 know how to prevent them
- Learn to utilize various security features of the Java development environment
- Gain a practical understanding of cryptography
- Identify typical coding mistakes and learn how to avoid them
- Gain insights into recent vulnerabilities within the Java framework
- Receive resources and further reading materials 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 security development capabilities, developers must understand how to apply architectural and coding-level techniques to implement the desired security features, prevent vulnerabilities, and limit their potential exploitation.
This course aims to teach developers through extensive hands-on exercises how to prevent untrusted code from executing privileged actions, secure resources via strong authentication and authorization, facilitate remote procedure calls, manage sessions, and introduce various implementations for specific functionalities.
The introduction to various vulnerabilities begins by examining typical programming errors associated with .NET. The discussion on ASP.NET vulnerabilities also covers diverse environment settings and their impacts. Furthermore, the topic of ASP.NET-specific vulnerabilities addresses not only general web application security challenges but also specialized issues and attack methods, such as ViewState attacks and string termination attacks.
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 how to avoid them
- Learn to utilize various security features within the .NET development environment
- Gain practical knowledge in using security testing tools
- Identify typical coding mistakes and learn how to avoid them
- Receive information on recent vulnerabilities in .NET and ASP.NET
- Access sources and further reading materials on secure coding practices
Audience
Developers
Secure coding in PHP
21 HoursThis course equips PHP developers with the essential skills required to fortify their applications against modern Internet-based threats. By using PHP-based examples that extend beyond the OWASP Top Ten, the curriculum covers a wide range of issues including various injection attacks, script injections, vulnerabilities in PHP session handling, insecure direct object references, file upload problems, 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- or state-related issues. Specific examples discussed include attacks like open_basedir circumvention, denial-of-service via magic floats, and hash table collision attacks. Participants will become familiar with the key techniques and functions needed to mitigate these risks.
Special emphasis is placed on client-side security, addressing issues related to JavaScript, Ajax, and HTML5. The course introduces several security-related PHP extensions, 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 covered in the context of PHP configuration (php.ini), Apache settings, and server management in general. Additionally, the course provides an overview of various security testing tools and techniques available to developers and testers, including security scanners, penetration testing tools, exploit packs, sniffers, proxy servers, fuzzing tools, and static source code analyzers.
Both the introduction of vulnerabilities and configuration practices are reinforced with hands-on exercises. These exercises demonstrate the impact of successful attacks, show how to apply mitigation techniques, and introduce the use of various extensions and tools.
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 how to prevent them
- Gain knowledge of client-side vulnerabilities and secure coding practices
- Develop a practical understanding of cryptography
- Learn how to utilize various security features of PHP
- Identify common coding mistakes and learn how to avoid them
- Stay informed about recent vulnerabilities in the PHP framework
- Acquire practical experience in using security testing tools
- Access resources and further reading on secure coding practices
Audience
Developers
Microsoft SDL Core
14 HoursThis comprehensive SDL core training provides an in-depth look at secure software design, development, and testing practices through the lens of the Microsoft Secure Development Lifecycle (SDL). The course offers a Level 100 overview of the fundamental building blocks of the SDL, followed by design techniques aimed at detecting and resolving flaws during the early stages of the development process.
Focusing on the development phase, the curriculum covers typical security-related programming bugs in both managed and native code. It presents attack vectors for the discussed vulnerabilities alongside corresponding mitigation techniques, all illustrated through hands-on exercises that offer participants engaging, practical hacking experiences. Following an introduction to various security testing methods, the course demonstrates the effectiveness of different testing tools. Participants will gain a deep understanding of how these tools operate by applying them to previously discussed vulnerable code through practical exercises.
Upon completion of this course, participants will:
Understand the core concepts of security, IT security, and secure coding
Gain familiarity 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 methodologies
- Access sources and further readings on secure coding practices
Target Audience
Developers, Managers
Secure Web Application Development and Testing
21 HoursProtecting applications accessible via the web demands security professionals who are consistently informed about current attack methods and trends. While a wide array of technologies and environments facilitate comfortable web application development, it is crucial to recognize not only platform-specific security issues but also general vulnerabilities that persist regardless of the development tools used.
This course provides an overview of applicable security solutions for web applications, with a particular emphasis on understanding key cryptographic approaches. We will explore various web application vulnerabilities on both the server side (aligned with the OWASP Top Ten) and the client side, demonstrating relevant attacks alongside recommended coding techniques and mitigation strategies to prevent associated problems. The topic of secure coding concludes with a discussion of common security-related programming errors, such as flaws in input validation, misuse of security features, and poor code quality.
Testing plays a critical role in ensuring the security and robustness of web applications. Approaches range from high-level auditing and penetration testing to ethical hacking to uncover vulnerabilities of all types. However, to go beyond easily discoverable 'low-hanging fruits,' security testing must be meticulously planned and executed. Remember that while security testers must ideally identify all bugs to protect a system, an adversary needs to find only one exploitable vulnerability to gain access.
Practical exercises will deepen your understanding of web application vulnerabilities, programming mistakes, and, most importantly, mitigation techniques. Through hands-on experience with a variety of testing tools—including security scanners, sniffers, proxy servers, fuzzing tools, and static source code analyzers—this course equips you with essential practical skills ready for immediate application 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 avoid them
- Gain knowledge of client-side vulnerabilities and secure coding practices
- Develop a practical understanding of cryptography
- Comprehend security testing approaches and methodologies
- Acquire practical knowledge in using security testing techniques and tools
- Stay informed about recent vulnerabilities across various platforms, frameworks, and libraries
- Receive resources and further readings on secure coding practices
Audience
Developers, Testers
C++ for Embedded Systems
21 HoursIs C++ a viable choice for embedded systems, such as microcontrollers and real-time operating systems?
Should object-oriented programming be employed in microcontroller environments?
Is C++ sufficiently close to the hardware to ensure efficiency?
This instructor-led live training addresses 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 will apply theoretical knowledge by creating a sample embedded application using 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
- Avoid 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
Course Format
- A mix of lectures, discussions, exercises, and extensive hands-on practice
DevOps Security: Creating a DevOps Security Strategy
7 HoursIn this instructor-led, live course in South Korea, participants will learn how to formulate an effective security strategy to address the challenges of DevOps security.
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 required to embed security measures throughout the DevOps lifecycle, facilitating secure software development from the initial planning phases through to deployment.
This instructor-led, live training session, available both online and onsite, targets intermediate-level software engineers and DevOps specialists aiming to incorporate security protocols into their CI/CD pipelines, thereby ensuring the delivery of compliant and secure code.
Upon completion of this training, participants will be equipped to:
- Grasp the core principles and best practices of DevSecOps.
- Secure all stages of the CI/CD pipeline through the utilization of automated tools.
- Apply secure coding standards and execute vulnerability assessments.
- Effectively prepare for the ECDE certification via practical labs and comprehensive reviews.
Course Format
- Engaging lectures and interactive discussions.
- Practical application of DevSecOps tools within simulated pipeline environments.
- Supervised exercises centered on secure development and deployment methodologies.
Customization Options
- To arrange a customized training session aligned with your team’s specific workflows or toolchains, please reach out to us.
How to Write Secure Code
35 HoursThis Course in South Korea aims to assist in the following:
- Help Developers master the techniques of writing Secure Code
- Help Software Testers assess application security before deployment to the production environment
- Help Software Architects understand the risks associated with applications
- Help Team Leaders establish security baselines for developers
- Help Web Masters configure Servers to prevent misconfigurations
Secure Developer Java (Inc OWASP)
21 HoursThis course explores secure coding principles and practices for Java, utilizing the testing methodology of the Open Web Application Security Project (OWASP). The OWASP community is an online hub dedicated to providing freely accessible 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 using ASP.NET, guided by the testing methodologies of the Open Web Application Security Project (OWASP). OWASP is an online community that provides freely available articles, methodologies, documentation, tools, and technologies dedicated to web application security.
The course examines the .NET Framework's security features and demonstrates how to secure web applications.