OWASP básicamente significa Open Web Application Security Project, es una comunidad en línea global 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.

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 principales vulnerabilidades más comunes, sino que también contiene el impacto potencial de cada vulnerabilidad y cómo evitarlas. El Top 10 de Riesgos de seguridad de aplicaciones Web de OWASP se actualizó recientemente en 2017 y básicamente proporciona orientación a los desarrolladores y profesionales de seguridad sobre las vulnerabilidades más críticas que se encuentran más comúnmente en las aplicaciones web, y 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 Sensibles
  4. XML External Entities (XXE)
  5. Control de acceso roto
  6. configuraciones erróneas de seguridad
  7. Cross-Site Scripting (XSS)
  8. deserialización insegura
  9. vulnerabilidades
  10. registro y monitoreo insuficientes.,

Injection

las vulnerabilidades de inyección ocurren cuando un atacante usa una consulta o comando para insertar datos no confiables 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

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

autenticación Rota

la autenticación rota es una vulnerabilidad que permite a un atacante utilizar métodos manuales o automáticos para intentar obtener el control sobre cualquier cuenta que desee en un sistema. En peores condiciones, también podrían obtener un control completo sobre el 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 rotos se pueden prevenir mediante la implementación de autenticación multifactor

  • protegiendo las credenciales de usuario
  • enviando contraseñas a través de conexiones cifradas
  • exposición de datos confidenciales

    esta vulnerabilidad es una de las vulnerabilidades más extendidas en la lista de OWASP y se produce cuando las aplicaciones y las API no protegen adecuadamente los datos confidenciales, como datos financieros, números de Seguridad 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

    • utilizando la URL segura
    • utilizando contraseñas fuertes y únicas
    • cifrando toda la información confidencial que necesita almacenarse

    XML External Entities (XXE)

    esta vulnerabilidad se produce para las aplicaciones web que analizan la entrada XML. Sucede cuando los procesadores XML mal configurados evalúan 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., Por defecto, la mayoría de los analizadores XML son vulnerables a los ataques XXE.

    los ataques XXE se pueden prevenir

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

    controles de acceso rotos

    esta vulnerabilidad se produce cuando hay acceso roto a los recursos, lo que significa que hay algunas restricciones faltantes configuradas incorrectamente en los usuarios autenticados que les permite 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 administración de sesiones e intentan acceder a los datos de los tokens de sesión no vencidos, lo que les da acceso a muchos identificadores y contraseñas válidos.,

    Los ataques de control de acceso rotos se pueden prevenir mediante

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

    Configuración incorrecta de seguridad

    se estima que hasta el 95% de las brechas en la nube son el resultado de errores humanos y nos dirigimos a la siguiente vulnerabilidad llamada Error de configuración de 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 este defecto permite a los hackers 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 configuración incorrecta de seguridad se pueden prevenir

    • utilizando Dynamic application security testing (dast)
    • deshabilitar el uso de contraseñas predeterminadas
    • vigilar los recursos, aplicaciones y servidores en la nube

    Cross-Site Scripting (XSS)

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

    los ataques de scripting entre sitios se pueden prevenir

    • utilizando encabezados de respuesta adecuados
    • filtrando la entrada y codificando la salida
    • utilizando la política de seguridad de contenido
    • aplicando un enfoque de confianza cero a la entrada del usuario

    deserialización insegura

    la vulnerabilidad de deserialización insegura permite que un atacante ejecute código de forma remota en la aplicación, manipule o elimine serializado (escrito en disco) realizar ataques de inyección, reproducir ataques y elevar privilegios. Este ataque también se conoce como deserialización no confiable., Es un grave problema de seguridad de aplicaciones que afecta a la mayoría de los sistemas modernos.,los ataques de alización se pueden prevenir mediante

    • implementando firmas digitales
    • utilizando pruebas de penetración
    • aislando el código que deserializa y ejecutándolo en entornos de bajo privilegio para evitar acciones no autorizadas

    utilizando componentes con vulnerabilidades conocidas

    hoy en día hay muchos componentes de software de código abierto y de libre disponibilidad (bibliotecas, frameworks) que están disponibles para los desarrolladores y si ocurre cualquier componente que tenga una vulnerabilidad conocida en él, se convierte en un la seguridad de toda la aplicación., 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 hace que sea difícil para los desarrolladores actualizar los componentes cuando se descubren nuevas vulnerabilidades en sus versiones actuales.,

    este ataque se puede prevenir mediante

    • eliminando todas las dependencias innecesarias
    • usando parches virtuales
    • usando componentes solo de fuentes oficiales y verificadas

    registro y monitoreo insuficientes

    se estima que el tiempo desde el ataque hasta la detección puede tardar hasta 200 días, y a menudo más. Mientras tanto, los atacantes pueden manipular servidores, corromper 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 pivotar hacia otros sistemas y mantener amenazas persistentes.,

    Los ataques de registro y monitoreo insuficientes se pueden prevenir mediante

    • implementando software de registro y auditoría
    • estableciendo un sistema de monitoreo efectivo
    • pensando como un atacante y usando un enfoque de prueba de lápiz