El Cicle de Vida de Desenvolupament Segur (SDLC, per les seves sigles en anglès) és un procés estructurat que integra la seguretat en cada fase del desenvolupament d'aplicacions. L'objectiu és garantir que les aplicacions siguin segures des del seu disseny fins a la seva implementació i manteniment. A continuació, es detallen les fases clau del SDLC i com la seguretat s'integra en cadascuna d'elles.
Fases del SDLC
-
Planificació i Anàlisi de Requisits
- Objectiu: Definir els requisits funcionals i no funcionals de l'aplicació.
- Activitats de Seguretat:
- Identificar requisits de seguretat específics.
- Realitzar una anàlisi de riscos per identificar possibles amenaces.
- Establir polítiques de seguretat i estàndards a seguir durant el desenvolupament.
-
Disseny
- Objectiu: Crear l'arquitectura de l'aplicació i el seu disseny detallat.
- Activitats de Seguretat:
- Realitzar una revisió de disseny de seguretat.
- Utilitzar patrons de disseny segur.
- Definir controls de seguretat com autenticació, autorització, xifratge, etc.
- Crear models de dades segurs.
-
Implementació
- Objectiu: Escriure el codi de l'aplicació segons el disseny establert.
- Activitats de Seguretat:
- Aplicar pràctiques de codificació segura.
- Utilitzar eines d'anàlisi de codi estàtic per detectar vulnerabilitats.
- Revisar el codi per assegurar-se que compleix amb els estàndards de seguretat.
-
Proves
- Objectiu: Verificar que l'aplicació funciona correctament i compleix amb els requisits establerts.
- Activitats de Seguretat:
- Realitzar proves de penetració per identificar vulnerabilitats.
- Utilitzar eines d'anàlisi dinàmica per detectar problemes de seguretat en temps d'execució.
- Provar la robustesa dels controls de seguretat implementats.
-
Desplegament
- Objectiu: Posar l'aplicació en producció i fer-la accessible als usuaris finals.
- Activitats de Seguretat:
- Assegurar-se que l'entorn de producció està configurat de manera segura.
- Implementar mecanismes de monitoratge i registre per detectar activitats sospitoses.
- Realitzar una revisió de seguretat final abans del desplegament.
-
Manteniment
- Objectiu: Gestionar l'aplicació després del seu desplegament, incloent actualitzacions i correccions de bugs.
- Activitats de Seguretat:
- Monitoritzar contínuament l'aplicació per detectar i respondre a incidents de seguretat.
- Aplicar actualitzacions de seguretat i pegats de manera regular.
- Realitzar auditories de seguretat periòdiques.
Integració de la Seguretat en el SDLC
Pràctiques Recomanades
- Formació en Seguretat: Capacitar els desenvolupadors i altres membres de l'equip en pràctiques de seguretat.
- Revisió de Codi: Implementar revisions de codi regulars per identificar i corregir vulnerabilitats.
- Anàlisi de Riscos: Realitzar anàlisis de riscos periòdiques per identificar noves amenaces i ajustar els controls de seguretat.
- Automatització de Proves: Utilitzar eines automatitzades per realitzar proves de seguretat de manera eficient i consistent.
- Documentació de Seguretat: Mantenir una documentació detallada de les polítiques, procediments i controls de seguretat implementats.
Eines i Recursos
Eina | Descripció | Fase del SDLC |
---|---|---|
OWASP ZAP | Eina per a proves de penetració i anàlisi dinàmica de seguretat. | Proves |
SonarQube | Plataforma per a l'anàlisi de codi estàtic i detecció de vulnerabilitats. | Implementació |
Burp Suite | Eina per a proves de seguretat d'aplicacions web. | Proves |
JIRA | Eina de gestió de projectes que pot integrar-se amb processos de seguretat. | Totes les fases |
Exercici Pràctic
Exercici: Integració de Seguretat en el SDLC
Objectiu: Aplicar els conceptes apresos per integrar la seguretat en el cicle de vida de desenvolupament d'una aplicació web.
Instruccions:
-
Planificació i Anàlisi de Requisits:
- Identifica tres requisits de seguretat per a una aplicació web de comerç electrònic.
- Realitza una anàlisi de riscos per a aquests requisits.
-
Disseny:
- Dissenya un esquema d'autenticació segur per a l'aplicació.
- Defineix els controls de seguretat necessaris per protegir les dades dels usuaris.
-
Implementació:
- Escriu un fragment de codi que implementi un mecanisme de xifratge per a les contrasenyes dels usuaris.
- Utilitza una eina d'anàlisi de codi estàtic per revisar el codi i identificar possibles vulnerabilitats.
-
Proves:
- Realitza una prova de penetració bàsica per identificar vulnerabilitats en l'aplicació.
- Documenta els resultats i proposa solucions per a les vulnerabilitats trobades.
-
Desplegament:
- Descriu els passos necessaris per assegurar l'entorn de producció abans del desplegament.
- Implementa mecanismes de monitoratge per detectar activitats sospitoses.
-
Manteniment:
- Defineix un pla de manteniment de seguretat que inclogui actualitzacions regulars i auditories de seguretat.
Solució Proposada:
-
Planificació i Anàlisi de Requisits:
- Requisits de Seguretat:
- Autenticació de dos factors.
- Xifratge de dades sensibles.
- Control d'accés basat en rols.
- Anàlisi de Riscos:
- Amenaces: Accés no autoritzat, robatori de dades, escalada de privilegis.
- Impacte: Alt.
- Probabilitat: Mitjana.
- Controls: Implementar autenticació de dos factors, xifratge de dades, i control d'accés basat en rols.
- Requisits de Seguretat:
-
Disseny:
- Esquema d'Autenticació:
- Utilitzar OAuth 2.0 per a l'autenticació.
- Implementar autenticació de dos factors amb SMS o aplicació d'autenticació.
- Controls de Seguretat:
- Xifratge AES per a dades sensibles.
- Utilitzar HTTPS per a totes les comunicacions.
- Implementar controls d'accés basats en rols amb permisos granulars.
- Esquema d'Autenticació:
-
Implementació:
import bcrypt def hash_password(password): salt = bcrypt.gensalt() hashed = bcrypt.hashpw(password.encode('utf-8'), salt) return hashed def check_password(hashed, password): return bcrypt.checkpw(password.encode('utf-8'), hashed)
-
Proves:
- Prova de Penetració:
- Utilitzar OWASP ZAP per escanejar l'aplicació.
- Identificar vulnerabilitats com XSS, SQL Injection, etc.
- Documentació:
- Vulnerabilitat trobada: XSS en el formulari de comentaris.
- Solució: Escapar correctament les entrades dels usuaris.
- Prova de Penetració:
-
Desplegament:
- Passos de Seguretat:
- Configurar el servidor amb TLS.
- Assegurar-se que totes les dependències estan actualitzades.
- Implementar mecanismes de registre i monitoratge.
- Monitoratge:
- Utilitzar eines com ELK Stack per monitoritzar logs.
- Configurar alertes per activitats sospitoses.
- Passos de Seguretat:
-
Manteniment:
- Pla de Manteniment:
- Actualitzacions de seguretat mensuals.
- Auditories de seguretat trimestrals.
- Revisió contínua de logs i alertes.
- Pla de Manteniment:
Conclusió
Integrar la seguretat en cada fase del SDLC és essencial per desenvolupar aplicacions segures i robustes. Mitjançant la implementació de pràctiques i eines de seguretat adequades, es poden minimitzar els riscos i garantir la protecció de les dades i els usuaris. Aquest mòdul ha proporcionat una visió general de com incorporar la seguretat en el SDLC, així com exercicis pràctics per aplicar aquests conceptes en situacions reals.
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