Los 10 Desafíos de Seguridad Web Más Urgentes: OWASP Top Ten

Los 10 Desafíos de Seguridad Web Más Urgentes: OWASP Top Ten

Con el crecimiento de las aplicaciones web y la expansión de las amenazas cibernéticas, es esencial que los desarrolladores, administradores de sistemas y profesionales de seguridad comprendan y aborden las vulnerabilidades más importantes que enfrentan las aplicaciones.

El Open Web Application Security Project (OWASP) es una organización dedicada a mejorar la seguridad del software. Esta se encarga de concientizar sobre las amenazas de seguridad, proporcionar soluciones y estándares que nos permitan prevenir posibles fallas de seguridad.

Dentro de las contribuciones de OWASP se encuentra el OWASP Top Ten, una lista de las 10 vulnerabilidades más comunes, elegidas bajo consenso y que es un estándar, que debe considerarse para mantener un desarrollo de software más seguro.

Dentro de este primer artículo detallaremos 5 de las vulnerabilidades detalladas en la última versión del estándar: OWASP Top Ten 2021.

1. Control de acceso inadecuado

Es una de las incidencias más comunes detectadas, la misma sucede cuando no hay una gestión adecuada de los permisos y accesos, esto conlleva un aumento del riesgo de accesos no autorizados, comprometiendo la integridad, confidencialidad y disponibilidad de la información, así como la seguridad física de los activos protegidos.

Las causas más comunes a esta vulnerabilidad son las siguientes:

  • La elusión de comprobaciones de control de acceso
  • Falta de control de accesos en REST API
  • Elevación de privilegios (usuario con rol diferente al asignado inicialmente)
  • Mala configuración de CORS.

Esta vulnerabilidad se puede prevenir con:

  • Implementación de control de acceso en cada parte de la aplicación.
  • Registrar fallas de control de acceso e implementar alertas para las mismas.
  • Invalidación de identificador de sesión al cerrar sesión. La duración de tokens debe ser corta.

2. Fallas criptográficas

El uso de algoritmos de encriptación débiles o la falta de estos en el almacenamiento de datos sensibles y en la transmisión de la información crea situaciones de vulnerabilidad de seguridad en los sistemas. Cuando se producen fallas criptográficas, se pone en riesgo la confidencialidad, integridad y autenticidad de los datos protegidos, lo que puede facilitar ataques como el robo de información sensible, la falsificación de identidad o la manipulación de datos.

Algunas de las causas son:

  • Uso de algoritmos de encriptación antiguos.
  • Se transmiten algunos datos sin encriptar, incluso usando protocolos como HTTP, SMTP, etc.
  • No se validan correctamente los certificados de los servidores.

Se puede prevenir de las siguientes formas:

  • Identificar que datos son sensibles y aplicar encriptación a estos.
  • Asegúrese de utilizar algoritmos de encriptación y protocolos actuales.
  • Encriptar los datos en tránsito utilizando protocolos como el TLS.

3. Inyección de código

Consiste en ataques cuyo objetivo es la ejecución de comandos o consulta dentro de la aplicación, esto se consigue gracias al envío o inserción de estos comandos dentro de la aplicación. Este tipo de ataque es común en aplicaciones web y bases de datos, donde los atacantes aprovechan vulnerabilidades en formularios de entrada, campos de búsqueda o parámetros de URL para insertar instrucciones que el sistema ejecutará de manera no deseada. Los tipos más comunes de inyección incluyen la inyección SQL, la

inyección de comandos y la inyección de código HTML/JavaScript. Los ataques de inyección pueden tener consecuencias graves, como la manipulación de datos, la divulgación de información confidencial, la toma de control del sistema y la ejecución de acciones no autorizadas.

Entre las causas encontramos:

  • Falta de filtrado y validación de las entradas de datos en la aplicación.
  • Concatenación de consultas o comandos.
  • Los datos hostiles se utilizan dentro de los parámetros de búsqueda de mapeo relacional de objetos (ORM) para extraer registros confidenciales adicionales.

Para prevenir podemos implementar:

  • Validaciones de entrada de datos en el lado del servidor.
  • Usar controles para las queries.
  • Utilizar una API segura, que evite el uso de un intérprete por completo y proporcione una interfaz parametrizada o una herramienta de ORM.

4. Diseño Inseguro

El diseño y desarrollo de sistemas sin considerar los distintos riesgos de seguridad conlleva a posibles vulnerabilidades que pongan en riesgo la integridad de este. En el desarrollo pueden surgir riesgos de seguridad en el diseño y las arquitecturas de las aplicaciones que pueden aprovechar los atacantes. Se busca hacer uso de modelado de amenazas, patrones de diseño seguros y arquitecturas de software con referencias.

Entre las causas están:

  • No se consideran requisitos de protección y no se aplica la confidencialidad, integridad, disponibilidad y autenticidad de los datos en el diseño.
  • No se evalúan las posibles amenazas a la seguridad que puedan surgir, ni se aplican soluciones para prevenir las mismas en el desarrollo de las aplicaciones.
  • No se aplica el ciclo de desarrollo seguro (SDLC).

Entre las medidas de prevención a esta vulnerabilidad tenemos:

  • Utilizar patrones de diseño seguro.
  • Integrar verificaciones de viabilidad en cada capa de la aplicación.
  • Integrar pruebas unitarias y de integración para la validación de flujos críticos frente a amenazas.
  • Limitar el consumo de recursos por usuario o servicio.

5. Configuración de seguridad incorrecta

Esta vulnerabilidad aborda situaciones en las que una aplicación o sistema está configurado incorrectamente, dejando expuestos puntos de entrada, datos sensibles o funcionalidades que deberían estar protegidas.

Sus causas son:

  • No se tienen valores seguros en las configuraciones de seguridad de los servidores de aplicación.
  • Los desarrolladores y administradores de sistemas pueden no tener el conocimiento o la experiencia necesaria para configurar adecuadamente la seguridad de la aplicación
  • El software está desactualizado o es vulnerable
  • Las cuentas predeterminadas y sus contraseñas aún están habilitadas y sin cambios.
  • El manejo de errores revela a los usuarios rastros de pila u otros mensajes de error demasiado informativos.

Podemos prevenir con:

  • Realizar auditorías periódicas de seguridad para identificar y corregir configuraciones incorrectas o inseguras en la aplicación y la infraestructura subyacente.
  • Automatización de la implementación y configuración.
  • Gestión adecuada de parches y actualizaciones: Establecer procesos de gestión de parches y actualizaciones efectivos para garantizar que el software y los sistemas estén siempre actualizados con los últimos parches de seguridad y actualizaciones disponibles.

El OWASP Top Ten es una guía importante para aprender sobre las amenazas más importantes, priorizar recursos, dar orientación práctica para desarrolladores, cumplir con regulaciones de seguridad y mejorar las prácticas de seguridad. En resumen, el OWASP Top Ten es importante para proteger las aplicaciones web en todas las áreas de una organización.

En la próximo newsletter se detallarán los puntos OWASP restantes y cómo estos contribuyen a mejorar la seguridad. Mientras tanto puedes consultar OWASP Top Ten para más información acerca de este estándar.

Inicia sesión para ver o añadir un comentario.

Otros usuarios han visto

Ver temas