The DevSecOps lesson closed with an uncomfortable idea: no pipeline replaces the judgment of whoever writes the code and approves the pull requests. A SAST scanner detects a known pattern, but it is a developer who decides to validate an input, who recognizes that a price must not come from the client, who writes a test for a threat from the threat model. Security, ultimately, is produced by people. That is why the human factor is not an add-on to the security program: it is its foundation. In this lesson we design BazarNube's training and awareness program, with security champions, secure coding training, and gamification, and we frame it within SAMM's Education & Guidance practice.
Contents
- Why the human factor is decisive
- Secure coding training for developers
- Security champions: distributed security
- Gamification: learning by attacking (Juice Shop, CTFs)
- General awareness and phishing awareness
- Metrics for an awareness program
- BazarNube's awareness program
- Common mistakes and tips
- Exercises
- Conclusion
Why the human factor is decisive
Most Top Ten vulnerabilities are born of a human decision: concatenating SQL instead of parameterizing, forgetting an authorization check, trusting a piece of client data. Tools help catch patterns, but not every decision is a detectable pattern. A business-logic or design flaw (A04) is rarely found by a scanner; it is avoided by a developer who has learned to think like an attacker.
Moreover, awareness is what makes the rest of the program work. A DevSecOps pipeline with gates assumes a team that understands why they exist and does not sabotage them; a threat model assumes people capable of imagining threats. Without culture, tools become obstacles that people learn to dodge.
Secure coding training for developers
Generic "security awareness" training (do not click strange links) is necessary for everyone, but insufficient for those who build software. Developers need secure coding: learning to write code that resists attacks, with examples in their own stack.
Characteristics of effective secure coding training:
- Stack-specific: examples in React, Node/Express, and Java/Spring—what the team actually uses—not generic slides.
- Based on the Top Ten and ASVS: it teaches how to prevent the real risks and meet verifiable requirements.
- Hands-on, not just theoretical: you learn by fixing vulnerable code, not by listening.
- Continuous: an annual session is forgotten; better to have frequent bite-sized sessions tied to real backlog findings.
- Contextual (just-in-time): the best moment to teach about injection is when SAST flags one in that person's PR.
A good source of content is the OWASP Cheat Sheets (concise guides by topic) and the WSTG, which we will see cataloged in 07-05.
Security champions: distributed security
A central security team never scales to dozens of development teams. The solution promoted by both OWASP and SAMM is security champions: developers within each team who take on an additional role as a security point of reference.
A security champion:
- Is not a full-time security expert, but a developer with interest and a bit of extra training.
- Is the bridge between their team and the central security team.
- Helps review PRs with a security focus, facilitates threat modeling for their team (recall who reviewed the checkout model in 07-02), and triages the pipeline findings.
- Spreads the culture from within, with the credibility of a peer.
| Aspect | Central security team | Security champion |
|---|---|---|
| Dedication | Full-time | Part-time, within their team |
| Knowledge | Deep in security | Deep in their product, basic-to-intermediate in security |
| Scalability | Limited | High (one per team) |
| Role | Defines, enables, trains | Applies, reviews, spreads |
The champions program is one of the highest-return investments for raising maturity, precisely because it scales the culture.
Gamification: learning by attacking (Juice Shop, CTFs)
You learn far more by breaking a system than by reading about how it is broken. Gamification turns learning into an attractive challenge:
- OWASP Juice Shop: a deliberately vulnerable, modern web application (JavaScript), with dozens of challenges that cover the entire Top Ten. The learner exploits real vulnerabilities in a safe environment and earns points. Ideal for internal workshops.
- CTF (Capture The Flag): competitions where teams solve security challenges to capture "flags." They foster collaborative learning and healthy competition.
- Vulnerable environments: WebGoat (also from OWASP), DVWA, and similar, to practice specific techniques.
Gamification has an extra cultural benefit: by stepping into the attacker's shoes, the developer internalizes why the defenses they used to see as bureaucracy matter.
General awareness and phishing awareness
Beyond those who program, the whole organization handles information and access. General awareness covers everyone, including non-technical roles (product, sales, leadership):
- Basic hygiene: password management, MFA, locking devices, not reusing credentials.
- Phishing awareness: phishing remains one of the main entry vectors. At a high level, a program includes training on how to recognize suspicious emails and controlled phishing simulations to measure and improve. The simulation should be used to educate, never to punish or shame: a punitive culture makes people hide mistakes instead of reporting them.
- Easy reporting: a clear, frictionless channel to flag something suspicious; reporting should be easy and well received.
Metrics for an awareness program
What is not measured cannot be improved. A serious program defines metrics, avoiding purely vanity ones (hours of training) in favor of those that reflect behavior change and risk reduction.
| Metric | What it indicates | Type |
|---|---|---|
| % of developers trained in secure coding | Training coverage | Activity |
| No. of active security champions / teams | Reach of the distributed program | Coverage |
| Trend of vulnerabilities by category | Are the same flaws being reintroduced? | Outcome |
| Click rate in phishing simulations | Real resistance to phishing | Outcome |
| Phishing report rate and time | Active reporting culture | Outcome |
| Mean time to fix findings | Does the team prioritize security? | Outcome |
Outcome metrics (are the real flaws going down?) are worth more than activity metrics (how much training did we give?). The ultimate goal is for the trend of reintroduced vulnerabilities to decline over time.
BazarNube's awareness program
At BazarNube, security was de facto handled by Lucía in her spare time. The program formalizes and distributes that responsibility, explicitly framed within the Education & Guidance practice of SAMM's Governance domain.
Security champions structure:
graph TD
SecCore[Security team: Lucia + SRE]
ChFront[Frontend Champion: Marc]
ChBack[Backend Champion]
ChLegacy[Legacy Java Champion]
SecCore -->|trains and enables| ChFront
SecCore -->|trains and enables| ChBack
SecCore -->|trains and enables| ChLegacy
ChFront -->|spreads within| TeamFront[Frontend Team]
ChBack -->|spreads within| TeamBack[Backend Team]
ChLegacy -->|spreads within| TeamLegacy[Legacy Team]
Training plan (first year):
| Quarter | Activity | Audience | Objective |
|---|---|---|---|
| Q1 | Secure coding onboarding (Top Ten in their stack) | All developers | Common baseline |
| Q1 | Selection and training of champions | 1 per team | Kick off the distributed program |
| Q2 | Hands-on workshop with OWASP Juice Shop | Developers | Learn by attacking |
| Q2 | General awareness + 1st phishing simulation | Whole company | Hygiene and baseline |
| Q3 | Just-in-time sessions tied to pipeline findings | PR author | Contextual learning |
| Q3 | Internal team CTF | Developers + champions | Cohesion and practice |
| Q4 | Metrics review and program adjustment | Security + CTO | Continuous improvement (SAMM) |
The program is not a one-off course but a cycle that feeds back on the metrics and the real findings, raising the maturity level year after year.
Common Mistakes and Tips
- Generic, annual training. A one-hour talk once a year does not change behavior. Prioritize stack-specific, continuous, contextual training (just-in-time on real findings).
- Punitive phishing. Using simulations to single out culprits destroys trust and makes people hide incidents. Use them to educate and to measure the trend, not to punish.
- Champions without time or support. Naming champions and not giving them hours, training, or recognition dooms the program. The role needs explicit backing from leadership.
- Measuring only activity. "We delivered 200 hours of training" does not say whether the team is more secure. Measure outcomes: are reintroduced flaws going down? Is the time to fix improving?
- Tip: tap into curiosity. A Juice Shop workshop where people actually "hack" generates more learning and enthusiasm than ten presentations. Engagement is the best multiplier of training.
Exercises
Exercise 1. BazarNube has a central team of two people and six development teams. Propose a mechanism to scale the security culture without hiring, and explain its logic.
Exercise 2. Classify each metric as activity or outcome and indicate which is more valuable: (a) hours of training delivered, (b) trend of injection vulnerabilities per quarter, (c) click rate in phishing simulations.
Exercise 3. SAST flags a SQL injection in a junior developer's PR. Describe how to seize that moment as a just-in-time training opportunity.
Solutions
Solution 1. A security champions program: one developer per team (six in total) receives extra training and acts as a point of reference and bridge with the central team. The logic is that a central team does not scale to six teams, but it can enable six champions who spread the culture from within, with the credibility of a peer and deep knowledge of their own product. It multiplies the reach without multiplying headcount, and it is the practice SAMM recommends.
Solution 2.
- (a) Activity. (b) Outcome. (c) Outcome.
- The most valuable is (b): it measures whether the training actually reduces the reintroduction of the flaw, which is the ultimate goal. (a) only measures effort, not effect.
Solution 3. Instead of merely rejecting the PR, the security champion or a reviewer comments on the finding explaining why it is vulnerable, links the injection-prevention Cheat Sheet, shows the fix with a parameterized query, and, if appropriate, asks for a test that covers the case. That way the learning happens in the real context, on that person's code and at the moment it is most memorable, rather than in an abstract talk months later.
Conclusion
The human factor is the foundation of the whole program: tools catch patterns, but it is people who make the design decisions and who make gates, threat models, and pipelines work instead of getting in the way. We have designed BazarNube's program with stack-specific secure coding, security champions who scale the culture, gamification with Juice Shop and CTFs, and outcome metrics, all framed within SAMM's Education & Guidance practice. Throughout these lessons, many tools and resources have appeared by name. In the module's final lesson, 07-05, we bring them together in an overview organized by category and define the recommended security stack for BazarNube, thus closing the best practices before we move on to putting them into play.
OWASP Course: Guidelines and Standards for Web Application Security
Module 1: Introduction to OWASP
Module 2: Main OWASP Projects
- OWASP Top Ten
- OWASP ASVS (Application Security Verification Standard)
- OWASP SAMM (Software Assurance Maturity Model)
- OWASP ZAP (Zed Attack Proxy)
- Other Key Projects: WSTG, Cheat Sheets and Dependency-Check
Module 3: OWASP Top Ten 2021 in Depth
- A01:2021 – Broken Access Control
- A02:2021 – Cryptographic Failures and Sensitive Data Exposure
- A03:2021 – Injection
- Cross-Site Scripting (XSS) in Depth
- A04:2021 – Insecure Design
- A05:2021 – Security Misconfiguration
- XML External Entities (XXE)
- A06:2021 – Vulnerable and Outdated Components
- A07:2021 – Identification and Authentication Failures
- A08:2021 – Software and Data Integrity Failures (Insecure Deserialization)
- A09:2021 – Security Logging and Monitoring Failures
- A10:2021 – Server-Side Request Forgery (SSRF)
Module 4: OWASP ASVS (Application Security Verification Standard)
Module 5: OWASP SAMM (Software Assurance Maturity Model)
Module 6: OWASP ZAP (Zed Attack Proxy)
- Introduction to ZAP
- Installation and Configuration
- Vulnerability Scanning
- Automating Security Testing
Module 7: Best Practices and Recommendations
- Secure Software Development Life Cycle (SDLC)
- Threat Modeling
- Integrating Security into DevOps (DevSecOps)
- Security Training and Awareness
- Additional Tools and Resources
Module 8: Practical Exercises and Case Studies
- Exercise 1: Identifying Vulnerabilities
- Exercise 2: Implementing Security Controls
- Case Study 1: Analyzing a Security Incident
- Case Study 2: Improving the Security of a Web Application
