Ingeniería

Cómo prevenir una vulneración del servidor de Elasticsearch

Si estás en el área de la tecnología, seguramente la frase "vulneración del servidor" ha aparecido en el radar en algún momento. Si no estás en el mundo de la tecnología, es probable que igual estés al tanto de las vulneraciones del servidor o los datos y las fallas de seguridad por los que datos privados y personales han terminado en las manos equivocadas. Esto puede incluir información crediticia, números de seguridad social y otra información que preferirías conservar para ti y que no esté en la internet oscura.

Todos los softwares deben afrontar la posibilidad de una vulneración o un ataque. Esto incluye Elasticsearch, un proyecto de software open source de Elastic. Hubo casos en que datos que no estaban almacenados de manera segura en Elasticsearch se filtraron, se perdieron o fueron robados.

Cómo prevenir una vulneración del servidor de Elasticsearch

Este artículo ayudará a comprender cómo se producen las vulneraciones de datos y cómo los usuarios pueden protegerse mejor contra estas en el contexto de Elasticsearch. Comenzaremos con algunas cuestiones básicas pero, si quieres, puedes ir directamente a la sección: ¿Cómo aseguro Elasticsearch?

¿Qué es Elasticsearch?

Elasticsearch es un motor de analítica y búsqueda open source y también un espacio de almacenamiento de datos. Y con cientos de millones de descargas, también es increíblemente popular. Promocionamos su velocidad, escala y relevancia de búsqueda, pero además su amplia adopción se ha debido en gran parte a su facilidad de uso, la capacidad de gestionar cualquier tipo de datos (texto, número, geoespacial, etcétera), el sólido conjunto de características y el hecho de que cualquier persona puede enviar la corrección de un error o sugerir una mejora (porque es open source).

En lenguaje no técnico, imagina que tienes una hoja de cálculo con miles de millones de columnas, pero aun así puedes encontrar o calcular cualquier cosa en una fracción de segundo. Elasticsearch es así y es realmente bueno en lo que hace, por eso muchas organizaciones usan Elasticsearch para todo tipo de cuestiones, como habilitar la búsqueda en sus sitios de comercio electrónico, analizar los datos enviados desde los exploradores de Marte o garantizar que los autos compartidos lleguen a tiempo.

¿Quién es Elastic? Además, ¿tienen mis datos?

Elastic es la empresa que desarrolla Elasticsearch, junto con los otros productos del Elastic Stack (Kibana, Beats, Logstash, etcétera). Elasticsearch es el pilar de una variedad de soluciones que incluyen búsqueda, observabilidad, seguridad y más.

Y la respuesta breve es no, no tenemos tus datos. Nosotros desarrollamos Elasticsearch y otras empresas luego lo ejecutan localmente o dentro de la infraestructura del cloud. 

La respuesta un poco más extensa es: tal vez. Algunas empresas usan Elastic Cloud, nuestra oferta de Elasticsearch administrado. Somos responsables de conservar cualquier dato que los clientes pongan en Elastic Cloud, lo que incluye mantenerlos seguros. Es por esto por lo que todos nuestros despliegues de Elasticsearch Service son seguros de manera predeterminada.

¿Dónde almacena Elasticsearch los datos?

Dado que Elasticsearch es open source (es decir, que cualquier persona puede descargarlo e instalarlo sin cargo), se puede instalar en casi cualquier lugar. Algunas empresas lo descargan y lo instalan en sus propios servidores locales, mientras que otras lo descargan y lo instalan en el cloud (en cualquier proveedor que quieran). También hay algunas empresas de servicios en el cloud que ofrecen versiones gestionadas de Elasticsearch, lo que significa que hospedan y administran los clusters de Elasticsearch (así los llamamos) para los clientes. 

De hecho, Elastic también ofrece nuestro propio Elasticsearch Service administrado en Elastic Cloud. De esta manera, brindamos amplios servicios de administración (incluida la seguridad de forma predeterminada), y dejamos que elijas entre distintos proveedores de cloud para la infraestructura.

¿Cómo se vulneran los servidores de Elasticsearch?

Hay distintas formas en que los almacenes de datos pueden vulnerarse, desde contraseñas robadas y hackers hasta empleados descontentos. En el caso de Elasticsearch, el tipo de vulneración más común se debe a un cluster en internet que no está asegurado, lo que significa que cualquiera puede conectarse sin necesidad de un nombre de usuario ni una contraseña y puede acceder a los datos. Investigadores de seguridad suelen detectar estos clusters abiertos y luego publican sus descubrimientos; de esta manera, el mundo conoce sobre los datos que se dejan en internet.

Cuando está bien asegurado, un cluster de Elasticsearch no sufre mayor riesgo de vulneración que cualquier otra base de datos. Y es por este motivo que brindamos las características (gratis y predeterminadas) necesarias para que cualquier persona que descargue y use el Elastic Stack asegure un cluster de Elasticsearch. Para ello, analicemos algunas acciones que los usuarios de Elasticsearch pueden hacer para asegurarse de estar usando estas características y mantener los clusters seguros.

¿Cómo aseguro Elasticsearch?

Incluimos las características de seguridad de Elasticsearch como parte de nuestra distribución gratis y predeterminada (nivel Básico), lo que significa que cualquier persona puede configurar la seguridad para su cluster de Elasticsearch y evitar fugas accidentales de datos. Antes de analizar el uso de esas características, primero veamos cómo determinar si tu cluster ya es seguro.

¿Cómo puedo saber si tengo un cluster de Elasticsearch no seguro?

Si eres usuario o administrador de Elasticsearch, hay algunas acciones simples que puedes hacer para comprobar si ya tienes la seguridad activada y en funcionamiento. 

La mejor forma de determinar si tienes la seguridad activada y en funcionamiento es buscar en la API de configuración. Si emites esta búsqueda:

GET _xpack/usage?filter_path=security

Verás resultados que se parecen a esto si la seguridad está desactivada:

{ 
  "security" : { 
    "available" : true, 
    "enabled" : false, // Cuando la seguridad está desactivada, esto está configurado como "false" 
    "ssl" : { 
      "http" : { 
        "enabled" : false 
      }, 
      "transport" : { 
        "enabled" : false 
      } 
    } 
  } 
}

O si la seguridad está funcionando como debe, verás esto

{ 
  "security" : { 
    "available" : true, 
    "enabled" : true, // Cuando la seguridad está activada, esto está configurado como "true"
    "realms" : { ... }, 
    "roles" : { ... }, 
    "role_mapping" : { ... }, 
    "ssl" : { 
      "http" : { 
        "enabled" : true 
      }, 
      "transport" : { 
        "enabled" : true 
      } 
  }, 
  "token_service" : { ... }, 
  "api_key_service" : { ... }, 
  "audit" : { ... }, 
  "ipfilter" : { ... }, 
  "anonymous" : { ... } 
  } 
}

Puedes ver que los resultados son bastante diferentes. Según el tipo de versión y nivel de licencia que hayas desplegado, puedes esperar que los resultados sean ligeramente diferentes también.

¿Cómo me aseguro de que mi cluster de Elasticsearch sea seguro?

Las dos acciones más fáciles que puedes hacer para asegurarte de que personas ajenas no tengan acceso a tus clusters de Elasticsearch son las siguientes:

  1. Habilitar la autenticación para que nadie tenga acceso sin iniciar sesión en Elasticsearch.
  2. Habilitar TLS para que nadie pueda interceptar los datos de Elasticsearch que viajan por la red.

Tenemos muchos recursos excelentes disponibles (enumerados al final) que explican cómo asegurar Elasticsearch, entre ellos, cómo implementar fácilmente las dos recomendaciones anteriores. Sin embargo, la forma más rápida de asegurarse es ver nuestro blog Primeros pasos con la seguridad de Elasticsearch (TLS y BRBAC) y el video que lo acompaña: Securing Elasticsearch in 7 minutes (Asegurar Elasticsearch en 7 minutos).

También tenemos un método sencillo para todo esto en nuestro Elasticsearch Service en Elastic Cloud. Cuando usas nuestro Elasticsearch Service, puedes tener la certeza de que incluye seguridad configurada automáticamente para cada cluster.

La seguridad requiere trabajo en equipo

Si tienes preguntas, siempre puedes comunicarte con nosotros. Tenemos varias formas de ser parte de la comunidad Elastic, como foros, eventos locales y mucha documentación (mucha más que los enlaces anteriores). Además, estamos continuamente trabajando para que asegurar Elasticsearch sea más fácil que nunca. Sigue con atención nuestros blogs para saber lo que está por llegar y qué haremos en este espacio en el futuro. Si eres fan del Hombre Araña, conoces la frase "Un gran poder conlleva una gran responsabilidad", y esto es cierto para Elastic y para todos los que usan Elasticsearch para almacenar datos.

Recursos adicionales para asegurar Elasticsearch

Blogs

Videos

Documentación

Capacitación