A04:2021 – Insecure design – Information disclosure
Introducción
La divulgación de información es una vulnerabilidad de seguridad, cuya criticidad dependerá de lo sensible que sea la información obtenida.
Se produce cuando una aplicación web expone inadvertidamente datos sensibles o confidenciales a usuarios no autorizados. Esta vulnerabilidad puede manifestarse de diversas formas, incluyendo la revelación de detalles técnicos del sistema, información de configuración, datos de usuarios, o incluso fragmentos de código fuente.
Esta exposición no solo compromete la integridad y confidencialidad de la aplicación, sino que también puede proporcionar a potenciales atacantes información valiosa para planificar y ejecutar ataques más sofisticados contra el sistema.
Impacto
El impacto de la divulgación de información en la seguridad de una aplicación web puede ser significativo:
- Exposición de datos sensibles: Puede revelar información confidencial como contraseñas, datos de usuarios o detalles de la infraestructura.
- Facilitación de ataques más sofisticados: Los atacantes pueden utilizar la información obtenida para planificar y ejecutar ataques más precisos y efectivos.
- Pérdida de confianza: Si los usuarios descubren que la aplicación es vulnerable, puede resultar en una pérdida de confianza y daño a la reputación de la organización.
- Incumplimiento normativo: Dependiendo de la naturaleza de la información divulgada, puede llevar a violaciones de normativas de privacidad y seguridad de datos.
- Compromiso de la integridad del sistema: La información revelada puede ser utilizada para comprometer la integridad y seguridad general del sistema.
Estos impactos subrayan la importancia de identificar y mitigar las vulnerabilidades de divulgación de información en aplicaciones web.
Ejemplos Prácticos
A continuación, se presentan algunos ejemplos prácticos de vulnerabilidades de divulgación de información en aplicaciones web. Estos casos ilustran cómo la información sensible puede ser expuesta inadvertidamente, proporcionando a los atacantes datos valiosos sobre la infraestructura y el funcionamiento interno de la aplicación.
Cada ejemplo incluye una descripción del escenario, el impacto potencial, y las medidas de mitigación recomendadas. Es importante comprender estos casos para mejorar la seguridad de las aplicaciones web y proteger la información sensible de la organización.
1. Mensajes de Error
Este caso específico se refiere a una técnica deliberada de provocar errores en una página web con un propósito estratégico. El objetivo principal de esta práctica es inducir al sistema a revelar información crucial sobre la versión del software que está siendo utilizado.
Esta táctica, aunque aparentemente simple, puede proporcionar a un atacante datos valiosos sobre la infraestructura tecnológica subyacente de la aplicación web. Al forzar intencionalmente estos errores, un atacante busca explotar las respuestas del sistema para obtener detalles técnicos que normalmente estarían ocultos.
Esta información puede incluir no solo la versión exacta del software, sino también otros detalles como el tipo de servidor web, el sistema operativo subyacente, o incluso fragmentos de código fuente. Todos estos elementos pueden ser utilizados posteriormente para planificar ataques más sofisticados y dirigidos.
Resumen
- Se provoca un error deliberadamente en la aplicación web.
- El mensaje de error generado revela cierta información. La información obtenida puede incluir versiones de software, rutas de archivos, o configuraciones del servidor.
Ejemplo
Existen múltiples formas de generar un error en una página web. En este caso, se va a explicar uno muy común que ocurre cuando a un parámetro que se espera que reciba un valor numérico INTEGER, se le envía un valor no numérico.
https://<victim_web>/product?productId=2
En este caso, se alterará el valor del parámetro productId para enviar un valor no numérico y así forzar un error:
https://<victim_web>/product?productId=»
Mitigación
- Configurar adecuadamente los mensajes de error para que no revelen información sensible
- Implementar manejo de errores personalizado que oculte detalles técnicos
- Mantener el software y los sistemas actualizados para reducir las vulnerabilidades conocidas
- Realizar pruebas de seguridad regulares para identificar y corregir posibles fugas de información
2. Archivos de instalación por defecto / Debug files
Resumen
- Se ejecuta una fase de reconocimiento, donde se buscan archivos y directorios mediante archivos como sitemap.xml o robots.txt, además de herramientas de crawling, o enumeración de directorios
- EL archivo de depuración o el generado durante la instalación contiene cierta información sensible. La información obtenida puede incluir versiones de software, rutas de archivos, configuraciones del servidor, claves y tokens en texto claro
Ejemplo
Mitigación
- Eliminar o restringir el acceso a archivos de diagnóstico en entornos de producción
- Implementar controles de acceso robustos para archivos sensibles
- Utilizar firewalls de aplicaciones web (WAF) para bloquear el acceso a archivos potencialmente peligrosos
- Realizar auditorías regulares de seguridad para identificar y eliminar archivos innecesarios
- Configurar correctamente los permisos de archivos y directorios en el servidor web
- Utilizar herramientas de escaneo de vulnerabilidades para detectar archivos expuestos
- Implementar políticas de seguridad que prohíban la presencia de archivos de debugging en producción
- Educar a los desarrolladores sobre los riesgos de dejar archivos de diagnóstico accesibles
3. Archivos Ocultos
Resumen
- Se ejecuta una fase de reconocimiento, donde se buscan archivos y directorios mediante archivos como sitemap.xml o robots.txt, además de herramientas de crawling, o enumeración de directorios.
- Los archivos encontrados mediante estas técnicas pueden ir desde documentación interna, datos económicos, credenciales de usuarios, código fuente, etc.
Ejemplo
Mitigación
- Identificar todos los archivos que se muestren desde la web
- Eliminar o restringir el acceso a archivos con información crítica, como, por ejemplo, código fuente, credenciales…
- Implementar controles de acceso robustos para archivos sensibles
- Utilizar firewalls de aplicaciones web (WAF) para bloquear el acceso a archivos potencialmente peligrosos
- Realizar auditorías regulares de seguridad para identificar y eliminar archivos innecesarios
- Configurar correctamente los permisos de archivos y directorios en el servidor web
- Utilizar herramientas de escaneo de vulnerabilidades para detectar archivos expuestos
Powered by WPeMatico