El Open Web Application Security Project (OWASP) es una comunidad de seguridad de aplicaciones de código abierto cuyo objetivo es mejorar la seguridad del software. El OWASP Top 10 es una guía estándar del sector que enumera los riesgos más críticos para la seguridad de las aplicaciones con el fin de ayudar a los desarrolladores a proteger mejor las aplicaciones que diseñan e implantan.
Dado que los riesgos de seguridad evolucionan constantemente, la lista OWASP Top 10 se revisa periódicamente para reflejar estos cambios. En la última versión de OWASP Top 10 publicada en 2021, algunos tipos de vulnerabilidades que ya no representan una amenaza grave se sustituyeron por otras que tienen más probabilidades de suponer un riesgo importante.
Aunque el OWASP Top 10 es un buen punto de partida para proteger las aplicaciones, no debe considerarse un objetivo final, ya que algunas de las vulnerabilidades más citadas no se incluyeron en el OWASP Top 10 2021. Para protegerse contra los puntos débiles del software, los defensores deben tener una visión más amplia de su pila de tecnologías de la información. Esto significa que los profesionales de la seguridad informática deben centrarse en todo el ecosistema de software y mirar más allá de las fuentes "tradicionales" de vulnerabilidades.
Se pueden introducir fallos de inyección siempre que se envíe una fuente de datos no fiable a un intérprete. Los ejemplos se encuentran a menudo en SQL, LDAP, XPath o consultas de bases de datos dinámicas NoSQL con entrada suministrada por el usuario. Los atacantes inyectan código en la entrada del usuario, engañando al intérprete de la consulta para que ejecute comandos maliciosos.
¿Qué hace que una aplicación sea vulnerable a los fallos de inyección?
¿Cuál es el impacto de los fallos de inyección?
¿Cómo puede Fortify ayudar con los defectos de inyección?
La autenticación rota puede introducirse cuando se gestionan datos de identidad o de sesión en aplicaciones con estado. Los ejemplos se encuentran a menudo cuando el registro, la recuperación de credenciales y las vías API son vulnerables a tokens de sesión no caducados, fuerza bruta o enumeración de cuentas. Los atacantes asumen la identidad de usuarios legítimos, toman el control de cuentas y comprometen datos, procesos o sistemas.
¿Qué hace que una aplicación sea vulnerable a una autenticación rota?
¿Cuál es el impacto de una autenticación defectuosa?
¿Cómo puede ayudar Fortify ?
Cuando las aplicaciones acceden a datos sin cifrar, en particular a información personal identificable (IPI) y otros tipos de datos regulados, pueden surgir problemas de exposición a datos sensibles. Los ejemplos suelen encontrarse cuando se utilizan cifrados criptográficos débiles en aplicaciones heredadas, se implementan incorrectamente protocolos de transporte seguros o no se utiliza la seguridad centrada en los datos. Los atacantes obtienen acceso a datos sensibles de los usuarios que les dan el control en la vida real.
¿Qué hace que una aplicación sea vulnerable a la exposición de datos sensibles?
¿Cuál es el impacto de la exposición de datos sensibles?
¿Cómo puede Fortify ayudar con la exposición de datos sensibles?
Los problemas de entidades externas XML pueden surgir cuando un analizador mal configurado procesa una entrada XML que contiene una referencia a una entidad externa. Los ejemplos se encuentran a menudo en aplicaciones que analizan entradas XML de fuentes no fiables, cuando están activadas las definiciones de tipo de documento (DTD) o que utilizan marcos no parcheados como SOAP 1.0. XML está en todas partes, desde archivos SVG e imágenes hasta protocolos de red y formatos de documentos como PDF y RSS. Los atacantes hacen referencia a entidades externas en la entrada XML que resulta en procesadores explotados para extraer datos, ejecutar código de forma remota o afectar a los servicios de red.
¿Qué hace que una aplicación sea vulnerable a entidades externas XML?
¿Cuál es el impacto de las entidades externas XML?
¿Cómo puede Fortify ayudar con las entidades externas XML?
Los problemas de control de acceso pueden introducirse cuando el código y las restricciones del entorno se superponen de forma incompleta o se definen en múltiples lugares para una funcionalidad similar. Los ejemplos se encuentran a menudo cuando la seguridad por oscuridad se rompe a través de la navegación forzada a páginas restringidas, o cuando la aplicación define métodos complejos para el control de acceso en múltiples formas y lugares. Los atacantes pueden comprometer los límites de acceso para robar datos confidenciales o interrumpir las operaciones.
¿Qué hace que una aplicación sea vulnerable a un control de acceso roto?
¿Cuál es el impacto de un control de acceso roto?
¿Cómo puede Fortify ayudar con el control de accesos rotos?
Los fallos de seguridad por desconfiguración pueden introducirse durante la configuración de la aplicación o de su entorno subyacente. Los errores de configuración pueden producirse en cualquier nivel de una pila de aplicaciones, desde los servicios de red y los servidores de aplicaciones hasta los contenedores y el almacenamiento. Los ejemplos se encuentran a menudo en las cuentas y configuraciones por defecto, mensajes de error "con fugas", o marcos y servicios sin parches. Los atacantes pueden obtener información sobre el despliegue y acceso a datos privilegiados para interrumpir las operaciones.
¿Qué hace que una aplicación sea vulnerable a una mala configuración de seguridad?
¿Cuál es el impacto de una mala configuración de seguridad?
El impacto puede variar desde la revelación de información hasta el compromiso completo del sistema.
¿Cómo puede Fortify ayudar con la desconfiguración de la seguridad?
Los fallos de Cross-Site Scripting (XSS) pueden introducirse cuando se ejecuta una entrada de usuario no fiable y no saneada como parte del HTML, o cuando se puede influir en los usuarios para que interactúen con enlaces maliciosos. A menudo se encuentran ejemplos cuando se aceptan construcciones de código conocidas de lenguajes como JavaScript o Flash desde fuentes no fiables o se almacenan para su posterior visualización por otro agente de usuario. Los atacantes pueden ejecutar código remoto en la máquina del usuario, robar credenciales o distribuir malware desde sitios de redirección.
¿Qué hace que una aplicación sea vulnerable al cross-site scripting (XSS)?
Existen tres formas de XSS, normalmente dirigidas a agentes de usuario como los navegadores:
¿Cuál es el impacto del cross-site scripting (XSS)?
¿Cómo puede Fortify ayudar con el cross-site scripting (XSS)?
Los fallos de deserialización insegura pueden introducirse cuando los lenguajes y frameworks permiten que datos serializados no fiables se expandan en un objeto, a menudo cuando las aplicaciones web están comunicando al usuario o guardando el estado de la aplicación. Los ejemplos se encuentran a menudo cuando los desarrolladores no ponen restricciones a los métodos que pueden autoejecutarse durante el proceso de deserialización. Los atacantes aprovechan estas "cadenas de gadgets" llamadas fuera de la lógica de la aplicación para ejecutar código de forma remota, denegar el servicio u obtener acceso no autorizado.
¿Qué hace que una aplicación sea vulnerable a una deserialización insegura?
¿Cuál es el impacto de la deserialización insegura?
¿Cómo puede Fortify ayudar con la deserialización insegura?
Estos fallos pueden introducirse cuando se introducen en una aplicación marcos y bibliotecas de código abierto o de terceros y se ejecutan con los mismos privilegios. A menudo se encuentran ejemplos en los que el desarrollo basado en componentes da lugar a una falta de comprensión de los riesgos asociados a las dependencias y los componentes o sistemas son difíciles o imposibles de parchear. Los atacantes han aprovechado componentes vulnerables para algunas de las mayores brechas de la historia, aunque las vulnerabilidades pueden ir desde el compromiso de la aplicación hasta la ejecución remota de código.
¿Qué hace que una aplicación sea vulnerable a frameworks y bibliotecas de código abierto o de terceros?
¿Cuál es el impacto del uso de componentes con vulnerabilidades conocidas?
Mientras que algunas vulnerabilidades conocidas sólo provocan impactos menores, algunas de las mayores brechas conocidas, como Heartbleed y Shellshock, se han basado en la explotación de vulnerabilidades conocidas en componentes compartidos. El uso de componentes con vulnerabilidades de código conocidas puede dar lugar a la ejecución remota de código en el servidor afectado, otorgando al atacante el control total de la máquina.
¿Cómo puede Fortify contribuir a la seguridad del código abierto?
Cuando no se comprenden bien los vectores de ataque o el mal comportamiento de las aplicaciones, o no se siguen las mejores prácticas de supervisión de los indicadores de peligro, pueden producirse fallos en el registro y la supervisión. Los ejemplos se encuentran a menudo en sistemas heredados sin capacidad de registro, cuando los registros de las pruebas de penetración de aplicaciones no se examinan o cuando los registros no proporcionan detalles suficientes para comprender lo que hicieron los atacantes. Los atacantes cuentan con una media de unos 200 días para la detección que normalmente se descubre externamente para establecer la persistencia y pivotar a sistemas vulnerables adicionales.
¿Qué hace que una aplicación sea vulnerable a un registro y una supervisión insuficientes?
¿Cuál es el impacto de un registro y una supervisión insuficientes?
La mayoría de los ataques con éxito comienzan con el sondeo de vulnerabilidades. Permitir que tales sondeos continúen puede aumentar la probabilidad de éxito de los exploits. Los atacantes pueden establecer una persistencia, respaldando aplicaciones y sistemas operativos, robando datos u obteniendo de otro modo un control desapercibido y no autorizado de los sistemas. Si la información crítica para la seguridad no se registra o almacena adecuadamente, no habrá rastro para que el análisis forense descubra el origen del ataque. Comprender que existe un problema puede resultar más difícil, o imposible, si el atacante mantiene el control de las capacidades de registro.
¿Cómo puede Fortify ayudar con un registro y una supervisión insuficientes?
Aunque solo han pasado cuatro años desde que se publicó el último top 10 en 2017, se han producido muchos cambios en el sector de la ciberseguridad que nos han hecho replantearnos las preocupaciones más prioritarias o qué nuevas añadir.
Se introdujeron tres nuevas categorías:
A04:2021
Diseño inseguro: Esta categoría se centra en los defectos de diseño. Esto es necesario porque el movimiento para cambiar a la izquierda en el desarrollo requiere un cambio a la izquierda también para el modelado de amenazas.
A08:2021
Fallos en la integridad del software y los datos: Se centra en las suposiciones en torno a las actualizaciones de software, los datos críticos y la canalización CI/CD sin verificar la integridad que pueden afectar. También incorpora la norma A08:2017 - Deserialización insegura.
A10:2021
Falsificación de peticiones del lado del servidor (SSRF): Esta categoría se encuentra mayoritariamente en el top 10 de la encuesta de la comunidad. Hicieron mucho hincapié en esta vulnerabilidad debido a su explotabilidad e impacto por encima de la media.
Otros cambios
Las demás categorías han cambiado de nombre, han cambiado de rango o se han consolidado en otras categorías:
¿Quiere ver cómo Fortify puede ayudar a su organización? Comience ahora su prueba gratuita de 15 días de Fortify on Demand de OpenText™
Fortify le permite crear software seguro rápidamente con una plataforma de seguridad de aplicaciones que automatiza las pruebas a lo largo de la canalización CI/CD para permitir a los desarrolladores resolver rápidamente los problemas.
Desbloquee las pruebas de seguridad, la gestión de vulnerabilidades y los conocimientos y asistencia personalizados
Detecte y solucione los problemas de seguridad en una fase temprana con los resultados más precisos del sector
Identificar vulnerabilidades en aplicaciones y servicios web desplegados
Protección más inteligente y sencilla