Vulnerabilidad Information disclosure
www.onlinetis.com
La divulgación de información (Information disclosure) es una vulnerabilidad de seguridad que se produce cuando una aplicación web revela accidentalmente datos sensibles a un atacante. Estos datos pueden ser información de la infraestructura del servidor, detalles de la base de datos, código fuente, nombres de usuarios, rutas de archivos o incluso información personal de otros usuarios.
Causas y ejemplos comunes ⚠️
Esta vulnerabilidad no es el resultado de un solo tipo de ataque, sino de una serie de fallos en la configuración o el desarrollo de la aplicación. Las causas comunes incluyen:
Mensajes de error detallados: Las aplicaciones pueden mostrar mensajes de error genéricos al usuario, como "Error 500". Sin embargo, si la aplicación revela la pila de errores completa (stack trace), un atacante puede obtener información valiosa, como el tipo de base de datos, las versiones de software, los nombres de archivos internos, etc.
Archivos de configuración y
git
: Si un desarrollador sube accidentalmente archivos de configuración (.env
,config.php
) o el repositorio degit
(.git
) a un servidor de producción, un atacante puede acceder a ellos y encontrar credenciales de bases de datos, claves API u otros secretos.Directorios no protegidos: Si el servidor web no está configurado para denegar el acceso a los directorios, un atacante podría navegar por la estructura de archivos y encontrar archivos sensibles.
Información en el código fuente: En ocasiones, los desarrolladores dejan comentarios con información confidencial, como contraseñas en desuso, en el código fuente que se envía al cliente, lo cual puede ser accedido fácilmente a través del navegador.
Prevención 🛡️
Para prevenir la divulgación de información, es crucial seguir buenas prácticas de seguridad:
Configurar mensajes de error genéricos: En el entorno de producción, los mensajes de error deben ser simples y no revelar detalles de la aplicación o el servidor. La información detallada de los errores solo debe estar disponible para los desarrolladores en los archivos de registro del servidor.
Eliminar archivos sensibles: Antes de desplegar una aplicación en producción, hay que asegurarse de que no haya archivos de configuración,
.git
,readme.md
u otros archivos que puedan revelar información sensible.Configurar el servidor web de forma segura: Denegar el acceso a los directorios y configurar permisos de archivos adecuados para que los atacantes no puedan ver la estructura de directorios.
Eliminar metadatos: Asegurarse de que las imágenes u otros archivos que se suben no contengan metadatos que puedan revelar información, como la ubicación de la foto o el software con el que se creó.
Sanear el código fuente: Limpiar el código de comentarios y de cualquier tipo de información sensible antes de desplegarlo.