C/C++ Secure Coding Training Course
Developing secure C and C++ applications demands robust defenses against malicious exploitation, memory corruption, and input validation bypasses. This program explores common vulnerability patterns such as buffer overflows, use-after-free errors, integer overflows, and type confusion. Participants will implement secure coding standards, leverage static analysis tools, and apply defensive programming techniques to eliminate weaknesses, enforce input sanitization, and deliver hardened software that is resilient against cyber threats.
This course is available as onsite live training in Uzbekistan or online live training.Course Outline
- C/C++ programming bugs
- Protection principles
- Input validation
- Improper error and exception handling
- Buffer overflow
- Stack overflow
- Heap overflow
- Protection against stack overflow
- Address Space Layout Randomization (ASLR)
- Secure coding resources
Requirements
Basics 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 Uzbekistan (online or on-site) is designed for developers who wish to utilise 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++.
- Identify common security pitfalls in the C++ language and understand how to mitigate them.
- Implement testing strategies for code quality and security control.
- Use diagnostics and debugging tools in C++ development.
Advanced C++ : Practical workshop
21 HoursThis C++ course explores essential modern programming concepts, such as templates, move semantics, and first-class functions.
It focuses on memory management through smart pointers and emphasizes secure coding practices.
Participants will study runtime errors, operator overloading, polymorphism, and STL containers with algorithms.
The course wraps up with an introduction to effective testing strategies in C++.
Network Security and Secure Communication
21 HoursDeveloping a secure networked application is 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 establishes a solid foundation on the core requirements of secure communication: secure acknowledgment, integrity, confidentiality, remote identification, and anonymity. It also highlights common threats to these requirements and presents real-world solutions.
Given that cryptography is a critical component of network security, the course examines the most important cryptographic algorithms in symmetric cryptography, hashing, asymmetric cryptography, and key agreement. Rather than focusing on complex mathematical theories, these topics are approached 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 various areas of secure communication, with an in-depth exploration of widely adopted protocol families like IPSEC and SSL/TLS.
Typical cryptographic vulnerabilities are discussed, both concerning specific algorithms and protocols. Examples include 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, as XML technology is central to data exchange in networked applications, the course covers XML security. This includes the use of XML in web services and SOAP messages, alongside protection mechanisms like XML signature and XML encryption. The course also addresses weaknesses in these protection measures 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 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
- Gain 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 full range of security services provided by Java, nor are they always aware of the different vulnerabilities that apply to Java-based web applications.
This course introduces the security components of Java Standard Edition, while also addressing security issues in Java Enterprise Edition (JEE) and web services. The discussion of specific services begins with the fundamentals of cryptography and secure communication. Through various exercises, participants 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 actively try out the discussed APIs and tools.
The course also covers and explains the most common and serious programming flaws in the Java language and platform, along with web-related vulnerabilities. In addition to typical bugs made by Java developers, the security vulnerabilities addressed include both language-specific issues and problems arising from the runtime environment. All vulnerabilities and associated attacks are demonstrated through easy-to-understand 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
- Understand the security concepts of web services
- Learn how to utilize various security features of the Java development environment
- Gain a practical understanding of cryptography
- Understand the security solutions within Java EE
- Learn about typical coding mistakes and how to avoid them
- Receive information on recent vulnerabilities in the Java framework
- Gain practical experience using security testing tools
- Obtain resources and further reading materials on secure coding practices
Audience
Developers
.NET, C# and ASP.NET Security Development
14 HoursToday, numerous programming languages support compiling code for the .NET and ASP.NET frameworks. While this environment offers robust tools for security development, it is essential for developers to understand how to apply architectural and coding-level techniques to implement desired security measures, avoid vulnerabilities, and mitigate potential exploitation.
This course aims to equip developers with practical skills through extensive hands-on exercises. Participants will learn how to prevent untrusted code from executing privileged actions, safeguard resources via strong authentication and authorization mechanisms, manage remote procedure calls and sessions, and explore various implementation strategies for specific functionalities.
The course introduces various vulnerabilities by first addressing typical programming issues encountered when using .NET. The discussion on ASP.NET vulnerabilities covers different environment settings and their impacts. Furthermore, the section on ASP.NET-specific vulnerabilities addresses general web application security challenges as well as specialized issues and attack methods, such as ViewState attacks and string termination exploits.
Participants attending this course will
- Grasp fundamental concepts of security, IT security, and secure coding practices
- Identify web vulnerabilities beyond the OWASP Top Ten and learn how to prevent them
- Utilize various security features within the .NET development environment
- Gain practical experience with security testing tools
- Recognize common coding errors and learn strategies to avoid 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 required to harden their applications against contemporary internet-based threats. It explores web vulnerabilities through practical PHP examples, extending beyond the OWASP Top Ten to cover various injection attacks, script injections, session handling weaknesses, insecure direct object references, file upload issues, and more. PHP-related vulnerabilities are categorized into standard types such as missing or incorrect input validation, improper error and exception handling, misuse of security features, and time- and state-related problems. Specific attacks discussed include open_basedir circumvention, denial-of-service via magic floats, and hash table collision attacks. Participants will learn the key techniques and functions needed to mitigate these risks.
A significant emphasis is placed on client-side security, addressing vulnerabilities in JavaScript, Ajax, and HTML5. The course introduces several PHP security 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 provided in the context of PHP configuration (php.ini), Apache, and server-level settings. Additionally, the course offers an overview of various security testing tools and techniques, including security scanners, penetration testing, exploit packs, sniffers, proxy servers, fuzzing tools, and static source code analyzers.
Both the introduction of vulnerability concepts and configuration practices are reinforced with hands-on exercises. These exercises demonstrate the impact of successful attacks, guide participants on applying 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 how to prevent them
- Gain insight into client-side vulnerabilities and secure coding practices
- Develop a practical understanding of cryptography
- Learn to utilize various PHP security features
- Identify typical coding errors and learn how to avoid them
- Stay informed about recent vulnerabilities in the PHP framework
- Acquire practical experience using security testing tools
- Access resources and further reading on secure coding practices
Audience
Developers
Microsoft SDL Core
14 HoursCombined SDL core training provides insight into secure software design, development, and testing through the Microsoft Secure Development Lifecycle (SDL). It offers a Level 100 overview of the fundamental building blocks of SDL, followed by design techniques to detect and resolve flaws in the early stages of the development process.
Focusing on the development phase, the course presents an overview of typical security-relevant programming bugs in both managed and native code. Attack methods for the discussed vulnerabilities are presented alongside associated mitigation techniques, all explained through a series of hands-on exercises that provide live hacking experiences for participants. An introduction to various security testing methods is followed by demonstrations of the effectiveness of different testing tools. Participants can understand the operation of these tools through practical exercises by applying them to the previously discussed vulnerable code.
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++ suitable for embedded systems such as microcontrollers and real-time operating systems?
Should object-oriented programming be used in microcontrollers?
Is C++ too far removed from the hardware to be efficient?
This instructor-led, live training addresses these questions and demonstrates through discussion and practical exercises how C++ can be used to develop embedded systems with code that is accurate, readable, and efficient. Participants will apply theoretical concepts by creating a sample embedded application in C++.
By the end of this training, participants will be able to:
- Understand the principles of object-oriented modelling, embedded software programming, and real-time programming
- Produce code for embedded systems that is compact, fast, and safe
- Avoid code bloat caused by templates, exceptions, and other language features
- Understand 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
C++ 11 Programming
14 HoursThis two-day course is designed for C++ developers who want to apply the new C++11 standard in their professional work. It is especially beneficial for developers in the financial sector, as it covers all the new features with practical coding examples to be executed in the lab.
DevOps Security: Creating a DevOps Security Strategy
7 HoursIn this instructor-led, live course in Uzbekistan, participants will learn how to develop an effective security strategy to address the challenges of DevOps security.
EC-Council Certified DevSecOps Engineer (ECDE)
28 HoursEC-Council Certified DevSecOps Engineer (ECDE) is a practical, hands-on course designed to equip professionals with the skills needed to integrate security seamlessly across the entire DevOps lifecycle, ensuring secure software development from initial planning through to deployment.
This instructor-led, live training (available online or on-site) is tailored for intermediate-level software and DevOps professionals who aim to embed security practices into their CI/CD pipelines, guaranteeing secure and compliant code delivery.
By the conclusion of this training, participants will be able to:
- Grasp the core principles and best practices of DevSecOps.
- Secure every stage of the CI/CD pipeline using automated tools.
- Implement secure coding practices and conduct vulnerability scanning.
- Prepare effectively for the ECDE certification through practical labs and comprehensive review sessions.
Course Format
- Interactive lectures and group discussions.
- Hands-on application of DevSecOps tools within simulated pipelines.
- Guided exercises focused on secure development and deployment strategies.
Course Customization Options
- To request a customized version of this course tailored to your team's specific workflows or toolchain, please contact us to make arrangements.
Using C++ in Embedded Systems - Applying C++11/C++14
21 HoursThis training introduces C++ as the natural evolutionary extension of C for developing object-oriented embedded systems. Because C++ builds upon C, this course guides learners from C to C++ in a logical sequence while exploring the underlying implementation mechanisms. Understanding these mechanics is particularly crucial when utilizing C++ in embedded environments with limited resources. The C++ standard has recently undergone significant updates with the introduction of C++11, and is continuing to evolve with C++14. This course focuses on key features introduced in these revisions that are highly beneficial for embedded development, such as high-performance memory management, concurrency in multicore environments, and low-level programming for bare-metal hardware.
GOAL/BENEFITS
The primary objective of this course is to enable you to apply C++ in a "correct" and effective manner.
- Present C++ as an object-oriented alternative for embedded system development
- Highlight both the similarities and differences between C++ and C
- Understand various memory management techniques, with a specific focus on move semantics introduced in C++11
- Examine the underlying mechanics to understand how different C++ paradigms translate into machine code
- Leverage templates to create type-safe, high-level abstractions for bare-metal programming, including memory-mapped I/O and interrupts, particularly using variadic templates from C++11
- Explore design patterns that are especially applicable to embedded contexts
- Participate in practical exercises to reinforce key concepts
AUDIENCE/PARTICIPANTS
This training is designed for C++ programmers who wish to begin applying C++ in embedded system projects.
PREVIOUS KNOWLEDGE
Participants are expected to have foundational knowledge of C++, equivalent to that covered in our "C++ – Level 1" and "C++ Level 2 – Introducing C++11" courses.
PRACTICAL EXERCISES
Throughout the training, you will practice the concepts presented through a series of exercises. We will utilize the open-source, free Integrated Development Environment (IDE) from Eclipse.
How to Write Secure Code
35 HoursThis course in Uzbekistan aims to assist in the following areas:
- Enable developers to master the techniques required for writing secure code
- Assist software testers in evaluating application security before deployment to production environments
- Help software architects understand the risks associated with applications
- Support team leaders in establishing security baselines for development teams
- Guide web masters in configuring servers to prevent misconfigurations
Secure Developer Java (Inc OWASP)
21 HoursThis course covers the secure coding concepts and principles with Java through Open Web Application Security Project (OWASP) methodology of testing. The Open Web Application Security Project is an online community which creates freely-available articles, methodologies, documentation, tools, and technologies in the field of web application security.
Secure Developer .NET (Inc OWASP)
21 HoursThis course delves into secure coding concepts and principles for ASP.NET, guided by the testing methodology of the Open Web Application Security Project (OWASP). OWASP is an online community that provides 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.