L'incident de la lliçó anterior va ser el punt d'inflexió. BazarNube va entendre, de la manera més cara, que apagar focs un a un no és una estratègia de seguretat: mentre un IDOR causava una fuita, seguien vives la SQLi del cercador, el SSRF d'importació i una configuració sense capçaleres. Aquest cas d'estudi final narra la transformació: com BazarNube passa d'un estat inicial insegur i reactiu a un de madur i proactiu, aplicant de manera integrada tot el que hem recorregut al curs —Top Ten remediat, ASVS com a requisits verificables, SAMM com a full de ruta, ZAP al pipeline, threat modeling al disseny i DevSecOps com a pegament—. No és una lliçó de conceptes nous, sinó la síntesi de tots: el moment en què les peces deixen d'estudiar-se per separat i funcionen com un programa. En ser l'última lliçó del mòdul pràctic, tanca també l'arc de BazarNube i prepara l'avaluació final del mòdul 9.
Contingut
- El punt de partida: BazarNube en estat insegur
- L'estratègia: de reactiu a proactiu amb SAMM
- El roadmap de transformació per fases
- Mètriques de millora: abans i després
- La foto final: el programa de seguretat de BazarNube
- Errors comuns i consells
- Exercicis
- Conclusió
El punt de partida: BazarNube en estat insegur
Abans de la transformació, la situació de BazarNube era la de tantes aplicacions que creixen ràpid sense seguretat incorporada. Un diagnòstic honest:
| Àrea | Estat inicial |
|---|---|
| Vulnerabilitats | Backlog BZN-xxx amb múltiples fallades Top Ten sense corregir (A01, A02, A03, A05, A10) |
| Requisits | Cap de formal de seguretat; "que funcioni" era l'únic criteri |
| Disseny | Sense threat modeling; decisions de seguretat improvisades |
| Proves | Cap escaneig automatitzat; alguna revisió manual esporàdica |
| Pipeline | CI/CD sense cap control de seguretat (sense SAST, SCA ni DAST) |
| Detecció | Logs sense correlació; sense alertes d'anomalies |
| Cultura | Seguretat vista com a fre; sense formació ni champions |
| Maduresa SAMM | Nivell 0–1 en gairebé tots els dominis |
Aquest estat no és una caricatura: és el que va fer possible l'incident de 08-03. La transformació consisteix a pujar cadascuna d'aquestes files de manera ordenada i sostenible.
L'estratègia: de reactiu a proactiu amb SAMM
L'error hauria estat llançar-se a "arreglar-ho tot" sense ordre. BazarNube va usar OWASP SAMM (mòdul 5) com a brúixola: primer una avaluació de maduresa per saber on era, després un objectiu realista a 12 mesos, i un full de ruta de millora incremental per dominis. La idea rectora, ja vista a 05-04, és que la maduresa es construeix per nivells, no per salts heroics.
graph LR
A[Avaluacio SAMM inicial] --> B[Definir objectiu a 12 mesos]
B --> C[Roadmap per fases]
C --> D[Executar i integrar al S-SDLC]
D --> E[Reavaluar i ajustar]
E --> C
L'objectiu no va ser "nivell 3 en tot" (irreal i probablement innecessari), sinó un nivell 2 consistent en els dominis crítics, alineat amb la decisió de 07-05 d'apuntar a ASVS L2, el nivell adequat per a una aplicació que manega pagaments. Coherència entre estàndards: SAMM diu com de madur és el programa, ASVS diu què ha de complir el producte.
El roadmap de transformació per fases
La transformació es va organitzar en tres fases trimestrals, cadascuna construint sobre l'anterior.
Fase 1 — Aturar l'hemorràgia (mesos 1-3)
Prioritat: eliminar el risc crític existent i guanyar visibilitat.
- Remediar les troballes crítiques i altes del backlog (
BZN-134,BZN-101,BZN-140,BZN-131...) amb els controls de 08-02. - Introduir la monitorització d'anomalies que va faltar a l'incident (03-11): alertes de taxa per usuari.
- Posar ZAP en mode baseline al pipeline (06-04) per no introduir regressions noves.
- Quick win cultural: un taller de secure coding (07-04) amb l'equip, usant el mateix incident com a cas.
Fase 2 — Construir el procés (mesos 4-8)
Prioritat: que la seguretat deixi de dependre d'herois i passi a ser part del flux.
- Integrar l'stack DevSecOps complet (07-03, 07-05): gitleaks, Semgrep (SAST), Dependency-Check (SCA), trivy, amb gates definits.
- Adoptar ASVS L2 com a catàleg de requisits verificables; cada història sensible du els seus requisits com a criteris d'acceptació (M4).
- Introduir threat modeling (07-02) al disseny de tota funcionalitat nova amb dades o diners, començant pel checkout.
- Nomenar Security Champions per equip (07-04) per escalar el coneixement.
Fase 3 — Madurar i mesurar (mesos 9-12)
Prioritat: consolidar, mesurar i millorar de manera contínua.
- ZAP autenticat/full-scan nocturn contra staging (06-04), amb troballes al backlog ja mapejades.
- Mètriques de seguretat en un panell: temps de remediació, cobertura d'escaneig, troballes per severitat.
- Reavaluació SAMM per confirmar el pas a nivell 2 i fixar l'objectiu de l'any següent.
- Programa de formació continu i participació a la comunitat OWASP (07-05).
Mètriques de millora: abans i després
La transformació només és creïble si es mesura. Aquestes són les mètriques que BazarNube va seguir, amb valors il·lustratius de l'abans i el després dels dotze mesos:
| Mètrica | Abans | Després | Per què millora |
|---|---|---|---|
| Vulnerabilitats crítiques/altes obertes | 9+ | 0 | Remediació sistemàtica (08-02) |
| Cobertura d'escaneig automatitzat | 0% | 100% del pipeline | DevSecOps (07-03) |
| Temps mitjà de remediació (crítiques) | > 90 dies | < 7 dies | Gates i priorització per risc |
| Temps de detecció d'un atac | 12 dies | Minuts | Monitorització d'anomalies (03-11) |
| Requisits ASVS L2 verificats | ~10% | > 85% | ASVS com a criteri d'acceptació (M4) |
| Funcionalitats amb threat model | 0 | Totes les sensibles | Threat modeling al disseny (07-02) |
| Nivell SAMM (mitjana de dominis) | ~0,5 | ~2,0 | Roadmap SAMM (M5) |
| Secrets al repositori | Diversos | 0 (bloquejats a CI) | gitleaks com a gate (07-03) |
El salt més significatiu no és una xifra concreta, sinó el canvi de naturalesa: la seguretat va passar de mesurar-se després del problema (nombre d'incidents) a mesurar-se abans (cobertura, requisits verificats, temps de remediació). Es va passar de comptar incendis a mesurar la prevenció.
Vendre la transformació: seguretat com a inversió
Un programa de seguretat no se sosté només amb bona enginyeria: necessita pressupost i suport de la direcció, i això exigeix parlar l'idioma del negoci. BazarNube va justificar la inversió no apel·lant a la por, sinó comparant el cost de la millora amb el cost de no fer-la, que l'incident de 08-03 havia tornat tangible.
| Argument | En llenguatge de negoci |
|---|---|
| Remediar abans és més barat | Una fallada corregida en disseny costa una fracció d'una corregida després d'un incident (07-01) |
| L'incident va tenir cost real | Notificació legal, hores de resposta, dany reputacional i fuita de clients |
| La prevenció és mesurable | El panell de mètriques mostra el risc baixant trimestre a trimestre |
| El compliment habilita negoci | ASVS L2 i bones pràctiques obren la porta a clients que exigeixen garanties |
La clau està a presentar la seguretat com a reducció d'un risc quantificat, no com una despesa tècnica abstracta. Cada iniciativa del roadmap es va associar a un risc concret del backlog o de l'incident, de manera que la direcció pogués veure què comprava amb cada euro. Aquesta traducció és, sovint, el que separa un programa que sobreviu a la primera retallada d'un que no.
La foto final: el programa de seguretat de BazarNube
Al cap d'un any, totes les peces del curs operen juntes i de manera contínua. Aquesta és l'arquitectura del programa madur, on cada element estudiat ocupa el seu lloc:
graph TB
subgraph Disseny
TM[Threat modeling STRIDE]
REQ[Requisits ASVS L2]
end
subgraph Desenvolupament
SC[Secure coding + Champions]
SAST[SAST Semgrep]
end
subgraph CI_CD
GL[gitleaks]
SCA[Dependency-Check]
TR[trivy]
ZAPB[ZAP baseline]
end
subgraph Produccio
ZAPN[ZAP nocturn]
MON[Monitoritzacio i alertes]
end
subgraph Govern
SAMM[SAMM: millora anual]
MET[Panell de metriques]
end
TM --> REQ --> SC --> SAST
SAST --> GL --> SCA --> TR --> ZAPB --> ZAPN
ZAPN --> MON
MON -.retroalimenta.-> TM
SAMM -.mesura i guia.-> CI_CD
MET -.visibilitza.-> Govern
Fixa't en el bucle: la monitorització de producció retroalimenta el threat modeling (el que passa de veritat ajusta el que imaginem que podia passar), i SAMM mesura el conjunt per guiar la millora de l'any següent. La seguretat ha deixat de ser una fase o un projecte per convertir-se en una propietat contínua del sistema i de l'equip, tal com prometia el tancament del mòdul 6 i consolidava el 7.
Errors Comuns i Consells
- Voler arribar al màxim nivell de cop. Apuntar a "ASVS L3 i SAMM 3 en tot" en un trimestre esgota l'equip i fracassa. La maduresa és incremental; un nivell 2 sòlid supera un nivell 3 sobre el paper.
- Comprar eines sense procés ni propietaris. Un pipeline ple d'escàners sense gates ni responsables genera soroll, no seguretat (07-01, 07-05). Primer el procés i les persones.
- No mesurar. Sense mètriques d'abans i després, la transformació és una opinió. El que no es mesura no es pot millorar ni defensar davant de la direcció.
- Descuidar la cultura. El millor pipeline falla si l'equip veu la seguretat com un fre. Els champions i la formació (07-04) sostenen tota la resta.
- Consell: comença per la fase 1 (aturar l'hemorràgia) encara que el pla complet no estigui tancat. Reduir el risc crític i guanyar visibilitat genera la confiança i el marge per construir la resta sense presses.
Exercicis
Exercici 1. Priorització. BazarNube té recursos per a una sola iniciativa el primer mes: (a) integrar SAST, (b) remediar les 9 troballes crítiques/altes, o (c) formar els champions. Justifica la teva elecció en termes de reducció de risc immediata.
Exercici 2. Mètriques. La direcció demana "una mètrica" per saber si la seguretat millora. Proposa la que triaries, explica què captura i què se t'escapa en reduir-ho tot a un sol número.
Exercici 3. Coherència d'estàndards. Explica amb les teves paraules la diferència de propòsit entre SAMM i ASVS en aquest cas, i per què BazarNube necessita tots dos i no pot substituir l'un per l'altre.
Solucions
Solució 1. L'elecció de major reducció de risc immediata és (b) remediar les 9 troballes crítiques/altes: són vulnerabilitats explotables ara mateix en producció (una ja va causar l'incident de 08-03), així que tancar-les elimina risc real i present. SAST (a) i champions (c) són inversions a prevenir fallades futures, valuosíssimes a mitjà termini, però no redueixen el risc del codi ja desplegat. La seqüència correcta és la del roadmap: primer aturar l'hemorràgia (b), després construir el procés (a) i la cultura (c).
Solució 2. Una bona candidata és el temps mitjà de remediació de vulnerabilitats crítiques/altes: captura alhora que les trobes (hi ha alguna cosa a remediar) i que reacciones ràpid (procés funcionant), i correlaciona bé amb el risc real. El que se t'escapa: no diu quantes vulnerabilitats no estàs detectant (cobertura), ni la qualitat del disseny, ni la cultura. Per això un sol número orienta però no basta; convé acompanyar-lo de cobertura d'escaneig i requisits ASVS verificats. Reduir la seguretat a una mètrica convida a optimitzar aquesta mètrica en lloc de la seguretat.
Solució 3. SAMM mesura i guia la maduresa del programa: com de bé l'organització fa seguretat (processos, activitats, govern) —és una brúixola de millora organitzativa—. ASVS defineix què ha de complir el producte: requisits tècnics verificables sobre l'aplicació concreta —és una llista de verificació de l'artefacte—. BazarNube necessita tots dos perquè responen a preguntes diferents: SAMM diu "estem organitzats per produir programari segur?" i ASVS diu "aquest programari és segur?". Un programa madur (SAMM alt) sense requisits verificats (ASVS) pot tenir bones intencions i productes insegurs; i a l'inrevés, complir ASVS en una app sense un programa al darrere no és sostenible ni es repeteix en la següent. Es complementen, no es substitueixen.
Conclusió
Amb aquest cas d'estudi tanquem el mòdul pràctic i l'arc complet de BazarNube. Hem vist l'aplicació recórrer el camí sencer: d'un backlog ple de vulnerabilitats del Top Ten i un incident evitable, a un programa de seguretat madur on el threat modeling sembra els requisits ASVS, DevSecOps els verifica a cada canvi, ZAP vigila al pipeline i a producció, la monitorització detecta en minuts i SAMM guia la millora contínua any rere any. Aquest és el destí al qual apuntava tot el curs des de la primera lliçó: la seguretat com a propietat contínua del procés i de la cultura, no com una fase ni un heroisme puntual. Has aplicat, sobre un cas concret, cada estàndard i eina d'OWASP que hem estudiat. Ara toca demostrar i consolidar l'après: al mòdul 9, l'últim del curs, abordem l'avaluació final que verifica els teus coneixements i les vies de certificació per acreditar-los professionalment. Hi arribes amb el més important ja aconseguit: no només saber què és cada peça, sinó haver-la utilitzada.
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
