El Proyecto de Seguridad de Aplicaciones Web Abiertas (OWASP) es una organización sin fines de lucro con la misión de mejorar la seguridad de las aplicaciones web. OWASP persigue esta misión proporcionando a los desarrolladores acceso gratuito a una amplia variedad de recursos de seguridad, incluidos listados de vulnerabilidades, mejores prácticas de seguridad, sistemas deliberadamente vulnerables para practicar pruebas de aplicaciones web y más. OWASP también ha apoyado el desarrollo de herramientas de prueba de seguridad de aplicaciones y organiza múltiples conferencias anuales en todo el mundo.
OWASP ha desarrollado una serie de recursos que describen las vulnerabilidades más comunes que existen en varios sistemas, incluidas aplicaciones web, API, dispositivos móviles y más. El más famoso de ellos es el OWASP Top Ten, que describe las diez vulnerabilidades más comunes e impactantes que aparecen en la aplicación de producción web. Esta lista se actualiza cada pocos años basándose en una combinación de datos de pruebas de seguridad y encuestas a profesionales de la industria.
La versión más reciente de la lista de los 10 mejores de OWASP se publicó en 2021. Este recurso proporciona información sobre las vulnerabilidades más comunes, ejemplos de cada tipo, mejores prácticas para prevenirlas y descripciones de cómo se puede explotar la vulnerabilidad. Además, cada vulnerabilidad incluye referencias a especificaciones relacionadas de enumeración de debilidades comunes (CWE), que describen una instancia particular de una vulnerabilidad. Por ejemplo, el uso de contraseñas codificadas (CWE-259) se incluye en la vulnerabilidad de fallas de identificación y autenticación dentro de la lista de los diez principales de OWASP.
La lista de los Diez Principales de OWASP se basa en una combinación de análisis de datos proporcionados por el usuario y una encuesta a profesionales de la industria. Con base en los datos enviados por la comunidad, el equipo de OWASP determina las ocho vulnerabilidades principales en su lista, brindando visibilidad de las vulnerabilidades que son más comunes en el código de producción actual. Se pidió a las organizaciones que enviaran los CWE que vieron en las pruebas y la cantidad de aplicaciones probadas que contenían al menos una instancia de un CWE. Los 400 CCA resultantes se analizaron en función del impacto y la explotabilidad y se clasificaron para producir ocho de las diez categorías principales.
Sin embargo, con la actualización de 2021 de la lista, el equipo de OWASP reservó los dos últimos cupo de la lista para recibir información de una encuesta comunitaria. El objetivo de esto era reflejar tendencias más recientes y emergentes en vulnerabilidades donde la falta de datos o la incapacidad de probar una vulnerabilidad podría causar que sea subestimada por un proceso que se basó únicamente en las vulnerabilidades descubiertas durante las pruebas.
La última versión del Top Ten de OWASP contenía varios cambios con respecto a la versión anterior. La lista de 2021 incluye las siguientes vulnerabilidades:
De estas, cuatro vulnerabilidades (4, 8 y 10) son completamente nuevas, cuatro no han cambiado más que la clasificación y el resto consolida o cambia el nombre de categorías de la versión anterior de la lista.
Los sistemas de control de acceso están destinados a garantizar que solo los usuarios legítimos tengan acceso a los datos o a la funcionalidad. La vulnerabilidad en la categoría de control de acceso roto incluye cualquier problema que permita a un atacante eludir los controles de acceso o que no implemente el principio de privilegio mínimo. Por ejemplo, una aplicación web podría permitir a un usuario acceder a la cuenta de otro usuario modificando la URL proporcionada.
Los algoritmos criptográficos son invaluables para proteger la privacidad y la seguridad de los datos; sin embargo, estos algoritmos pueden ser muy sensibles a errores de implementación o configuración. Las fallas criptográficas incluyen la imposibilidad de utilizar el cifrado, configuraciones incorrectas de los algoritmos criptográficos y una gestión de claves insegura. Por ejemplo, una organización podría usar un algoritmo hash inseguro para el almacenamiento de contraseñas, no usar las contraseñas o usar la misma sal para todas las contraseñas de usuario almacenadas.
La vulnerabilidad de inyección es posible debido a que no se desinfectan adecuadamente las entradas del usuario antes de procesarlas. Esto puede ser especialmente problemático en lenguajes como SQL, donde los datos y los comandos se entremezclan para que los datos proporcionados por el usuario malformados malintencionadamente puedan interpretarse como parte de un comando. Por ejemplo, SQL suele usar comillas simples (') o dobles (“) para delinear los datos del usuario dentro de una consulta, por lo que la entrada del usuario que contiene estos caracteres podría ser capaz de cambiar el comando que se está procesando.
La vulnerabilidad se puede introducir en el software durante el proceso de desarrollo de dos maneras diferentes. Si bien muchas de las vulnerabilidades en la lista Top Ten de OWASP tienen que ver con errores de implementación, esta vulnerabilidad describe fallas en el diseño que socavan la seguridad del sistema. Por ejemplo, si el diseño de una aplicación que almacena y procesa datos confidenciales no incluye un sistema de autenticación, entonces una implementación perfecta del software tal como fue diseñado seguirá siendo insegura y no protegerá adecuadamente estos datos confidenciales.
Además de su diseño e implementación, la seguridad de una aplicación también está determinada por cómo está configurada. Un fabricante de software tendrá configuraciones predeterminadas para su aplicación y los usuarios también podrán habilitar o deshabilitar varias configuraciones, que pueden mejorar o perjudicar la seguridad del sistema. Ejemplos de configuraciones erróneas de seguridad podrían incluir habilitar aplicaciones o puertos innecesarios, dejar cuentas y contraseñas predeterminadas activas y sin cambios, o configurar mensajes de error para exponer demasiada información a un usuario.
La vulnerabilidad de la cadena de suministro se ha convertido en una preocupación importante en los últimos años, especialmente cuando los actores de amenazas han intentado insertar código malicioso o vulnerable en bibliotecas de uso común y dependencias de terceros. Si una organización carece de visibilidad del código externo que se utiliza dentro de su aplicación (incluidas las dependencias anidadas) y no lo escanea en busca de dependencias, entonces puede ser vulnerable a la explotación. Además, si no se aplican rápidamente actualizaciones de seguridad a estas dependencias, se podría dejar una vulnerabilidad explotable abierta a ataques. Por ejemplo, una aplicación puede importar una biblioteca de terceros que tiene sus propias dependencias que podrían contener una vulnerabilidad explotable conocida.
Muchas aplicaciones y sistemas requieren alguna forma de identificación y autenticación, como que un usuario demuestre su identidad ante una aplicación o un servidor que proporcione un certificado digital que verifique su identidad a un usuario al configurar una conexión cifrada con TLS. Los fallos de identificación y autenticación se producen cuando una aplicación se basa en procesos de autenticación débiles o no valida correctamente la información de autenticación. Por ejemplo, una aplicación que carece de autenticación de múltiples factores (MFA) podría ser vulnerable a un ataque de relleno de credenciales en el que un atacante intenta automáticamente combinaciones de nombre de usuario y contraseña de una lista de credenciales débiles, comunes, predeterminadas o comprometidas.
La vulnerabilidad de fallas de integridad de datos y software en la lista OWASP Top 10 aborda las debilidades en la seguridad de la canalización DevOps de una organización y los procesos de actualización de software similares a los que hicieron posible el hack de SolarWinds. Esta clase de vulnerabilidad incluye confiar en código de terceros de fuentes o repositorios que no son de confianza, no asegurar el acceso a la canalización de CI/CD y no validar adecuadamente la integridad de las actualizaciones aplicadas automáticamente. Por ejemplo, si un atacante puede reemplazar un módulo o dependencia confiable con una versión modificada o maliciosa, entonces las aplicaciones creadas con esa dependencia podrían ejecutar código malicioso o ser vulnerables a la explotación.
Las fallas de registro y monitoreo de seguridad son la primera de las vulnerabilidades que se derivan de las respuestas a la encuesta y han subido desde el décimo lugar en la iteración anterior de la lista. Muchos incidentes de seguridad se activan o exacerban por el hecho de que una aplicación no logra registrar eventos de seguridad importantes o que estos archivos de registro no se monitorean y manejan adecuadamente. Por ejemplo, es posible que una aplicación no genere archivos de registro, que genere registros de seguridad que carezcan de información crítica o que estos archivos de registro solo estén disponibles localmente en una computadora, lo que los hace útiles solo para la investigación después de que se haya detectado un incidente. Todas estas fallas degradan la capacidad de una organización para detectar rápidamente un posible incidente de seguridad y responder en tiempo real.
La falsificación de solicitudes del lado del servidor (SSRF) es inusual entre las vulnerabilidades enumeradas en la lista OWASP Top Ten porque describe una vulnerabilidad o ataque muy específico en lugar de una categoría general. Las vulnerabilidades de la SSRF son relativamente raras; sin embargo, tienen un impacto significativo si son identificados y explotados por un atacante. El hackeo de Capital One es un ejemplo de un incidente de seguridad reciente de alto impacto que aprovechó una vulnerabilidad SSRF.
La vulnerabilidad SSRF puede existir cuando una aplicación web no valida adecuadamente una URL proporcionada por un usuario al recuperar un recurso remoto ubicado en esa URL. Si este es el caso, entonces un atacante que aproveche la vulnerabilidad puede utilizar la aplicación web vulnerable para enviar una solicitud diseñada por el atacante a la URL indicada. Esto permite al atacante eludir los controles de acceso, como un firewall, que bloquearía las conexiones directas del atacante a la URL de destino, pero que está configurado para proporcionar acceso a la aplicación web vulnerable.
Las aplicaciones web de una organización son algunas de las partes más visibles y explotables de su superficie de ataque digital. Sin embargo, estas aplicaciones también suelen contener vulnerabilidades explotables, a menudo debido a la falta de conocimiento de estas vulnerabilidades y de las mejores prácticas de seguridad para evitarlas. La lista OWASP Top Ten es un esfuerzo de la Fundación OWASP para abordar este problema y reducir los riesgos de seguridad de las aplicaciones web llamando la atención sobre estas vulnerabilidades y proporcionando recursos que ayuden a los desarrolladores a identificarlas, evitarlas y remediarlas.
Buscar, remediar y proteger contra la vulnerabilidad descrita en la lista OWASP Top Ten es un buen punto de partida para la aplicación web DevSecOps. Estas vulnerabilidades son algunas de las más comunes y de alto impacto en las aplicaciones web, y su visibilidad las convierte en objetivos comunes de los actores de amenazas cibernéticas.
A medida que las aplicaciones se trasladan cada vez más a la nube, la protección de las cargas de trabajo en la nube es vital para protegerlas contra el Top Ten de OWASP y otros riesgos de seguridad de aplicaciones líderes. Para obtener más información sobre las amenazas a la seguridad de su aplicación basada en la nube, consulte este libro electrónico.
Check Point CloudGuard AppSec proporciona protección integral contra el Top Ten de OWASP y otras vulnerabilidades comunes de aplicaciones web. Obtenga más información sobre cómo CloudGuard AppSec puede proteger su aplicación en la nube con este documento técnico. Luego, compruebe usted mismo sus capacidades registrándose para una demostración gratuita.