Resultado de Aprendizaje 3: Detección y corrección de vulnerabilidades de aplicaciones web
Criterio 3.a: Validar las entradas de los usuarios
- Conceptos: Técnicas de validación de entrada (sintáctica, semántica); vulnerabilidades como XSS y SQLi.
- Prácticas: Implementar validación en código; probar debilidades con herramientas.
- Herramientas: WAFs, análisis estático, herramientas de pruebas de penetración (Burp Suite).
- Adicional: Principio de no confiar en la entrada del usuario; validación en múltiples capas.
Criterio 3.b: Detectar riesgos de inyección en servidor y cliente
- Conceptos: Tipos de inyección (SQL, OS, código); prevención mediante consultas parametrizadas.
- Prácticas: Identificar puntos de inyección; implementar correcciones en código.
- Herramientas: SQLMap, análisis estático, escáneres de vulnerabilidades (Acunetix).
- Adicional: Analizar ataques de inyección famosos; uso de frameworks ORM para prevención.
Criterio 3.c: Gestionar correctamente la sesión del usuario
- Conceptos: Vulnerabilidades de gestión de sesiones (fijación, secuestro); mejores prácticas como cookies seguras.
- Prácticas: Implementar gestión de sesiones segura; probar vulnerabilidades.
- Herramientas: Herramientas de desarrollo del navegador, Burp Suite, bibliotecas de sesiones seguras.
- Adicional: Comparar autenticación basada en tokens (JWT) con sesiones tradicionales.
Criterio 3.d: Usar roles para el control de acceso
- Conceptos: Principios de control de acceso (menor privilegio); implementación de RBAC.
- Prácticas: Diseñar e implementar RBAC; probar controles de acceso.
- Herramientas: Frameworks de autenticación (Spring Security), herramientas de pruebas de penetración.
- Adicional: Errores comunes como referencias directas a objetos; auditoría de decisiones de acceso.
Criterio 3.e: Usar algoritmos criptográficos seguros para contraseñas
- Conceptos: Hashing de contraseñas; algoritmos recomendados (bcrypt, Argon2).
- Prácticas: Implementar hashing; verificar almacenamiento; intentar cracking éticamente.
- Herramientas: Bibliotecas de hashing (bcrypt), herramientas de cracking (Hashcat).
- Adicional: Políticas de contraseñas; autenticación multifactor.
Criterio 3.f: Configurar servidores web para reducir riesgos
- Conceptos: Endurecimiento de servidores; cabeceras de seguridad (HSTS, CSP).
- Prácticas: Configurar servidores con mejores prácticas; escanear configuraciones erróneas.
- Herramientas: Guías de configuración (Mozilla Observatory), escáneres (Nikto).
- Adicional: Configuración de HTTPS; análisis de logs para detección de ataques.
Criterio 3.g: Incorporar medidas contra ataques automatizados
- Conceptos: Ataques automatizados (brute force, spam); CAPTCHAs, limitación de tasas.
- Prácticas: Implementar CAPTCHAs; configurar limitación de tasas; simular ataques.
- Herramientas: reCAPTCHA, WAFs con detección de bots, herramientas de monitorización.
- Adicional: Equilibrio entre seguridad y experiencia del usuario; detección de bots basada en ML.