Seguridad (Top 10 de OWASP)
1. Control de acceso roto
Definition: Los usuarios pueden acceder a datos o realizar acciones para las que no están autorizados.
Example: Un usuario normal cambia /user/101 por /admin en la URL y ve páginas solo para administradores.
Impact: Los atacantes escalan privilegios, roban datos o manipulan configuraciones críticas.
Mitigation: Implementa control de acceso basado en roles (RBAC), verifica el acceso en cada nivel y usa comprobaciones de autenticación en el servidor.
2. Fallos criptográficos
Definition: Se exponen datos sensibles por un cifrado débil o inexistente.
Example: Almacenar contraseñas en texto plano en lugar de aplicar hash.
Impact: Provoca filtraciones de datos, robo de credenciales y multas regulatorias (GDPR, HIPAA).
Mitigation: Usa siempre TLS (HTTPS), aplica hash a las contraseñas con bcrypt/Argon2/sha512 y cifra los datos sensibles en reposo y en tránsito.
3. Inyección
Definition: La entrada no confiable se trata como código o como un comando.
Example: OR '1'='1 en un formulario de inicio de sesión evita la autenticación (inyección SQL).
Impact: Compromiso total de la base de datos, fuga de datos y ejecución remota de código.
Mitigation: Usa sentencias preparadas / consultas parametrizadas, valida las entradas y evita la concatenación de cadenas en las consultas.
4. Diseño inseguro
Definition: Existen fallos de seguridad a nivel arquitectónico.
Example: Una app bancaria permite intentos de inicio de sesión ilimitados sin bloqueo de cuenta → es posible la fuerza bruta.
Impact: Aumenta la superficie de ataque y genera debilidades predecibles.
Mitigation: Aplica principios de diseño seguro, añade limitación de tasa y bloqueos de cuenta, y adopta el modelado de amenazas al inicio del desarrollo.
5. Configuración de seguridad incorrecta
Definition: Ajustes de seguridad incorrectos o predeterminados hacen que los sistemas sean inseguros.
Example: Panel de administración en /admin con usuario: «admin» / contraseña: «admin123».
Impact: Explotación fácil, acceso no autorizado e instalación de malware.
Mitigation: Cambia las configuraciones predeterminadas, desactiva las funciones que no se usan y realiza auditorías de configuración periódicas.
6. Componentes vulnerables y desactualizados
Definition: Uso de software, bibliotecas o plugins antiguos o sin parchear.
Example: Un sitio web que ejecuta una versión desactualizada de WordPress con un exploit conocido de subida de archivos.
Impact: Los atacantes aprovechan CVE conocidas para obtener acceso o inyectar malware.
Mitigation: Mantén actualizados los frameworks, las bibliotecas y el sistema operativo, elimina las dependencias innecesarias y supervisa las bases de datos CVE/NVD.
7. Fallos de identificación y autenticación
Definition: Autenticación débil, fallos de inicio de sesión o mala gestión de sesiones.
Example: Se permiten intentos de inicio de sesión ilimitados sin bloquear la fuerza bruta.
Impact: Apropiación de cuentas, robo de identidad y escalada de privilegios.
Mitigation: Usa autenticación multifactor (MFA), exige contraseñas fuertes, limita los intentos fallidos y protege los tokens de sesión.
8. Fallos de integridad del software y los datos
Definition: Código, actualizaciones o problemas de la cadena de suministro no confiables o sin verificar.
Example: Una app se actualiza desde un servidor sin verificar → un atacante inyecta código malicioso.
Impact: Compromiso de la cadena de suministro (p. ej., la brecha de SolarWinds).
Mitigation: Verifica las firmas digitales, usa repositorios de confianza e implementa comprobaciones de integridad.
9. Fallos de registro y monitorización de seguridad
Definition: Los ataques pasan desapercibidos por un registro deficiente o inexistente.
Example: Se producen miles de intentos de fuerza bruta, pero el sistema no registra nada ni alerta a nadie.
Impact: Respuesta tardía o nula a las brechas e incumplimientos normativos.
Mitigation: Habilita un registro detallado, configura alertas/monitorización y usa soluciones SIEM para la detección en tiempo real.
10. Falsificación de solicitudes del lado del servidor (SSRF)
Definition: El atacante engaña al servidor para que haga solicitudes a otros sistemas.
Example: Un usuario envía una URL → el servidor solicita http://localhost/admin, exponiendo servicios internos.
Impact: Exposición de la red interna, ejecución remota de código y fugas de datos sensibles.
Mitigation: Valida y sanea la entrada, bloquea las solicitudes internas y usa listas de dominios permitidos.