C/C++ Secure Coding Training Course
Developing secure C and C++ applications demands stringent defense mechanisms against malicious exploitation, memory corruption, and input validation bypasses. This course explores common vulnerability patterns such as buffer overflows, use-after-free errors, integer overflows, and type confusion. Participants will implement secure coding standards, utilize static analysis tools, and apply defensive programming practices to mitigate weaknesses, enforce rigorous input sanitization, and build robust software that withstands cyber threats.
This course is available as onsite live training in United Arab Emirates or online live training.Course Outline
- Common C/C++ programming flaws
- Core security principles
- Input validation techniques
- Mismanagement of errors and exceptions
- Buffer overflows
- Stack overflows
- Heap overflows
- Defense strategies against stack overflows
- Address Space Layout Randomization (ASLR)
- Authoritative resources for secure coding
Requirements
Fundamentals of C/C++
Need help picking the right course?
uae@nobleprog.com or +971 4871 6715
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 the UAE (online or onsite) is designed for developers who wish to employ advanced C++ programming techniques to create complex, secure, and high-performance systems and applications.
By the end of this training, participants will be able to:
- Configure a development environment that includes all necessary C++ libraries, packages, and frameworks.
- Understand the features, components, and foundational 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 C++ and know how to mitigate them.
- Implement testing strategies for code quality and security control.
- Utilize diagnostic and debugging tools in C++ development.
Network Security and Secure Communication
21 HoursDeveloping secure networked applications can be challenging, even for developers experienced with cryptographic building blocks like encryption and digital signatures. To help participants grasp the role and application of these cryptographic primitives, this course establishes a solid foundation on the core requirements of secure communication—including secure acknowledgment, integrity, confidentiality, remote identification, and anonymity. It also highlights common threats to these requirements alongside practical real-world solutions.
Since cryptography is a critical component of network security, the course covers essential algorithms in symmetric cryptography, hashing, asymmetric cryptography, and key agreement. Rather than focusing on complex mathematical theory, the content approaches these topics from a developer's perspective, illustrating typical use cases and practical considerations such as public key infrastructures. Additionally, various security protocols are introduced, with a detailed examination of widely used families like IPSEC and SSL/TLS.
The course addresses typical crypto 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, as XML technology is central to data exchange in networked applications, the course explores its security aspects. This includes the use of XML in web services and SOAP messages, protection mechanisms like XML signature and XML encryption, and vulnerabilities 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
- 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 various security services provided by Java, nor are they always aware of the different vulnerabilities relevant to web applications written in Java.
Aside from introducing the security components of Standard Java Edition, this course addresses security issues in Java Enterprise Edition (JEE) and web services. The discussion of specific services is preceded by a foundation in cryptography and secure communication. Various exercises cover declarative and programmatic security techniques in JEE, while both transport-layer and end-to-end security of web services are discussed. The use of all components is presented through several practical exercises, allowing participants to try out the discussed APIs and tools themselves.
The course also covers and explains the most frequent and severe programming flaws in the Java language and platform, as well as web-related vulnerabilities. Besides the typical bugs committed by Java programmers, the introduced security vulnerabilities cover both language-specific issues and problems stemming from the runtime environment. All vulnerabilities and the relevant attacks are demonstrated through easy-to-understand exercises, followed by recommended coding guidelines and possible mitigation techniques.
Participants attending this course will
- Understand basic concepts of security, IT security, and secure coding
- Learn about web vulnerabilities beyond the OWASP Top Ten and know how to avoid them
- Understand security concepts of web services
- Learn to use various security features of the Java development environment
- Have a practical understanding of cryptography
- Understand security solutions of Java EE
- Learn about typical coding mistakes and how to avoid them
- Get information about some recent vulnerabilities in the Java framework
- Get practical knowledge in using security testing tools
- Get sources and further readings on secure coding practices
Audience
Developers
.NET, C# and ASP.NET Security Development
14 HoursToday, various programming languages enable the compilation of code for the .NET and ASP.NET frameworks. While this environment offers robust capabilities for security development, developers must understand how to apply architectural and coding-level techniques to implement the required security features, prevent vulnerabilities, and minimize the risk of exploitation.
This course aims to equip developers with the skills to prevent untrusted code from executing privileged actions, safeguard resources through rigorous authentication and authorization, manage remote procedure calls, handle sessions effectively, and explore diverse implementation strategies for specific functionalities, among other key areas, through extensive hands-on exercises.
The course begins by introducing common vulnerabilities, starting with typical programming errors encountered in .NET development. The discussion on ASP.NET vulnerabilities also covers various environmental configurations and their impacts. Furthermore, the section on ASP.NET-specific vulnerabilities addresses general web application security challenges as well as specialized issues and attack vectors, such as ViewState manipulation and string termination attacks.
Participants attending this course will
- Grasp fundamental concepts of security, IT security, and secure coding principles
- Identify web vulnerabilities beyond the OWASP Top Ten and learn how to mitigate them
- Utilize the various security features available in the .NET development environment
- Acquire practical experience with security testing tools
- Recognize common coding mistakes and learn strategies to avoid them
- Stay informed about recent vulnerabilities affecting .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 vital skills needed to build applications that are resilient against modern internet-based threats. Participants will explore web vulnerabilities through practical PHP examples that extend beyond the OWASP Top Ten list. The curriculum covers a wide range of attack vectors, including various injection attacks, script injections, weaknesses in PHP session handling, insecure direct object references, and file upload issues. PHP-related vulnerabilities are categorized into standard types such as missing or inadequate input validation, improper error and exception handling, misuse of security features, and time- and state-dependent issues. Specific advanced attacks discussed include open_basedir bypass, denial-of-service via magic floats, and hash table collision attacks. In every scenario, participants will master the key techniques and functions required to mitigate these risks.
A dedicated focus is placed on client-side security, addressing issues within JavaScript, Ajax, and HTML5. The course introduces essential PHP security extensions, such as hash, mcrypt, and OpenSSL for cryptography, as well as Ctype, ext/filter, and HTML Purifier for robust input validation. Best practices for hardening the environment are covered, including PHP configuration (php.ini settings), Apache server configurations, and general server security. Finally, the course provides an overview of various security testing tools and techniques available to developers and testers, including security scanners, penetration testing, exploit packs, sniffers, proxy servers, fuzzing tools, and static source code analyzers.
Both the introduction of vulnerabilities and the configuration guidelines are reinforced through hands-on exercises. These activities demonstrate the impact of successful attacks, illustrate the application of mitigation strategies, and introduce the practical use of various extensions and security tools.
Participants attending this course will
- Gain a clear understanding of core security concepts, IT security principles, and secure coding standards.
- Identify web vulnerabilities beyond the OWASP Top Ten and learn how to prevent them.
- Understand client-side vulnerabilities and implement secure coding practices.
- Develop a practical understanding of cryptography.
- Learn how to effectively utilize PHP's built-in security features.
- Recognize common coding mistakes and understand how to avoid them.
- Stay informed about recent vulnerabilities affecting PHP frameworks.
- Acquire practical experience with security testing tools.
- Access resources and further reading materials on secure coding practices.
Audience
Developers
Microsoft SDL Core
14 HoursThe Combined SDL core training provides an in-depth look at secure software design, development, and testing within the framework of the Microsoft Secure Development Lifecycle (SDL). It offers a foundational overview of SDL's essential components, followed by design techniques aimed at identifying and resolving vulnerabilities during the early stages of the development process.
During the development phase, the course outlines common security-related programming errors found in both managed and native code. It presents attack vectors for these vulnerabilities alongside corresponding mitigation strategies. Through a series of hands-on exercises that offer participants engaging, live hacking experiences, these concepts are practically demonstrated. The training then introduces various security testing methods and showcases the effectiveness of different testing tools. Participants gain a clear understanding of how these tools operate by applying them to previously discussed vulnerable code in practical exercises.
Participants attending this course will
Comprehend the fundamental concepts of security, IT security, and secure coding
Become familiar with the critical steps of the Microsoft Secure Development Lifecycle
Master secure design and development practices
Learn the principles of secure implementation
Understand security testing methodology
- Access resources and further reading materials on secure coding practices
Audience
Developers, Managers
C++ for Embedded Systems
21 HoursIs C++ appropriate for embedded systems, including microcontrollers and real-time operating systems?
Should object-oriented programming principles be applied within microcontrollers?
Does C++ distance itself too much from the hardware to remain efficient?
This instructor-led live training explores these questions, demonstrating through discussion and practical exercises how C++ can be utilized to develop embedded systems with code that is precise, readable, and efficient. Participants will apply theoretical knowledge by developing a sample embedded application using C++.
By the conclusion of this training, participants will be able to:
- Comprehend the principles of object-oriented modeling, embedded software programming, and real-time programming
- Write code for embedded systems that is compact, fast, and secure
- Prevent code bloat resulting from 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
Format of the course
- A combination of lectures, discussions, exercises, and extensive hands-on practice
C++ 11 Programming
14 HoursThis two-day course is designed for C++ programmers who wish to leverage the new C++11 standard in their professional work. It is especially beneficial for developers in the financial sector, 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 the UAE, participants will learn how to formulate a proper security strategy to address the challenges of DevOps security.
EC-Council Certified DevSecOps Engineer (ECDE)
28 HoursThe EC-Council Certified DevSecOps Engineer (ECDE) is a practical course designed to empower professionals with the expertise to integrate security throughout the DevOps lifecycle, ensuring secure software development from initial planning through to deployment.
This instructor-led, live training (available online or on-site) targets intermediate-level software and DevOps professionals looking to embed security practices into CI/CD pipelines, guaranteeing the delivery of secure and compliant code.
Upon completion of this training, participants will be able to:
- Grasp the core principles and practices of DevSecOps.
- Secure every phase of the CI/CD pipeline using automated tools.
- Implement secure coding methodologies and vulnerability scanning techniques.
- Prepare effectively for the ECDE certification through practical labs and review sessions.
Course Format
- Interactive lectures and discussions.
- Hands-on application of DevSecOps tools within simulated pipelines.
- Guided exercises centered on secure development and deployment processes.
Course Customization Options
- To arrange customized training for this course tailored to your team’s specific workflows or toolchain, please contact us.
Using C++ in Embedded Systems - Applying C++11/C++14
21 HoursThis training program aims to introduce C++ as the natural extension of C for developing object-oriented embedded systems. Since C++ builds upon C, the course guides participants through this transition smoothly while exploring the internal mechanics of C++ implementation. This insight is particularly valuable for understanding how to effectively apply C++ in resource-constrained embedded environments. With the C++ standard undergoing significant updates in C++11 and the introduction of C++14, this course covers key advancements such as high-performance memory management, multicore concurrency, and bare-metal hardware programming.
GOAL/BENEFITS
The primary objective of this course is to enable you to utilize C++ in an "idomatic and correct manner."
- Present C++ as an object-oriented alternative for embedded system development
- Highlight the similarities and differences between C and C++
- Understand various memory management strategies, with a focus on move semantics introduced in C++11
- Examine the underlying machine code generated by different C++ paradigms
- Utilize templates to create type-safe, high-level abstractions for bare-metal programming, including memory-mapped I/O and interrupts, particularly leveraging variadic templates from C++11
- Explore useful design patterns applicable to embedded contexts
- Engage in practical exercises to reinforce key concepts
AUDIENCE/PARTICIPANTS
This training is designed for C++ programmers looking to begin using C++ within embedded system contexts.
PREVIOUS KNOWLEDGE
Participants are expected to have basic C++ programming knowledge, equivalent to our "C++ – Level 1" and "C++ Level 2 – Introducing C++11" training courses.
PRACTICAL EXERCISES
Throughout the training, you will apply the presented concepts through a series of exercises using the open-source and free integrated development environment from Eclipse.
Introduction to C++ Programming
28 HoursIntroduction to C++ Programming Training Course Information
Create, compile, and execute C++ programs. Perform traditional programming operations. Write classes to develop maintainable projects. Manage dynamic data reliably and efficiently.
How to Write Secure Code
35 HoursThis course aims to achieve the following objectives:
- Enable developers to master the techniques of writing secure code
- Assist software testers in verifying application security before deployment to the production environment
- Help software architects understand the risks associated with 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 for Java, utilizing the testing methodology of the Open Web Application Security Project (OWASP). The Open Web Application Security Project is an online community that 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 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 focused on web application security.
The course examines the security features of the .NET Framework and demonstrates how to protect web applications effectively.