Variables de Entorno en Logs
Loguear process.env vuelca todos tus secrets — API keys, contraseñas de base de datos, claves de firma — directamente en tu sistema de logs.
Cómo Funciona
process.env es un objeto plano que contiene todas las variables de entorno. Un solo console.log(process.env) durante debugging, si se queda en código de producción, transmite todos tus secrets a CloudWatch, Datadog o cualquier agregador de logs que uses. Cualquiera con acceso de lectura a logs ahora tiene tus credenciales de producción.
// MAL: loguear todo el objeto env expone cada secret
console.log('Iniciando con config:', process.env);
console.log('Debug info:', { env: process.env, request: req.body });// BIEN: loguea solo los valores específicos no sensibles que necesitas
console.log('Iniciando con config:', {
NODE_ENV: process.env.NODE_ENV,
PORT: process.env.PORT,
// nunca loguees _KEY, _SECRET, _PASSWORD, _TOKEN
});Ejemplo Real
Un incidente de 2022 en una startup de pagos expuso su Stripe secret key y contraseña de base de datos en logs de Datadog. Un contractor disgustado con acceso a los logs usó las credenciales para exfiltrar datos de pago de clientes.
Cómo Prevenirlo
- Nunca loguees process.env, ni en desarrollo — loguea solo keys específicas y seguras explícitamente
- Agrega un middleware de scrubbing de logs que redacte patrones como *_KEY, *_SECRET, *_PASSWORD, *_TOKEN
- Configura tu logger (Winston, Pino) con una opción de redact para nombres de campos sensibles
- Audita tus logs regularmente para detectar exposición accidental de secrets
Tecnologías Afectadas
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
Abuso de Timeout de Función
mediumLas funciones serverless sin timeout configurado pueden mantenerse corriendo indefinidamente con requests maliciosas, drenando tu presupuesto.
Roles IAM Sobre-privilegiados
mediumDarle a funciones serverless o servicios más permisos IAM de los necesarios convierte una brecha menor en un compromiso total de la cuenta.
Estado Compartido en /tmp
mediumLas funciones serverless reutilizan entornos de ejecución entre invocaciones, por lo que archivos sensibles escritos en /tmp pueden ser leídos por requests posteriores de otros usuarios.
Fuga de Estado en Cold Start
mediumLas variables globales en funciones serverless persisten entre invocaciones en el mismo entorno de ejecución, filtrando datos de usuarios entre requests.