Introducción
Descripción de la vulnerabilidad
Como continuación a esta serie de posts sobre las vulnerabilidades OWASP Top Ten, en este post se va a comentar sobre la vulnerabilidad A05:2021 - Security Misconfiguration o en castellano: Configuración incorrecta de ciberseguridad.
Esta vulnerabilidad hace referencia a configuraciones de ciberseguridad no implementadas o implementadas de manera incorrecta y puede manifestarse de diversas formas, desde la utilización de configuraciones predeterminadas o inseguras hasta la exposición innecesaria de información sensible o la habilitación de servicios innecesarios.
Sucede cuando una aplicación o servidor no está configurado correctamente, lo que permite a un atacante aprovechar esta falta de configuración para acceder a datos sensibles, elevar privilegios y conseguir el control de la aplicación.
Impacto
Esta vulnerabilidad puede tener consecuencias devastadoras para una organización.
Al explotar una configuración insegura, los atacantes pueden obtener acceso a información sensible, elevar privilegios en la aplicación, o incluso utilizar los recursos comprometidos para realizar ataques a terceros.
El impacto de esta vulnerabilidad se puede reflejar en los siguientes puntos:
- Exposición de información sensible: Cuando un sistema no está configurado adecuadamente, puede permitir que un adversario acceda a datos sensibles, como credenciales de usuario, información personal o secretos comerciales.
- Control del sistema: En algunos casos, una mala configuración puede otorgar a los atacantes la capacidad de tomar el control completo del sistema, lo que les permite modificar o destruir datos o utilizar los recursos del sistema para llevar a cabo otros ataques.
- Compromiso de la disponibilidad del sistema: Un adversario puede aprovechar una configuración incorrecta para lanzar ataques de denegación de servicio (DoS) que interrumpan el funcionamiento normal de la aplicación o del servidor, lo que puede afectar a la disponibilidad de los servicios para los usuarios legítimos.
- Uso del sistema como plataforma de ataque: Los sistemas comprometidos debido a una mala configuración de seguridad pueden ser utilizados por los atacantes como plataformas desde las cuales lanzar ataques a otros sistemas, lo que puede ampliar considerablemente el alcance del daño.
Ejemplos prácticos
Exposición de credenciales en el código fuente de la aplicación y elevación de privilegios
Uno de los ejemplos más comunes de esta vulnerabilidad es cuando una aplicación se despliega con configuraciones por defecto, contraseñas en el código de la aplicación usadas en la etapa de desarrollo o permisos a usuarios que son más amplios de lo necesario.
Para demostrar esto, se accede al laboratorio web de Zerolynx con un usuario sin privilegios, user1 en este caso.
Al acceder a la aplicación, se puede observar cómo se ha accedido al panel del usuario y sólo se tiene acceso a los items de este usuario, aunque no hay ninguno creado en este caso.
Al inspeccionar el código, se puede observar cómo debido a una mala configuración de seguridad, no se ha eliminado un comentario creado en la etapa de desarrollo, que ofrece las credenciales de administración:
Si ahora se usan estas credenciales, se puede acceder a la aplicación web como un usuario con privilegios de Administrador, como se muestra en las siguientes imágenes.
Exposición de la estructura de ficheros de la aplicación
Si el sistema muestra mensajes de error detallados o archivos de configuración por defecto, podría estar revelando información interna valiosa como versiones de software o rutas de archivos, cuya información permite a un atacante saber las versiones que usa el sistema y explotar las vulnerabilidades públicas existentes que afectan a estas versiones.
Si se accede a la dirección IP del servidor que da soporte al laboratorio, el cual se está usando para demostrar esta vulnerabilidad, se muestra la página por defecto de Apache debido a una mala configuración.
Si se accede a la ruta /ZVulnLabs/, como no ha sido configurado correctamente el servidor, se muestran todos los ficheros debido a que es vulnerable a Listado de Directorios, lo que da información de la estructura de directorios y de los ficheros que componen la aplicación:
Si se accede a la carpeta /ZVulnLabs/uploads/ se puede acceder directamente a los ficheros que han sido subidos a la aplicación web, además de obtener la versión del servidor Apache.
Compromiso de la disponibilidad debido a software vulnerable
La falta de actualización de las aplicaciones también es debido a una mala configuración, permitiendo a un atacante hacer uso de vulnerabilidades cuyos exploits han sido publicados, los cuales darían más facilidad a un adversario el comprometer la aplicación.
Teniendo lo anterior en cuenta, si se buscan vulnerabilidades para la versión de Apache/2.4.57 (Debian) Server, se confirma que esta versión tiene vulnerabilidades públicas asociadas, como el CVE-2023-43622:
Esta vulnerabilidad permite a un atacante iniciar una conexión HTTP con un tamaño de ventana de valor cero, lo que permitiría a un adversario una Denegación de Servicio o DoS. Además, tiene exploit público asociado, lo que para un atacante que quisiese comprometer la disponibilidad del servicio web, sería algo trivial el explotar esta vulnerabilidad.
Mitigaciones
Como mitigaciones de esta vulnerabilidad, OWASP recomienda las siguientes:
- Un proceso de hardening repetible hace que sea rápido y fácil desplegar y que esté adecuadamente implementado. Los entornos de desarrollo, control de calidad y producción deben configurarse de forma idéntica, utilizando credenciales diferentes en cada uno de ellos.
- Una plataforma mínima sin características, componentes, documentación y muestras innecesarias.
- Revisar y actualizar las configuraciones adecuadas a todas las notas de seguridad, actualizaciones y parches como parte del proceso de gestión de parches.
- El uso de una arquitectura de aplicaciones segmentada que proporcione una separación eficaz y segura entre los componentes de la aplicación.
- Correcta implementación de las Cabeceras de Seguridad.
- Implementación de procesos automáticos antes de desplegar a producción que aseguren la efectividad de las medidas adoptadas.
Conclusiones
La vulnerabilidad Security Misconfiguration sigue siendo una de las principales causas de brechas de seguridad en aplicaciones y sistemas. La complejidad inherente de las infraestructuras tecnológicas modernas hace que la configuración incorrecta sea un problema común, pero prevenible.
Al implementar procesos de instalación seguros, automatizar la robustez de sistemas, mantener una plataforma mínima y aplicar una gestión adecuada de parches y actualizaciones, las organizaciones pueden reducir significativamente su exposición a esta vulnerabilidad.