Tanquem el mòdul 1 amb el primer mapa de riscos de BazarNube: una taula d'actius (dades de clients, pagaments, preus i comandes, disponibilitat, mòdul legacy en Java) classificats amb la tríada CIA. Aquest mapa ens diu què ens preocupa, però encara en un llenguatge casolà. Ara l'equip necessita un vocabulari compartit i reconegut per tota la indústria per anomenar aquestes amenaces. Aquest vocabulari existeix, i és probablement el document de seguretat més famós del món: l'OWASP Top Ten. En aquesta lliçó el presentem —què és, com s'elabora, per a què serveix i per a què no— i recorrem la seva edició vigent (2021) anomenant-ne les deu categories. No n'esgotarem cap: cadascuna té el seu desenvolupament al mòdul 3.
Aquesta és la primera parada de la nostra "caixa d'eines OWASP". Aquí només obrim la caixa i descrivim l'eina; el manual d'ús detallat arriba després.
Contingut
- Què és l'OWASP Top Ten (i què no és)
- Com s'elabora: dades + enquesta
- Per a què serveix i per a què NO serveix
- L'edició vigent: Top Ten 2021
- Les deu categories A01–A10
- Què va canviar de 2017 a 2021
- El Top Ten aplicat al mapa de riscos de BazarNube
- Què és l'OWASP Top Ten (i què no és)
L'OWASP Top Ten és un document de conscienciació que recull els deu riscos de seguretat més crítics per a les aplicacions web, segons el consens de la comunitat i les dades disponibles. Es publica de manera periòdica (cada 3–4 anys aproximadament) i és, amb diferència, el projecte flagship més conegut d'OWASP.
La paraula clau és conscienciació (awareness). El Top Ten existeix per respondre a una pregunta molt concreta: "Si només puc parar atenció a un grapat de coses, per on començo?". És un punt de partida, una brúixola, un mínim comú denominador que qualsevol persona que desenvolupi programari web hauria de conèixer.
És igual d'important entendre què NO és:
- NO és un estàndard exhaustiu. No llista totes les vulnerabilitats possibles; llista les deu categories més rellevants. Complir el Top Ten no significa "estar segur", significa "haver cobert el més bàsic i freqüent".
- NO és una checklist de certificació. No existeix cap segell de "compleixo el Top Ten". Per a la verificació formal, requisit a requisit, OWASP té un altre projecte: ASVS (lliçó 02-02).
- NO és un manual de remediació pas a pas. Descriu els riscos i orienta, però el detall de com mitigar-los es recolza en altres recursos (com les Cheat Sheets, lliçó 02-05).
Regla mental: el Top Ten et diu on mirar primer; no et diu que hagis acabat de mirar.
- Com s'elabora: dades + enquesta
El Top Ten no s'inventa en una reunió: es construeix amb una metodologia mixta que combina evidència i criteri expert. Entendre com es fa ajuda a llegir-lo amb sentit crític.
graph TD
D[Dades de contribuents<br/>empreses, eines, pentests] --> ANAL[Analisi de<br/>incidencia i prevalenca]
E[Enquesta a la comunitat<br/>professionals de seguretat] --> ANAL
ANAL --> CAT[Definicio de<br/>categories de risc]
CAT --> TOP[Llista final<br/>Top Ten A01-A10]
Les dues fonts són:
- Dades aportades per la comunitat. Empreses, consultores i proveïdors d'eines donen dades anonimitzades sobre quines vulnerabilitats troben en aplicacions reals. D'aquí surten mètriques com la incidència (amb quina freqüència apareix una debilitat) i la cobertura.
- Enquesta a la comunitat (industry survey). Com que les dades històriques només reflecteixen el que ja se sabia buscar, es pregunta a més a professionals del sector quins riscos consideren més importants mirant cap endavant. Això permet incloure amenaces emergents que encara no apareixen massivament a les dades.
A més, el Top Ten s'organitza en categories de risc, no en vulnerabilitats concretes. Per exemple, "Injecció" és una categoria que agrupa SQL injection, injecció de comandes, LDAP, etc. Aquesta agrupació és deliberada: fa la llista estable i comprensible en lloc d'una llista interminable de CVEs.
- Per a què serveix i per a què NO serveix
Perquè l'equip de BazarNube faci servir el Top Ten amb criteri, convé tenir claríssims els seus usos legítims i els seus abusos habituals.
| Fes-lo servir per... | NO el facis servir com... |
|---|---|
| Formar i conscienciar desenvolupadors. | Prova que "l'app és segura". |
| Prioritzar per on començar a assegurar. | Llista completa de tot el que pot fallar. |
| Vocabulari comú entre dev, seguretat i negoci. | Estàndard de certificació o compliment contractual. |
| Guiar una primera revisió de codi o pentest. | Substitut d'una anàlisi de riscos pròpia. |
| Punt d'entrada a la resta de projectes OWASP. | Manual de remediació detallat. |
La idea de fons: el Top Ten és un excel·lent començament i un pèssim final. Un error clàssic de gestió és declarar "hem revisat el Top Ten, ja estem segurs" i tancar el tema. El correcte és fer-lo servir com a rampa d'entrada cap a eines més completes (ASVS per verificar, SAMM per madurar el programa, ZAP per provar).
- L'edició vigent: Top Ten 2021
L'edició vigent en el moment d'aquest curs és l'OWASP Top Ten 2021. Va introduir diversos canvis de fons respecte a l'anterior (2017):
- Reordenació per dades més rigoroses i per l'enquesta.
- Reagrupació de categories (algunes es van fusionar, d'altres es van ampliar).
- Focus creixent en causes de disseny i no només en símptomes concrets.
Treballarem sobre aquesta edició 2021 durant tot el curs. És la referència que el mòdul 3 desenvolupa categoria per categoria.
- Les deu categories A01–A10
Aquí tens la llista completa. Només les anomenem, amb una frase que en doni la idea; el desenvolupament real (exemples, codi vulnerable de BazarNube, mitigacions) és el contingut del mòdul 3.
| Codi | Categoria | En una frase |
|---|---|---|
| A01 | Broken Access Control (Control d'accés trencat) | Els usuaris accedeixen a dades o accions que no els corresponen. |
| A02 | Cryptographic Failures (Errors criptogràfics) | Dades sensibles mal xifrades o directament sense xifrar. |
| A03 | Injection (Injecció) | Dades no fiables es colen com a comandes (SQL, OS, etc.); inclou XSS. |
| A04 | Insecure Design (Disseny insegur) | Fallades que neixen del disseny, no d'un bug d'implementació. |
| A05 | Security Misconfiguration (Configuració incorrecta) | Ajustos insegurs per defecte, serveis de més, capçaleres absents; inclou XXE. |
| A06 | Vulnerable and Outdated Components (Components vulnerables) | Llibreries i dependències amb fallades conegudes sense actualitzar. |
| A07 | Identification and Authentication Failures (Errors d'autenticació) | Logins febles, sessions mal gestionades, credencials predictibles. |
| A08 | Software and Data Integrity Failures (Errors d'integritat) | Actualitzacions, pipelines o dades que es confien sense verificar. |
| A09 | Security Logging and Monitoring Failures (Errors de registre i monitorització) | No es detecta ni s'investiga el que passa. |
| A10 | Server-Side Request Forgery (SSRF) | S'enganya el servidor perquè faci peticions a destinacions internes. |
Dos matisos que de vegades confonen i que convé fixar ja:
- XSS (Cross-Site Scripting) va deixar de ser una categoria pròpia i va quedar integrat a A03: Injection. Tot i així, per la seva importància, el mòdul 3 li dedica una lliçó específica.
- XXE (XML External Entities) també va deixar de ser categoria pròpia i va quedar absorbit a A05: Security Misconfiguration. El mòdul 3 igualment el tracta en detall.
- Què va canviar de 2017 a 2021
Comparar edicions ajuda a entendre l'evolució del risc. Aquest és el resum dels canvis més significatius entre 2017 i 2021:
| Canvi | Detall |
|---|---|
| Ascens de Broken Access Control | Va passar a ser A01, la categoria més crítica, per la seva altíssima incidència real. |
| Nova: A04 Insecure Design | Novetat de 2021. Reconeix que moltes fallades vénen del disseny, no del codi. |
| Nova: A10 SSRF | Novetat de 2021, incorporada sobretot per l'enquesta de la comunitat. |
| XSS fusionat a A03 | Cross-Site Scripting es va integrar dins d'Injection. |
| XXE fusionat a A05 | XML External Entities es va integrar dins de Security Misconfiguration. |
| Reanomenats / reagrupats | Diverses categories van canviar de nom per descriure la causa i no només el símptoma (p. ex. "Sensitive Data Exposure" → "Cryptographic Failures"). |
graph LR
subgraph edicio 2017
SD[Sensitive Data Exposure]
XSS17[XSS categoria propia]
XXE17[XXE categoria propia]
end
subgraph edicio 2021
CF[A02 Cryptographic Failures]
INJ[A03 Injection inclou XSS]
MISC[A05 Misconfiguration inclou XXE]
ID[A04 Insecure Design NOVA]
SSRF[A10 SSRF NOVA]
end
SD --> CF
XSS17 --> INJ
XXE17 --> MISC
La lectura estratègica d'aquests canvis: la seguretat web va madurar de perseguir bugs concrets a atacar causes d'arrel. Les dues novetats —Insecure Design i SSRF— ho il·lustren: una ens obliga a pensar abans de programar; l'altra reflecteix arquitectures modernes (microserveis, núvol, metadades internes) on el mateix servidor pot ser enganyat.
- El Top Ten aplicat al mapa de riscos de BazarNube
Tornem al mapa de riscos que va tancar el mòdul 1. Aquell mapa parlava en termes d'actius i CIA. Ara podem traduir-lo al vocabulari del Top Ten, i així començar a poblar el backlog de troballes amb etiquetes reconeixibles:
| Risc de BazarNube (del mapa CIA) | Categoria Top Ten 2021 probable |
|---|---|
| Un client veu comandes d'un altre client | A01 Broken Access Control |
| Dades de targetes desades sense xifrar bé | A02 Cryptographic Failures |
| Cercador de productes vulnerable a SQL injection | A03 Injection |
| El checkout es va dissenyar sense límits d'import ni antifrau | A04 Insecure Design |
| El mòdul legacy Java exposa consoles i errors detallats | A05 Security Misconfiguration |
| Dependències npm/Java desactualitzades amb CVEs | A06 Vulnerable and Outdated Components |
| No hi ha bloqueig després d'intents de login fallits | A07 Authentication Failures |
| La botiga no registra ni alerta d'accessos anòmals | A09 Logging and Monitoring Failures |
Lucía (backend lead) proposa una cosa assenyada: fer servir els codis A01–A10 com a etiquetes al backlog. Així, quan aparegui una troballa, no s'apunta com a "problema estrany del cercador", sinó com a "A03 – Injection a /api/cercar". Aquest petit gest connecta la feina diària de BazarNube amb un estàndard mundial i prepara el terreny per al mòdul 3.
Fixa't que no tots els riscos encaixen encara: per exemple, no hem etiquetat res com A08 o A10 encara. Això és normal i sa: el Top Ten és una guia d'on mirar, no una obligació d'"omplir" les deu caselles.
Errors Comuns i Consells
- Tractar el Top Ten com una checklist d'"aprovat". Cobrir les deu categories no equival a estar segur; és el mínim. Per verificar de veritat, fes servir ASVS (lliçó següent).
- Confondre categories amb vulnerabilitats. "Injection" no és un bug, és una família de bugs. Una mateixa troballa pot tocar diverses categories.
- Fer servir una edició antiga sense adonar-se'n. Molta documentació a internet segueix citant el Top Ten 2017 (amb XSS i XXE com a categories pròpies). Verifica sempre que treballes sobre 2021.
- Buscar aquí el "com s'arregla". El Top Ten conscienia; la remediació detallada viu a les Cheat Sheets i al mòdul 3. No et frustris si aquesta lliçó no et dona el pedaç exacte: no és la seva funció.
- Consell: memoritza almenys A01, A03 i A06 d'entrada. Són, per a un e-commerce típic com BazarNube, els que més probablement et trobaràs a la pràctica.
Exercicis
Exercici 1. Classifica cada situació de BazarNube en la categoria Top Ten 2021 més adequada: (a) el frontend de Marc mostra sense escapar un comentari de producte que conté <script>; (b) el Dockerfile del mòdul Java arrenca en mode debug amb la consola d'administració exposada; (c) un atacant prova milers de contrasenyes contra /login sense que res el freni.
Exercici 2. Explica en 3–5 línies per què el Top Ten no basta com a criteri per afirmar davant un client que "BazarNube compleix amb la seguretat exigida", i quin projecte d'OWASP encaixaria millor per a aquesta afirmació.
Exercici 3. El Top Ten 2021 va introduir dues categories noves respecte a 2017. Anomena-les i, per a cadascuna, dona un exemple plausible a BazarNube.
Solucions
Solució 1. (a) A03 Injection (concretament XSS, que el 2021 viu dins d'Injection); (b) A05 Security Misconfiguration (configuració insegura, serveis d'administració exposats —i aquí també podria entrar XXE si processa XML); (c) A07 Identification and Authentication Failures (manca de protecció contra força bruta / credential stuffing).
Solució 2. El Top Ten és un document de conscienciació, no un estàndard de verificació: cobreix només les deu categories més freqüents i no defineix requisits comprovables un a un. Afirmar compliment requereix un estàndard de requisits verificables, i aquest és OWASP ASVS, que veurem a la lliçó 02-02: permet dir "hem verificat els requisits de nivell X" amb evidència concreta.
Solució 3. Les dues novetats són A04: Insecure Design i A10: SSRF. Exemples a BazarNube: (A04) el procés de checkout es va dissenyar sense controls antifrau ni límit d'intents de pagament, una fallada de disseny més que de codi; (A10) un endpoint que descarrega la imatge d'un producte a partir d'una URL facilitada per l'usuari podria ser enganyat per demanar recursos interns de la xarxa (metadades del contenidor, serveis privats).
Conclusió
Has conegut la primera eina de la caixa OWASP: el Top Ten, un document de conscienciació que llista els deu riscos web més crítics, elaborat amb dades + enquesta i organitzat en categories de risc. Saps per a què serveix (punt de partida, vocabulari comú, priorització) i per a què no (no és estàndard de certificació ni llista exhaustiva). Has recorregut l'edició 2021 amb les seves categories A01–A10, entès les fusions (XSS→A03, XXE→A05) i les novetats (Insecure Design i SSRF), i has començat a etiquetar el backlog de BazarNube amb aquest vocabulari.
Però el mateix Top Ten ens ha deixat una pregunta oberta: si conscienia però no verifica, com demostrem, requisit a requisit, que BazarNube és segur? Aquesta és exactament la funció de la següent eina. A la lliçó 02-02 presentem OWASP ASVS, l'estàndard que converteix "estar conscienciat" en "poder verificar-ho".
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
