Obtenga compatibilidad completa con MISRA C 2023 en la nueva versión de prueba de Parasoft C/C++. Únase a nuestro seminario web el 8 de junio.
El grupo sin fines de lucro Open Web Application Security Project® (OWASP) busca mejorar la seguridad del software. Los equipos de desarrollo de todo el mundo y de todas las industrias recurren a la Fundación OWASP para obtener herramientas, recursos y capacitación para proteger sus aplicaciones web de los ataques cibernéticos. Los proyectos con iniciativas impulsadas por la comunidad están abiertos para que cualquiera se una.
Periódicamente, OWASP publica una lista de los problemas más urgentes para la comunidad de desarrollo en general. Estos problemas afectan la seguridad general de los proyectos, y la lista ilumina las mayores amenazas.
Los 2021 mejores de OWASP de 10 introduce algunos problemas nuevos mientras reformula las entradas anteriores como parte de sus nuevas categorías. Basado en una variedad de fuentes que incluyen comentarios de desarrolladores, consejos de proveedores de seguridad, recompensas por errores y aportes de la comunidad, OWASP creó su última lista de los 10 principales, siendo el número 1 el problema más frecuente y amenazante. Clasificadas según la gravedad y la frecuencia, cada elemento representa múltiples enumeraciones de debilidades comunes (CWE).
El OWASP Top 10 ayuda a los equipos a concentrarse en los problemas más críticos y probables antes de pasar a otros problemas.
Todas estas vulnerabilidades potenciales representan amenazas importantes para cualquier equipo de desarrollo, pero tenga en cuenta que esta no es una lista exhaustiva de todo lo que puede salir mal durante el desarrollo. Si bien Top 10 no es una estrategia integral o el único método para identificar vulnerabilidades, es una excelente manera de comenzar.
La mejor manera de usar el Top 10 es educar a sus desarrolladores para que construyan un código seguro. Además, úselo para pruebas de validación para verificar que los desarrolladores realmente escribieron código seguro y detecten cuando no lo hicieron.
Con el desarrollo de las API en aumento, OWASP también tiene un proyecto dedicado centrado únicamente en la seguridad de las API y sus diez principales vulnerabilidades. El Top 10 de seguridad API de OWASP fue introducido en 2019.
El control de acceso roto subió al puesto n. ° 1 en la lista del n. ° 5 en el Top 10 anterior. Eso significa que es el mayor problema para los equipos de desarrollo cuando se trata de violaciones de seguridad. En sus hallazgos, OWASP informó que el 94% de las aplicaciones probadas contenían este problema. Los mayores CWE relacionados con esta vulnerabilidad son:
Esta vulnerabilidad de seguridad permite el acceso a recursos privados a usuarios no autorizados. Los atacantes pueden eludir cualquier protocolo de seguridad vigente para acceder a sistemas e información confidenciales.
Se ha convertido en la vulnerabilidad más común en la lista OWASP 2021 Top 10. Los métodos débiles de autorización y autenticación permiten este riesgo de seguridad. Sin embargo, el control de acceso roto puede dividirse por separado en 34 CWE. Representa más problemas en la encuesta OWASP que en cualquier otra categoría.
Las fallas criptográficas ahora se clasifican en la posición n. ° 2 desde el n. ° 3 en la lista anterior OWASP Top 10. Esta vulnerabilidad solía conocerse como "Exposición de datos confidenciales". El nuevo nombre se enfoca en la causa raíz del problema en lugar de un síntoma más amplio como el término anterior.
Las fallas criptográficas a menudo conducen a violaciones de datos. Los ejemplos de vectores de amenazas incluyen cosas como la falta de encabezados HTTP, algoritmos criptográficos débiles, transmisión de datos en texto claro, etc. Los datos violados pueden incluir todo, desde contraseñas simples hasta registros de salud y números de tarjetas de crédito.
Las fallas criptográficas a menudo pueden causar violaciones de datos confidenciales, así como otros tipos de compromisos del sistema. Las violaciones notables en la memoria reciente incluyen la violación de datos de la Cruz Roja de enero de 2022.
El objetivo es hacer que sean extremadamente difíciles de ocurrir en primer lugar. Esto requiere un diseño adecuado, código seguro, pruebas consistentes y seguridad de integración en su flujo de trabajo.
Ahora en la tercera posición, esta categoría incluye secuencias de comandos entre sitios, que anteriormente ocupaba el puesto número 7 en el Top 10 de OWASP.
Una inyección es cuando un atacante envía datos específicamente diseñados para obligar a la aplicación a ejecutar comandos que no debe ejecutar. Por ejemplo, una inyección SQL puede potencialmente extraer datos inesperados, incluso una base de datos completa, o incluso alterar o eliminar datos.
Durante muchos años, este fue el problema número 1 según OWASP. Sigue siendo importante y demasiado común. De hecho, entre las aplicaciones probadas, OWASP encontró 274,000 casos de inyección. Sin embargo, los problemas de inyección también son altamente prevenibles.
Evitar los ataques de inyección significa observar de cerca lo que pudo haber hecho mal. Esto va desde no validar los datos proporcionados por el usuario hasta datos hostiles utilizados dentro de los parámetros de búsqueda de mapeo relacional de objetos (ORM) que permiten la extracción de registros confidenciales.
Los tipos más grandes de ataques de inyección a tener en cuenta incluyen:
Esta nueva categoría se centra en los riesgos inherentes a los defectos de diseño. OWASP desarrolló esta categoría como resultado de la metodología de cambio a la izquierda que requiere incorporar pruebas de seguridad y modelado de amenazas en los flujos de trabajo y la arquitectura. Más allá de comenzar las pruebas de seguridad antes, es importante examinar el código. Marque todo lo que no se pueda asegurar bien a favor de un diseño más seguro.
El diseño inseguro implica que los equipos de desarrollo y pruebas no anticipen las amenazas mientras desarrollan el código. La evaluación de amenazas y el cumplimiento de las mejores prácticas de seguridad también afectan la seguridad del diseño. Esta categoría es diferente de la implementación insegura en que tiene más que ver con los riesgos relacionados con los defectos de diseño y arquitectura.
Una implementación segura puede tener un diseño inseguro que aún hace que una aplicación web sea vulnerable a ataques y vulnerabilidades. El diseño inseguro es una categoría amplia que representa diferentes debilidades expresadas como diseño de control faltante o ineficaz.
En el mundo del desarrollo actual, el diseño inseguro es más común de lo que piensa. Es por eso que DevSecOps, incorporar la seguridad en el ciclo de vida del desarrollo, es crucial ahora. En otras palabras, no puede simplemente probar su forma de proteger el software. Tienes que empezar a crear software que sea más seguro.
Estos son algunos ejemplos de escenarios de ataque que aprovechan el diseño inseguro.
Ahora en la posición n.º 5 desde el n.º 6 en el Top 10 anterior, la mala configuración de seguridad incluye entidades externas XML (XEE). La naturaleza cada vez más configurable del software contribuyó al lugar de esta categoría en esta lista. Un ejemplo notable de una configuración incorrecta reciente fue la interrupción del NOTAM de la FAA de 2023, prueba de cuán crítico es el problema.
Esta categoría incluye la implementación insegura debido a algún tipo de configuración incorrecta. Piense en ello como cuando una configuración de seguridad vital está configurada incorrectamente o no está configurada en absoluto. Un ejemplo simple de esto es no restablecer la contraseña predeterminada. Estos descuidos y errores crean brechas de seguridad para los posibles atacantes, especialmente con la implementación basada en contenedores que tiene muchas oportunidades de configuración incorrecta.
Ejemplos de mala configuración de seguridad son cosas como software desactualizado, refuerzo de seguridad faltante, funciones innecesarias y cuentas predeterminadas con contraseñas sin cambios. Muchas cosas pueden pasarse por alto fácilmente, por lo que OWASP recomienda un proceso de configuración de seguridad repetible para mitigar el riesgo. ¿Cómo se ve eso? Siempre que sea posible, los archivos de configuración deben formar parte del control de versiones e incluirse en las revisiones por pares.
Esta categoría solía llamarse "Uso de componentes con vulnerabilidades conocidas" en el noveno lugar en el OWASP Top 10 anterior. OWASP admite que esto es difícil de probar sin vulnerabilidades y exposiciones comunes (CVE), incluidos los CWE. Sin embargo, ocupó el segundo lugar en la encuesta de la comunidad OWASP gracias a los grandes incidentes que aparecen con frecuencia en las noticias, como los relacionados con Log4j y SolarWinds.
El uso de componentes que no conoce o componentes con dependencias anidadas puede generar riesgos. Otros ejemplos incluyen software no compatible, vulnerable o desactualizado, como bibliotecas de terceros, versiones antiguas de fuentes abiertas, etc.
Escanear periódicamente en busca de vulnerabilidades, eliminar funciones no utilizadas o innecesarias y mantener el software actualizado puede ayudar a mitigar los riesgos asociados con los componentes vulnerables y obsoletos.
Hay muchas herramientas y ataques que aprovechan estos problemas conocidos. Asegurarse de estar actualizado con parches y versiones lo ayuda a proteger la aplicación contra estos ataques.
Como ejemplo, Log4j sufrió una vulnerabilidad de día cero que afectó a Cloudflare, Steam, iCloud, Twitter, Tencent QQ y la edición Java de Minecraft en 2021.
Conocida anteriormente como "Autenticación rota", esta categoría cae al séptimo desde la segunda posición en el Top 7 anterior. También incluye CWE más estrechamente relacionados con fallas de identificación. Los riesgos de seguridad asociados con esta categoría se mitigan mediante la adopción de un marco estandarizado que ayuda a controlar mejor los problemas de identificación/autenticación.
Las fallas básicas de identificación y autenticación ocurren cuando una aplicación no identifica o asegura correctamente la credencial de inicio de sesión, la identidad o los permisos de un usuario, o no mantiene los controles de ID durante la sesión de un usuario. Las vulnerabilidades ocurren cuando un sistema usa texto sin formato o credenciales con hash débil, tiene métodos de recuperación de credenciales débiles o no invalida las ID de sesión, por ejemplo.
Dado que esta categoría incluye actividades comunes de los usuarios, como iniciar sesión en aplicaciones y sesiones de usuarios en sitios web, estos riesgos suelen encontrarse entre los más comunes. Una táctica conocida como "relleno de credenciales" hace uso de este tipo de ataques para aprovechar las contraseñas obtenidas en filtraciones.
Funciones como la autenticación de múltiples factores y verificaciones de contraseñas más sólidas pueden ayudar a mitigar el riesgo.
Esta nueva categoría se centra en las suposiciones sobre el código y la infraestructura realizadas en relación con los datos críticos, las actualizaciones de software y las canalizaciones de CI/CD que no verifican la integridad. Incluye el tema de 2017 "Deserialización insegura".
Las fallas en la integridad del software y los datos incluyen problemas como partes inseguras de una canalización de CI/CD o incluso redes de entrega de contenido (CDN). Por ejemplo, una aplicación puede incluir una función de actualización automática que cambia el código. Esto presenta oportunidades para que los atacantes obtengan acceso no autorizado y usen su propio código malicioso.
Debido a que estos problemas involucran infraestructura y código sin protección contra violaciones de integridad, los expertos en seguridad esperan un aumento en este tipo de violaciones. Elementos como enrutadores domésticos y firmware de dispositivos no requieren firmware firmado para actualizarse. Esta vulnerabilidad requeriría correcciones en una versión futura.
La deserialización insegura también es una preocupación importante. Es una oportunidad común para los ataques DoS. Ocurre cuando un sitio web deserializa los datos controlables por el usuario. La deserialización insegura puede permitir que un atacante manipule objetos serializados para pasar datos dañinos al código de la aplicación.
Las fallas de registro y monitoreo de seguridad solían llamarse "Registro y monitoreo insuficientes" y también aparecían con frecuencia en la encuesta de la comunidad OWASP. Aunque es difícil probarlo, este tipo de fallas pueden afectar drásticamente una variedad de aspectos, como análisis forense, alertas de incidentes y visibilidad.
El registro ayuda a desencadenar el monitoreo y la respuesta; si es incorrecto, la postura de seguridad se desmorona. La visibilidad ayuda a los equipos de desarrollo a abordar mejor los problemas antes.
Este tipo de falla implica no identificar y/o responder a posibles amenazas o intentos hostiles contra los sistemas. Un ejemplo clásico y frecuente de esto son los repetidos errores de inicio de sesión debido a una contraseña incorrecta.
Las fallas de registro y monitoreo de seguridad pueden tener un impacto significativo en una organización, incluida la falta de visibilidad de los incidentes de seguridad. Sin un registro y monitoreo adecuados, puede ser difícil detectar y responder a los incidentes de seguridad de manera oportuna.
Muchas regulaciones, como HIPAA y PCI-DSS, requieren que las organizaciones mantengan registros detallados de sus actividades de seguridad. El no hacerlo puede resultar en incumplimiento y multas. Además, sin los mecanismos adecuados de registro y monitoreo, es significativamente más difícil para las organizaciones detectar y mitigar las infracciones, lo que les cuesta tiempo y dinero.
Las fallas de registro y monitoreo de seguridad también pueden generar otros problemas. En particular, pueden activar el control de acceso roto, el elemento n. ° 1 en la lista OWASP Top 2021 de 10. El establecimiento de estrategias sólidas y completas de SAST y DAST puede ayudar a mitigar estas fallas.
Si bien las fallas de registro y monitoreo de seguridad ocurren por derecho propio, también pueden generar otros problemas. En particular, pueden activar el control de acceso roto, el elemento n. ° 1 en la lista OWASP Top 2021 de 10. Establecer estrategias sólidas de SAST y DAST puede ayudar a mitigar estas fallas.
A pesar de la baja tasa de incidentes en los datos de OWASP, la gravedad del impacto es alta. Las encuestas comunitarias muestran que es el elemento de preocupación número 1. Este tipo de ataques son fáciles de ejecutar con éxito y pueden producir efectos particularmente desagradables.
Estas fallas ocurren comúnmente cuando las aplicaciones web recuperan recursos remotos, pero no validan las URL proporcionadas por el usuario. Luego, los atacantes pueden obligar a la aplicación a comportarse de manera diferente, incluso cuando está protegida por una VPN o un firewall.
Un ejemplo de esto sería que un atacante creara su propia página web alojada en su propio servidor y la usara para alterar el comportamiento de una aplicación. De hecho, muchos enrutadores de consumo más antiguos tienen exactamente este problema: puede cambiar la contraseña sin autenticación creando su propia página web y enviando una nueva contraseña.
OWASP y los desarrolladores han visto un aumento en la falsificación de solicitudes del lado del servidor debido a lo siguiente:
Las soluciones de análisis estático de Parasoft brindan más soporte para OWASP que cualquier otra herramienta de análisis de código. Esto ayuda a los equipos de software a lograr DevSecOps al hacer cumplir la seguridad desde el comienzo del desarrollo.
Parasoft proporciona comentarios únicos en tiempo real que brindan a los usuarios una visión continua del cumplimiento de OWASP. Nuestra fuente de cumplimiento interactivo incluye tableros, widgets e informes, que incluyen la explotabilidad, la prevalencia en el campo, la detectabilidad y el impacto de la falla con automatización mejorada por IA para ayudar a los usuarios a priorizar y minimizar la clasificación manual.
El soporte integral de Parasoft para OWASP ayuda a los usuarios a lograr DevSecOps mediante la aplicación de prácticas de desarrollo orientadas a la seguridad desde el inicio del desarrollo del proyecto. Con la solución de Parasoft, obtienes:
Aprenda cómo reducir los riesgos de seguridad y también acelerar el desarrollo, reducir costos y aumentar la calidad de su software.
Descargar