Course Outline
A01:2025 – Broken Access Control
Access control mechanisms enforce policies to ensure users cannot perform actions beyond their authorized permissions. Failures in this area often result in unauthorized data disclosure, modification, or destruction, or the execution of business functions outside intended user boundaries.
Practical Aspects
-
Case studies of broken access control implementations
-
Best practices for establishing secure access controls
A02:2025 – Security Misconfiguration
Security misconfiguration occurs when systems, applications, or cloud services are incorrectly set up from a security standpoint, thereby creating vulnerabilities.
Practical Aspects
-
Real-world instances of security misconfigurations
-
Strategies to prevent misconfiguration, including the use of configuration management and automation tools
A03:2025 – Software Supply Chain Failures
These failures involve disruptions or compromises in the software building, distribution, or update processes. They are frequently driven by vulnerabilities or malicious alterations in third-party code, tools, or other dependencies that the system relies upon.
A04:2025 – Cryptographic Failures
Generally, all data in transit should be encrypted at the transport layer (OSI layer 4). Historical challenges such as CPU performance constraints and complex private key/certificate management have been mitigated by modern CPUs featuring dedicated encryption acceleration instructions (e.g., AES support) and the simplification of key management through services like LetsEncrypt.org, alongside highly integrated certificate management solutions offered by major cloud providers.
Beyond securing the transport layer, it is crucial to identify which data requires encryption at rest and which necessitates additional application-layer encryption (OSI layer 7) during transit.
For instance, sensitive data such as passwords, credit card details, health records, personal information, and business secrets require heightened protection, particularly when subject to privacy laws like the EU’s General Data Protection Regulation (GDPR) or standards such as the PCI Data Security Standard (PCI DSS).
Practical Aspects
-
In-depth analysis of cryptographic failures, including weak algorithms and improper key management
-
The significance of robust cryptographic mechanisms, secure protocols (SSL/TLS), and modern cryptography applications in web security
A05:2025 – Injection
An injection vulnerability is a system flaw that permits attackers to insert malicious code or commands (such as SQL or shell scripts) into input fields, tricking the system into executing them as if they were legitimate system instructions. This can lead to severe consequences.
Practical Aspects
-
Comprehensive breakdown of SQL, NoSQL, OS, and LDAP injection techniques
-
Mitigation strategies utilizing prepared statements, parameterized queries, and input escaping
A06:2025 – Insecure Design
Insecure design is a broad category encompassing various weaknesses characterized by “missing or ineffective control design.”
It is distinct from the source of other Top Ten risk categories. There is a critical difference between insecure design and insecure implementation; design flaws and implementation defects 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 create exploitable vulnerabilities. Conversely, an insecure design cannot be remediated by perfect implementation, as the necessary security controls were never established to defend against specific attacks.
A key contributor to insecure design is the absence of business risk profiling for the software or system under development, leading to a failure to determine the requisite level of security design.
Practical Aspects
-
Exploration of design flaws that lead to vulnerabilities, such as improper input validation
-
Study of secure architecture strategies 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
-
Identification of common authentication issues
-
Secure authentication strategies, including multi-factor authentication and proper session handling
A08:2025 – Software or Data Integrity Failures
These failures relate to code and infrastructure that fails to protect against untrusted or invalid code and data being treated as trusted and valid.
An example is an application relying on plugins, libraries, or modules from untrusted sources, repositories, or content delivery networks (CDNs).
An insecure CI/CD pipeline lacking software integrity checks can introduce risks of unauthorized access, malicious code insertion, or system compromise.
Another instance is a CI/CD pipeline that retrieves code or artifacts from unverified sources and fails to validate them before use (e.g., via signature verification).
Practical Aspects
-
Focus on issues such as untrusted software updates and data tampering
-
Implementation of 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 effective alerting, rapid and efficient incident response becomes nearly impossible.
Gaps in logging, continuous monitoring, detection, and alerting hinder the ability to initiate active responses during security events.
Practical Aspects
-
The importance of logging security-relevant information and monitoring for suspicious activities
-
Tools and practices for effective logging and real-time monitoring to detect breaches early
A10:2025 – Mishandling of Exceptional Conditions
Mishandling exceptional conditions occurs when programs fail to prevent, detect, or respond to unusual and unpredictable situations, potentially leading to crashes, unexpected behavior, and vulnerabilities.
This often involves one or more of the following deficiencies:
-
The application fails to prevent the unusual situation from occurring
-
The application fails to identify the situation as it occurs
-
The application responds inadequately or not at all after the situation has occurred
SAST – Static Application Security Testing
-
Understanding static analysis and its optimal timing within the SDLC (shift-left approach)
-
Types of vulnerabilities detectable via SAST, contrasting vulnerable code with secure code
-
Overview of SAST tools (e.g., Semgrep, SonarQube, Checkmarx, tailored to the client stack)
-
Hands-on exercise: Execute a SAST scan on a repository with introduced vulnerabilities, interpret the results, and triage false positives against real vulnerabilities
DAST – Dynamic Application Security Testing
-
Distinguishing SAST from DAST, focusing on black-box testing of running applications
-
The DAST scanning process, including crawling, fuzzing, and response analysis
-
Overview of DAST tools (e.g., OWASP ZAP, Burp Suite)
-
Hands-on exercise: Run a DAST scan on a vulnerable test application (e.g., OWASP Juice Shop), and identify and validate the findings
SCA – Software Composition Analysis
-
Risks associated with third-party dependencies and libraries, including inherited vulnerabilities
-
Understanding SBOM (Software Bill of Materials) and its significance
-
Overview of SCA tools (e.g., Dependency Check, Snyk, GitHub Dependabot)
-
Hands-on exercise: Perform an SCA scan on a real project, identify vulnerable dependencies, and develop a remediation plan (update, patch, or mitigate)
Requirements
Participants are expected to have:
- A foundational grasp of software development concepts
- Basic knowledge of web applications and standard web technologies
- Familiarity with the Software Development Lifecycle (SDLC)
- An elementary understanding of source code and software dependencies
- Basic security concepts are advantageous but 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