El tancament del mòdul 8 ho va deixar clar: després d'aplicar cada estàndard i eina d'OWASP sobre BazarNube —remediar el Top Ten, verificar amb ASVS, guiar amb SAMM, escanejar amb ZAP i cosir-ho tot amb DevSecOps—, el pas següent és demostrar que aquell coneixement està consolidat. Aquesta lliçó és aquesta demostració. No introdueix conceptes nous: et posa a prova de manera integradora sobre tot el recorregut. Trobaràs un banc de preguntes tipus test amb resposta raonada que escombra el Top Ten 2021, ASVS, SAMM, ZAP i les bones pràctiques, i un cas pràctic final d'avaluació sobre BazarNube en el qual hauràs d'identificar vulnerabilitats, proposar controls i mapejar-los a OWASP, amb una rúbrica d'autoavaluació per mesurar el teu domini amb honestedat. Pren-t'ho com l'examen que tu mateix et corregeixes: si alguna cosa falla, sabràs exactament a quina lliçó tornar.
Contingut
- Com usar aquesta avaluació
- Banc de preguntes tipus test (amb respostes i explicació)
- Cas pràctic final: auditoria exprés de BazarNube
- Rúbrica d'autoavaluació
- Interpretar el teu resultat
- Errors comuns i consells
- Exercicis
- Conclusió
Com usar aquesta avaluació
Perquè la nota signifiqui alguna cosa, fes-la en condicions d'examen:
- Primer respon, després corregeix. Cobreix les solucions i contesta el test sencer abans de llegir cap explicació.
- Sense apunts al test. El banc de preguntes mesura el que recordes; el cas pràctic sí que admet consultar la documentació (així es treballa a la realitat).
- Escriu les teves respostes del cas pràctic abans de mirar la rúbrica: autoavaluar-se de memòria infla la nota.
- Anota a quin mòdul pertany cada fallada. L'objectiu no és la xifra, sinó detectar les teves llacunes i tornar a la lliçó concreta.
L'avaluació s'estructura en dos blocs: 20 preguntes tipus test (coneixement) i un cas pràctic (aplicació). La secció ## Exercicis del final conté el mateix examen complet amb les seves solucions.
Banc de preguntes tipus test (amb respostes i explicació)
A continuació, el banc per àrees. Les respostes i explicacions són al final, a la secció de solucions, perquè el puguis fer a cegues. Cada pregunta indica entre claudàtors l'àrea que avalua.
Bloc A — OWASP Top Ten 2021 (M3)
P1. [A01] Un usuari de BazarNube canvia l'id de la URL /comandes/1024 per /comandes/1025 i veu la comanda d'una altra persona. Quina categoria del Top Ten 2021 aplica i com es diu el patró?
a) A03 Injecció — SQLi
b) A01 Control d'Accés Trencat — IDOR
c) A07 Fallades d'Identificació — fixació de sessió
d) A05 Configuració de Seguretat Incorrecta
P2. [A02] Quina d'aquestes pràctiques correspon a A02 Fallades Criptogràfiques?
a) Validar l'entrada del cercador amb consultes parametritzades
b) Emmagatzemar contrasenyes amb un hash lent i amb sal (p. ex. bcrypt/Argon2)
c) Afegir la capçalera X-Frame-Options
d) Limitar la taxa de peticions per usuari
P3. [A03] La consulta "SELECT * FROM productos WHERE nombre LIKE '%" + q + "%'" del cercador de BazarNube és vulnerable. Quin és el control primari recomanat?
a) Escapar cometes manualment
b) Un WAF que filtri paraules clau SQL
c) Consultes parametritzades / sentències preparades
d) Amagar els missatges d'error de la base de dades
P4. [A05/A06] BazarNube exposa un panell d'administració accessible sense autenticació i amb la contrasenya per defecte del framework. Quines dues categories del Top Ten descriuen millor el problema? a) A05 Configuració Incorrecta i A07 Fallades d'Identificació/Autenticació b) A02 Fallades Criptogràfiques i A03 Injecció c) A08 Fallades d'Integritat i A09 Registre i Monitorització d) A04 Disseny Insegur i A10 SSRF
P5. [A10] La funció d'"importar catàleg des d'URL" de BazarNube permet indicar http://169.254.169.254/... i retorna metadades internes del proveïdor cloud. De què es tracta?
a) XXE
b) SSRF (A10)
c) Open Redirect
d) Deserialització insegura
P6. [A08] Quin control mitiga A08 Fallades d'Integritat de Programari i Dades?
a) Verificar signatures/hashes de dependències i artefactes (p. ex. SCA + integritat de la cadena de subministrament)
b) Rotar les claus TLS cada 90 dies
c) Aplicar Content-Security-Policy
d) Usar tokens JWT amb expiració curta
Bloc B — ASVS (M4)
P7. [ASVS] Què afirma correctament sobre els nivells ASVS? a) L1 és el més exigent i L3 el mínim b) L1 és un mínim verificable en caixa negra; L2 és l'estàndard per a la majoria d'apps; L3 és per a aplicacions crítiques c) Els nivells mesuren la maduresa de l'equip, no del producte d) ASVS només aplica a APIs REST
P8. [ASVS] BazarNube manega pagaments i dades personals. A 07-05 es va decidir apuntar a ASVS L2. Què representa millor el paper d'ASVS al projecte? a) Una eina d'escaneig dinàmic b) Un catàleg de requisits verificables usats com a criteris d'acceptació c) Un model de maduresa organitzativa per dominis d) Una metodologia de threat modeling
Bloc C — SAMM (M5)
P9. [SAMM] Quina pregunta respon OWASP SAMM que ASVS no respon? a) És segur aquest endpoint concret? b) Quin CWE té aquesta vulnerabilitat? c) Com de madur és el nostre programa de seguretat i com millorar-lo? d) Quin payload explota aquesta injecció?
P10. [SAMM] SAMM organitza la pràctica de seguretat en cinc funcions de negoci. Quina d'aquestes n'és una? a) Governance (Govern) b) Firewalling c) Pentesting d) Xifratge
Bloc D — ZAP (M6)
P11. [ZAP] Al pipeline de BazarNube es va usar ZAP en mode baseline. Què caracteritza aquest mode? a) Realitza atacs actius intrusius contra l'aplicació b) És una anàlisi passiva/ràpida pensada per no trencar el build i detectar regressions c) Només funciona en mode escriptori amb intervenció manual d) Substitueix per complet les proves de penetració manuals
P12. [ZAP] Quina és la diferència entre l'escaneig passiu i actiu de ZAP? a) El passiu modifica les peticions; l'actiu només observa b) El passiu observa el trànsit sense enviar atacs; l'actiu envia peticions malicioses per provocar vulnerabilitats c) Són sinònims d) L'actiu és més segur per executar en producció
P13. [ZAP] Per provar zones de BazarNube que requereixen login, ZAP necessita: a) Res especial, escaneja tot per defecte b) Configurar un context amb autenticació i gestió de sessió/usuaris c) Desactivar HTTPS d) Executar-se sempre com a baseline
Bloc E — Bones pràctiques / S-SDLC / DevSecOps (M7)
P14. [S-SDLC] Per què és més barat corregir una fallada de seguretat en fase de disseny que després d'un incident? a) Perquè els dissenyadors cobren menys b) Perquè el cost de correcció creix a mesura que avança el cicle de vida; en producció implica reenginyeria, resposta a incidents i dany reputacional c) Perquè en disseny no cal escriure codi d) No és més barat, és un mite
P15. [Threat modeling] STRIDE és un model per classificar amenaces. Què representa la "T"? a) Testing b) Tampering (Manipulació) c) Trust (Confiança) d) Transport
P16. [DevSecOps] Quin tipus d'eina detecta secrets (claus, tokens) filtrats al repositori? a) DAST (p. ex. ZAP) b) SAST (p. ex. Semgrep) c) Secret scanning (p. ex. gitleaks) d) SCA (p. ex. Dependency-Check)
P17. [DevSecOps] Associa l'eina amb la seva categoria: Dependency-Check. a) SAST — analitza el codi font b) SCA — analitza dependències de tercers per vulnerabilitats conegudes c) DAST — ataca l'app en execució d) Secret scanning
P18. [Cultura] Quin és el paper d'un Security Champion? a) Substituir l'equip de seguretat b) Ser el punt de referència de seguretat dins del seu equip de desenvolupament i escalar el coneixement c) Executar únicament els escàners d) Aprovar desplegaments sense revisió
P19. [Gates] Un quality gate de seguretat en CI/CD serveix per: a) Accelerar el build ignorant troballes b) Bloquejar (o alertar) el pipeline quan apareixen troballes per sobre d'un llindar de severitat definit c) Xifrar el trànsit entre serveis d) Generar documentació automàtica
P20. [Integració] Quina afirmació resumeix millor la filosofia del curs aplicada a BazarNube? a) La seguretat és una fase final abans de desplegar b) La seguretat és una propietat contínua del procés i de la cultura, integrada en tot el cicle c) N'hi ha prou de passar un pentest anual d) La seguretat depèn de comprar prou eines
Cas pràctic final: auditoria exprés de BazarNube
Llegeix el següent extracte d'una nova funcionalitat de BazarNube i respon per escrit abans de mirar la rúbrica.
Context. BazarNube afegeix "Regals": un usuari puja una imatge des d'una URL, escriu una dedicatòria i envia el regal a un altre usuari indicant el seu
user_id. El backend exposa:
POST /regalsamb cos{ "para_user_id": 88, "imagen_url": "http://...", "mensaje": "<texto>" }.- La imatge es descarrega al servidor des de
imagen_urlper generar una miniatura.- El
mensajees guarda i es mostra tal qual (HTML) a la pàgina del destinatari.- Per consultar un regal:
GET /regals/{id}— retorna el regal sense comprovar qui el demana.- Les contrasenyes d'usuari es guarden amb
MD5(password)sense sal.- No hi ha cap registre d'aquesta acció als logs.
La teva tasca:
- Identifica almenys quatre vulnerabilitats.
- Per cadascuna, proposa un control concret.
- Mapeja cada vulnerabilitat a la seva categoria del Top Ten 2021 i a l'àrea OWASP rellevant (ASVS/altra).
Escriu la teva resposta ara. La solució model i la rúbrica són més avall.
Rúbrica d'autoavaluació
Puntua la teva resposta al cas pràctic amb aquesta rúbrica (màxim 20 punts):
| Criteri | 0 pts | 1 pt | 2 pts |
|---|---|---|---|
| Identificació de vulnerabilitats | Menys de 3 correctes | 3-4 correctes | 5+ correctes i ben anomenades |
| Mapeig al Top Ten 2021 | Majoria incorrecta | Algunes correctes | Totes correctes |
| Controls proposats | Genèrics o erronis | Correctes però incomplets | Concrets i verificables |
| Referència a ASVS/estàndard | Absent | Esmentada | Requisit ASVS concret per control |
| Priorització per risc | No prioritza | Prioritza sense justificar | Prioritza i justifica l'ordre |
Suma els cinc criteris (cadascun fins a 2 punts = 10) i multiplica el bloc test pel seu pes; veure la interpretació següent.
Interpretar el teu resultat
Combina les dues parts. El test aporta 20 punts (1 per encert) i el cas pràctic 10 (rúbrica), total 30.
| Puntuació total | Nivell | Recomanació |
|---|---|---|
| 27-30 | Domini sòlid | Estàs a punt per plantejar-te una certificació (lliçó 09-02) |
| 21-26 | Competent | Repassa els mòduls de les fallades concretes abans de certificar-te |
| 15-20 | En progrés | Torna a M3, M4 i M7; refés el cas pràctic |
| < 15 | Bases per consolidar | Repeteix el curs des de M3 amb els laboratoris de 09-03 |
Recorda: el número orienta, però l'important és a quina lliçó et mana cada fallada. Un 24 amb tots els errors concentrats a ZAP s'arregla repassant M6; un 24 dispers demana un repàs més ampli.
Errors Comuns i Consells
- Estudiar per al test i no per al cas. Memoritzar les 10 categories no equival a detectar-les en codi real. El cas pràctic és el que mesura el domini veritable; dona-li més pes.
- Confondre SAMM amb ASVS. És l'error conceptual més freqüent del curs: SAMM mesura la maduresa del programa; ASVS defineix requisits del producte. Si vas fallar P8 o P9, torna a 05-01 i 04-01.
- Anomenar la vulnerabilitat sense proposar control verificable. "Té SSRF" no és una resposta completa; "validar el destí amb una allow-list i bloquejar rangs interns com 169.254.0.0/16" sí que ho és.
- No prioritzar. En una auditoria real no tot pesa igual: un IDOR explotable en producció va abans que un log absent. La rúbrica premia justificar l'ordre.
- Consell: repeteix aquesta avaluació passades una o dues setmanes. La retenció real es mesura en diferit, no just després de llegir la lliçó.
Exercicis
Els tres exercicis constitueixen l'examen complet. Fes-los en ordre i sense mirar les solucions.
Exercici 1 — Test. Respon les 20 preguntes del banc anterior (P1 a P20). Anota la teva lletra per cadascuna.
Exercici 2 — Cas pràctic. Resol l'"auditoria exprés de BazarNube": identifica vulnerabilitats, proposa controls i mapeja'ls a OWASP. Puntua't amb la rúbrica.
Exercici 3 — Pla de repàs. A partir dels teus errors als exercicis 1 i 2, redacta un mini pla: llista els mòduls a repassar ordenats per nombre d'errors, i una acció concreta per mòdul (una lliçó a rellegir o un laboratori a fer).
Solucions
Solució 1 — Respostes del test:
| Pregunta | Resposta | Explicació breu |
|---|---|---|
| P1 | b | Accés a un recurs aliè canviant un identificador directe = IDOR, dins d'A01 Control d'Accés Trencat. |
| P2 | b | L'emmagatzematge segur de contrasenyes és criptografia aplicada = A02. |
| P3 | c | El control primari contra SQLi és la parametrització; el WAF és defensa en profunditat, no la solució. |
| P4 | a | Panell exposat = A05 (config incorrecta); credencials per defecte = A07 (autenticació). |
| P5 | b | Forçar el servidor a demanar una URL interna és SSRF = A10. |
| P6 | a | Verificar signatures/hashes de dependències i artefactes mitiga A08. |
| P7 | b | L1<L2<L3 en exigència; L2 és l'objectiu típic. |
| P8 | b | ASVS és un catàleg de requisits verificables, útil com a criteris d'acceptació. |
| P9 | c | SAMM mesura i guia la maduresa del programa. |
| P10 | a | Governance és una de les cinc funcions de SAMM. |
| P11 | b | El baseline és passiu/ràpid, pensat per a CI sense trencar el build. |
| P12 | b | Passiu observa; actiu ataca. |
| P13 | b | Cal un context amb autenticació i gestió de sessió. |
| P14 | b | El cost de correcció creix amb l'avanç del cicle. |
| P15 | b | T = Tampering (Manipulació). |
| P16 | c | Els secrets es detecten amb secret scanning (gitleaks). |
| P17 | b | Dependency-Check és SCA (anàlisi de dependències). |
| P18 | b | El champion és el referent de seguretat del seu equip. |
| P19 | b | Un gate bloqueja/alerta segons llindar de severitat. |
| P20 | b | La seguretat com a propietat contínua és la tesi del curs. |
Solució 2 — Cas pràctic (resposta model):
| # | Vulnerabilitat | Control proposat | Top Ten 2021 | Estàndard |
|---|---|---|---|---|
| 1 | IDOR a GET /regals/{id} (no comprova propietari/destinatari) |
Control d'accés per objecte: verificar que el sol·licitant és emissor o destinatari | A01 | ASVS V4 (Control d'accés) |
| 2 | SSRF a la descàrrega de imagen_url (permet URLs internes) |
Allow-list de dominis/esquemes, resoldre i bloquejar rangs interns (169.254/16, 10/8), timeouts | A10 | ASVS V12/V5 |
| 3 | XSS emmagatzemat a mensaje (es mostra com a HTML sense escapar) |
Codificació de sortida contextual / sanitització; CSP com a defensa en profunditat | A03 | ASVS V5 (Validació i codificació) |
| 4 | Fallada criptogràfica: contrasenyes en MD5 sense sal |
Hash lent amb sal (bcrypt/Argon2/scrypt) i migració progressiva | A02 | ASVS V2 (Autenticació) |
| 5 | Registre/monitorització insuficient: acció sense logs | Registrar la creació/consulta de regals amb context (qui, què, quan) i alertar anomalies | A09 | ASVS V7 (Logging) |
Priorització raonada: 1 i 3 primer (explotables directament i afecten dades d'usuaris), 2 a continuació (impacte greu però requereix abusar de la importació), 4 (crític però explotable només si hi ha fuita de la BD) i 5 transversal (habilita la detecció dels altres). Si vas identificar 4 d'aquestes 5 amb el seu control i mapeig, la teva comprensió del Top Ten aplicat és sòlida.
Solució 3 — Pla de repàs. No hi ha solució única. Un exemple ben fet: "Vaig fallar P11-P13 (ZAP) i el control SSRF del cas -> M6 i 03/A10. Accions: rellegir 06-04 (automatització) i muntar Juice Shop per practicar SSRF (veure 09-03)." El correcte és que el pla surti dels teus errors reals, prioritzi per freqüència i acabi en accions concretes i verificables, no en bones intencions.
Conclusió
Aquesta avaluació ha tancat el cercle que va obrir el mòdul 8: primer vas aplicar OWASP sobre BazarNube i ara has mesurat quant en domines de veritat. Si has fet el test a cegues i el cas pràctic per escrit, ja tens un mapa honest de les teves fortaleses i de les lliçons a les quals convé tornar. Aquesta autoavaluació no és un tràmit: és exactament el criteri amb què decidiràs si estàs a punt per fer el pas següent, acreditar el teu coneixement davant de tercers. A la pròxima lliçó, 09-02 Certificació OWASP, aclarirem quin paper juga OWASP a l'ecosistema de certificacions de seguretat d'aplicacions, quines certificacions de la indústria encaixen amb el que has après i com triar l'adequada segons el teu perfil. Hi arribes amb l'essencial ja demostrat: no només saber, sinó saber aplicar-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
