Introducció
L'Application Security Verification Standard (ASVS) d'OWASP és un marc de treball que proporciona una llista de requisits de seguretat per a aplicacions web. Implementar ASVS en projectes ajuda a assegurar que les aplicacions compleixin amb els estàndards de seguretat necessaris per protegir-se contra vulnerabilitats comunes. En aquesta secció, explorarem com implementar ASVS en projectes de desenvolupament de programari.
Passos per Implementar ASVS
- Comprendre els Nivells de Verificació
ASVS defineix tres nivells de verificació, cadascun amb un conjunt de requisits de seguretat:
- Nivell 1: Requisits bàsics de seguretat per a aplicacions que no gestionen dades sensibles.
- Nivell 2: Requisits per a aplicacions que gestionen dades sensibles o personals.
- Nivell 3: Requisits per a aplicacions d'alta seguretat, com ara aplicacions financeres o de salut.
- Seleccionar el Nivell Adequat
Determina el nivell de verificació adequat per al teu projecte basant-te en la sensibilitat de les dades que l'aplicació gestionarà i els riscos associats. Això es pot fer mitjançant una anàlisi de riscos.
- Mapejar els Requisits d'ASVS
Mapeja els requisits d'ASVS als processos de desenvolupament existents. Això inclou:
- Requisits de disseny: Assegura't que els requisits de seguretat es considerin durant la fase de disseny.
- Requisits de codificació: Implementa pràctiques de codificació segura.
- Requisits de proves: Desenvolupa proves de seguretat per verificar que els requisits es compleixen.
- Integrar ASVS en el Cicle de Vida del Desenvolupament de Programari (SDLC)
Integra els requisits d'ASVS en cada fase del SDLC:
- Planificació: Inclou requisits de seguretat en els documents de requisits del projecte.
- Disseny: Realitza revisions de disseny de seguretat.
- Desenvolupament: Utilitza eines de revisió de codi i anàlisi estàtica per detectar vulnerabilitats.
- Proves: Realitza proves de penetració i escanejos de vulnerabilitats.
- Desplegament: Assegura't que les configuracions de seguretat es mantinguin durant el desplegament.
- Manteniment: Realitza auditories de seguretat periòdiques i actualitzacions de seguretat.
- Formació i Sensibilització
Proporciona formació contínua als desenvolupadors i altres membres de l'equip sobre els requisits d'ASVS i les millors pràctiques de seguretat.
- Monitoratge i Avaluació
Implementa mecanismes de monitoratge per assegurar-te que els requisits de seguretat es compleixen durant tot el cicle de vida de l'aplicació. Realitza avaluacions periòdiques per identificar i corregir possibles desviacions.
Exemple Pràctic
Escenari
Suposem que estàs desenvolupant una aplicació web per a una empresa financera que gestionarà informació sensible dels clients, com ara dades bancàries i informació personal.
Passos d'Implementació
-
Seleccionar el Nivell de Verificació:
- A causa de la naturalesa sensible de les dades, seleccionem el Nivell 3 d'ASVS.
-
Mapejar els Requisits d'ASVS:
- Disseny: Incloure autenticació multifactor (MFA) i xifrat de dades.
- Codificació: Utilitzar pràctiques de codificació segura per evitar injeccions SQL.
- Proves: Desenvolupar proves de penetració per verificar la seguretat de l'autenticació i el xifrat.
-
Integrar ASVS en el SDLC:
- Planificació: Documentar els requisits de seguretat en els documents de requisits del projecte.
- Disseny: Realitzar revisions de disseny de seguretat per assegurar que MFA i xifrat estiguin correctament implementats.
- Desenvolupament: Utilitzar eines com SonarQube per a l'anàlisi estàtica del codi.
- Proves: Realitzar proves de penetració amb OWASP ZAP.
- Desplegament: Assegurar que les configuracions de seguretat es mantinguin durant el desplegament.
- Manteniment: Realitzar auditories de seguretat periòdiques.
-
Formació i Sensibilització:
- Proporcionar formació als desenvolupadors sobre pràctiques de codificació segura i els requisits específics d'ASVS.
-
Monitoratge i Avaluació:
- Implementar eines de monitoratge per detectar i respondre a incidents de seguretat en temps real.
- Realitzar avaluacions periòdiques per assegurar que els requisits de seguretat es compleixen.
Exercici Pràctic
Exercici: Implementació de Requisits d'ASVS
Objectiu: Implementar els requisits de seguretat d'ASVS en una aplicació web fictícia.
Instruccions:
- Selecciona un nivell de verificació adequat per a una aplicació web que gestiona dades personals dels usuaris.
- Mapeja els requisits d'ASVS als processos de desenvolupament existents.
- Descriu com integraràs aquests requisits en cada fase del SDLC.
- Proporciona un pla de formació per als desenvolupadors.
- Descriu com monitoritzaràs i avaluaràs la seguretat de l'aplicació.
Solució:
-
Nivell de Verificació:
- Nivell 2, ja que l'aplicació gestiona dades personals dels usuaris.
-
Mapejar els Requisits d'ASVS:
- Disseny: Incloure autenticació segura i xifrat de dades.
- Codificació: Utilitzar pràctiques de codificació segura per evitar vulnerabilitats com XSS i CSRF.
- Proves: Desenvolupar proves de seguretat per verificar la implementació de l'autenticació i el xifrat.
-
Integrar ASVS en el SDLC:
- Planificació: Documentar els requisits de seguretat en els documents de requisits del projecte.
- Disseny: Realitzar revisions de disseny de seguretat.
- Desenvolupament: Utilitzar eines d'anàlisi estàtica del codi.
- Proves: Realitzar proves de penetració.
- Desplegament: Assegurar que les configuracions de seguretat es mantinguin durant el desplegament.
- Manteniment: Realitzar auditories de seguretat periòdiques.
-
Pla de Formació:
- Proporcionar formació sobre pràctiques de codificació segura i els requisits específics d'ASVS.
-
Monitoratge i Avaluació:
- Implementar eines de monitoratge per detectar i respondre a incidents de seguretat en temps real.
- Realitzar avaluacions periòdiques per assegurar que els requisits de seguretat es compleixen.
Conclusió
Implementar ASVS en projectes de desenvolupament de programari és essencial per assegurar que les aplicacions compleixin amb els estàndards de seguretat necessaris. Seguint els passos descrits en aquesta secció, els equips de desenvolupament poden integrar els requisits de seguretat en cada fase del SDLC, proporcionant una protecció robusta contra vulnerabilitats comunes.
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)
Mòdul 3: OWASP Top Ten
- A1: Injecció
- A2: Pèrdua d'Autenticació
- A3: Exposició de Dades Sensibles
- A4: Entitats Externes XML (XXE)
- A5: Control d'Accés Trencat
- A6: Configuració Incorrecta de Seguretat
- A7: Cross-Site Scripting (XSS)
- A8: Deserialització Insegura
- A9: Ús de Components amb Vulnerabilitats Conegudes
- A10: Registre i Monitoratge Insuficients
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)
- Integració de Seguretat en DevOps
- Capacitació i Sensibilització 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