Course Outline
A01:2025 – Broken Access Control
Proper access control ensures that users operate strictly within their assigned permissions. When this fails, it can result in unauthorized data disclosure, alteration, or destruction, as well as the execution of business functions beyond the user’s authorized scope.
Practical Aspects
-
Real-world examples of broken access control
-
Implementing secure access controls and adhering to best practices
A02:2025 – Security Misconfiguration
Security misconfigurations occur when systems, applications, or cloud services are set up in a way that introduces vulnerabilities, typically due to incorrect security settings.
Practical Aspects
-
Case studies of real-world misconfigurations
-
Strategies to prevent misconfigurations, utilizing configuration management and automation tools
A03:2025 – Software Supply Chain Failures
These failures represent compromises in the software build, distribution, or update processes. They frequently stem from vulnerabilities or malicious alterations in third-party code, tools, or other dependencies upon which the system relies.
A04:2025 – Cryptographic Failures
Generally, all data in transit should be encrypted at the transport layer (OSI layer 4). Challenges such as CPU performance and key management have been mitigated by modern processors supporting accelerated encryption (e.g., AES) and by services like LetsEncrypt.org that simplify certificate management. Cloud providers also offer tightly integrated certificate services for their respective platforms.
Beyond transport-layer security, it is crucial to identify data requiring encryption at rest and data needing additional application-layer (OSI layer 7) encryption.
For instance, sensitive data such as passwords, credit card numbers, health records, and personal information require enhanced protection, particularly when subject to privacy laws like the EU’s General Data Protection Regulation (GDPR) or standards like PCI Data Security Standard (PCI DSS).
Practical Aspects
-
Analyzing cryptographic failures, including weak encryption algorithms and improper key management
-
The role of robust cryptographic mechanisms, secure protocols (SSL/TLS), and modern cryptography in web security
A05:2025 – Injection
Injection vulnerabilities allow attackers to insert malicious code or commands (such as SQL or shell commands) into input fields, deceiving the system into executing them as legitimate instructions. This can have severe consequences.
Practical Aspects
-
In-depth analysis of SQL, NoSQL, OS, and LDAP injection
-
Applying mitigation techniques such as 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 other Top Ten categories. It is important to differentiate between insecure design and insecure implementation, as they have different root causes, occur at different stages of development, and require different remediation strategies.
A secure design can still suffer from implementation defects that create exploitable vulnerabilities. Conversely, an insecure design cannot be resolved through perfect implementation because the necessary security controls were never established to defend against specific attacks.
A contributing factor to insecure design is often the lack of business risk profiling, leading to an inadequate determination of the required security level.
Practical Aspects
-
Exploring design flaws, such as improper input validation, that lead to vulnerabilities
-
Examining secure architecture strategies and design principles
A07:2025 – Authentication Failures
This vulnerability exists when an attacker successfully tricks a system into accepting an invalid or incorrect user as legitimate.
Practical Aspects
-
Identifying common authentication issues
-
Implementing secure authentication strategies, including multi-factor authentication and proper session management
A08:2025 – Software or Data Integrity Failures
These failures involve code and infrastructure that fails to prevent invalid or untrusted code and data from being treated as trusted and valid.
For example, this occurs when an application relies on plugins, libraries, or modules from untrusted sources, repositories, or content delivery networks (CDNs).
A CI/CD pipeline lacking software integrity checks can introduce risks such as unauthorized access, malicious code injection, or system compromise.
Another instance is when a CI/CD pipeline retrieves code or artifacts from untrusted locations or fails to verify them (e.g., via signature checking) before use.
Practical Aspects
-
Addressing issues like untrusted software updates and data tampering
-
Implementing safe update mechanisms and data integrity verification
A09:2025 – Security Logging and Alerting Failures
Without adequate logging and monitoring, attacks and breaches go undetected. Furthermore, without alerting, responding quickly and effectively to security incidents becomes extremely difficult.
Deficiencies in logging, continuous monitoring, detection, and alerting can occur at any time.
Practical Aspects
-
The importance of logging security-relevant data and monitoring for suspicious activities
-
Utilizing tools and practices for proper logging and real-time monitoring to detect breaches early
A10:2025 – Mishandling of Exceptional Conditions
This occurs when software fails to prevent, detect, or respond to unusual or unpredictable situations, potentially leading to crashes, unexpected behavior, or vulnerabilities.
This can involve one or more of the following deficiencies:
-
The application does not prevent the unusual situation from occurring
-
The application fails to identify the situation as it happens
-
The application responds poorly or not at all to the situation
SAST – Static Application Security Testing
-
Understanding static analysis and its optimal placement in the SDLC (shift left)
-
Identifying types of vulnerabilities detectable via SAST, comparing vulnerable and secure code
-
Overview of SAST tools (e.g., Semgrep, SonarQube, Checkmarx, tailored to client stack)
-
Hands-on exercise: Execute a SAST scan on a repository with intentionally introduced vulnerabilities, interpret the results, and triage false positives versus real vulnerabilities
DAST – Dynamic Application Security Testing
-
Distinguishing SAST from DAST, focusing on black-box testing of running applications
-
The DAST scan workflow: crawling, fuzzing, and response analysis
-
Overview of DAST tools (e.g., OWASP ZAP, Burp Suite)
-
Hands-on exercise: Perform a DAST scan on a vulnerable test application (e.g., OWASP Juice Shop) to identify and validate findings
SCA – Software Composition Analysis
-
Assessing the risks of 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: Conduct an SCA scan on a real project, identify vulnerable dependencies, and develop a remediation plan (update, patch, mitigate)
Requirements
Participants are expected to have:
- Foundational knowledge of software development concepts
- A basic understanding of web applications and common web technologies
- Familiarity with the Software Development Lifecycle (SDLC)
- A fundamental grasp of source code and software dependencies
- Basic security knowledge is 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