Ja coneixem la graella de SAMM: 5 funcions, 15 pràctiques i 2 fluxos per pràctica. Ara toca mesurar. L'avaluació de maduresa és el cor de SAMM: converteix una intuïció ("crec que estem fluixos en proves de seguretat") en una dada comparable ("Security Testing està en maduresa 1"). En aquesta lliçó expliquem què signifiquen els nivells 0 a 3, com es fa una autoavaluació pràctica a pràctica mitjançant preguntes, com es construeix un scorecard i com interpretar-lo. I ho apliquem: farem l'autoavaluació real de BazarNube amb el seu scorecard complet, que serà la línia base per al roadmap de la propera lliçó.
Contingut
- Els nivells de maduresa: de 0 a 3
- Com es puntua: fluxos, preguntes i respostes
- El procés d'autoavaluació pas a pas
- Anatomia d'un scorecard
- Autoavaluació de BazarNube: scorecard complet
- Interpretar els resultats
Els nivells de maduresa: de 0 a 3
Cada pràctica de SAMM se situa en una escala comuna de quatre graons. La idea és la mateixa per a les 15 pràctiques: descriu quant i com de bé es fa alguna cosa, no si està "bé" o "malament".
| Nivell | Nom orientatiu | Què significa |
|---|---|---|
| 0 | Inexistent | La pràctica no es realitza, o és purament reactiva i casual |
| 1 | Inicial / ad hoc | Es fa de manera bàsica, sense consistència; depèn de persones concretes |
| 2 | Estructurat | Es fa de manera definida, documentada i consistent a tota l'organització |
| 3 | Optimitzat | Es mesura, es millora amb dades i està integrat com a part natural de la feina |
Claus per no equivocar-se en puntuar:
- Els nivells són acumulatius: per estar en 2 cal complir el d'1; per estar en 3, el de 2.
- L'escala mesura cobertura i consistència, no esforç. Fer alguna cosa heroica una vegada continua sent nivell 1.
- SAMM admet puntuacions fraccionàries (p. ex. 1.5) quan una pràctica es compleix parcialment o només en alguns equips. És normal i útil.
- L'objectiu no és arribar a 3 en tot. El nivell desitjable depèn del risc del negoci (ho veurem a 05-04).
Com es puntua: fluxos, preguntes i respostes
SAMM aporta un toolbox (un full de càlcul oficial) amb preguntes d'avaluació per a cada pràctica. Cada pràctica té dos fluxos, i cada flux s'explora amb preguntes la resposta de les quals es gradua. El resultat de les respostes determina el nivell de la pràctica.
Les respostes solen seguir una escala tipus:
- No (no es fa) → aporta 0.
- Sí, parcialment / per a alguns equips → aporta un valor intermedi.
- Sí, per a la majoria → aporta més.
- Sí, plenament i de manera consistent → aporta el màxim.
Exemple de preguntes per a la pràctica Education & Guidance (Governance):
| Flux | Pregunta d'avaluació | Resposta BazarNube |
|---|---|---|
| A (Formació) | Els desenvolupadors reben formació en seguretat en incorporar-se? | No, només puntualment |
| A (Formació) | La formació es repeteix i es manté actualitzada? | No |
| B (Cultura) | Existeixen referents de seguretat (champions) per equip? | No |
| B (Cultura) | La seguretat es tracta en les cerimònies de l'equip? | De vegades, informalment |
Amb respostes majoritàriament "No" o "de vegades", aquesta pràctica se situa en maduresa 0-1. La lògica és la mateixa per a les 15 pràctiques: es responen les preguntes dels seus dos fluxos i se'n deriva el nivell.
El procés d'autoavaluació pas a pas
Una autoavaluació SAMM ben feta segueix aquests passos:
graph TD A[Definir abast i equips] --> B[Triar facilitador] B --> C[Recollir evidencies per practica] C --> D[Entrevistar cada owner] D --> E[Respondre preguntes per flux] E --> F[Assignar nivell 0 a 3 per practica] F --> G[Consolidar en un scorecard]
- Definir l'abast: quina part de l'organització s'avalua (a BazarNube, tota la unitat de producte).
- Triar facilitador: algú que dirigeix i manté la neutralitat (el rol AppSec).
- Recollir evidències: no puntuar de memòria; buscar proves (pipelines, polítiques, tickets, actes).
- Entrevistar els owners: cada funció té el seu responsable (05-02); se li pregunta sobre les seves pràctiques.
- Respondre les preguntes de cada flux amb honestedat.
- Assignar el nivell de cada pràctica (0-3, admetent fraccions).
- Consolidar tot en un scorecard.
Regla d'or: avaluar amb evidències, no amb optimisme. Si ningú no pot mostrar la política, la política no existeix a efectes de maduresa.
Anatomia d'un scorecard
L'scorecard és el lliurable de l'avaluació: una taula amb les 15 pràctiques, el seu nivell actual i (més tard) el seu objectiu. Sol afegir una columna d'evidència i una altra de comentari. El seu valor és doble: dona una foto executiva i serveix de línia base per mesurar progrés en la següent avaluació.
Un scorecard mínim té aquestes columnes:
- Funció i Pràctica: la fila que s'avalua.
- Nivell actual (0-3): el resultat de l'autoavaluació.
- Evidència: en què es basa la puntuació.
- Objectiu i Bretxa: s'emplenen en planificar (05-04).
Autoavaluació de BazarNube: scorecard complet
Apliquem tot l'anterior. Després d'entrevistar la Lucía (Design/Implementation), l'SRE (Operations), el CTO (Governance) i amb l'AppSec facilitant Verification, aquest és l'scorecard de línia base de BazarNube (nivell actual, escala 0-3):
| Funció | Pràctica | Nivell | Evidència / justificació |
|---|---|---|---|
| Governance | Strategy & Metrics | 1 | Hi ha intenció i una mica de pressupost, però sense mètriques ni pla formal |
| Policy & Compliance | 1 | Es coneix el GDPR; no hi ha estàndards interns escrits ni gestió de compliment | |
| Education & Guidance | 0 | Formació en seguretat només puntual; sense champions ni pla | |
| Design | Threat Assessment | 1 | Es va fer un threat model del checkout una vegada; no és sistemàtic |
| Security Requirements | 2 | Després del mòdul 4 es fan servir requisits ASVS com a criteris d'acceptació | |
| Security Architecture | 1 | Bones decisions puntuals; sense patrons ni gestió de tecnologia formal | |
| Implementation | Secure Build | 1 | Build en CI, però dependències sense control sistemàtic (npm i Maven) |
| Secure Deployment | 1 | Desplegament amb Docker; secrets encara en variables d'entorn sense gestor | |
| Defect Management | 1 | Els bugs de seguretat s'anoten com a tickets normals, sense mètriques | |
| Verification | Architecture Assessment | 0 | No hi ha revisió formal d'arquitectura enfront d'objectius de seguretat |
| Requirements-driven Testing | 2 | Tests de seguretat sobre requisits ASVS (herència del mòdul 4) | |
| Security Testing | 1 | SAST/SCA parcials en CI; sense baseline complet ni pentest recurrent | |
| Operations | Incident Management | 1 | Hi ha alertes i un canal de guàrdia; sense pla de resposta escrit |
| Environment Management | 1 | Es pedaça, però el legacy Java/Spring va per darrere; hardening informal | |
| Operational Management | 1 | Còpies de seguretat i control de dades bàsics; sense gestió formal de dades ni del legat |
Puntuació mitjana per funció (mitjana simple de les seves tres pràctiques):
| Funció | Mitjana |
|---|---|
| Governance | 0.7 |
| Design | 1.3 |
| Implementation | 1.0 |
| Verification | 1.0 |
| Operations | 1.0 |
Interpretar els resultats
Els números només valen si es llegeixen bé. De l'scorecard de BazarNube s'extreu:
- Governance és el punt més feble (0.7), arrossegat per Education & Guidance en 0. Té sentit: BazarNube ha invertit a verificar el producte (mòdul 4) però no en govern ni cultura. És una bretxa típica d'equips que comencen pel tècnic.
- Design destaca (1.3) gràcies a Security Requirements en 2, herència directa del treball amb ASVS. Veuràs que les dues pràctiques més madures (Security Requirements i Requirements-driven Testing, totes dues en 2) són precisament les que va tocar el mòdul 4. Coherència del fil: verificar l'app va pujar aquestes dues pràctiques, però va deixar la resta plana; just el que anticipàvem a 05-01.
- Verification és desigual: forta en proves dirigides per requisits (2) però amb Architecture Assessment en 0. Es prova el que es va demanar, però no es revisa el disseny.
- Operations és homogènia en 1: es fan les coses, però de manera informal i reactiva, amb el legacy com a llast.
Lectures transversals útils:
- Un 2 aïllat no salva una funció: Design té una pràctica en 2 i dues en 1; la mitjana enganya si no es mira el detall.
- Els zeros són prioritat d'atenció, no necessàriament el primer a arreglar: cal creuar-los amb el risc (05-04).
- Comparar contra un mateix, no contra un ideal: el valor d'aquest scorecard apareixerà en reavaluar d'aquí a sis mesos i veure la tendència.
Important: un scorecard no és una nota d'aprovat/suspès. És un punt de partida honest. I BazarNube ara el té.
Errors Comuns i Consells
- Puntuar de memòria o amb optimisme. Sense evidència, la pràctica no compta. Un scorecard inflat és pitjor que un de baix però real.
- Confondre "ho vam fer una vegada" amb nivell 2. Un acte heroic i puntual és nivell 1; el 2 exigeix consistència i documentació.
- Oblidar que els nivells són acumulatius. No es pot reclamar 3 si no es compleix el d'1 i 2.
- Mirar només la mitjana per funció. Amaga pràctiques en 0. Cal llegir pràctica a pràctica.
- Tractar la nota com un judici. SAMM mesura per millorar; el número existeix per comparar-lo amb si mateix en el temps.
- Consell: fes servir el toolbox oficial de SAMM (el full de càlcul amb les preguntes). Estalvia discussions i fa l'avaluació repetible entre semestres.
Exercicis
Exercici 1. Classifica cada situació en el seu nivell de maduresa (0, 1, 2 o 3): (a) "Cada equip revisa dependències com vol, alguns no ho fan". (b) "No existeix cap procés de gestió d'incidents". (c) "Hi ha un procediment de resposta a incidents documentat, provat i amb mètriques que es revisen cada trimestre". (d) "Tots els equips segueixen el mateix estàndard documentat de revisió de codi".
Exercici 2. A l'scorecard de BazarNube, Education & Guidance està en 0 i Security Requirements en 2. Explica per què aquesta diferència és coherent amb el que BazarNube ha fet en els mòduls anteriors.
Exercici 3. Tria una pràctica de BazarNube que estigui en nivell 1 i redacta una pregunta d'avaluació la resposta de la qual ajudaria a decidir si podria pujar a 2. Indica quina resposta correspondria a un 2.
Solucions
Solució 1. (a) Nivell 1: es fa de manera inconsistent i depèn de cada equip. (b) Nivell 0: la pràctica no existeix. (c) Nivell 3: documentat, provat i mesurat amb revisió periòdica. (d) Nivell 2: consistent i documentat a tota l'organització, però sense la part de mesura/optimització que caracteritza el 3.
Solució 2. BazarNube va dedicar el mòdul 4 a verificar el producte amb ASVS, convertint requisits de seguretat en criteris d'acceptació: això va madurar Security Requirements fins a 2. Però mai va invertir en govern ni cultura: no hi ha pla de formació ni champions, així que Education & Guidance continua en 0. És la bretxa esperada d'un equip que comença pel tècnic i encara no ha madurat l'organització, exactament la motivació d'adoptar SAMM.
Solució 3. Exemple amb Secure Build (nivell 1): pregunta — "S'executa una anàlisi de dependències (SCA) de manera automàtica i obligatòria en el pipeline de tots els serveis, tant npm com Maven?". Un 2 correspondria a "Sí, en tots els serveis de manera consistent i documentada"; un "només en alguns" o "manual" continuaria sent 1.
Conclusió
Ja sabem mesurar: els nivells 0 a 3 descriuen cobertura i consistència, l'autoavaluació es fa amb preguntes per flux i evidències, i l'scorecard consolida la foto. La línia base de BazarNube revela un patró clar: forta on va tocar l'ASVS (requisits i proves dirigides en 2), feble en govern i cultura (Education & Guidance en 0), i homogèniament inicial en operacions. Però una foto no millora res per si sola. A l'última lliçó del mòdul farem el pas que dona sentit a tot: fixar un objectiu de maduresa, construir un roadmap per iteracions que porti BazarNube d'aquesta línia base al seu objectiu, prioritzar les millores per risc i establir el cicle de reavaluació que converteix SAMM en millora contínua.
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
