Amb el Top Ten i ASVS, l'equip de BazarNube ja sap quins riscos vigilar i quins requisits verificar en l'aplicació. Però a l'última reunió, la SRE planteja una pregunta que cap d'aquestes dues eines respon: "D'acord, arreglem les troballes d'aquesta versió... però com a organització estem fent les coses perquè això no es repeteixi a la següent? Tenim tan sols un procés, o anem apagant focs?". Aquesta pregunta ja no és sobre una app: és sobre la maduresa de l'organització produint programari segur. L'eina OWASP per a això és SAMM, el Software Assurance Maturity Model. En aquesta lliçó la presentem a alt nivell; el detall —dominis, avaluació, millora contínua— és el contingut del mòdul 5.
Contingut
- Què és SAMM i què mesura
- SAMM davant d'ASVS: organització vs aplicació
- La idea de dominis i nivells de maduresa
- Com mesuraria BazarNube la seva maduresa
- Per què la maduresa importa a una startup
- Què és SAMM i què mesura
L'OWASP SAMM (Software Assurance Maturity Model) és un model de maduresa per al programa de seguretat d'una organització. El seu objectiu no és avaluar si una aplicació és segura, sinó si la forma de treballar de l'empresa produeix programari segur de manera repetible i millorable.
Els seus trets essencials:
- Mesura processos i pràctiques, no codi. Pregunta coses com: hi ha formació en seguretat?, es fa modelatge d'amenaces?, existeix gestió de vulnerabilitats?, qui respon davant d'un incident?
- És un model de maduresa. Ofereix una escala (típicament de 0 a 3) per a cada pràctica, des de "no ho fem" fins a "ho fem de manera optimitzada i mesurada".
- Serveix per fer una foto i traçar un full de ruta. No es tracta d'"aprovar", sinó de saber on ets i cap a on millorar, pas a pas.
- És agnòstic de tecnologia i mida. Val per a una startup de cinc persones o per a una multinacional; cadascuna interpreta els nivells segons la seva realitat.
La paraula que resumeix SAMM és maduresa: no "és segura aquesta app?", sinó "està l'organització madura per produir apps segures de manera sostinguda?".
- SAMM davant d'ASVS: organització vs aplicació
Aquest és el matís que més costa al principi: SAMM i ASVS sonen semblants però mesuren coses de plans totalment diferents. ASVS mira cap a dins de l'aplicació; SAMM mira cap a l'organització que la construeix.
| Aspecte | OWASP ASVS | OWASP SAMM |
|---|---|---|
| Què avalua | Una aplicació concreta | El programa de seguretat de l'organització |
| Pregunta | Compleix l'app aquests requisits? | És madura la nostra forma de treballar? |
| Unitat | Requisits verificables | Pràctiques de seguretat i el seu nivell de maduresa |
| Escala | Nivells L1–L3 (exigència) | Nivells de maduresa 0–3 (per pràctica) |
| Resultat | "L'app compleix L2" | "La nostra maduresa mitjana és 1,5" |
| Horitzó | Estat d'un producte | Evolució del procés en el temps |
| S'aprofundeix a | Mòdul 4 | Mòdul 5 |
graph TD
ORG[Organitzacio BazarNube] -->|SAMM mesura el proces| PROC[Practiques i maduresa]
ORG -->|construeix| APP[Aplicacio BazarNube]
APP -->|ASVS mesura el producte| REQ[Requisits verificables]
Analogia útil: si BazarNube fos un restaurant, ASVS seria la inspecció d'un plat concret (està ben cuinat, sense contaminació?), mentre que SAMM seria l'avaluació de la cuina com a sistema (hi ha protocols d'higiene?, el personal està format?, es revisen proveïdors?). Pots cuinar un plat correcte per sort; SAMM pregunta si la teva cuina ho farà bé sempre.
- La idea de dominis i nivells de maduresa
SAMM organitza les pràctiques de seguretat en un petit nombre de dominis (grans àrees d'activitat) que cobreixen el cicle de vida complet del programari. Aquí només en donem la idea general; el mòdul 5 els desenvolupa un a un.
De manera esquemàtica, SAMM agrupa l'activitat de seguretat en cinc funcions de negoci (dominis), cadascuna amb les seves pràctiques:
| Domini (funció de negoci) | De què tracta, a grans trets |
|---|---|
| Governance (Govern) | Estratègia, mètriques, polítiques, formació i conscienciació. |
| Design (Disseny) | Requisits de seguretat, avaluació d'amenaces, arquitectura segura. |
| Implementation (Implementació) | Construcció segura, gestió de defectes, desplegament segur. |
| Verification (Verificació) | Proves de seguretat, revisió d'arquitectura, avaluació de requisits. |
| Operations (Operació) | Gestió d'incidents, enduriment, gestió operativa de la seguretat. |
Sobre cada pràctica, SAMM aplica una escala de maduresa que, de manera simplificada, es llegeix així:
Nivell 0 -> No es realitza / ad hoc, depen de persones concretes
Nivell 1 -> Es fa de manera basica i informal
Nivell 2 -> Es fa de manera sistematica i definida
Nivell 3 -> Es fa de manera optimitzada, mesurada i en millora continuaLa idea clau: no es tracta d'estar en nivell 3 en tot. Una startup sana pot estar en nivell 1 en la majoria de pràctiques i això ja és un èxit. SAMM no jutja: posiciona i ajuda a prioritzar en quines pràctiques invertir primer.
graph LR
G[Governance] --> D[Design] --> I[Implementation] --> V[Verification] --> O[Operations]
N[Cada practica es puntua<br/>en maduresa 0 a 3] -.-> G
N -.-> D
N -.-> I
N -.-> V
N -.-> O
- Com mesuraria BazarNube la seva maduresa
Apliquem-ho. L'equip fa una autoavaluació ràpida (una versió molt simplificada del que el mòdul 5 formalitza). Per a cada pràctica, es pregunten honestament en quin nivell estan avui:
| Pràctica (simplificada) | Situació actual a BazarNube | Nivell estimat |
|---|---|---|
| Formació i conscienciació (Governance) | Ningú no ha rebut formació formal; aquest curs és el primer pas | 0 → 1 |
| Modelatge d'amenaces (Design) | Existeix el mapa de riscos inicial, però informal | 1 |
| Gestió de defectes (Implementation) | Hi ha un backlog de troballes amb etiquetes Top Ten | 1 |
| Proves de seguretat (Verification) | Encara no es fa servir ZAP ni pentest sistemàtic | 0 |
| Gestió d'incidents (Operations) | No hi ha pla de resposta definit | 0 |
D'aquesta simple taula, l'equip extreu conclusions molt accionables:
- La seva maduresa mitjana és baixa (entre 0 i 1), cosa que és normal i esperable en una startup jove. No és cap fracàs: és el punt de partida.
- Els buits més urgents estan a Verification (no proven la seva seguretat) i Operations (no saben què farien davant d'un incident).
- Ja tenen fonaments a Design (el mapa de riscos) i Implementation (el backlog), sobre els quals construir.
- El full de ruta gairebé es dibuixa sol: introduir proves de seguretat (adoptar ZAP, mòdul 6) pujaria Verification de 0 a 1; definir un pla mínim de resposta pujaria Operations.
Fixa't en una cosa important: SAMM connecta i dona sentit a les eines anteriors. El mapa de riscos, el backlog etiquetat amb Top Ten i la checklist ASVS no són peces soltes: són evidències de maduresa dins de dominis concrets de SAMM. SAMM és el marc que converteix esforços aïllats en un programa coherent i amb direcció.
- Per què la maduresa importa a una startup
Podria semblar que un model de maduresa és "cosa de grans empreses". És just al revés: per a una startup com BazarNube, SAMM és especialment valuós perquè:
- Evita dependre d'herois. Si la seguretat només funciona perquè Lucía es recorda de revisar-la, el dia que Lucía no hi sigui, s'ensorra. La maduresa consisteix que les coses passin per procés, no per persones.
- Prioritza amb recursos escassos. Una startup no pot fer-ho tot. SAMM ajuda a decidir quina pràctica millorar primer per obtenir el màxim impacte.
- Dona una narrativa a inversors i clients. "Tenim un pla de maduresa de seguretat i anem per aquí" transmet molta més confiança que "anem arreglant el que salta".
- Creix amb tu. El mateix model serveix quan sou cinc i quan sou cinquanta; només canvia el nivell al qual aspires.
Errors Comuns i Consells
- Confondre SAMM amb ASVS. ASVS avalua una aplicació; SAMM avalua l'organització i els seus processos. Són complementaris: un mira el producte, l'altre la fàbrica.
- Voler estar en nivell 3 en tot. És contraproduent i caríssim. La meta no és la perfecció uniforme, sinó un progrés equilibrat i sostenible. Nivell 1 generalitzat ja és una base sòlida.
- Fer l'avaluació una sola vegada. SAMM és un cicle de millora contínua: es reavalua periòdicament per veure l'avanç. Una foto única no serveix de gaire.
- Ser poc honest en l'autoavaluació. Inflar els nivells per quedar bé destrueix el valor de l'exercici. L'objectiu és saber on ets de veritat, no aprovar un examen.
- Consell: comença petit. Una autoavaluació informal de mitja hora, honesta, ja et dona un full de ruta útil. No necessites el model complet per obtenir valor el primer dia.
Exercicis
Exercici 1. Classifica cada afirmació com a pròpia d'ASVS o de SAMM: (a) "L'equip de BazarNube fa modelatge d'amenaces de manera sistemàtica en cada projecte"; (b) "L'aplicació emmagatzema les contrasenyes amb un algoritme de hashing fort"; (c) "Existeix un procés definit de resposta a incidents amb rols assignats".
Exercici 2. BazarNube ha detectat que la seva pràctica de "Proves de seguretat" (Verification) està en nivell 0. Proposa una acció concreta que la portaria al nivell 1 i explica amb quina eina del curs es relaciona.
Exercici 3. Explica en 4–5 línies per què una maduresa mitjana baixa (entre 0 i 1) no és motiu d'alarma per a una startup com BazarNube, i què hauria de fer amb aquesta dada.
Solucions
Solució 1. (a) SAMM (parla d'una pràctica de l'organització i de la seva regularitat, domini Design); (b) ASVS (és un requisit verificable sobre l'aplicació); (c) SAMM (descriu un procés organitzatiu, domini Operations).
Solució 2. Una acció concreta: adoptar OWASP ZAP per escanejar l'API de BazarNube de manera regular, encara que sigui manualment al principi. Passar de "no provem res" a "escanegem amb una eina DAST abans de cada release" eleva la pràctica de Verification de nivell 0 a nivell 1. Es relaciona amb ZAP, que presentem a la lliçó 02-04 i desenvolupem al mòdul 6.
Solució 3. Una maduresa baixa és el punt de partida esperable de gairebé qualsevol startup jove: reflecteix que l'empresa encara no ha formalitzat els seus processos de seguretat, no que faci les coses malament. L'important no és la xifra, sinó fer-la servir com a línia base per traçar un full de ruta: identificar els buits més crítics (a BazarNube, Verification i Operations) i planificar millores incrementals. SAMM no penalitza estar baix; penalitza no saber on ets ni cap a on vas.
Conclusió
Has conegut la tercera eina de la caixa OWASP: SAMM, un model de maduresa que avalua no una aplicació, sinó el programa de seguretat de l'organització. Saps que es diferencia d'ASVS en el pla (organització/procés vs aplicació/producte), que organitza l'activitat en dominis (Governance, Design, Implementation, Verification, Operations) i que puntua cada pràctica en nivells de maduresa 0–3. I has vist com BazarNube faria una autoavaluació honesta que, lluny d'alarmar, li dona un full de ruta clar.
Amb Top Ten, ASVS i SAMM, BazarNube té el què (riscos), el quant (requisits verificables) i el com de madur (processos). Però falta una cosa molt pràctica: una eina que ataqui activament l'aplicació per trobar les fallades que les taules no veuen. Els tres projectes anteriors són marcs i estàndards; ara toca una eina executable. A la lliçó 02-04 presentem OWASP ZAP, el proxy d'intercepció amb què BazarNube provarà la seva API en execució.
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
