Course Outline
A01:2025 – Broken Access Control
Effective access control enforces policies that prevent users from performing actions beyond their intended permissions. When these controls fail, the result is often unauthorized disclosure, modification, or destruction of data, or the execution of business functions outside a user's authorized scope.
Practical Aspects
-
Reviewing real-world examples of broken access controls
-
Implementing secure access control mechanisms and adhering to best practices
A02:2025 – Security Misconfiguration
Security misconfiguration occurs when systems, applications, or cloud services are not set up correctly from a security standpoint, inadvertently creating exploitable vulnerabilities.
Practical Aspects
-
Analyzing real-world instances of misconfigurations
-
Preventing misconfigurations through robust configuration management and automation tools
A03:2025 – Software Supply Chain Failures
Supply chain failures refer to compromises or breakdowns in the software building, distribution, or update processes. These issues frequently stem from vulnerabilities or malicious alterations in third-party code, tools, or dependencies relied upon by the system.
A04:2025 – Cryptographic Failures
In general, all data in transit should be encrypted at the transport layer (OSI layer 4). Historically, challenges such as CPU performance and private key management were significant hurdles. Today, these are largely mitigated by modern CPUs with instructions for accelerating encryption (e.g., AES support) and simplified key management via services like LetsEncrypt.org, alongside tightly integrated certificate management solutions offered by major cloud providers.
Beyond securing the transport layer, it is crucial to determine which data requires encryption at rest and which needs additional encryption in transit at the application layer (OSI layer 7).
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 the PCI Data Security Standard (PCI DSS).
Practical Aspects
-
In-depth analysis of cryptographic failures, including weak algorithms and improper key management
-
Discussing the importance of strong cryptographic mechanisms, secure protocols (SSL/TLS), and modern cryptography in web security
A05:2025 – Injection
An injection vulnerability is a flaw that allows attackers 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 part of the program. 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 representing various weaknesses, typically described as missing or ineffective control design.
It is distinct from other Top Ten risks. There is a clear difference between insecure design and insecure implementation. We distinguish 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 resolved by perfect implementation, as the necessary security controls were never designed to defend against specific attacks.
A key contributor to insecure design is the lack of business risk profiling during software or system development, leading to an inability to determine the appropriate level of security design required.
Practical Aspects
-
Exploring design flaws that lead to vulnerabilities, such as improper input validation
-
Studying strategies for secure architecture and secure design principles
A07:2025 – Authentication Failures
Authentication failures occur when a system is tricked into recognizing an invalid or unauthorized 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
Software and data integrity failures involve code or infrastructure that fails to protect against invalid or untrusted code and data being treated as trusted and valid.
A common example is when an application relies 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 pipeline that pulls code or artifacts from untrusted locations and does not verify them before use (e.g., by checking signatures).
Practical Aspects
-
Focusing on issues like untrusted software updates and data tampering
-
Implementing safe update mechanisms and data integrity checks
A09:2025 – Security Logging and Alerting Failures
Without adequate logging and monitoring, attacks and breaches go undetected. Furthermore, without effective alerting, rapid and effective response during security incidents becomes extremely difficult.
Insufficient logging, continuous monitoring, detection, and alerting hinder the ability to initiate active responses.
Practical Aspects
-
Highlighting the importance of logging security-relevant information 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
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 typically involves one or more of the following failures:
-
The application does not prevent an unusual situation from occurring
-
The application fails to identify the situation as it happens
-
The application responds poorly or not at all after the situation occurs
SAST – Static Application Security Testing
-
Understanding static analysis and its role in shifting left within the SDLC
-
Types of vulnerabilities detectable via SAST, comparing vulnerable code with secure code
-
Overview of SAST tools (e.g., Semgrep, SonarQube, Checkmarx, depending on the client stack)
-
Hands-on exercise: running a SAST scan on a repository with intentionally introduced vulnerabilities, interpreting results, and triaging false positives from real vulnerabilities
DAST – Dynamic Application Security Testing
-
Distinguishing between SAST and DAST, focusing on black-box testing of running applications
-
The DAST scanning workflow, including crawling, fuzzing, and response analysis
-
Overview of DAST tools (e.g., OWASP ZAP, Burp Suite)
-
Hands-on exercise: running a DAST scan on a vulnerable test application (e.g., OWASP Juice Shop), identifying and validating findings
SCA – Software Composition Analysis
-
The risks associated with third-party dependencies and libraries, and inherited vulnerabilities
-
Understanding SBOM (Software Bill of Materials), its definition, and its importance
-
Overview of SCA tools (e.g., Dependency Check, Snyk, GitHub Dependabot)
-
Hands-on exercise: running an SCA scan on a real project, identifying vulnerable dependencies, and building a remediation plan (update, patch, mitigate)
Requirements
To get the most out of this course, participants are expected to have:
- A foundational grasp of software development principles
- A basic understanding of web applications and standard web technologies
- Acquaintance with the Software Development Lifecycle (SDLC)
- A fundamental understanding of source code structures and software dependencies
- Basic knowledge of security concepts is advantageous, though 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