C/C++ Secure Coding Training Course
This three-day course introduces the fundamentals of protecting C/C++ code from malicious exploitation targeting vulnerabilities related to memory management and input handling. It emphasizes the core principles of writing secure code.
This course is available as onsite live training in Taiwan 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
Foundational 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 Taiwan (online or onsite) is designed for developers seeking to apply advanced C++ programming techniques to build complex, secure, and high-performance systems and applications.
By the end of this training, participants will be able to:
- Set up a comprehensive development environment that includes all necessary C++ libraries, packages, and frameworks.
- Understand the key features, components, and fundamental elements of C++.
- Develop complex C++ applications using advanced programming techniques.
- Learn how to write readable, efficient, and secure C++ code.
- Identify common security pitfalls in C++ and learn how to mitigate them.
- Implement effective testing strategies to ensure code quality and security.
- Utilize 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 core computational algorithms and data structures, derivatives pricing models, risk analytics, and performance-optimized implementations. Through a comprehensive project-based curriculum, it bridges the gap between theoretical finance and production-grade code, enabling professionals to build accurate, high-speed simulation systems essential for trading, market analysis, and risk management.
Network Security and Secure Communication
21 HoursDeveloping a secure networked application can be challenging, even for developers who have previously utilized various cryptographic building blocks like encryption and digital signatures. To help participants grasp the role and application of these cryptographic primitives, we first establish a solid foundation regarding the core requirements of secure communication: secure acknowledgment, integrity, confidentiality, remote identification, and anonymity. We also highlight typical threats that can undermine these requirements, alongside real-world solutions.
Given that cryptography is a critical component of network security, we discuss the most important algorithms in symmetric cryptography, hashing, asymmetric cryptography, and key agreement. Rather than focusing on deep mathematical backgrounds, we approach these topics from a developer's perspective, providing typical use-case examples and practical considerations, such as public key infrastructures. We introduce security protocols across various areas of secure communication, offering an in-depth look at widely-used protocol families like IPSEC and SSL/TLS.
We also address 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, we describe practical considerations and potential consequences without delving into complex mathematical details.
Finally, since XML technology is central to data exchange for networked applications, we cover XML security aspects. This includes using XML within web services and SOAP messages, along with protection measures like XML Signature and XML Encryption. We also examine weaknesses in these protections 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 the basic concepts of security, IT security, and secure coding
- Grasp the requirements of secure communication
- Learn about network attacks and defenses across different OSI layers
- Gain a practical understanding of cryptography
- Comprehend essential security protocols
- Understand recent attacks against cryptosystems
- Gain insights into recent related vulnerabilities
- Understand security concepts for Web services
- Access sources and further readings on secure coding practices
Audience
Developers, Professionals
Advanced Java Security
21 HoursEven seasoned Java developers do not always master every security service provided by Java, nor are they always aware of the various vulnerabilities relevant to Java-based web applications.
This course, in addition to introducing the security components of Standard Java Edition, addresses security issues within Java Enterprise Edition (JEE) and web services. The discussion of specific services begins with the foundations of cryptography and secure communication. Various exercises focus on declarative and programmatic security techniques in JEE, while both transport-layer and end-to-end security for web services are examined. The application of all components is demonstrated through several practical exercises, allowing participants to experiment with the discussed APIs and tools firsthand.
The course also reviews and explains the most common and severe programming flaws in the Java language and platform, as well as web-related vulnerabilities. Beyond typical errors made by Java programmers, the introduced security vulnerabilities cover 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
- Understand the 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 the security concepts of web services
- Learn to use 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
- Gain information about some recent vulnerabilities in the Java framework
- Acquire practical knowledge in using security testing tools
- Obtain sources and further readings on secure coding practices
Audience
Developers
Standard Java Security: Secure Coding & Development Practices
14 HoursDescription
The Java language and the Runtime Environment (JRE) were designed to be free from the most problematic common security vulnerabilities experienced in other languages, like C/C++. Yet, software developers and architects should not only know how to use the various security features of the Java environment (positive security), but should also be aware of the numerous vulnerabilities that are still relevant for Java development (negative security).
The introduction of security services is preceded with a brief overview of the foundations of cryptography, providing a common baseline for understanding the purpose and the operation of the applicable components. The use of these components is presented through several practical exercises, where participants can try out the discussed APIs for themselves.
The course also goes through and explains the most frequent and severe programming flaws of the Java language and platform, covering both the typical bugs committed by Java programmers and the language- and environment-specific issues. All vulnerabilities and the relevant attacks are demonstrated through easy-to-understand exercises, followed by the recommended coding guidelines and the possible mitigation techniques.
Participants attending this course will
- Understand basic concepts of security, IT security and secure coding
- Learn Web vulnerabilities beyond OWASP Top Ten and know how to avoid them
- Learn to use various security features of the Java development environment
- Have a practical understanding of cryptography
- Learn about typical coding mistakes and how to avoid them
- Get information about some recent vulnerabilities in the Java framework
- Get sources and further readings on secure coding practices
Audience
Developers
.NET, C# and ASP.NET Security Development
14 HoursToday, numerous programming languages are available for compiling code to the .NET and ASP.NET frameworks. While this environment offers powerful tools for security development, developers must understand how to apply architecture- and code-level programming techniques to implement desired security functionalities, avoid vulnerabilities, or limit their exploitation.
This course aims to teach developers through extensive hands-on exercises how to prevent untrusted code from performing privileged actions, protect resources via robust authentication and authorization, facilitate remote procedure calls, manage sessions, and explore various implementations for specific functionalities, among other topics.
The introduction to various vulnerabilities begins by examining typical programming issues encountered when using .NET. The discussion on ASP.NET vulnerabilities also covers various environment settings and their impacts. Finally, the topic of ASP.NET-specific vulnerabilities addresses not only general web application security challenges but also special issues and attack methods, such as ViewState attacks and string termination attacks.
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 avoid them.
- Learn to utilize various security features of the .NET development environment.
- Acquire practical knowledge in using security testing tools.
- Learn about common coding mistakes and how to prevent them.
- Gain information about recent vulnerabilities in .NET and ASP.NET.
- Access sources and further readings 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. We explore web vulnerabilities through PHP examples that extend beyond the OWASP Top Ten, addressing various injection attacks, script injection, weaknesses in PHP session handling, insecure direct object references, file upload issues, and more. PHP vulnerabilities are categorized into standard types such as insufficient or flawed input validation, improper error and exception handling, misuse of security features, and time- or state-related issues. For the latter, we examine attacks like open_basedir bypass, denial-of-service via magic floats, and hash table collision attacks. In each scenario, participants will learn the essential techniques and functions required to mitigate these risks.
A significant emphasis is placed on client-side security, addressing JavaScript, Ajax, and HTML5 vulnerabilities. We introduce several PHP security extensions, such as hash, mcrypt, and OpenSSL for cryptography, and Ctype, ext/filter, and HTML Purifier for input validation. Best practices for hardening are covered in the context of PHP configuration (php.ini), Apache, and general server setup. Additionally, we provide an overview of various security testing tools and techniques available to developers and testers, including security scanners, penetration testing tools, exploit kits, sniffers, proxy servers, fuzzing tools, and static source code analyzers.
Both the exploration of vulnerabilities and configuration practices are reinforced with hands-on exercises. These demonstrate the impact of successful attacks, show how to implement mitigation strategies, and introduce the use of various extensions and tools.
Participants in this course will
- Grasp fundamental concepts of security, IT security, and secure coding.
- Understand web vulnerabilities beyond the OWASP Top Ten and learn how to prevent them.
- Gain knowledge of client-side vulnerabilities and secure coding practices.
- Develop a practical understanding of cryptography.
- Learn to utilize various security features within PHP.
- Identify common coding mistakes and understand how to avoid them.
- Stay informed about recent vulnerabilities in PHP frameworks.
- Acquire practical experience with security testing tools.
- Receive resources and further reading on secure coding practices.
Audience
Developers
Microsoft SDL Core
14 HoursThe Comprehensive SDL Core training provides an in-depth look at secure software design, development, and testing methodologies through the lens of Microsoft's Secure Development Lifecycle (SDL). It offers a level 100 overview of the fundamental building blocks of SDL, followed by design techniques to help identify and remediate vulnerabilities during the early stages of the development process.
Focusing on the development phase, the course outlines common security-related programming defects in both managed and native code. It presents attack vectors for these vulnerabilities alongside corresponding mitigation strategies, all demonstrated through hands-on exercises that provide participants with practical experience in live hacking scenarios. The curriculum introduces various security testing methods and demonstrates the effectiveness of different testing tools. Participants gain a clear understanding of how these tools operate by applying them to previously discussed vulnerable codebases through practical exercises.
Participants attending this course will
Understand foundational concepts of general 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 resources and further readings on secure coding practices
Audience
Developers, Managers
Secure Web Application Development and Testing
21 HoursProtecting web-accessible applications demands security professionals who are constantly vigilant regarding current attack methods and trends. A wide array of technologies and environments facilitate the comfortable development of web applications. Developers must not only recognize security issues pertinent to these platforms but also remain aware of general vulnerabilities that apply irrespective of the development tools used.
This course provides an overview of applicable security solutions for web applications, with a special emphasis on understanding the most critical cryptographic solutions. Various web application vulnerabilities are presented from both server-side (following the OWASP Top Ten) and client-side perspectives, demonstrated through relevant attacks, and followed by recommended coding techniques and mitigation methods to avoid associated problems. The topic of secure coding is concluded by discussing typical security-relevant programming mistakes in input validation, improper use of security features, and code quality.
Testing plays a vital role in ensuring the security and robustness of web applications. Various approaches, from high-level auditing and penetration testing to ethical hacking, can be applied to identify vulnerabilities of different types. However, to go beyond easily found low-hanging fruits, security testing must be well-planned and properly executed. Recall: security testers should ideally find all bugs to protect a system, whereas adversaries only need to find one exploitable vulnerability to penetrate it.
Practical exercises will aid in understanding web application vulnerabilities, programming mistakes, and most importantly, mitigation techniques. Through hands-on trials of various testing tools ranging from security scanners, sniffers, and proxy servers to fuzzing tools and static source code analyzers, this course provides essential practical skills that can be applied immediately in the workplace.
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
- Learn about client-side vulnerabilities and secure coding practices
- Gain a practical understanding of cryptography
- Understand security testing approaches and methodologies
- Acquire practical knowledge in using security testing techniques and tools
- Be informed about recent vulnerabilities in various platforms, frameworks, and libraries
- Obtain sources 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?
Is object-oriented programming appropriate for microcontrollers?
Is C++ too abstracted from the hardware to deliver optimal efficiency?
This instructor-led, live training addresses these questions, demonstrating through discussion and practice how C++ can be utilized 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:
- Comprehend the principles of object-oriented modeling, embedded software programming, and real-time programming
- Produce 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
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 Taiwan, 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) program is a practical course designed to empower professionals with the skills necessary to integrate security throughout the DevOps lifecycle, facilitating secure software development from initial planning through to deployment.
This instructor-led live training, available online or onsite, targets intermediate-level software engineers and DevOps practitioners who aim to embed security practices into CI/CD pipelines, thereby ensuring the delivery of secure and compliant code.
Upon completion of this training, participants will be able to:
- Comprehend the core principles and practices of DevSecOps.
- Secure each stage of the CI/CD pipeline using automated tools.
- Apply secure coding practices and conduct vulnerability scanning.
- Prepare effectively for the ECDE certification through practical labs and review sessions.
Course Format
- Interactive lectures and discussions.
- Hands-on experience with DevSecOps tools in simulated pipelines.
- Guided exercises focused on secure development and deployment.
Course Customization Options
- To request customized training tailored to your team’s workflows or toolchain, please contact us to arrange.
How to Write Secure Code
35 HoursThis Course in Taiwan aims to help in the following:
- Help Developers to master the techniques of writing Secure Code
- Help Software Testers to test the security of the application before publishing to the production environment
- Help Software Architects to understand the risks surrounding the applications
- Help Team Leaders to set the security base lines for the developers
- Help Web Masters to configure the Servers to avoid miss-configurations
Secure Developer Java (Inc OWASP)
21 HoursThis course explores secure coding concepts and principles for Java, utilizing the testing methodologies of the Open Web Application Security Project (OWASP). The Open Web Application Security Project is an online community that provides freely accessible articles, methodologies, documentation, tools, and technologies dedicated to web application security.
Secure Developer .NET (Inc OWASP)
21 HoursThis course covers secure coding concepts and principles using ASP.NET, based on the Open Web Application Security Project (OWASP) testing methodology. OWASP is an online community that provides freely available articles, methodologies, documentation, tools, and technologies in the field of web application security.
This course explores the .NET Framework security features and demonstrates how to secure web applications.