C/C++ Secure Coding Training Course
Developing secure C and C++ code demands rigorous defence against malicious exploitation, memory corruption, and input validation bypasses. This programme explores vulnerability patterns such as buffer overflows, use-after-free errors, integer overflows, and type confusion. Participants apply secure coding guidelines, static analysis tools, and defensive programming techniques to eliminate weaknesses, enforce input sanitization, and deliver hardened software resilient against cyberattacks.
This course is available as onsite live training in South Africa 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 sources
Requirements
Basics of C/C++
Need help picking the right course?
southafrica@nobleprog.co.za or +27 (0)10 005 5793
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
ABAP Secure code
14 HoursUpon completion of this training, participants will be able to:
- Explain the concepts of application security and vulnerabilities
- Describe ABAP programming best practices and the handling of SY-SUBRC
- Understand injection vulnerabilities
- Describe security testing tools
- Explain ATC and CVA
Course Format
- Interactive lectures and discussions
- Extensive exercises and practice sessions
- Hands-on implementation in a live-lab environment
Advanced C++
35 HoursThis instructor-led, live training in South Africa (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:
- Configure a development environment that includes all necessary C++ libraries, packages, and frameworks.
- Understand the key features, components, and fundamental 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 test strategies to ensure code quality and security control.
- Utilise diagnostics and debugging tools in C++ development.
Applications Security Foundation
21 HoursThis programme equips web application developers with essential secure coding practices. Students will learn secure programming concepts by analysing specific code snippets to identify vulnerabilities and implement effective fixes.
Through demonstrations of real-world attacks and their prevention, participants will build confidence in enhancing the security of their applications.
Duration: 3 days
Target Audience: Developers seeking to deepen their expertise in secure coding.
Learning Outcomes
• Upon completion, students will gain knowledge in:
• Web Application Security.
• Common Web Application Risks.
• Demo Web Application Penetration Testing.
• Data Validation.
• Authentication.
• Session Management.
• Secure SDLC.
Network Security and Secure Communication
21 HoursImplementing a secure networked application can be challenging, even for developers who have previously worked with cryptographic building blocks such as encryption and digital signatures. To help participants grasp the role and application of these cryptographic primitives, the course begins by establishing a solid foundation on the core requirements of secure communication – including secure acknowledgment, integrity, confidentiality, remote identification, and anonymity. It also highlights common issues that can undermine these requirements, alongside practical real-world solutions.
Given that cryptography is a critical aspect of network security, the course covers the most important algorithms in symmetric cryptography, hashing, asymmetric cryptography, and key agreement. Rather than diving into deep mathematical theory, these concepts are presented from a developer’s perspective, featuring typical use-case examples and practical considerations such as public key infrastructures. Security protocols used across various areas of secure communication are introduced, with an in-depth focus on widely adopted protocol families like IPSEC and SSL/TLS.
The course examines typical crypto vulnerabilities related to specific cryptographic algorithms and protocols, such as BEAST, CRIME, TIME, BREACH, FREAK, Logjam, Padding oracle, Lucky Thirteen, POODLE, and the RSA timing attack. For each issue, the practical implications and potential consequences are clearly described, avoiding complex mathematical derivations.
Finally, since XML technology is central to data exchange for networked applications, the security aspects of XML are thoroughly explored. This includes the use of XML within web services and SOAP messages, alongside protection mechanisms like XML Signature and XML Encryption. The discussion also covers 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 fundamental concepts of security, IT security, and secure coding
- Grasp the requirements of secure communication
- Learn about network attacks and defences across different OSI layers
- Develop a practical understanding of cryptography
- Comprehend essential security protocols
- Gain insight into recent attacks targeting cryptosystems
- Learn about some recent related vulnerabilities
- Understand the security concepts underpinning web services
- Access resources and further reading materials on secure coding practices
Audience
Developers, Professionals
Advanced Java Security
21 HoursEven seasoned Java developers often do not fully master the array of security services provided by Java, nor are they always aware of the various vulnerabilities relevant to Java-based web applications.
In addition to introducing the security components of Standard Java Edition, this course addresses security challenges within Java Enterprise Edition (JEE) and web services. The discussion of specific services is grounded in the fundamentals of cryptography and secure communication. Through a series of practical exercises, participants explore declarative and programmatic security techniques in JEE, as well as transport-layer and end-to-end security for web services. This approach allows participants to apply the discussed APIs and tools hands-on.
The course also examines and explains the most common and severe programming flaws in the Java language and platform, alongside web-related vulnerabilities. Beyond typical errors made by Java programmers, the covered security vulnerabilities address both language-specific issues and problems arising from the runtime environment. These vulnerabilities and their associated attacks are demonstrated through accessible exercises, followed by recommended coding guidelines and mitigation strategies.
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 underlying 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.
- Learn about common coding mistakes and how to avoid them.
- Receive insights into recent vulnerabilities within the Java framework.
- Acquire practical experience with security testing tools.
- Access resources and further reading materials on secure coding practices.
Audience
Developers
.NET, C# and ASP.NET Security Development
14 HoursToday, developers have access to various programming languages capable of compiling code for the .NET and ASP.NET frameworks. While this environment offers robust tools for security development, it is crucial for developers to understand how to apply architectural and coding-level techniques to implement effective security measures, avoid vulnerabilities, and limit potential exploitation.
This course aims to equip developers with the skills to prevent untrusted code from executing privileged actions through numerous hands-on exercises. Participants will learn to protect resources via strong authentication and authorization, manage remote procedure calls, handle sessions, and explore various implementation strategies for specific functionalities.
The course introduces various vulnerabilities by highlighting typical programming errors made when using .NET. The discussion on ASP.NET vulnerabilities covers the impact of different environment settings. Furthermore, the section on ASP.NET-specific vulnerabilities addresses general web application security challenges alongside specialized issues and attack vectors, such as ViewState attacks and string termination exploits.
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
- Utilise the various security features available in the .NET development environment
- Acquire practical skills in using security testing tools
- Recognise common coding mistakes and understand how to prevent them
- Gain insights into recent vulnerabilities affecting .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 needed to fortify their applications against modern internet-based threats. The curriculum explores web vulnerabilities through practical PHP examples, extending beyond the OWASP Top Ten to cover a wide range of injection attacks, script injections, session handling weaknesses, insecure direct object references, file upload issues, and more. PHP-specific vulnerabilities are categorised into standard vulnerability types, such as missing or flawed input validation, incorrect error and exception handling, misuse of security features, and time- and state-related problems. For the latter, the course examines attacks like open_basedir circumvention, denial-of-service via magic floats, and hash table collision attacks. In every instance, participants will learn the critical techniques and functions required to mitigate these risks.
A significant focus is placed on client-side security, addressing vulnerabilities in JavaScript, Ajax, and HTML5. The course introduces key 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 discussed in the context of PHP configuration (php.ini), Apache, and general server management. Finally, an overview of various security testing tools and techniques is provided, enabling developers and testers to utilise security scanners, penetration testing, exploit packs, sniffers, proxy servers, fuzzing tools, and static source code analyzers.
Both the introduction to vulnerabilities and the configuration practices are reinforced by a series of hands-on exercises. These demonstrations illustrate the impact of successful attacks, show how to apply mitigation techniques, and guide participants through the use of various extensions and tools.
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 avoid them
- Gain knowledge of client-side vulnerabilities and secure coding practices
- Develop a practical understanding of cryptography
- Learn to utilise various PHP security features
- Identify common coding mistakes and learn how to prevent them
- Stay informed about recent vulnerabilities affecting the PHP framework
- Acquire practical experience in using security testing tools
- Access sources and further reading 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 via the Microsoft Secure Development Lifecycle (SDL). This course offers a level 100 overview of the fundamental building blocks of the SDL, followed by design techniques to help you detect and fix flaws in the early stages of the development process.
During the development phase, the course provides an overview of typical security-relevant programming bugs found in both managed and native code. Attack methods are presented for the discussed vulnerabilities, along with associated mitigation techniques, all explained through a number of hands-on exercises providing live hacking fun for the participants. The introduction of different security testing methods is followed by demonstrating the effectiveness of various testing tools. Participants can understand the operation of these tools through a number of practical exercises by applying the tools to the already discussed vulnerable code.
Participants attending this course will
Understand basic concepts of security, IT security and secure coding
Get known to the essential steps of Microsoft Secure Development Lifecycle
Learn secure design and development practices
Learn about secure implementation principles
Understand security testing methodology
- Get sources and further readings on secure coding practices
Audience
Developers, Managers
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 development?
Is C++ too abstracted from the hardware to deliver optimal efficiency?
This instructor-led, live training addresses these questions, demonstrating through discussion and hands-on practice how C++ can be leveraged to develop embedded systems with code that is precise, readable, and efficient. Participants will apply theoretical knowledge by building a sample embedded application using 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 from templates, exceptions, and other language features
- Understand the issues related to 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
CYBERSECURE CODER (CSC)
21 HoursThis course caters to individuals such as software developers, testers, and architects involved in creating software using different programming languages and platforms like desktop, web, cloud, and mobile. It aims to enhance their capacity to produce software of superior quality, with a special focus on security and privacy aspects.
DevOps Security: Creating a DevOps Security Strategy
7 HoursIn this instructor-led, live course in South Africa, 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) is a practical course designed to empower professionals with the expertise to embed security throughout the DevOps lifecycle, facilitating secure software development from the initial planning stages through to deployment.
This instructor-led live training, available either online or onsite, targets intermediate-level software and DevOps professionals aiming to integrate security practices into their CI/CD pipelines, thereby ensuring the delivery of secure and compliant code.
Upon completion of this training, participants will be equipped to:
- Grasp the core principles and practices of DevSecOps.
- Secure every stage of the CI/CD pipeline using automated tools.
- Implement secure coding standards and conduct 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 emphasising secure development and deployment techniques.
Course Customization Options
- To arrange customized training tailored to your team’s workflows or toolchain, please contact us.
How to Write Secure Code
35 HoursThis course aims to assist with the following:
- Enable developers to master secure coding techniques.
- Equip software testers to assess application security prior to deployment.
- Assist software architects in understanding application-related risks.
- Support team leaders in establishing security baselines for developers.
- Guide web masters in configuring servers to prevent misconfigurations.
Secure Developer Java (Inc OWASP)
21 HoursThis course explores secure coding principles and concepts for Java, applying the testing methodologies of the Open Web Application Security Project (OWASP). The Open Web Application Security Project is a global community 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, grounded in the Open Web Application Security Project (OWASP) testing methodology. OWASP is an online community that develops freely available articles, methodologies, documentation, tools, and technologies focused on web application security.
This course examines the security features of the .NET Framework and illustrates how to protect web applications effectively.