Course Outline
A01:2025 – Broken Access Control
Access control ensures that users operate strictly within their intended permissions. Failures in this area can result in unauthorized disclosure, modification, or destruction of data, as well as the execution of business functions beyond a user's authorized scope.
Practical Aspects
-
Real-world examples 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 improperly set up from a security standpoint, creating exploitable vulnerabilities.
Practical Aspects
-
Case studies of common misconfigurations
-
Strategies to prevent misconfiguration, including the use of configuration management and automation tools
A03:2025 – Software Supply Chain Failures
Supply chain failures refer to compromises or breakdowns in the processes of building, distributing, or updating software. These issues often stem from vulnerabilities or malicious modifications 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 challenges such as CPU performance and private key/certificate management have been mitigated by modern CPU instructions designed to accelerate encryption (e.g., AES support) and the simplification of key and certificate management through services like LetsEncrypt.org, alongside integrated certificate management solutions provided by major cloud vendors.
Beyond securing the transport layer, it is crucial to determine which data requires encryption at rest and which data needs additional encryption during transmission (at the application layer, OSI layer 7).
For instance, passwords, credit card numbers, health records, personal information, and business secrets require enhanced protection, particularly when subject to privacy laws such as the EU’s General Data Protection Regulation (GDPR) or regulations 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
An injection vulnerability is a systemic flaw that enables an attacker to inject malicious code or commands (such as SQL or shell code) into input fields, tricking the system into executing them as if they were legitimate parts of the application. This can have severe consequences.
Practical Aspects
-
Detailed examination of SQL, NoSQL, OS, and LDAP injection techniques
-
Mitigation strategies using 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.”
While not the sole source of all Top Ten risk categories, it is distinct from 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.
Even a secure design can suffer from implementation defects that lead to exploitable vulnerabilities. Conversely, an insecure design cannot be remediated by perfect implementation if the necessary security controls were never established to defend against specific threats.
A key contributor to insecure design is the lack of business risk profiling during the software or system development phase, leading to an inadequate determination of the required security design level.
Practical Aspects
-
Exploring design flaws that can lead to vulnerabilities, such as improper input validation
-
Studying strategies for secure architecture and core secure design principles
A07:2025 – Authentication Failures
This vulnerability exists when an attacker can deceive a system into recognizing an invalid or incorrect user as legitimate.
Practical Aspects
-
Common issues in authentication mechanisms
-
Secure authentication strategies, including multi-factor authentication and proper session management
A08:2025 – Software or Data Integrity Failures
Software and data integrity failures occur when code or infrastructure fails to prevent invalid or untrusted code and data from being treated as trusted and valid.
An example includes applications that 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, malicious code injection, or system compromise.
Another example is a CI/CD pipeline that retrieves code or artifacts from untrusted locations without verifying them (e.g., checking signatures) before use.
Practical Aspects
-
Focus on issues such as untrusted software updates and data tampering
-
Implementing safe update mechanisms and data integrity verification
A09:2025 – Security Logging and Alerting Failures
Without proper logging and monitoring, attacks and breaches remain undetected. Furthermore, without effective alerting, rapid and effective response to security incidents becomes extremely difficult.
Gaps in logging, continuous monitoring, detection, and alerting can hinder the initiation of active response measures.
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 of exceptional conditions occurs when programs fail to prevent, detect, or respond to unusual and unpredictable situations, leading to crashes, unexpected behavior, or security vulnerabilities.
This typically involves one or more of the following failures:
-
The application fails to prevent unusual situations from occurring
-
The application fails to identify the situation as it happens
-
The application responds poorly or not at all to the situation after it occurs
SAST – Static Application Security Testing
-
Understanding static analysis and its optimal timing in 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: Performing a SAST scan on a repository with intentionally introduced vulnerabilities, interpreting the results, and triaging false positives against real vulnerabilities
DAST – Dynamic Application Security Testing
-
Differences between SAST and 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)
-
Practical exercise: Executing a DAST scan on a vulnerable test application (e.g., OWASP Juice Shop), identifying findings, and validating them
SCA – Software Composition Analysis
-
Risks associated with third-party dependencies and libraries, including inherited vulnerabilities
-
SBOM (Software Bill of Materials): definition and importance
-
Overview of SCA tools (e.g., Dependency Check, Snyk, GitHub Dependabot)
-
Practical exercise: Running an SCA scan on a real project, identifying vulnerable dependencies, and developing a remediation plan (updating, patching, or mitigating)
Requirements
Participants are expected to have the following background:
- Fundamental knowledge of software development concepts
- A basic grasp of web applications and common web technologies
- Familiarity with the Software Development Lifecycle (SDLC)
- Basic comprehension of source code and software dependencies
- Prior knowledge of security concepts 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