Course Outline
A01:2025 – Broken Access Control
Access control mechanisms are designed to enforce policies that prevent users from acting beyond their intended permissions. Failures in this area typically result in unauthorized information disclosure, data modification or destruction, or the execution of business functions outside of user privileges.
Practical Aspects
-
Practical examples illustrating broken access controls
-
Strategies for implementing secure access controls and adhering to best practices
A02:2025 – Security Misconfiguration
Security misconfiguration occurs when systems, applications, or cloud services are improperly set up from a security perspective, inadvertently creating vulnerabilities.
Practical Aspects
-
Real-world examples of common misconfigurations
-
Proactive steps to prevent misconfiguration, including the use of configuration management and automation tools
A03:2025 – Software Supply Chain Failures
Software supply chain failures refer to breakdowns or compromises in the software building, distribution, or update processes. These issues often stem from vulnerabilities or malicious alterations in third-party code, tools, or other dependencies upon which the system relies.
A04:2025 – Cryptographic Failures
In general, all data in transit should be encrypted at the transport layer (OSI layer 4). Historical obstacles, such as CPU performance limitations and complex private key/certificate management, have been mitigated by modern CPUs featuring instructions that accelerate encryption (e.g., AES support) and simplified key management services like LetsEncrypt.org, along with tightly integrated certificate management services provided by major cloud vendors.
Securing the transport layer is essential, but it is equally important to determine which data requires encryption at rest and which data necessitates additional encryption during transit at the application layer (OSI layer 7).
Sensitive information such as passwords, credit card numbers, health records, personal data, and business secrets requires enhanced protection, particularly when subject to privacy laws like the EU's General Data Protection Regulation (GDPR) or standards like the PCI Data Security Standard (PCI DSS).
Practical Aspects
-
In-depth analysis of cryptographic failures, including weak encryption algorithms and improper key management
-
The importance of robust cryptographic mechanisms, secure protocols (SSL/TLS), and examples of modern cryptography in web security
A05:2025 – Injection
Injection vulnerabilities are system flaws that allow attackers to insert malicious code or commands (such as SQL or shell code) into input fields, tricking the system into executing them as if they were legitimate part of the system. This can lead to severe consequences.
Practical Aspects
-
A detailed 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 representing various weaknesses, often characterized as "missing or ineffective control design."
It is important to distinguish insecure design from the root causes of other Top Ten risk categories. There is a distinct difference between insecure design and insecure implementation; they differ in root cause, timing within the development process, and required remediation.
A secure design may still suffer from implementation defects that lead to exploitable vulnerabilities. Conversely, an insecure design cannot be remedied by perfect implementation because the necessary security controls to defend against specific attacks were never originally created.
A key factor contributing to insecure design is the lack of business risk profiling during software development, leading to a failure to determine the appropriate level of security design required.
Practical Aspects
-
Exploration of design flaws that lead to vulnerabilities, such as improper input validation
-
Study of strategies for secure architecture and secure design principles
A07:2025 – Authentication Failures
Authentication failures occur 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
Software and data integrity failures involve code and infrastructure that fail to protect against invalid or untrusted code and data being treated as trusted and valid.
This often manifests when applications rely 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 risks of unauthorized access, injection of 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 their integrity (e.g., via signature checking) before use.
Practical Aspects
-
Focus on issues such as untrusted software updates and data tampering
-
Implementation of safe update mechanisms and robust data integrity checks
A09:2025 – Security Logging and Alerting Failures
Without adequate logging and monitoring, attacks and breaches remain undetected. Furthermore, without effective alerting, rapid and effective response during security incidents becomes extremely difficult.
Insufficient logging, continuous monitoring, detection, and alerting capabilities hinder the initiation of active responses when necessary.
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 occurs when software fails to prevent, detect, or respond to unusual and unpredictable situations, leading to crashes, unexpected behavior, or potential vulnerabilities.
This issue typically involves one or more of the following failures:
-
The application fails to prevent an unusual situation from occurring
-
The application fails to identify the situation as it is happening
-
The application responds poorly or not at all after the situation occurs
SAST – Static Application Security Testing
-
Understanding static analysis and the optimal timing for its execution within the SDLC (shift left approach)
-
Types of vulnerabilities detectable via SAST, comparing vulnerable code with secure code
-
Overview of SAST tools (e.g., Semgrep, SonarQube, Checkmarx, tailored to the client's technology stack)
-
Practical exercise: Run a SAST scan on a repository with intentionally introduced vulnerabilities, interpret the results, and triage false positives from real vulnerabilities
DAST – Dynamic Application Security Testing
-
Differences between SAST and DAST, focusing on black-box testing of running applications
-
The DAST scan workflow, including 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), 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), its definition, and its significance
-
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 develop a remediation plan (update, patch, or mitigate)
Requirements
Participants are expected to possess the following foundational knowledge:
- Fundamental understanding of software development concepts
- Basic knowledge of web applications and common web technologies
- Familiarity with the Software Development Lifecycle (SDLC)
- Basic comprehension of source code structure and software dependencies
- General knowledge of security concepts is advantageous but not a strict requirement
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