La lliçó anterior va acabar amb una pregunta incòmoda: el Top Ten conscienia sobre quins riscos existeixen, però no serveix per demostrar que una aplicació és segura. Quan Lucía ha de respondre a un client corporatiu que exigeix "garanties de seguretat" al contracte de BazarNube, o quan vol donar a un pentester una llista clara de què comprovar, el Top Ten es queda curt. Necessita una cosa diferent: no una llista de perills, sinó una llista de requisits verificables. Aquesta és la segona eina de la nostra caixa: OWASP ASVS, l'Application Security Verification Standard. En aquesta lliçó la presentem a alt nivell; el detall —nivells, requisits concrets, com implementar-lo— és el contingut del mòdul 4.
Contingut
- Què és ASVS
- ASVS davant del Top Ten: requisits vs riscos
- Els tres nivells de verificació (visió general)
- Casos d'ús: checklist, contractes i pentests
- Com faria servir ASVS l'equip de BazarNube
- Què és ASVS
L'OWASP ASVS (Application Security Verification Standard) és un estàndard de requisits de seguretat verificables per a aplicacions web. Dit de manera simple: és una llista organitzada de "coses que l'aplicació ha de complir", redactades de manera que es puguin comprovar una per una (verificar si es compleixen o no).
Els seus trets essencials:
- És un estàndard, no un document de conscienciació. Mentre el Top Ten diu "compte amb la injecció", ASVS diu una cosa comprovable com "tota consulta a base de dades ha de fer servir consultes parametritzades".
- Està organitzat per capítols temàtics (autenticació, control d'accés, validació d'entrada, criptografia, gestió de sessions, etc.), no per "top de riscos".
- Cada requisit és una afirmació verificable, pensada per respondre amb un sí/no i una evidència. Això el fa ideal per a auditories, checklists i contractes.
- S'estructura en nivells (L1, L2, L3) segons quanta seguretat necessita l'aplicació.
La paraula que resumeix ASVS és verificació. No pregunta "coneixes aquest risc?", sinó "pots demostrar que l'has mitigat?".
- ASVS davant del Top Ten: requisits vs riscos
Aquest és el punt clau de la lliçó. Top Ten i ASVS no competeixen: són complementaris i operen en plans diferents. Confondre'ls és un error comú.
| Aspecte | OWASP Top Ten | OWASP ASVS |
|---|---|---|
| Naturalesa | Document de conscienciació | Estàndard de verificació |
| Respon a | Quins riscos hi ha? | Quins requisits he de complir i verificar? |
| Format | 10 categories de risc | Centenars de requisits comprovables |
| Granularitat | Àmplia, general | Fina, específica |
| Ús típic | Formar, prioritzar, conscienciar | Auditar, certificar, contractar, guiar pentests |
| Resultat | "Conec els perills" | "He verificat que es compleix X" |
| S'aprofundeix a | Mòdul 3 | Mòdul 4 |
Una manera intuïtiva de veure-ho:
graph LR
TT[Top Ten<br/>quins riscos existeixen] --> PONT[De la conscienciacio<br/>a la verificacio]
PONT --> ASVS[ASVS<br/>quins requisits verificar]
ASVS --> EV[Evidencia comprovable<br/>si/no + prova]
Analogia útil: el Top Ten és com el fullet dels "deu accidents domèstics més comuns"; ASVS és com la inspecció tècnica amb la seva llista de punts a comprovar (la instal·lació elèctrica compleix?, hi ha detector de fums?, el gas està revisat?). El primer et conscienia; el segon et permet signar que la casa és habitable.
- Els tres nivells de verificació (visió general)
No tota aplicació necessita el mateix grau de seguretat: no és el mateix un blog personal que la passarel·la de pagaments de BazarNube. Per això ASVS defineix tres nivells d'exigència creixents. Aquí només els presentem; el mòdul 4 explica quins requisits concrets entren en cadascun.
| Nivell | Nom orientatiu | Per a quin tipus d'aplicació | Com es verifica (idea) |
|---|---|---|---|
| L1 | Bàsic / superfície | Apps de baix risc; mínim acceptable per a gairebé qualsevol programari | Verificable fins i tot des de fora, sense accés al codi |
| L2 | Estàndard / recomanat | La majoria d'apps que manegen dades sensibles (e-commerce, SaaS) | Requereix accés a codi i documentació de disseny |
| L3 | Avançat / crític | Sistemes d'altíssim valor (banca, salut, infraestructures) | Verificació exhaustiva i en profunditat |
Idees que convé fixar ja, sense entrar en detall:
- Els nivells són acumulatius: L2 inclou tot el de L1, i L3 inclou tot el de L2.
- El nivell es tria segons el risc del negoci i les dades que maneja l'aplicació, no per caprici.
- Per a un marketplace que processa pagaments i dades personals com BazarNube, l'objectiu raonable sol ser L2. L3 es reserva per al més crític.
- Casos d'ús: checklist, contractes i pentests
Per a què serveix ASVS en el dia a dia? Els seus tres usos més habituals:
- Com a checklist de verificació de seguretat. L'equip repassa els requisits aplicables i marca quins compleix BazarNube, quins no i quins no apliquen. El resultat és un inventari objectiu de l'estat de seguretat, molt més útil que "creiem que estem bé".
- Com a base per a contractes i requisits. Quan BazarNube contracta un desenvolupament extern, o quan un client li exigeix garanties, es pot escriure al contracte "l'aplicació complirà ASVS nivell 2". Això converteix una exigència vaga ("que sigui segur") en un compromís mesurable i auditable.
- Com a guió per a pentests i auditories. En lloc que cada pentester improvisi, ASVS ofereix un abast comú: "verifica aquests requisits del capítol d'autenticació i control d'accés". Els informes surten estructurats i comparables entre auditories.
graph TD
ASVS[ASVS: requisits verificables] --> CHK[Checklist interna<br/>autoavaluacio]
ASVS --> CON[Clausula contractual<br/>complira ASVS L2]
ASVS --> PEN[Abast de pentest<br/>que verificar]
- Com faria servir ASVS l'equip de BazarNube
Apliquem-ho. El backlog de troballes que vam començar a etiquetar amb el Top Ten és bo per detectar problemes, però no per demostrar que estem complets. Aquí entra ASVS. L'equip faria aquests passos (que el mòdul 4 desenvolupa):
- Triar el nivell objectiu. Com que BazarNube maneja pagaments i dades personals, fixen ASVS L2 com a meta. Ho anoten com a decisió d'arquitectura.
- Convertir requisits en tasques verificables. Cada requisit ASVS aplicable es converteix en una comprovació concreta sobre l'app. Vegem com es veu, de manera simplificada, aquesta traducció:
# Extracte simplificat d'una checklist ASVS interna de BazarNube (nivell L2)
# (format il-lustratiu; els requisits reals i la seva numeracio es veuen al modul 4)
[Capitol: Control d'acces]
- REQ: Cada endpoint verifica que l'usuari esta autoritzat .......... [ COMPLEIX ]
- REQ: El control d'acces s'aplica al servidor, no nomes a la UI ... [ NO COMPLEIX ] -> troballa A01
- REQ: Les referencies directes a objectes comproven propietat ..... [ COMPLEIX ]
[Capitol: Autenticacio]
- REQ: Bloqueig/alentiment despres de diversos intents fallits ..... [ NO COMPLEIX ] -> troballa A07
- REQ: Les contrasenyes s'emmagatzemen amb hashing fort (bcrypt/argon) [ COMPLEIX ]
[Capitol: Validacio d'entrada]
- REQ: Consultes a BD parametritzades (sense concatenar cadenes) ... [ REVISAR ] -> possible A03Fixa't en la potència d'aquest format davant del Top Ten:
- Cada línia és una afirmació comprovable amb un veredicte (COMPLEIX / NO COMPLEIX / REVISAR).
- Cada incompliment enllaça amb una troballa del backlog, que al seu torn porta la seva etiqueta Top Ten (A01, A03, A07...). Així, Top Ten i ASVS es reforcen: el Top Ten anomena el risc, ASVS el verifica.
- El conjunt dona una foto objectiva i presentable a direcció o a un client: "complim el 82% dels requisits L2, aquests són els pendents".
- Fer servir la checklist com a pont cap al pentest. Quan contractin un pentest o facin servir ZAP (lliçó 02-04), l'abast ja està definit pels requisits ASVS marcats com a "REVISAR" o "NO COMPLEIX".
En resum: ASVS dona a BazarNube el llenguatge per passar de "coneixem els riscos" a "podem demostrar, requisit a requisit, on estem".
Errors Comuns i Consells
- Confondre ASVS amb el Top Ten. No són intercanviables: el Top Ten conscienia (riscos), ASVS verifica (requisits). Es fan servir junts, no un en lloc de l'altre.
- Triar L3 "per ser el més segur". Apuntar a un nivell superior al que necessites genera un cost enorme i requisits que no aporten al teu risc real. Tria el nivell pel valor de les dades, no per perfeccionisme. Per a BazarNube, L2 és la meta assenyada.
- Tractar ASVS com a tot-o-res. No cal complir el 100% de cop. La checklist serveix precisament per anar mesurant l'avanç i prioritzar.
- Verificar només a la interfície. Molts requisits (especialment L2/L3) exigeixen mirar el codi i el disseny, no només provar l'app des de fora. Verificar únicament la UI dona falsa tranquil·litat.
- Consell: comença pels capítols de control d'accés i autenticació. Solen ser on més incompliments apareixen i on més impacte té arreglar-los.
Exercicis
Exercici 1. Per a cada frase, indica si correspon al Top Ten o a ASVS: (a) "El sistema ha d'invalidar la sessió del costat del servidor en tancar sessió"; (b) "Un dels riscos més crítics és el control d'accés trencat"; (c) "L'aplicació complirà el nivell L2 segons auditoria externa".
Exercici 2. BazarNube maneja pagaments i dades personals, però no és un banc. Argumenta en 3–4 línies quin nivell ASVS seria l'objectiu raonable i per què no L1 ni L3.
Exercici 3. Explica com es complementen Top Ten i ASVS en el flux de treball de BazarNube, fent servir un exemple concret de troballa que passi per tots dos.
Solucions
Solució 1. (a) ASVS (és un requisit verificable, concret i comprovable); (b) Top Ten (és una afirmació de conscienciació sobre un risc, correspon a A01); (c) ASVS (parla de complir un nivell de verificació, propi de l'estàndard).
Solució 2. L'objectiu raonable és L2. L1 és un mínim pensat per a apps de baix risc, insuficient per a qui processa pagaments i dades personals (exposició a GDPR/PCI-DSS). L3 està reservat a sistemes de valor extrem (banca central, infraestructures crítiques, salut) i suposa un cost de verificació desproporcionat per a un marketplace jove. L2 cobreix el risc real de BazarNube sense sobrecarregar l'equip.
Solució 3. Exemple: durant l'autoavaluació ASVS, el requisit "cada endpoint verifica autorització al servidor" apareix com a NO COMPLEIX. Aquest incompliment es registra al backlog com una troballa i s'etiqueta amb Top Ten com a A01 (Broken Access Control). Així, el Top Ten aporta el nom i la categoria del risc (comunicació i priorització), mentre que ASVS aporta el requisit verificable i l'evidència que estava incomplert (auditoria i demostració). Un conscienia, l'altre verifica; junts tanquen el cicle.
Conclusió
Has conegut la segona eina de la caixa OWASP: ASVS, un estàndard de requisits verificables que respon al que el Top Ten no pot: demostrar l'estat de seguretat d'una aplicació. Saps que es diferencia del Top Ten en el pla (requisits vs riscos), que defineix tres nivells (L1, L2, L3) segons el valor de l'aplicació, i que es fa servir com a checklist, base contractual i guió de pentests. I has vist com BazarNube apuntaria a L2, convertint el seu backlog en una checklist verificable enllaçada amb les etiquetes del Top Ten.
Amb Top Ten i ASVS tenim eines centrades en l'aplicació: els seus riscos i els seus requisits. Però sorgeix una pregunta de nivell superior: està l'organització BazarNube preparada, com a equip i com a procés, per produir programari segur de manera sostinguda? Això ja no es mesura sobre una app, sinó sobre la mateixa organització. És el terreny de la següent eina: a la lliçó 02-03 presentem OWASP SAMM, el model de maduresa del programa de seguretat.
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
