Course Outline
A01:2025 – Broken Access Control
Access control mechanisms ensure that users operate strictly within their authorized permissions. Failures in this area typically result in unauthorized disclosure, modification, or destruction of data, or the execution of business functions beyond a user's intended scope.
Practical Aspects
-
Real-world examples of broken access controls
-
Implementing secure access controls and adhering to best practices
A02:2025 – Security Misconfiguration
Security misconfiguration occurs when a system, application, or cloud service is incorrectly set up from a security standpoint, thereby creating exploitable vulnerabilities.
Practical Aspects
-
Analysis of real-world misconfiguration scenarios
-
Strategies to prevent misconfigurations, including the use of configuration management and automation tools
A03:2025 – Software Supply Chain Failures
Software supply chain failures refer to compromises or breakdowns in the software build, distribution, or update processes. These are often triggered by 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 challenges such as CPU performance constraints and complex private key/certificate management have been mitigated by modern CPUs featuring instructions for accelerated encryption (e.g., AES support) and simplified management services like LetsEncrypt.org, with major cloud providers offering even more integrated certificate management solutions.
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 demand enhanced protection, particularly when subject to privacy regulations such as 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 significance of robust 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 input fields, deceiving the system into executing them as if they were legitimate system components. This can lead to severe consequences.
Practical Aspects
-
Detailed examination of SQL, NoSQL, OS, and LDAP injection vectors
-
Mitigation techniques employing prepared statements, parameterized queries, and input escaping
A06:2025 – Insecure Design
Insecure design is a broad category encompassing various weaknesses characterized as "missing or ineffective control design."
It is important to distinguish insecure design from other Top Ten risk categories. There is a fundamental difference between insecure design and insecure implementation; they are differentiated due to distinct root causes, their occurrence at different stages of the development process, and the different remediation approaches required.
A secure design may still contain implementation defects that lead to exploitable vulnerabilities. Conversely, an insecure design cannot be rectified by perfect implementation, as the necessary security controls were never designed to defend against specific attacks in the first place.
A contributing factor 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 appropriate level of security design required.
Practical Aspects
-
Exploration of design flaws that can lead to vulnerabilities, such as improper input validation
-
Study of 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 a legitimate entity.
Practical Aspects
-
Common authentication issues and pitfalls
-
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 fails to protect against invalid or untrusted code or data being treated as trusted and valid.
An example includes 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 risks of unauthorized access, insecure or malicious code, or system compromise.
Another example is a CI/CD process that pulls code or artifacts from unverified sources and/or fails to validate them before use (e.g., by checking signatures or similar mechanisms).
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 adequate logging and monitoring, attacks and breaches go undetected, and without effective alerting, it is extremely difficult to respond quickly and effectively during a security incident.
Insufficient logging, continuous monitoring, detection, and alerting to trigger active responses are critical gaps that must be addressed.
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, or respond to unusual and unpredictable situations, leading to crashes, unexpected behavior, and potential vulnerabilities.
This can involve one or more of the following shortcomings:
-
The application fails to prevent an unusual situation from occurring
-
The application does not identify the situation while it is happening
-
The application responds poorly or not at all after the situation occurs
SAST – Static Application Security Testing
-
Understanding static analysis and its optimal timing within the SDLC (shift-left approach)
-
Types of vulnerabilities detectable via SAST, comparing vulnerable code versus secure code
-
Overview of SAST tools (e.g., Semgrep, SonarQube, Checkmarx, tailored to the client's stack)
-
Practical exercise: executing a SAST scan on a repository with deliberately introduced vulnerabilities, interpreting results, and triaging false positives against real vulnerabilities
DAST – Dynamic Application Security Testing
-
Differentiating between SAST and DAST, focusing on black-box testing of the running application
-
The DAST scan workflow, including crawling, fuzzing, and response analysis
-
Overview of DAST tools (e.g., OWASP ZAP, Burp Suite)
-
Practical exercise: running a DAST scan on a vulnerable test application (e.g., OWASP Juice Shop) to identify and validate findings
SCA – Software Composition Analysis
-
Assessing the risk of 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: performing an SCA scan on a real project to identify vulnerable dependencies and develop a remediation plan (update, patch, mitigate)
Requirements
Participants are expected to possess the following qualifications:
- Fundamental understanding of software development concepts
- Basic grasp of web applications and common web technologies
- Knowledge of the Software Development Lifecycle (SDLC)
- Basic comprehension of source code and software dependencies
- Foundational 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