Fins aquí, l'equip de BazarNube ha adoptat els quatre projectes flagship d'OWASP: el Top Ten (quins riscos), ASVS (què verificar), SAMM (com madurar) i ZAP (com provar en execució). Però en repassar el backlog, apareixen preguntes pràctiques que aquests quatre no resolen del tot. "Com provem manualment i a fons cada endpoint?" (Marc). "Quan ZAP troba un XSS, on miro el remei exacte i ben explicat?" (Lucía). "I qui ens avisa que una llibreria que fem servir té un CVE nou?" (la SRE). "On practiquem sense trencar res real?" (tots). OWASP té un projecte per a cadascuna d'aquestes preguntes. En aquesta lliçó presentem aquests altres projectes clau que completen la caixa d'eines.
És l'última lliçó del mòdul panoràmic: aquí ampliem la caixa i aprenem a combinar projectes segons la feina a fer.
Contingut
- WSTG: la guia per provar a fons
- Cheat Sheet Series: les xuletes de remediació
- Dependency-Check i l'anàlisi de dependències (SCA)
- Juice Shop: practicar sense trencar res real
- Taula resum: quin projecte faig servir per a què
- Com combinaria BazarNube diversos projectes
- WSTG: la guia per provar a fons
L'OWASP Web Security Testing Guide (WSTG) és una guia metodològica i exhaustiva per provar la seguretat d'aplicacions web. On el Top Ten diu "existeix el risc d'injecció", la WSTG diu "així es prova, pas a pas, si la teva aplicació és vulnerable a injecció".
Trets clau:
- És una metodologia de testing: descriu què provar, en quin ordre i com, agrupat per àrees (gestió de sessions, autenticació, validació d'entrada, lògica de negoci...).
- Cada prova té un identificador i explica objectiu, tècnica i què buscar. És la referència de capçalera dels pentesters.
- Complementa ZAP: ZAP automatitza molt, però la prova manual guiada per la WSTG troba fallades (sobretot de lògica de negoci) que cap automatització no detecta.
Per a BazarNube, la WSTG és el manual de camp quan Marc vol provar manualment el flux de checkout o la lògica de cupons, més enllà del que ZAP cobreix.
- Cheat Sheet Series: les xuletes de remediació
L'OWASP Cheat Sheet Series és una col·lecció de guies concises i pràctiques ("xuletes") sobre com defensar-se de riscos concrets. Si el Top Ten conscienia i la WSTG t'ajuda a trobar la fallada, les Cheat Sheets et diuen com arreglar-la bé.
Trets clau:
- Cada xuleta tracta un tema (prevenció de XSS, d'injecció SQL, emmagatzematge de contrasenyes, gestió de sessions, capçaleres de seguretat...) de manera directa i accionable, amb recomanacions concretes.
- Estan escrites per a desenvolupadors: van al gra amb el "fes això, no facis allò".
- Són el complement natural del Top Ten: quan etiquetes una troballa com A03, la Cheat Sheet corresponent et dona el patró de solució.
Per a BazarNube, quan ZAP reporta el SQL injection a /api/cercar (etiquetat A03), Lucía obre la Cheat Sheet de prevenció d'injecció SQL i aplica el patró recomanat (consultes parametritzades). És el pont entre "vaig detectar el problema" i "el vaig resoldre correctament".
- Dependency-Check i l'anàlisi de dependències (SCA)
A la lliçó 02-04 vam veure que existeix una família d'eines SCA (Software Composition Analysis) que analitzen les dependències de tercers. OWASP té la seva pròpia eina lliure per a això: OWASP Dependency-Check.
Per què importa tant? Una aplicació moderna és majoritàriament codi aliè: BazarNube arrossega centenars de paquets npm a l'API React/Node i desenes de llibreries Java al mòdul legacy. Si qualsevol d'elles té una vulnerabilitat coneguda (un CVE), l'aplicació l'hereta encara que el teu propi codi sigui impecable. Això és exactament la categoria A06 (Components vulnerables i desactualitzats) del Top Ten.
Què fa Dependency-Check, a grans trets:
graph LR
DEP[Manifestos del projecte<br/>package.json, pom.xml] --> DC[OWASP Dependency-Check]
BD[Bases de dades de<br/>vulnerabilitats conegudes / CVE] --> DC
DC --> INF[Informe: quines dependencies<br/>tenen CVEs i la seva gravetat]
- Llegeix els manifestos de dependències del projecte (
package.json,pom.xml, etc.). - Els creua amb bases de dades de vulnerabilitats conegudes (CVEs públics).
- Genera un informe amb quins components són vulnerables, la gravetat i a quina versió actualitzar.
Per a BazarNube, integrar Dependency-Check al pipeline significa rebre una alerta automàtica cada cop que una de les seves dependències resulta afectada per un CVE nou, atacant directament el risc A06 sense revisió manual.
- Juice Shop: practicar sense trencar res real
Tot l'anterior s'ha de practicar, però provar tècniques d'atac contra l'aplicació real de BazarNube (o qualsevol sistema aliè) és perillós i il·legal. La solució d'OWASP és Juice Shop: una aplicació web deliberadament vulnerable, moderna i realista (una botiga en línia, molt afí a BazarNube), creada per atacar-la i aprendre.
- Conté desenes de vulnerabilitats intencionades que cobreixen el Top Ten i més.
- És un camp de tir segur i legal: pots llançar ZAP, provar payloads i seguir la WSTG sense conseqüències.
- És ideal per formar l'equip (domini Governance de SAMM: formació i conscienciació) i per practicar abans de tocar l'entorn real.
Per a BazarNube, Juice Shop és on Marc i Lucía aprenen a fer servir ZAP i a reconèixer vulnerabilitats abans d'aplicar-ho a la seva pròpia API. Es fa servir al mòdul 8 (exercicis i casos).
- Taula resum: quin projecte faig servir per a què
Aquesta és la síntesi de tot el mòdul 2. Davant d'una necessitat concreta, quina eina OWASP agafes?
| Necessito... | Projecte OWASP | Tipus | Mòdul dedicat |
|---|---|---|---|
| Saber quins riscos prioritzar | Top Ten | Conscienciació | M3 |
| Verificar requisits de seguretat | ASVS | Estàndard de verificació | M4 |
| Mesurar la maduresa de la meva organització | SAMM | Model de maduresa | M5 |
| Provar l'app en execució (DAST) | ZAP | Eina (escàner dinàmic) | M6 |
| Una metodologia de testing exhaustiva | WSTG | Guia de testing | (referència; M6/M7) |
| Saber com remeiar una fallada concreta | Cheat Sheet Series | Guies de remediació | (referència transversal) |
| Detectar dependències vulnerables (SCA) | Dependency-Check | Eina (SCA) | (M7, DevSecOps) |
| Un entorn segur per practicar | Juice Shop | App vulnerable d'entrenament | M8 |
Observa el patró que estructura tota la caixa:
- Documents/marcs (Top Ten, ASVS, SAMM, WSTG, Cheat Sheets): et diuen què fer i com pensar.
- Eines executables (ZAP, Dependency-Check, Juice Shop): fan o et deixen practicar.
- I totes parlen el mateix idioma: les categories del Top Ten (A01–A10) són el fil que connecta una troballa de ZAP, un requisit d'ASVS, una xuleta de remediació i una pràctica de SAMM.
- Com combinaria BazarNube diversos projectes
La clau no és triar una eina, sinó orquestrar-les. Així encaixaria un flux realista de BazarNube, combinant gairebé tots els projectes del mòdul:
graph TD
TT[Top Ten<br/>marc de riscos i etiquetes] --> BACK[Backlog de troballes]
ASVS[ASVS<br/>requisits a verificar] --> BACK
DC[Dependency-Check<br/>dependencies vulnerables A06] --> BACK
ZAP[ZAP<br/>escaneig dinamic] --> BACK
WSTG[WSTG<br/>proves manuals de logica] --> BACK
BACK --> CS[Cheat Sheets<br/>com remeiar cada troballa]
CS --> FIX[Correccio aplicada]
FIX --> SAMM[SAMM<br/>puja la maduresa de Verification]
JS[Juice Shop] -.-> FORMA[Formacio previa de l'equip]
FORMA -.-> ZAP
Narrat com ho viuria l'equip:
- Formació: Marc i Lucía practiquen a Juice Shop per aprendre a atacar i a fer servir ZAP sense risc.
- Verificació estructurada: revisen l'app contra la checklist ASVS L2, etiquetant cada incompliment amb la seva categoria Top Ten.
- Detecció automàtica: ZAP escaneja l'API en execució i Dependency-Check revisa les dependències (A06); tots dos bolquen troballes al backlog.
- Proves manuals: amb la WSTG, proven a fons la lògica de negoci (checkout, cupons) que l'automatització no cobreix.
- Remediació: per a cada troballa, consulten la Cheat Sheet corresponent i apliquen el patró de solució correcte.
- Maduresa: el mer fet que tot això sigui sistemàtic fa pujar la pràctica de Verification de SAMM i dona a direcció una foto objectiva del progrés.
El resultat: els projectes OWASP no són vuit eines soltes, sinó un sistema integrat on el Top Ten és el llenguatge comú, ASVS el criteri, SAMM el termòmetre, i ZAP/Dependency-Check/WSTG/Cheat Sheets/Juice Shop les mans que executen.
Errors Comuns i Consells
- Buscar "la millor eina". No existeix: cada projecte resol una necessitat diferent. La pregunta correcta no és "quina faig servir?", sinó "per a què la necessito ara?".
- Oblidar les dependències. Molts equips asseguren el seu codi a consciència i descuiden les llibreries de tercers, que són la major part del programari. Sense SCA (Dependency-Check), el risc A06 queda cec.
- Automatitzar-ho tot i renunciar a la prova manual. ZAP no veu la lògica de negoci; la WSTG guia la prova manual que sí que la veu. Totes dues són necessàries.
- Practicar tècniques d'atac contra sistemes reals o aliens. És perillós i il·legal. Per a això hi ha Juice Shop: un entorn dissenyat per ser atacat.
- Consell: interioritza que les categories del Top Ten són el pegament de tota la caixa. Si etiquetes cada troballa amb el seu A0x, tota la resta (ASVS, Cheat Sheets, informes de ZAP) encaixa sol.
Exercicis
Exercici 1. Associa cada necessitat de BazarNube amb el projecte OWASP més adequat: (a) "vull una guia pas a pas per provar manualment la lògica del carret"; (b) "ZAP va marcar un XSS i necessito el patró de remediació correcte"; (c) "vull saber si alguna llibreria npm té un CVE"; (d) "necessito un entorn perquè l'equip practiqui atacs sense risc".
Exercici 2. Explica en 3–4 línies per què Dependency-Check (SCA) és imprescindible encara que BazarNube faci revisions de codi molt rigoroses del seu propi codi.
Exercici 3. Dissenya, en 5–6 passos, un flux de treball que combini almenys quatre projectes OWASP del mòdul per portar una troballa des de la seva detecció fins a la seva correcció verificada, indicant què aporta cadascun.
Solucions
Solució 1. (a) WSTG (metodologia de testing pas a pas, ideal per a lògica de negoci); (b) Cheat Sheet Series (guies de remediació concretes); (c) Dependency-Check (SCA sobre dependències i CVEs, risc A06); (d) Juice Shop (aplicació deliberadament vulnerable per practicar).
Solució 2. Perquè la major part del programari que executa BazarNube no és codi propi, sinó centenars de dependències de tercers. Una revisió impecable del codi propi no detecta una vulnerabilitat coneguda (CVE) en una llibreria npm o Java que l'aplicació hereta. Dependency-Check creua automàticament aquestes dependències amb bases de dades de vulnerabilitats i avisa, cobrint el risc A06 que la revisió manual de codi propi deixa cec.
Solució 3. Un flux possible: (1) Juice Shop — l'equip es forma practicant atacs sense risc; (2) ASVS — es revisa l'app contra la checklist L2 i apareix un requisit de control d'accés com a "REVISAR"; (3) ZAP — un escaneig dinàmic confirma un IDOR a /api/comandes/:id, que es bolca al backlog etiquetat com a A01 (Top Ten); (4) Cheat Sheet Series — es consulta la xuleta de control d'accés/autorització per aplicar el patró correcte (verificar propietat del recurs al servidor); (5) es corregeix el codi; (6) es reescaneja amb ZAP per verificar que la troballa desapareix i es marca el requisit ASVS com a COMPLEIX, cosa que al seu torn puja la pràctica de Verification de SAMM. Aportacions: Top Ten (llenguatge/priorització), ASVS (criteri verificable), ZAP (detecció i verificació), Cheat Sheets (remediació), SAMM (maduresa), Juice Shop (formació).
Conclusió
Has completat la caixa d'eines d'OWASP. Més enllà dels quatre flagship (Top Ten, ASVS, SAMM, ZAP), coneixes ara WSTG (metodologia de testing exhaustiva), la Cheat Sheet Series (remediació accionable), Dependency-Check (SCA per al risc A06 de components vulnerables) i Juice Shop (entorn segur per practicar). I, el més important, has après a combinar-los: no són peces soltes, sinó un sistema integrat on les categories del Top Ten actuen de llenguatge comú que connecta detecció, verificació, remediació i maduresa.
Amb això tanquem el mòdul 2: BazarNube ja té triada la seva caixa d'eines i sap per a què serveix cadascuna. Però conèixer-les per damunt no basta; toca empunyar la primera i a fons. Al mòdul 3 ens submergim en l'OWASP Top Ten 2021 en profunditat, recorrent una a una les categories A01 a A10 (més XSS i XXE): què són exactament, com es veuen en el codi de BazarNube i com es remeien. El vocabulari que avui només hem anomenat es convertirà, categoria a categoria, en coneixement operatiu.
Curs d'OWASP: Directrius i Estàndards per a la Seguretat en Aplicacions Web
Mòdul 1: Introducció a OWASP
Mòdul 2: Principals Projectes d'OWASP
- OWASP Top Ten
- OWASP ASVS (Application Security Verification Standard)
- OWASP SAMM (Software Assurance Maturity Model)
- OWASP ZAP (Zed Attack Proxy)
- Altres Projectes Clau: WSTG, Cheat Sheets i Dependency-Check
Mòdul 3: OWASP Top Ten 2021 en Profunditat
- A01:2021 – Pèrdua de Control d'Accés
- A02:2021 – Errors Criptogràfics i Exposició de Dades Sensibles
- A03:2021 – Injecció
- Cross-Site Scripting (XSS) en Profunditat
- A04:2021 – Disseny Insegur
- A05:2021 – Configuració de Seguretat Incorrecta
- Entitats Externes XML (XXE)
- A06:2021 – Components Vulnerables i Desactualitzats
- A07:2021 – Errors d'Identificació i Autenticació
- A08:2021 – Errors d'Integritat de Programari i Dades (Deserialització Insegura)
- A09:2021 – Errors de Registre i Monitorització
- A10:2021 – Server-Side Request Forgery (SSRF)
Mòdul 4: OWASP ASVS (Application Security Verification Standard)
Mòdul 5: OWASP SAMM (Software Assurance Maturity Model)
Mòdul 6: OWASP ZAP (Zed Attack Proxy)
- Introducció a ZAP
- Instal·lació i Configuració
- Escaneig de Vulnerabilitats
- Automatització de Proves de Seguretat
Mòdul 7: Bones Pràctiques i Recomanacions
- Cicle de Vida de Desenvolupament Segur (SDLC)
- Modelatge d'Amenaces (Threat Modeling)
- Integració de Seguretat en DevOps (DevSecOps)
- Formació i Conscienciació en Seguretat
- Eines i Recursos Addicionals
Mòdul 8: Exercicis Pràctics i Casos d'Estudi
- Exercici 1: Identificació de Vulnerabilitats
- Exercici 2: Implementació de Controls de Seguretat
- Cas d'Estudi 1: Anàlisi d'un Incident de Seguretat
- Cas d'Estudi 2: Millora de la Seguretat en una Aplicació Web
