criticalCWE-284OWASP A05:2021

Elasticsearch Accesible Públicamente

Tu instancia de Elasticsearch es accesible desde internet sin autenticación, exponiendo todos los datos indexados a cualquiera que conozca la URL del endpoint.

Cómo Funciona

La API REST de Elasticsearch corre en el puerto 9200 y devuelve datos en respuesta a simples requests HTTP GET sin autenticación por defecto (en versiones antiguas). Si la instancia está vinculada a una IP pública y el puerto 9200 está abierto, un atacante puede consultar curl http://tu-elastic:9200/_search?size=10000 y dumpear todo tu índice. Esto ha expuesto millones de registros en numerosas brechas.

Código Vulnerable
// MAL: cliente de Elasticsearch conectándose a un endpoint público sin auth
const client = new Client({
  node: 'http://search.example.com:9200'
  // Sin auth, HTTP (no HTTPS), endpoint público
});
Código Seguro
// BIEN: usa HTTPS y autentícate con API key o usuario/contraseña
const client = new Client({
  node: process.env.ELASTICSEARCH_URL, // https://... con endpoint privado de VPC
  auth: {
    apiKey: process.env.ELASTICSEARCH_API_KEY
  }
});

Ejemplo Real

El salón de la fama de brechas de Elasticsearch es extenso: 1.2 mil millones de registros de Facebook (2019), 2.7 mil millones de registros de email (2020), 533 millones de registros scrapeados de LinkedIn — muchos vía instancias de Elasticsearch sin autenticación. El investigador de seguridad Bob Diachenko ha reportado cientos de instancias abiertas de Elasticsearch que contienen datos sensibles.

Cómo Prevenirlo

  • Habilita la seguridad X-Pack en Elasticsearch para requerir autenticación para todas las requests
  • Despliega Elasticsearch en una VPC privada sin IP pública — expónlo solo a través de tus servidores de app
  • Siempre usa HTTPS (puerto 9243 para Elastic Cloud) — nunca HTTP en el puerto 9200 para ninguna configuración que no sea localhost
  • Crea API keys con permisos mínimos de índice por aplicación, no una sola key de admin
  • Escanea regularmente tu cluster de Elasticsearch en busca de índices accesibles públicamente con herramientas como Shodan

Tecnologías Afectadas

Node.jsPython

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas