TOP 10 OWASP 2021 – Vulnerabilidades Web

En este artículo presentaremos las principales vulnerabilidades web basadas en el Top 10 de OWASP 2021. El mismo es muy utilizado y conocerlo es importante porque permite conocer cuáles son los principales problemas existentes, saber cómo funcionan estos ataques y cómo prevenirlos.

¿Qué es OWASP y a qué se dedica?

OWASP es una fundación sin fines de lucro que busca mejorar la seguridad del software. Principalmente, con foco en las aplicaciones web. Aunque también cubren otras áreas, cómo por ejemplo Internet de las Cosas.

Para eso, OWASP pone a disposición diversos recursos, herramientas open source e información.

Una de las cosas por la cual es más conocida esta fundación es por su proyecto Top 10 OWASP. Donde lo que hacen es recopilar una gran cantidad de información sobre incidentes de seguridad web, esta información es analizada por expertos en ciberseguridad de diferentes partes del mundo y luego hacen un ranking de las vulnerabilidades más críticas.

OWASP pone a disponibilidad también herramientas para aprender sobre estas vulnerabilidades. En el artículo anterior, creamos un laboratorio de hacking utilizando WebGoat, que es una aplicación vulnerable de OWASP para practicar justamente este top 10 de vulnerabilidades.

Este ranking se realiza cada 3 años y hace poco salió el nuevo Ranking del 2021. Asi qué vamos a ver el listado de este año.

Top 10 OWASP de vulnerabilidades web

El ranking de vulnerabilidades web más críticas es el siguiente.

Top 10 Owasp
Foto obtenida de: https://owasp.org/Top10/ – Modificaciones del ranking con respeto a la versión anterior.

TOP 1 – Saltarse los controles de acceso

Esta vulnerabilidad permite a un atacante acceder a un área a la cual no debería poder ingresar. De esta forma, podría ver, modificar o borrar contenido al cual no debería tener acceso. En el peor caso, podría ejecutar funciones no autorizadas o incluso tomar control total del sistema a través de funciones de administrador.

En este post podes encontrar una descripción detallada de cómo funciona y cómo provenir este ataque. También aquí hay ejercicios prácticos de esta vulnerabilidad.

TOP 2 – Fallos de criptografía

Esta vulnerabilidad engloba una variedad de posibles ataques debido, por ejemplo, a una mala gestión de claves, análisis de datos o fugas de información a que pueden llevar a inferencias sobre los datos que se transportan. También se incluye el uso incorrecto de la criptografía o utilizar algoritmos de criptografía débiles.

TOP 3 – Inyecciones

Los ataques de inyección explotan comandos que combinan datos ingresados por el usuario. Es decir, el atacante envía datos a una aplicación de una manera que cambiará el significado de los comandos que se envían a un intérprete.

El ejemplo más común es la inyección SQL. En la siguiente consulta, un atacante podría enviar en el campo id el string «3 OR 1 = 1» en lugar de solo «3».

SELECT * FROM table 
WHERE tableID= request.getParameter("id");

Si este string se incluye en una consulta SQL, el “OR 1=1” da como resultado un TRUE en la condición de la consulta que se hace en la base de datos. Esto cambiaría el significado para devolver TODOS los registros en lugar de solo uno, obteniendo potencialmente información confidencias

TOP 4 – Diseño inseguro

Esta es una categoría amplia que representa diferentes debilidades resultantes de controles faltantes o ineficaces.

Hay una diferencia entre un diseño inseguro y una implementación insegura. Un diseño seguro puede tener defectos de implementación que conduzcan a vulnerabilidades que pueden explotarse. Sin embargo, un diseño inseguro no se puede arreglar con una implementación perfecta ya que los controles de seguridad se crearon de manera inadecuada desde el inicio.

Por ejemplo, un error de diseño es utilizar recuperación de contraseñas basado en preguntas y respuestas. Esto se debe a que no se puede confiar en esta información como evidencia de identidad, ya que más de una persona puede conocer las respuestas.

TOP 5 – Mala configuración de seguridad

Aun cuando la aplicación está perfectamente diseñada e implementada, aún pueden existir vulnerabilidades debido a la configuración de la misma.

Algunos ejemplos son los siguientes:

  • Permisos configurados incorrectamente
  • Servicios innecesarios habilitados
  • Cuentas predeterminadas con contraseñas por defecto
  • Servidores que envían encabezados inseguros o utiliza versiones de protocolos, bibliotecas o bases de datos que no están configurados de forma segura.

TOP 6 – Componentes vulnerables o desactualizados

Los componentes que componen la aplicación (tanto del lado del cliente como del lado del servidor) pueden ser vulnerables. Esto incluye los componentes que usa directamente, así como las dependencias anidadas, considerando, por ejemplo, sistema operativo, el servidor web, el sistema de administración de bases de datos (DBMS), las aplicaciones, las API, los entornos de ejecución y las bibliotecas.

Si no se actualiza la plataforma y las dependencias de manera regular, estos componentes vulnerables pueden dejar brechas de entrada abiertas.

TOP 7 – Fallos de identificación y autenticación

En esta categoría se consideran las vulnerabilidades relacionadas con la confirmación de la identidad del usuario, la autenticación y la gestión de sesiones.

Algunos ejemplos dentro de esta categoría son:

  • El uso de fuerza bruta, donde a través de una lista de posibles nombres de usuario y contraseñas se intenta encontrar valores aceptados
  • Permitir contraseñas predeterminadas, débiles o conocidas, como «1234567» o «admin / admin»
  • Almacenar contraseñas de texto claro
  • Reutilizar identificadores de sesión o no validar correctamente los identificadores de sesión.

TOP 8 – Fallos de integridad en software y datos

Este tipo de vulnerabilidad ocurre cuando el código y la infraestructura no protegen contra posible violaciones de integridad. Por ejemplo, la aplicación utiliza bibliotecas, repositorios y redes de entrega de contenido (CDN) que no son de confianza.

Esto puede provocar accesos no autorizado, código malicioso o compromiso del sistema. Otro ejemplo ocurre cuando los datos se guardan o transmiten en estructura que un atacante puede ver y modificar.

TOP 9 – Logs de seguridad y monitoreo insuficientes o con errores

Los logs y el monitoreo permiten detectar y responder a las intrusiones. Por eso, es importante garantizar la integridad y completitud de estos datos. Además, los mismos deben ser analizados para obtener información sobre el estado del sistema.

Esta vulnerabilidad incluye el registro, detección, supervisión o respuesta insuficiente ante incidentes.

Por ejemplo, cuando eventos como inicios de sesión, inicios de sesión fallidos o transacciones importantes, no se registran. También cuando los errores no generan registros o los mismos son inadecuados o poco claros.

Otras vulnerabilidades de esta categoría son los logs que solo se almacenan localmente, que no se controlan para detectar actividades sospechosas o que no detectan ataque en tiempo real.

Otro ejemplo son las alertas y los procesos de respuesta no establecidos o no efectivos.

TOP 10 – Falsificación de solicitud del lado del servidor (SSRF)

Las vulnerabilidades SSRF permiten que un atacante envíe solicitudes desde el servidor backend de una aplicación vulnerable, para atacar sistemas internos que están detrás de firewalls y no son accesibles desde la red externa.

Por ejemplo, se podía manipular la URL o los comandos que la aplicación web envía a servicios de terceros. En un ataque SSRF, el atacante puede hacer que el servidor se conecte tanto a servicios internos de la organización como a sistemas externos.

Conclusión

En este artículo presentamos las vulnerabilidades web más críticas que actualmente enfrentan las organizaciones. Conocerlas es útil para poder prevenirlas, identificarlas y corregirlas.

El ranking Top 10 de OWASP es una referencia a nivel mundial con respecto a la seguridad de aplicaciones web. Conocerlo es fundamental para cualquier profesional de seguridad o desarrollador de aplicaciones web.

En próximos artículos examinaremos en más detalles estas vulnerabilidades. Subscribete a nuestras redes sociales para no perderte este contenido.

References

OWASP Project