Las 10 principales vulnerabilidades y prevenciones de OWASP

OWASP básicamente significa Open Web Application Security Project , es una comunidad global en línea sin fines de lucro que consta de decenas de miles de miembros y cientos de capítulos que produce artículos, documentación, herramientas y tecnologías en el campo de la seguridad de aplicaciones web.

OWASP-Top-10-Vulnerabilities-And-Preventions

Cada tres o cuatro años, OWASP revisa y publica su lista de las 10 principales vulnerabilidades de aplicaciones web. Esta lista no solo contiene las 10 vulnerabilidades principales más comunes, sino que también contiene el impacto potencial de cada vulnerabilidad y cómo evitarlas. Los 10 principales riesgos de seguridad de las aplicaciones web de OWASP se actualizaron por última vez en 2017 y básicamente brindan orientación a los desarrolladores y profesionales de la seguridad sobre las vulnerabilidades más críticas que se encuentran con mayor frecuencia en las aplicaciones web y que también son fáciles de explotar. El top 10 de OWASP se considera una guía esencial para las mejores prácticas de seguridad de aplicaciones web.

Las 10 principales vulnerabilidades de OWASP en 2020 son:

  1. Inyección
  2. Autenticación rota
  3. Exposición de datos confidenciales
  4. Entidades externas XML (XXE)
  5. Control de acceso roto
  6. Configuraciones incorrectas de seguridad
  7. Secuencias de comandos entre sitios (XSS)
  8. Deserialización insegura
  9. Uso de componentes con vulnerabilidades conocidas
  10. Registro y seguimiento insuficientes.

1. Inyección

Las vulnerabilidades de inyección ocurren cuando un atacante usa una consulta o comando para insertar datos que no son de confianza en el intérprete a través de inyección SQL, OS, NoSQL o LDAP. Los datos que se inyectan a través de este vector de ataque hacen que la aplicación haga algo para lo que no está diseñada. No todas las aplicaciones son vulnerables a este ataque, solo las aplicaciones que aceptan parámetros como entrada son vulnerables a los ataques de inyección.

Los ataques de inyección se pueden prevenir mediante

  • Usando una API más segura que evita el uso del intérprete
  • Uso de consultas parametrizadas al codificar
  • Segregación de comandos de los datos para evitar la exposición a ataques

2. Autenticación rota

La autenticación rota es una vulnerabilidad que permite a un atacante usar métodos manuales o automáticos para intentar obtener el control de cualquier cuenta que desee en un sistema. En peores condiciones, también podrían obtener el control total del sistema. Esta vulnerabilidad también es más peligrosa porque los sitios web con vulnerabilidades de autenticación rotas son muy comunes en la web. La autenticación rota normalmente ocurre cuando las aplicaciones ejecutan incorrectamente funciones relacionadas con la administración de sesiones, lo que permite a los intrusos comprometer contraseñas, claves de seguridad o tokens de sesión.

Los ataques de autenticación rota se pueden prevenir mediante

  • Implementación de la autenticación multifactor
  • Protección de las credenciales de usuario
  • Envío de contraseñas a través de conexiones cifradas

3. Exposición de datos confidenciales

Esta vulnerabilidad es una de las vulnerabilidades más extendidas en la lista OWASP y ocurre cuando las aplicaciones y las API no protegen adecuadamente los datos confidenciales, como datos financieros, números de seguro social, nombres de usuario y contraseñas o información de salud, y esto permite a los atacantes obtener acceso a dicha información y cometer fraude o robar identidades.

Los ataques de exposición de datos confidenciales se pueden prevenir mediante

  • Usando las URL seguras
  • Uso de contraseñas seguras y únicas
  • Cifrar toda la información confidencial que debe almacenarse

4. Entidades Externas XML (XXE)

Esta vulnerabilidad se produce en las aplicaciones web que analizan la entrada XML. Ocurre cuando los procesadores XML mal configurados evalúan las referencias de entidades externas dentro de los documentos XML y envían datos confidenciales a una entidad externa no autorizada, es decir, una unidad de almacenamiento como un disco duro. De forma predeterminada, la mayoría de los analizadores XML son vulnerables a los ataques XXE.

Los ataques XXE se pueden prevenir mediante

  • Uso de formatos de datos menos complejos como JSON
  • Mantener actualizados los procesadores y bibliotecas XML
  • Uso de herramientas SAST

5. Controles de acceso rotos

Esta vulnerabilidad se produce cuando se interrumpe el acceso a los recursos, lo que significa que faltan algunas restricciones configuradas incorrectamente en usuarios autenticados que les permiten acceder a funciones o datos no autorizados, como el acceso a otras cuentas, documentos confidenciales, etc. Para este ataque, los atacantes toman la ayuda de la gestión de sesiones e intentar acceder a los datos de los tokens de sesión vigentes, lo que les da acceso a muchas ID y contraseñas válidas.

Los ataques de control de acceso roto se pueden prevenir mediante

  • Eliminar cuentas que ya no son necesarias o que no están activas
  • Cierre de servicios innecesarios para reducir la carga en los servidores
  • Usando pruebas de penetración

6. Configuración incorrecta de la seguridad

Se estima que hasta el 95% de las brechas en la nube son el resultado de errores humanos y este hecho nos lleva a la siguiente vulnerabilidad llamada configuración incorrecta de la seguridad. Esta vulnerabilidad se refiere a la implementación incorrecta de la seguridad destinada a mantener seguros los datos de la aplicación. Como sabemos, el trabajo del desarrollador es básicamente trabajar en la funcionalidad de los sitios web y no en la seguridad, y esta falla permite a los piratas realizar un seguimiento de la configuración de la seguridad y encontrar nuevas formas posibles de ingresar a los sitios web. La razón más común de esta vulnerabilidad no es parchear o actualizar sistemas, marcos y componentes.

Los ataques de mala configuración de seguridad se pueden prevenir mediante

  • Uso de pruebas de seguridad de aplicaciones dinámicas (DAST)
  • Deshabilitar el uso de contraseñas predeterminadas
  • Vigilar los recursos, las aplicaciones y los servidores de la nube

7. Secuencias de comandos entre sitios (XSS)

Esta también es una vulnerabilidad generalizada que afecta casi al 53% de todas las aplicaciones web. La vulnerabilidad XSS permite que un hacker inyecte scripts maliciosos del lado del cliente en un sitio web y luego use la aplicación web como un vector de ataque para secuestrar sesiones de usuario o redirigir a la víctima a sitios web maliciosos.  

Los ataques de secuencias de comandos entre sitios se pueden prevenir mediante

  • Uso de encabezados de respuesta apropiados
  • Filtrar la entrada y codificar la salida
  • Uso de la política de seguridad de contenido
  • Aplicar un enfoque de confianza cero a la entrada del usuario

8. Deserialización insegura

La vulnerabilidad de deserialización insegura permite a un atacante ejecutar de forma remota código en la aplicación, manipular o eliminar objetos serializados (escritos en el disco), realizar ataques de inyección, reproducir ataques y elevar los privilegios. Este ataque también se conoce como deserialización no confiable. Es un grave problema de seguridad de las aplicaciones que afecta a la mayoría de los sistemas modernos.

Los ataques de deserialización inseguros se pueden prevenir mediante

  • Implementación de firmas digitales
  • Usando pruebas de penetración
  • Aislar el código que deserializa y ejecutarlo en entornos de privilegios bajos para evitar acciones no autorizadas

9. Uso de componentes con vulnerabilidades conocidas

Hoy en día, hay muchos componentes de software de código abierto y disponibles gratuitamente (bibliotecas, marcos) que están disponibles para los desarrolladores y si hay algún componente que tenga una vulnerabilidad conocida, se convierte en un eslabón débil que puede afectar la seguridad de todo. solicitud. También ocurre porque los desarrolladores con frecuencia no saben qué componentes de código abierto y de terceros están presentes en sus aplicaciones y esto dificulta que los desarrolladores actualicen los componentes cuando se descubren nuevas vulnerabilidades en sus versiones actuales.

Este ataque se puede prevenir con

  • Eliminar todas las dependencias innecesarias
  • Uso de parches virtuales
  • Usar componentes solo de fuentes oficiales y verificadas

10. Registro y monitoreo insuficientes

Se estima que el tiempo desde el ataque hasta la detección puede demorar hasta 200 días y, a menudo, más. Mientras tanto, los atacantes pueden alterar los servidores, corromper las bases de datos y robar información confidencial. El registro insuficiente y la integración ineficaz de los sistemas de seguridad permiten a los atacantes pasar a otros sistemas y mantener amenazas persistentes.

Los ataques de registro y monitoreo insuficientes se pueden prevenir mediante

  • Implementación de software de registro y auditoría
  • Establecimiento de un sistema de seguimiento eficaz
  • Pensar como un atacante y usar un enfoque de prueba de penetración

Publicación traducida automáticamente

Artículo escrito por patidarakshay999 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *