Course Outline
A01:2025 – Broken Access Control
Access control mechanisms enforce policies to ensure users cannot act beyond their intended permissions. Failures in this area typically result in unauthorized information disclosure, modification, or destruction of data, or the execution of business functions outside of a user's authorized scope.
Practical Aspects
-
Practical examples of broken access controls
-
Secure access controls and best practices
A02:2025 – Security Misconfiguration
Security misconfiguration occurs when a system, application, or cloud service is incorrectly set up from a security perspective, thereby creating vulnerabilities.
Practical Aspects
-
Real-world examples of misconfigurations
-
Steps to prevent misconfiguration, including configuration management and automation tools
A03:2025 – Software Supply Chain Failures
Software supply chain failures refer to breakdowns or compromises in the process of building, distributing, or updating software. These are frequently caused by vulnerabilities or malicious alterations in third-party code, tools, or other dependencies that the system relies upon.
A04:2025 – Cryptographic Failures
In general, all data in transit should be encrypted at the transport layer (OSI layer 4). Previous hurdles, such as CPU performance and private key/certificate management, are now mitigated by CPUs featuring instructions designed to accelerate encryption (e.g., AES support) and by the simplification of private key and certificate management through services like LetsEncrypt.org, with major cloud vendors offering even more tightly integrated certificate management services for their specific platforms.
Beyond securing the transport layer, it is crucial to determine which data requires encryption at rest and which data necessitates additional encryption in transit (at the application layer, OSI layer 7).
For instance, passwords, credit card numbers, health records, personal information, and business secrets require enhanced protection, particularly if such data falls under privacy laws, e.g., the EU's General Data Protection Regulation (GDPR), or regulations like the PCI Data Security Standard (PCI DSS).
Practical Aspects
-
Detailed analysis of cryptographic failures, such as weak encryption algorithms or improper key management
-
The importance of strong cryptographic mechanisms, secure protocols (SSL/TLS), and examples of modern cryptography in web security
A05:2025 – Injection
An injection vulnerability is a system flaw that enables an attacker to insert malicious code or commands (such as SQL or shell code) into a program's input fields, thereby tricking the system into executing the code or commands as if they were legitimate system instructions. This can lead to severe consequences.
Practical Aspects
-
A detailed breakdown of SQL, NoSQL, OS, and LDAP injection
-
Mitigation techniques using prepared statements, parameterized queries, and input escaping
A06:2025 – Insecure Design
Insecure design is a broad category representing various weaknesses, characterized as “missing or ineffective control design.”
Insecure design is not the root source of all other Top Ten risk categories. It is important to note the distinction between insecure design and insecure implementation. We differentiate between design flaws and implementation defects because they have different root causes, occur at different stages of the development process, and require different remediation approaches.
A secure design may still contain implementation defects that lead to exploitable vulnerabilities. Conversely, an insecure design cannot be resolved by perfect implementation, as the necessary security controls were never created to defend against specific attacks.
A key factor contributing to insecure design is the lack of business risk profiling inherent in the software or system being developed, leading to a failure to determine the required level of security design.
Practical Aspects
-
We will explore design flaws that can lead to vulnerabilities, such as improper input validation
-
We will study strategies for secure architecture and secure design principles
A07:2025 – Authentication Failures
This vulnerability exists when an attacker successfully tricks a system into recognizing an invalid or incorrect user as legitimate.
Practical Aspects
-
Common authentication issues
-
Secure authentication strategies, including multi-factor authentication and proper session handling
A08:2025 – Software or Data Integrity Failures
Software and data integrity failures pertain to code and infrastructure that fails to protect against invalid or untrusted code or data being treated as trusted and valid.
An example of this is an application relying on plugins, libraries, or modules from untrusted sources, repositories, or content delivery networks (CDNs).
An insecure CI/CD pipeline that lacks software integrity checks can introduce potential unauthorized access, insecure or malicious code, or system compromise.
Another example is a CI/CD pipeline that pulls code or artifacts from untrusted locations and/or fails to verify them before use (by checking signatures or similar mechanisms).
Practical Aspects
-
Focus on issues such as untrusted software updates and data tampering
-
Safe update mechanisms and data integrity checks
A09:2025 – Security Logging and Alerting Failures
Without logging and monitoring, attacks and breaches remain undetected, and without alerting, it becomes very difficult to respond quickly and effectively during a security incident.
Insufficient logging, continuous monitoring, detection, and alerting prevent the initiation of active responses at any time.
Practical Aspects
-
The importance of logging security-relevant information and monitoring for suspicious activities
-
Tools and practices for proper logging and real-time monitoring to detect breaches early
A10:2025 – Mishandling of Exceptional Conditions
Mishandling exceptional conditions in software occurs when programs fail to prevent, detect, and respond to unusual and unpredictable situations, leading to crashes, unexpected behavior, and potential vulnerabilities.
This can involve one or more of the following three failings:
-
The application does not prevent an unusual situation from occurring
-
The application does not identify the situation as it is happening
-
The application responds poorly or not at all to the situation afterwards
SAST – Static Application Security Testing
-
Understanding static analysis and when to run it in the SDLC (shift left)
-
Types of vulnerabilities detectable through SAST, comparing vulnerable code vs secure code
-
Overview of SAST tools (e.g., Semgrep, SonarQube, Checkmarx, depending on client stack)
-
Practical exercise: run a SAST scan on a repository with deliberately introduced vulnerabilities, interpret results, and triage false positives vs real vulnerabilities
DAST – Dynamic Application Security Testing
-
Differences between SAST and DAST, including black-box testing on the running application
-
The DAST scan flow, covering crawling, fuzzing, and response analysis
-
Overview of DAST tools (e.g., OWASP ZAP, Burp Suite)
-
Practical exercise: run a DAST scan on a vulnerable test application (e.g., OWASP Juice Shop), identify and validate the findings
SCA – Software Composition Analysis
-
Risks associated with third-party dependencies and libraries, including inherited vulnerabilities
-
SBOM, Software Bill of Materials: what it is and why it matters
-
Overview of SCA tools (e.g., Dependency Check, Snyk, GitHub Dependabot)
-
Practical exercise: run an SCA scan on a real project, identify vulnerable dependencies, and build a remediation plan (update, patch, mitigate)
Requirements
Participants are expected to possess the following:
- Fundamental knowledge of software development principles
- A basic comprehension of web applications and prevalent web technologies
- Familiarity with the Software Development Lifecycle (SDLC)
- A basic understanding of source code and software dependencies
- Basic knowledge of security concepts is advantageous, though not required
Target Audience
- Software Developers
- Software Engineers
- QA and Software Test Engineers
- DevOps and DevSecOps Engineers
- Application Security Professionals
- Security Engineers
- Software Architects
- Technical Leads
- Professionals engaged in secure software development and application security testing
Testimonials (3)
Experience sharing, it's teacher's know-how and valuable.
Carey Fan - Logitech
Course - C/C++ Secure Coding
get to understand more about the product and some key differences between RHDS and open source OpenLDAP.
Jackie Xie - Westpac Banking Corporation
Course - 389 Directory Server for Administrators
the knowledge of the trainer was very high - he knew what he was talking about, and knew the answers to our questions