Tendencias:
Portada vulnerabilidades informáticas owasp

OWASP Top 10 2021 de vulnerabilidades informáticas en desarrollo web

05/10/2022
Número de visualizaciones

Las vulnerabilidades informáticas hacen referencia a posibles defectos o agujeros de seguridad que hacen vulnerables a los sistemas informáticos y pueden dejarlos abiertos a posibles ataques.

Existen diferentes tipos de vulnerabilidades, dependiendo del tipo de ataque, fuente de la que proviene o sistemas que ataca.

Respecto a ello, existe un proyecto de seguridad de aplicaciones web abiertas (OWASP) que recopila un top 10 de las vulnerabilidades informáticas más extendidas en cuanto al campo del desarrollo web.

A continuación, voy a explicar qué es OWASP, cual es el top 10 actual y qué cambios ha habido respecto a la versión anterior.

¿Qué es OWASP?

OWASP (Open Web Application Security Project) es una fundación sin fines de lucro dedicada a mejorar la seguridad del software y evitar vulnerabilidades informáticas en el desarrollo web.

Funciona bajo un modelo de "comunidad abierta", lo que significa que cualquiera puede participar y contribuir en chats en línea, proyectos y trabajos relacionados con OWASP.

OWASP proporciona varias guías de desarrollo, testeo o pruebas unitarias en el mundo del desarrollo web y, además, cada 2-3 años elabora un Top 10 de las vulnerabilidades informáticas web más explotadas.

El OWASP Top 10 es un documento de concienciación estándar para desarrolladores y seguridad de aplicaciones web. Representa un amplio consenso sobre los riesgos de seguridad más críticos para las aplicaciones web.

Es reconocido mundialmente por los desarrolladores como el primer paso hacia una codificación web más segura.

Proporciona clasificaciones y orientación para la corrección de las 10 principales vulnerabilidades informáticas de seguridad de aplicaciones web más críticas.

Cambios entre la versión actual (2021) y la anterior (2017)

OWASP ha mantenido su lista Top 10 desde 2003, actualizándola cada dos o tres años de acuerdo con los avances y cambios en el mercado.

La versión actual fue lanzada el año pasado (2021) y la anterior era del 2017. La importancia de esta lista radica en la información que proporciona al servir como lista de verificación y estándar interno de desarrollo de aplicaciones web para muchas de las organizaciones más grandes del mundo.

A continuación, muestro un gráfico en el que se aprecian los cambios principales entre una versión y otra:

Comparativa OWASP 2021 vs 2017

OWASP TOP 10 2021: Vulnerabilidades informáticas web más críticas

Para la lista de 2021, OWASP agregó tres nuevas categorías, realizó cuatro cambios en el nombre y el alcance, y realizó ciertas consolidaciones.

1. Broken Access Control - Control de acceso roto (A01:2021)

El control de acceso roto (Broken Access Control), anteriormente en el número 5 en la lista, ha pasado a ser el número 1 para 2021. Ésta es una debilidad que permite a un atacante obtener acceso a las cuentas de los usuarios.

El atacante en este contexto puede funcionar como usuario o como administrador en el sistema.

Ejemplo: una aplicación permite cambiar una clave principal, y cuando esta clave se cambia al registro de otro usuario, la cuenta de ese usuario se puede ver o modificar.

2. Cryptographic Failures - Fallos criptográficos (A02:2021)

Anteriormente en la posición número 3 del ranking y conocida como exposición de datos confidenciales (Sensitive Data Exposure), se renombró como fallos criptográficos (Cryptographic Failures) para representarla con precisión como una causa raíz, en lugar de un síntoma.

Los fallos criptográficos ocurren cuando se comprometen datos importantes almacenados o transmitidos (como un número de cuenta o de tarjeta bancaria).

Ejemplo: una institución financiera no protege adecuadamente sus datos confidenciales y se convierte en un blanco fácil para el fraude con tarjetas de crédito y el robo de identidad.

3. Injection - Inyección (A03:2021)

La inyección (injection) baja del número 1 al número 3, y las secuencias de comandos entre sitios (Cross site Scripting o XSS) ahora se consideran parte de esta categoría.

Esencialmente, una inyección de código ocurre cuando un atacante envía datos no válidos a una aplicación web para hacer que la aplicación haga algo para lo que no fue diseñada.

Ejemplo: una aplicación utiliza datos que no son de confianza al construir una llamada SQL vulnerable, lo que se conoce normalmente como inyección de sql o SQL Injection.

4. Insecure Design - Diseño Inseguro (A04:2021)

El diseño inseguro (Insecure Design) es una nueva categoría para 2021 que se enfoca en los riesgos relacionados con fallos de diseño.

El modelado de amenazas, los patrones y principios de diseño seguro y las arquitecturas de referencia no son suficientes.

Ejemplo: una cadena de cines que permite descuentos en reservas de grupos requiere un depósito para grupos de más de 15 personas. Los atacantes amenazan con modelar este flujo para ver si pueden reservar cientos de asientos en varios cines de la cadena, causando así miles de dólares en ingresos perdidos.

5. Security Misconfiguration - Configuración incorrecta de seguridad (A05:2021)

La categoría de entidades externas (XML External Entities o XXE) ahora forma parte de esta categoría, que asciende desde el puesto número 6.

Las configuraciones incorrectas de seguridad (Security Misconfiguration) son debilidades de diseño o configuración que resultan de una deficiencia o error de configuración.

Ejemplo: una cuenta predeterminada y su contraseña original aún están habilitadas, lo que hace que el sistema sea vulnerable a la explotación.

6. Vulnerable and Outdated Components - Componentes vulnerables y obsoletos (A06:2021)

Esta categoría sube del número 9 y se relaciona con componentes que plantean riesgos de seguridad conocidos y potenciales (Using Components with Known Vulnerabilities), en lugar de solo los primeros.

Los componentes con vulnerabilidades conocidas, como CVE, deben identificarse y parchearse, mientras que los componentes obsoletos o maliciosos deben evaluarse para determinar su viabilidad y el riesgo que pueden presentar.

Ejemplo: debido al volumen de componentes utilizados en el desarrollo, es posible que un equipo de desarrollo no conozca o no comprenda todos los componentes utilizados en su aplicación, y algunos de esos componentes pueden estar desactualizados y, por lo tanto, vulnerables a ataques.

7. Identification and Authentication Failures - Fallos de Identificación y Autenticación (A07:2021)

Anteriormente conocida como autenticación rota (Broken Authentication), esta entrada bajó del número 2 y ahora incluye CWE relacionados con fallos de identificación.

Específicamente, las funciones relacionadas con la autenticación y la administración de sesiones, cuando se implementan incorrectamente, permiten a los atacantes comprometer contraseñas, palabras clave y sesiones, lo que puede conducir al robo de la identidad del usuario y más.

Ejemplo: una aplicación web permite el uso de contraseñas débiles o fáciles de adivinar.

8. Software and Data Integrity Failures - Fallos de integridad de software y datos (A08:2021)

Esta es una nueva categoría para 2021 que se enfoca en actualizaciones de software, datos críticos y canalizaciones de CI/CD utilizadas sin verificar la integridad.

Esta entrada también incluye la deserialización insegura (Insecure Deserialization) que es un fallo de deserialización que permite a un atacante ejecutar código en el sistema de forma remota.

Ejemplo: una aplicación deserializa los objetos hostiles proporcionados por el atacante, lo que la expone a aprovechar la vulnerabilidad.

9. Security Logging and Monitoring Failures - Registro de seguridad y fallos de monitoreo (A09:2021)

Conocida anteriormente como registro y supervisión insuficientes (Insufficient Logging & Monitoring), esta entrada subió del número 10 y se amplió para incluir más tipos de fallos.

El registro y la supervisión son actividades que deben realizarse en un sitio web con frecuencia; de no hacerlo, el sitio queda vulnerable a actividades más graves y comprometedoras.

Ejemplo: los eventos que se pueden auditar, como inicios de sesión, inicios de sesión fallidos y otras actividades importantes, no se registran, lo que genera una aplicación vulnerable.

10. Server-Side Request Forgery (SSRF) - Falsificación de solicitud del lado del servidor (A10:2021)

Ésta es una nueva categoría. Una falsificación de solicitud del lado del servidor (SSRF) puede ocurrir cuando una aplicación web obtiene un recurso remoto sin validar la URL proporcionada por el usuario.

Esto permite que un atacante haga que la aplicación envíe una solicitud manipulada a un destino inesperado, incluso cuando el sistema está protegido por un firewall, una VPN o una lista de control de acceso a la red adicional.

La gravedad y la incidencia de los ataques SSRF están aumentando debido a los servicios en la nube y la mayor complejidad de las arquitecturas.

Ejemplo: si una arquitectura de red no está segmentada, los atacantes pueden usar los resultados de la conexión o el tiempo transcurrido para conectarse o rechazar las conexiones de carga útil de SSRF para mapear las redes internas y determinar si los puertos están abiertos o cerrados en los servidores internos.

Categorizado en: Informática y TICS

Deja un comentario

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Descubre MasterClass de INESEM. Una plataforma en la que profesionales enseñan en abierto

Profesionales enseñando en abierto

Universidades colaboradoras
La universidad Antonio de Nebrija es Universidad colaboradora con INESEM Business School La universidad a Distancia de Madrid es Universidad colaboradora con INESEM Business School