¿Qué es OWASP Top 10?
El OWASP Top 10 es una clasificación de las vulnerabilidades más graves que afectan a las aplicaciones web. Su objetivo es proporcionar conciencia y conocimiento a la comunidad tecnológica sobre las fallas de seguridad más comunes y peligrosas. Actualizada periódicamente, esta lista ofrece una guía práctica para prevenir, detectar y corregir las vulnerabilidades más críticas.
Las vulnerabilidades en el OWASP Top 10 tienen el potencial de comprometer gravemente la seguridad de una aplicación, exponiendo datos sensibles, permitiendo el acceso no autorizado y causando grandes pérdidas para las organizaciones.
Existen distintas ediciones del OWASP Top 10, clasificadas según el año de su creación o actualización. Esto se debe al cambio en el panorama general de la seguridad web, ya que, según los datos recopilados por la Fundación OWASP, la frecuencia de determinados tipos de vulnerabilidades va aumentando y disminuyendo con el paso del tiempo. A su vez, nuevos tipos de vulnerabilidades emergen, mientras que otras desaparecen, reciben un nombre distinto o se agrupan:
OWASP Top 10 2021
A01:2021 - Pérdida de control de acceso
- Escalada de privilegios: Usuarios normales pueden obtener o realizar acciones que requieren privilegios de administrador.
- Movimiento lateral: Los usuarios pueden acceder a datos de otros usuarios de la plataforma.
- Falta de control de acceso en APIs: Las API no protegen correctamente los recursos.
A02:2021 - Fallos criptográficos
- Cifrado débil o inexistente: Uso de algoritmos criptográficos obsoletos o falta de cifrado en datos sensibles.
- Gestión inadecuada de claves: Almacenamiento o transmisión insegura de claves criptográficas.
- Exposición de datos sensibles: Contraseñas, números de tarjeta o datos personales no cifrados.
A03:2021 - Inyección
- Inyección SQL: Manipulación de consultas SQL para acceder o modificar datos de una base de datos.
- Inyección de comandos: Ejecución de comandos del sistema operativo a través de entradas inseguras.
- Inyección de código: Inserción de código malicioso en la aplicación, por ejemplo, código JavaScript.
A04:2021 - Diseño inseguro
- Falta de validación de entrada: No se comprueban adecuadamente los datos introducidos por el usuario. Este tipo de vulnerabilidad puede derivar en otras vulnerabilidades como la inyección de comandos o inyección SQL.
- Ausencia de controles de seguridad: Falta de autenticación o cifrado en puntos críticos.
- Arquitectura deficiente: Ausencia de separación de roles o uso de patrones de diseño inseguros.
A05:2021 - Mala configuración de la seguridad
- Credenciales por defecto: Uso de contraseñas o configuraciones predeterminadas en servidores o aplicaciones.
- Exposición de archivos sensibles: Archivos de configuración o bases de datos accesibles públicamente.
- Servicios no necesarios habilitados: Servicios no utilizados que podrían ser explotados.
A06:2021 - Componentes vulnerables y desactualizados
- Dependencias con vulnerabilidades conocidas: Uso de bibliotecas o frameworks con fallos de seguridad conocidos.
- Software desactualizado: Falta de actualizaciones de seguridad o parches disponibles.
- Plugins y módulos inseguros: Uso de extensiones o módulos de terceros que no se han auditado correctamente. (Plugins de WordPress desactualizados, librerías de JavaScript desactualizadas…)
A07:2021 - Fallos de identificación y autenticación
- Autenticación insegura: Falta de mecanismos como autenticación multifactor (MFA).
- Sesiones no protegidas: Tokens de sesión expuestos o falta de expiración de sesiones.
A08:2021 - Fallos en el software y la integridad de la información
- Actualizaciones no verificadas: Actualización de software sin comprobar su autenticidad.
- Alteración de código fuente: Inyección de código malicioso en repositorios o pipelines de CI/CD.
- Manipulación de archivos críticos: Alteración de archivos de configuración o bases de datos sin detección.
A09:2021 - Fallo en el registro de eventos de seguridad y monitorización
- Falta de registros de eventos: Falta de registros de acceso, errores o cambios en el sistema.
- Logs insuficientes: Los registros no contienen información suficiente para diagnosticar problemas.
- No se detectan ataques en tiempo real: No hay sistemas de alerta o monitorización activa ante incidentes.
A10:2021 - Forzado de peticiones del lado del servidor (SSRF)
- Acceso a recursos internos: El atacante utiliza la aplicación para acceder a servidores internos o bases de datos.
- Evasión de firewalls: El atacante explota la vulnerabilidad para saltar las restricciones de seguridad de red.
- Consulta de servicios locales: El atacante accede a servicios en la red interna, como HTTP, FTP o SSH.