highCWE-284OWASP A01:2021

Función Cloud con Invocación Pública

Tu Lambda o Cloud Function permite invocación sin autenticación, lo que significa que cualquiera en internet puede dispararla sin credenciales.

Cómo Funciona

Las Cloud Functions desplegadas con --allow-unauthenticated (GCP) o con una política basada en recursos que permite Principal: '*' para lambda:InvokeFunction (AWS) pueden ser llamadas por cualquiera. Si la función realiza operaciones sensibles (escritura en base de datos, envío de emails, cargos a métodos de pago), cualquier usuario de internet puede disparar esas operaciones sin ninguna verificación de autenticación.

Código Vulnerable
# MAL: Cloud Function de GCP permitiendo invocación sin autenticación
gcloud functions deploy mi-funcion \
  --trigger-http \
  --allow-unauthenticated  # cualquiera puede invocarla

# MAL: política de recursos de Lambda AWS con invocación pública
aws lambda add-permission \
  --function-name mi-funcion \
  --principal "*" \
  --action lambda:InvokeFunction
Código Seguro
# BIEN: Cloud Function de GCP requiriendo autenticación
gcloud functions deploy mi-funcion \
  --trigger-http \
  --no-allow-unauthenticated  # requiere token de identidad de Google válido

# BIEN: Lambda AWS invocada solo por API Gateway con auth
# Usa API Gateway + autorizador de Cognito o autorizador Lambda — sin invocación directa pública

Ejemplo Real

Una startup desplegó una Cloud Function de GCP para su manejador de webhook de Stripe con --allow-unauthenticated por simplicidad. Un atacante descubrió la URL, repitió payloads viejos de webhook y disparó fulfillments de pedidos duplicados. La función debería haber verificado la firma del webhook de Stripe y requerido invocación autenticada.

Cómo Prevenirlo

  • Nunca deploys Cloud Functions con --allow-unauthenticated a menos que sean verdaderos endpoints públicos (como webhooks con verificación de firma)
  • Para webhooks, usa --no-allow-unauthenticated pero verifica la firma del proveedor dentro de la función
  • Usa API Gateway como puerta de entrada con un autorizador apropiado en lugar de exponer Lambda directamente
  • Aplica mínimos privilegios: solo permite que servicios específicos (API Gateway, Event Bridge) invoquen la función
  • Audita todas las políticas basadas en recursos de Lambda/Cloud Function en busca de entradas Principal: '*'

Tecnologías Afectadas

Node.jsPython

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas