How to Write Secure Code Training Course
In the wake of major attacks on national infrastructures, Security Professionals discovered that most vulnerabilities leading to these incidents stemmed from poorly written and vulnerable code created by developers.
Developers now need to master secure coding techniques, as we live in an era where anyone can leverage available tools to write scripts that effectively disable large organization systems due to poor code quality.
This course aims to assist with the following objectives:
- Enable developers to master the techniques of writing Secure Code
- Assist Software Testers in verifying application security before deployment to production environments
- Help Software Architects understand the risks surrounding applications
- Support Team Leaders in establishing security baselines for developers
- Guide Web Masters in configuring servers to avoid misconfigurations
Participants will also examine the details of the latest cyber attacks utilized and the countermeasures employed to stop and prevent them.
You will witness firsthand how developer mistakes have led to catastrophic breaches. By participating in the labs during the course, you will put security controls into practice, gaining the experience and knowledge necessary to produce secure coding.
Who Should Attend This Course?
This Secure Code Training is ideal for professionals in roles such as, but not limited to:
- Web Developers
- Mobile Developers
- Java Developers
- .Net Developers
- Software Architects
- Software Testers
- Security Professionals
- Web Masters
Course Outline
Module 1: Introduction to Secure Coding
- Overview of secure coding practices
- Common vulnerabilities in software
- Importance of secure development life cycle
Module 2: Web, Windows, and Mobile Application Basics
- Introduction to application platforms
- Security implications for each platform
- Best practices for secure development
Module 3: Application Attacks and Exploits
- Cross-Site Scripting (XSS)
- SQL Injection
- Cross-Site Request Forgery (CSRF)
Module 4: Server Attacks and Exploits
- Denial of Service (DoS) attacks
- Buffer Overflow (BOF)
- Common server vulnerabilities
Module 5: Validation and Verification
- Input validation techniques
- Data sanitization and output encoding
- Verifying security measures
Module 6: Security Controls and Countermeasures
- Implementing access control
- Using encryption for data security
- Protecting against common threats
Module 7: Mobile Application Secure Coding
- Security concerns in mobile development
- Implementing secure mobile app architectures
- Handling mobile data securely
Module 8: Security Standards and Testing
- Overview of security standards (e.g., OWASP)
- Testing for security vulnerabilities
- Best practices for security testing
Requirements
- Basic knowledge of any programming language
- Basic knowledge of the software development life cycle
Audience
- Developers
- Software architects
- Security professionals
Open Training Courses require 5+ participants.
How to Write Secure Code Training Course - Booking
How to Write Secure Code Training Course - Enquiry
How to Write Secure Code - Consultancy Enquiry
Testimonials (3)
The labs practice
Angel - Vodacom
Course - How to Write Secure Code
seeing the security threats in action
kesh - Vodacom
Course - How to Write Secure Code
Module3 Applications Attacks and Exploits, XSS, SQL injection Module4 Servers Attacks and Exploits, DOS, BOF
Tshifhiwa - Vodacom
Course - How to Write Secure Code
Upcoming Courses
Related Courses
ABAP Secure code
14 HoursUpon completion of this training, participants will be able to:
- Explain application security concepts and common vulnerabilities
- Describe ABAP programming best practices and the proper 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
Applications Security Foundation
21 HoursThis course addresses the essential secure coding topics pertinent to a broad range of web application developers. It educates participants on the principles of secure programming by examining specific code samples, identifying security vulnerabilities, and implementing effective remediation strategies.
Throughout the course, students will observe demonstrations of real-world attacks and learn how to prevent them, building the confidence needed to enhance the security posture of their applications.
Duration: 3 days
Target Audience: Developers seeking to deepen their expertise in secure coding practices.
Learning Outcomes
• Participants will acquire knowledge in:
• Web Application Security.
• Common Web Application Risks.
• Penetration Testing of Demo Web Applications.
• Data Validation.
• Authentication.
• Session Management.
• Secure SDLC.
Android Security
14 HoursAndroid serves as an open platform for mobile devices, including smartphones and tablets. While it offers a wide array of security features designed to facilitate the development of secure software, it also lacks certain security elements found on other handheld platforms. This course provides a comprehensive overview of these features, highlighting critical shortcomings related to the underlying Linux infrastructure, the file system, and the general environment. Additionally, it addresses issues associated with using permissions and other Android software development components.
The course outlines typical security pitfalls and vulnerabilities affecting both native code and Java applications, offering recommendations and best practices to prevent and mitigate them. Many discussed issues are supported by real-life examples and case studies. Finally, we provide a brief overview of how to utilize security testing tools to identify security-related programming bugs.
Participants attending this course will
- Grasp fundamental concepts of security, IT security, and secure coding.
- Learn about security solutions available on Android.
- Understand how to utilize various security features of the Android platform.
- Gain insight into recent vulnerabilities in Java on Android.
- Learn about common coding mistakes and strategies to avoid them.
- Develop an understanding of native code vulnerabilities on Android.
- Recognize the severe consequences of insecure buffer handling in native code.
- Comprehend architectural protection techniques and their potential weaknesses.
- Access sources and further reading materials on secure coding practices.
Audience
Professionals
Network Security and Secure Communication
21 HoursBuilding secure networked applications can be challenging, even for developers who have previously worked with various cryptographic components (such as encryption and digital signatures). To help participants grasp the role and application of these cryptographic primitives, the course begins by establishing a strong foundation on the core requirements of secure communication: secure authentication, integrity, confidentiality, remote identity verification, and anonymity. It also addresses common threats that compromise these requirements and presents practical, real-world solutions.
As cryptography is a cornerstone of network security, the course examines essential algorithms in symmetric cryptography, hashing, asymmetric cryptography, and key agreement. Rather than focusing on complex mathematical theory, these topics are explored from a developer's perspective, highlighting typical use cases and practical considerations, such as public key infrastructures. The course also introduces security protocols across various domains of secure communication, with a detailed analysis of widely adopted protocol families like IPSEC and SSL/TLS.
Common cryptographic vulnerabilities are discussed, covering both specific algorithms and protocols. Examples include BEAST, CRIME, TIME, BREACH, FREAK, Logjam, Padding oracle, Lucky Thirteen, POODLE, and RSA timing attacks. For each vulnerability, the course outlines practical implications and potential consequences, again avoiding deep mathematical derivations.
Finally, given that 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. It also addresses 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 fundamental concepts of security, IT security, and secure coding
- Understand the requirements of secure communication
- Learn about network attacks and defenses across different OSI layers
- Gain a practical understanding of cryptography
- Understand essential security protocols
- Understand recent attacks against cryptosystems
- Gain information about some recent related vulnerabilities
- Understand security concepts of Web services
- Get sources and further readings on secure coding practices
Audience
Developers, Professionals
C/C++ Secure Coding
21 HoursOver the course of three days, this program explores the fundamental principles of safeguarding C/C++ code against potential exploits by malicious actors. Participants will learn how to mitigate risks associated with memory management and input handling, while mastering the core tenets of writing robust and secure software.
Advanced Java Security
21 HoursEven seasoned Java programmers do not necessarily master all the security services provided by Java, nor are they always aware of the vulnerabilities relevant to Java-based web applications.
Besides introducing the security components of the Java Standard Edition, this course addresses security issues in the Java Enterprise Edition (JEE) and web services. The discussion of specific services begins with the foundations of cryptography and secure communication. Various exercises cover declarative and programmatic security techniques in JEE, while the course also discusses transport-layer and end-to-end security for web services. Participants will apply all components through practical exercises, allowing them 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. In addition to typical bugs made by Java developers, the security vulnerabilities covered include both language-specific issues and problems arising from the runtime environment. All vulnerabilities and the corresponding 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 in Java EE
- Learn about typical coding mistakes and how to avoid them
- Gain information about recent vulnerabilities in the Java framework
- Acquire practical knowledge in using security testing tools
- Access sources and further reading on secure coding practices
Audience
Developers
Standard Java Security
14 HoursDescription
Both the Java programming language and the Java Runtime Environment (JRE) were designed to eliminate the most problematic common security vulnerabilities found in other languages, such as C and C++. However, software developers and architects must do more than simply learn how to leverage the positive security features of the Java environment; they must also remain vigilant regarding the numerous vulnerabilities that continue to impact Java development (negative security).
Before introducing security services, the course provides a concise overview of cryptographic foundations, establishing a common baseline for understanding the purpose and operation of applicable components. The practical application of these components is demonstrated through several hands-on exercises, allowing participants to experiment with the discussed APIs firsthand.
The curriculum also examines and explains the most frequent and severe programming flaws inherent to the Java language and platform, addressing both typical errors made by Java programmers and issues specific to the language and its environment. All vulnerabilities and relevant attack vectors are illustrated through accessible exercises, followed by recommended coding guidelines and potential mitigation strategies.
Participants attending this course will
- Understand fundamental concepts of security, IT security, and secure coding
- Identify web vulnerabilities beyond the OWASP Top Ten and learn how to avoid them
- Learn to utilize various security features within the Java development environment
- Gain a practical understanding of cryptography
- Identify typical coding mistakes and learn how to prevent them
- Learn about some recent vulnerabilities in the Java framework
- Access sources and further reading on secure coding practices
Audience
Developers
.NET, C# and ASP.NET Security Development
14 HoursToday, numerous programming languages allow code compilation for the .NET and ASP.NET frameworks. While these environments offer robust tools for security development, developers must master architecture- and code-level programming techniques to implement required security features, prevent vulnerabilities, and mitigate their exploitation.
This course aims to equip developers with the skills to prevent untrusted code from executing privileged actions, secure resources via strong authentication and authorization, manage remote procedure calls and sessions, and explore various functional implementations through extensive hands-on exercises.
The training begins by introducing common vulnerabilities, highlighting typical programming errors in .NET, and discussing how ASP.NET vulnerabilities relate to various environment configurations. It further covers ASP.NET-specific vulnerabilities, addressing general web application security challenges as well as specialized issues such as ViewState attacks and string termination attacks.
Participants in this course will
- Gain a solid understanding of security fundamentals, IT security, and secure coding principles
- Learn about web vulnerabilities beyond the OWASP Top Ten and discover strategies to avoid them
- Master the use of various security features within the .NET development environment
- Acquire practical experience with security testing tools
- Identify common coding mistakes and learn how to prevent them
- Stay informed about recent vulnerabilities affecting .NET and ASP.NET
- Access resources and further reading on secure coding practices
Audience
Developers
The Secure Coding Landscape
14 HoursThis course provides an introduction to fundamental security principles and offers a broad overview of vulnerability characteristics, independent of specific programming languages or platforms. It explains how to manage risks associated with software security throughout the various stages of the software development lifecycle. Without delving into deep technical specifics, it highlights some of the most critical and prevalent vulnerabilities across different software development technologies. The course also addresses the challenges of security testing, presenting practical techniques and tools to help identify and resolve issues within code.
Participants attending this course will
- Gain a solid understanding of core security concepts, IT security, and secure coding practices
- Comprehend web vulnerabilities affecting both server-side and client-side environments
- Recognize the serious implications of improper buffer handling
- Learn about recent vulnerabilities found in development environments and frameworks
- Identify typical coding errors and discover strategies to avoid them
- Understand various approaches and methodologies for security testing
Target Audience
Managers
Secure coding in PHP
21 HoursThis course equips PHP developers with the essential skills needed to fortify applications against modern internet-based threats. The curriculum explores web vulnerabilities through PHP-centric examples that extend beyond the OWASP Top Ten, addressing various injection attacks, script injections, session handling flaws, insecure direct object references, file upload issues, and more. PHP-related vulnerabilities are categorized into standard types such as inadequate or missing input validation, incorrect error and exception handling, misuse of security features, and time- and state-related problems. For the latter, we examine attacks like open_basedir circumvention, denial-of-service via magic floats, and hash table collision attacks. In every scenario, participants will learn critical techniques and functions to mitigate these risks.
A significant emphasis is placed on client-side security, addressing issues related to JavaScript, Ajax, and HTML5. Several PHP security extensions are introduced, including hash, mcrypt, and OpenSSL for cryptography, as well as Ctype, ext/filter, and HTML Purifier for input validation. Comprehensive hardening practices are provided for PHP configuration (php.ini settings), Apache, and server infrastructure in general. Additionally, the course offers an overview of diverse security testing tools and techniques available to developers and testers, such as security scanners, penetration testing and exploit kits, sniffers, proxy servers, fuzzing tools, and static source code analyzers.
Both the exploration of vulnerabilities and configuration best practices are reinforced with hands-on exercises. These exercises demonstrate the impact of successful attacks, show how to implement mitigation strategies, and guide participants through the use of various extensions and tools.
Participants attending this course will
- Grasp fundamental concepts of security, IT security, and secure coding
- Explore web vulnerabilities beyond the OWASP Top Ten and learn how to prevent them
- Understand client-side vulnerabilities and secure coding practices
- Gain practical knowledge of cryptography
- Learn to utilize various PHP security features
- Identify common coding errors and learn how to avoid them
- Stay updated on recent vulnerabilities within the PHP framework
- Acquire practical experience using security testing tools
- Receive 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 via the Microsoft Secure Development Lifecycle (SDL). It offers a foundational overview of the essential SDL components, followed by design techniques aimed at identifying and rectifying flaws during the early stages of development.
Focusing on the development phase, the course reviews common security-related programming bugs in both managed and native code. The curriculum presents attack vectors for the discussed vulnerabilities alongside their corresponding mitigation strategies, all illustrated through hands-on exercises that offer participants practical, live hacking experience. Following the introduction to various security testing methods, the effectiveness of different testing tools is demonstrated. Participants gain a clear understanding of how these tools operate by applying them to previously discussed vulnerable code through numerous practical exercises.
Participants attending this course will
Grasp the fundamental concepts of security, IT security, and secure coding.
Become familiar with the essential steps of the Microsoft Secure Development Lifecycle.
Acquire knowledge of secure design and development practices.
Learn the principles of secure implementation.
Understand security testing methodology.
- Access resources and further readings on secure coding practices.
Audience
Developers, Managers
Security Testing
14 HoursOnce participants have gained familiarity with vulnerabilities and attack methods, they explore the general approach and methodology for security testing, along with techniques applicable for revealing specific vulnerabilities. Security testing begins with gathering information about the system (ToC, or Target of Evaluation), followed by thorough threat modeling to identify and rate all threats, ultimately leading to a risk analysis-driven test plan.
Security evaluations can occur at various stages of the SDLC, which is why we cover design reviews, code reviews, reconnaissance and information gathering about the system, implementation testing, and environment testing and hardening for secure deployment. In-depth explanations are provided on many security testing techniques, such as taint analysis, heuristics-based code review, static code analysis, dynamic web vulnerability testing, and fuzzing. Various types of tools are introduced for automating the security evaluation of software products, supported by exercises where these tools are executed to analyze the previously discussed vulnerable code. Numerous real-life case studies further enhance understanding of diverse vulnerabilities.
This course prepares testers and QA staff to adequately plan and precisely execute security tests, select and use the most appropriate tools and techniques to uncover even hidden security flaws, thereby imparting essential practical skills applicable in their immediate work environment.
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
- Understand security testing approaches and methodologies
- Gain practical knowledge in using security testing techniques and tools
- Access sources and further readings on secure coding practices
Audience
Developers, Testers
Secure Web Application Development and Testing
21 HoursProtecting web-accessible applications demands competent security professionals who remain constantly informed about current attack vectors and trends. While a wide array of technologies and environments facilitate the comfortable development of web applications, developers must not only grasp the specific security issues inherent to these platforms but also understand general vulnerabilities that persist regardless of the development tools used.
This course provides an overview of applicable security solutions for web applications, with a particular emphasis on understanding essential cryptographic mechanisms. Various web application vulnerabilities are explored from both server-side perspectives (aligned with the OWASP Top Ten) and client-side contexts. These are demonstrated through relevant attack scenarios, followed by recommended coding techniques and mitigation strategies to prevent associated issues. The topic of secure coding concludes with a discussion of typical security-related programming errors, including improper input validation, misuse of security features, and issues related to code quality.
Testing plays a critical role in ensuring the security and robustness of web applications. A variety of approaches—ranging from high-level auditing and penetration testing to ethical hacking—can be employed to uncover vulnerabilities of different kinds. However, to move beyond easily discoverable flaws ('low-hanging fruit'), security testing must be meticulously planned and executed. It is important to remember that while security testers ideally need to identify all bugs to fully protect a system, adversaries only need to find a single exploitable vulnerability to gain access.
Through practical exercises, participants will deepen their understanding of web application vulnerabilities, programming mistakes, and, most importantly, mitigation techniques. The course includes hands-on trials with a variety of testing tools, including security scanners, sniffers, proxy servers, fuzzing tools, and static source code analyzers, providing essential practical skills that can be immediately applied in the workplace the following day.
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 avoid them
- Gain knowledge of client-side vulnerabilities and secure coding practices
- Develop a practical understanding of cryptography
- Comprehend security testing approaches and methodologies
- Acquire practical knowledge in using security testing techniques and tools
- Stay informed about recent vulnerabilities in various platforms, frameworks, and libraries
- Receive resources and further reading on secure coding practices
Audience
Developers, Testers
CYBERSECURE CODER (CSC)
21 HoursThis course is designed for professionals such as software developers, testers, and architects who create software across various programming languages and platforms, including desktop, web, cloud, and mobile environments. It aims to strengthen their ability to deliver high-quality software, with a particular emphasis on security and privacy.
DevOps Security: Creating a DevOps Security Strategy
7 HoursIn this instructor-led, live course in Serbia, participants will learn how to formulate an effective security strategy to address the challenges posed by DevOps security.