C/C++ Secure Coding Training Course
Course Outline
- C/C++ programming bugs for government
- 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 for government
Requirements
Basics of C/C++ for Government
Runs with a minimum of 4 + people. For 1-to-1 or private group training, request a quote.
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 HoursAdvanced C++ : Practical workshop
21 HoursNetwork Security and Secure Communication
21 HoursImplementing a secure networked application can be challenging, even for developers who have previously used various cryptographic building blocks (such as encryption and digital signatures). To ensure participants understand the role and usage of these cryptographic primitives, a solid foundation is provided on the main requirements of secure communication—secure acknowledgment, integrity, confidentiality, remote identification, and anonymity. The course also presents typical problems that can compromise these requirements along with real-world solutions.
As a critical aspect of network security, cryptography is thoroughly discussed, covering the most important cryptographic algorithms in symmetric cryptography, hashing, asymmetric cryptography, and key agreement. These elements are presented from a developer's perspective, focusing on practical use-case examples and considerations related to the use of crypto, such as public key infrastructures. Security protocols in various areas of secure communication are introduced, with an in-depth discussion on widely-used protocol families such as IPSEC and SSL/TLS.
Typical cryptographic vulnerabilities are examined, including issues related to certain crypto algorithms and cryptographic protocols like BEAST, CRIME, TIME, BREACH, FREAK, Logjam, Padding oracle, Lucky Thirteen, POODLE, and similar attacks, as well as the RSA timing attack. In each case, practical considerations and potential consequences are described without delving into deep mathematical details.
Finally, since XML technology is central to data exchange in networked applications, the security aspects of XML are discussed. This includes the use of XML within web services and SOAP messages, along with protection measures such as XML signature and XML encryption—along with weaknesses in these 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 for government
- 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 recent related vulnerabilities
- Understand security concepts of Web services
- Get sources and further readings on secure coding practices for government
Audience
Developers, Professionals
Advanced Java Security
21 HoursEven experienced Java programmers may not fully master all the security services provided by Java, nor are they always aware of the vulnerabilities relevant to web applications written in this language.
This course introduces the security components of Standard Java Edition and delves into the security issues of Java Enterprise Edition (JEE) and web services. Before discussing specific services, the course covers the fundamentals of cryptography and secure communication. Various exercises focus on declarative and programmatic security techniques in JEE, as well as transport-layer and end-to-end security for web services. Practical exercises allow participants to use the discussed APIs and tools firsthand.
The course also examines the most frequent and severe programming flaws in the Java language and platform, along with web-related vulnerabilities. It covers both language-specific issues and problems arising from the runtime environment. Each vulnerability and associated attack is demonstrated through straightforward exercises, followed by recommended coding guidelines and mitigation techniques.
Participants attending this course will
- Understand basic concepts of security, IT security, and secure coding for government applications
- Learn about web vulnerabilities beyond the OWASP Top Ten and how to prevent them
- Understand the security principles of web services
- Learn to utilize various security features in the Java development environment
- Gain a practical understanding of cryptography
- Understand the security solutions offered by Java EE
- Learn about common coding mistakes and how to avoid them
- Receive information on recent vulnerabilities in the Java framework
- Acquire practical knowledge in using security testing tools
- Access sources and further readings on secure coding practices
Audience
Developers
.NET, C# and ASP.NET Security Development
14 HoursSecure coding in PHP
21 HoursMicrosoft SDL Core
14 HoursThe Combined SDL Core Training provides an in-depth understanding of secure software design, development, and testing through the Microsoft Secure Development Lifecycle (SDL). It offers a foundational overview of the key components of SDL, followed by practical techniques for identifying and addressing security flaws early in the development process.
During the development phase, the course covers common security-related programming bugs in both managed and native code. It presents various attack methods associated with these vulnerabilities along with effective mitigation strategies. These concepts are reinforced through hands-on exercises that offer participants a practical understanding of live hacking techniques. The training also introduces different security testing methodologies and demonstrates the effectiveness of various testing tools, allowing participants to apply these tools to previously discussed vulnerable code.
Participants attending this course will
Understand basic concepts of security, IT security, and secure coding for government.
Gain knowledge of the essential steps in the Microsoft Secure Development Lifecycle.
Learn secure design and development practices.
Understand secure implementation principles.
Grasp security testing methodologies.
- 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 practice how C++ can be effectively utilized to develop embedded systems with code that is accurate, readable, and efficient. Participants apply theoretical knowledge 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 modeling, embedded software programming, and real-time programming
- Produce code for embedded systems that is compact, fast, and secure
- Avoid unnecessary overhead from 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
Format of the Course
- Part lecture, part discussion, exercises, and extensive hands-on practice for government professionals
C++ 11 Programming
14 HoursDevOps Security: Creating a DevOps Security Strategy
7 HoursEC-Council Certified DevSecOps Engineer (ECDE)
28 HoursThe EC-Council Certified DevSecOps Engineer (ECDE) is a practical course designed to equip professionals with the skills necessary to integrate security throughout the DevOps lifecycle, ensuring secure software development from planning through deployment.
This instructor-led, live training (available online or on-site) targets intermediate-level software and DevOps professionals who aim to incorporate security practices into CI/CD pipelines, thereby ensuring both secure and compliant code delivery for government applications.
By the end of this training, participants will be able to:
- Understand the principles and practices of DevSecOps.
- Secure every stage of the CI/CD pipeline using automated tools.
- Implement secure coding practices and vulnerability scanning.
- Prepare for the ECDE certification with practical labs and comprehensive review sessions.
Format of the Course
- Interactive lectures and discussions.
- Hands-on use of DevSecOps tools in simulated pipelines.
- Guided exercises focused on secure development and deployment practices.
Course Customization Options
- To request a customized training for this course tailored to your team’s specific workflows or toolchain, please contact us to arrange.
Using C++ in Embedded Systems - Applying C++11/C++14
21 HoursThis training is designed to introduce C++ as an extension of C, particularly for object-oriented embedded system development. Given that C++ encompasses C, this course provides a natural progression from C to C++, delving into how C++ is implemented. This understanding is especially valuable when applying C++ in resource-limited embedded environments. The C++ standard has recently undergone significant revisions with the introduction of C++11 and the upcoming C++14. This course addresses key features introduced in these revisions, such as high-performance memory management, concurrency for multicore environments, and programming close to the hardware.
GOAL/BENEFITS
The primary objective of this class is to enable participants to use C++ correctly and effectively.
- Introduce C++ as an object-oriented language suitable for embedded systems
- Highlight the similarities and differences between C and C++
- Understand various memory management strategies, particularly the move semantics introduced in C++11
- Examine how different paradigms in C++ translate into machine code
- Leverage templates for type-safe high-order abstractions in bare-metal programming, including memory-mapped I/O and interrupts, especially variadic templates from C++11
- Explore useful design patterns applicable in an embedded context
- Practice concepts through a series of exercises
AUDIENCE/PARTICIPANTS
This training is intended for C++ programmers who plan to start using C++ in an embedded system context, particularly for government applications.
PREVIOUS KNOWLEDGE
The course requires a foundational understanding of C++ programming, equivalent to the knowledge gained from our “C++ – Level 1” and “C++ Level 2 – Introducing C++11” trainings.
PRACTICAL EXERCISES
Participants will practice the presented concepts through a series of exercises. We will utilize the open-source integrated development environment from Eclipse, ensuring that all tools are accessible and free for government use.
How to Write Secure Code
35 HoursThis Course in US aims to assist in the following:
- Enable Developers to master the techniques of writing secure code for government systems.
- Support Software Testers in conducting thorough security assessments before deploying applications to production environments for government use.
- Assist Software Architects in comprehending the risks associated with government applications and designing robust security frameworks.
- Help Team Leaders establish security baselines for developers working on government projects.
- Aid Web Masters in configuring servers to prevent misconfigurations that could compromise government systems.