Como evitar violações no servidor do Elasticsearch

Se você lida com tecnologia, provavelmente já ouviu falar em violação de servidor. Mas, mesmo se você não é da área, deve saber que violações de servidor e dados e falhas de segurança costumam fazer com que dados pessoais e particulares acabem nas mãos erradas. Pode acontecer com informações de crédito, números de documentos e outros dados que precisariam estar seguros, e não na dark web.

Todos os softwares, de um jeito ou de outro, precisam lidar com a possibilidade de uma violação ou ataque. O Elasticsearch, que é um software open source desenvolvido pela Elastic, não é exceção. Já aconteceu de termos dados que não estavam armazenados de fora segura no Elasticsearch e acabaram vazados, perdidos ou roubados.

Como evitar violações no servidor do Elasticsearch

Neste artigo, você entenderá como acontecem as violações e como os usuários podem se proteger dentro do Elasticsearch. Vamos começar com uma pequena introdução, mas, se quiser, você poderá pular direto para a seção: Como manter o Elasticsearch seguro?

O que é o Elasticsearch?

O Elasticsearch é um mecanismo de busca e análise de dados open source, além de um meio de armazenar dados. O software já teve centenas de milhões de downloads e é extremamente popular. Sempre falamos da velocidade, escalabilidade e relevância de busca, mas o sucesso do Elasticsearch também se deve muito à sua facilidade de uso, capacidade de lidar com qualquer tipo de dado (texto, número, geoespacial, etc.), ao seu conjunto robusto de recursos e ao fato de que qualquer pessoa consegue enviar uma correção de erro e sugerir melhorias (já que é open source).

Falando em termos leigos, imagine ter uma planilha com bilhões de linhas, mas conseguir encontrar ou calcular qualquer coisa em uma fração de segundos. O Elasticsearch é assim, além de ser muito bom no que faz. E é por isso que muitas empresas o utilizam com diversas finalidades, como na busca de sites de comércio eletrônico, na análise de dados de veículos em missões em Marte ou para garantir que um veículo de viagem compartilhadas chegue na hora combinada.

Mas quem é a Elastic? E vocês têm acesso aos meus dados?

A Elastic é a empresa que desenvolveu o Elasticsearch, assim como outros produtos do Elastic Stack, como Kibana, Beats e Logstash. E o Elasticsearch é a base para uma série de soluções, como Search, Observability, Security e muito mais.

A resposta mais curta seria: não, não temos acesso aos seus dados. Nós desenvolvemos o Elasticsearch, que outras empresas executam em infraestrutura local ou na nuvem. 

A resposta um pouco mais longa seria: talvez. Algumas empresas utilizam o Elastic Cloud, nossa oferta de gerenciamento do Elasticsearch. E nós somos responsáveis pela manutenção e segurança de quaisquer dados que nossos clientes coloquem lá. É por isso que todas as nossas implantações do Elasticsearch Service já vêm com a segurança como padrão.

Onde o Elasticsearch mantém os dados?

Como o Elasticsearch é open source (ou seja, qualquer pessoa pode baixar e instalar gratuitamente), ele pode ser instalado em praticamente qualquer lugar. Algumas empresas baixam e instalam em servidores locais e outras na nuvem (em qualquer provedor que desejarem). Também existem empresas de serviços de nuvem que oferecem versões gerenciadas do Elasticsearch, o que significa que eles mesmos administram os clusters (é assim que chamamos) para os clientes. 

E a Elastic também oferece um serviço gerenciado no Elastic Cloud, o Elasticsearch Service. Oferecemos serviços de gerenciamento extensos (incluindo segurança por padrão) e permitimos que você escolha entre uma série de provedores de serviços em nuvem para a infraestrutura.

Mas como os servidores do Elasticsearch podem ser violados?

Uma violação de dados pode acontecer de uma série de formas, como através de roubo de senhas, hackers ou funcionários mal intencionados. No caso do Elasticsearch ,o tipo mais comum de violação é quando um cluster é deixado inseguro na internet, o que significa que qualquer pessoa pode se conectar a ele e acessar os dados, sem precisar de credenciais. Esses clusters abertos costumam ser descobertos por pesquisadores de segurança e publicados na web. E assim o mundo fica sabendo que existem dados abertos na internet.

Com a segurança adequada, um cluster do Elasticsearch é tão seguro quanto qualquer outro banco de dados. E é por isso que oferecemos recursos (grátis e por padrão) para manter um cluster Elasticsearch seguro para qualquer pessoa que baixe e use o Elastic Stack. Então vamos ver algumas coisas que usuários do Elasticsearch podem fazer para usar corretamente os recursos e manter os clusters seguros.

Como manter o Elasticsearch seguro?

Incluímos recursos de segurança no Elasticsearch de forma gratuita e por padrão (camada básica), o que significa que qualquer pessoa pode configurar a segurança para um cluster Elasticsearch e evitar vazamentos acidentais de dados. Mas, antes de falar desses recursos, vamos ver como determinar se o seu cluster está ou não seguro.

Como saber se tenho um cluster do Elasticsearch seguro?

Se você for um usuário ou administrador do Elasticsearch, é fácil verificar se a segurança está habilitada e funcionando no seu cluster. 

A melhor forma é fazer uma consulta para a API de configurações. Realize esta consulta:

GET _xpack/usage?filter_path=security

Se a segurança estiver desabilitada, você verá resultados assim:

{ 
  "security" : { 
    "available" : true, 
    "enabled" : false, // Quando a segurança estiver desabilitada, estará como "false" 
    "ssl" : { 
      "http" : { 
        "enabled" : false 
      }, 
      "transport" : { 
        "enabled" : false 
      } 
    } 
  } 
}

Ou assim, se a segurança estiver funcionando como deve, você verá resultados assim:

{ 
  "security" : { 
    "available" : true, 
    "enabled" : true, // Quando a segurança estiver habilitada, estará como "true"
    "realms" : { ... }, 
    "roles" : { ... }, 
    "role_mapping" : { ... }, 
    "ssl" : { 
      "http" : { 
        "enabled" : true 
      }, 
      "transport" : { 
        "enabled" : true 
      } 
  }, 
  "token_service" : { ... }, 
  "api_key_service" : { ... }, 
  "audit" : { ... }, 
  "ipfilter" : { ... }, 
  "anonymous" : { ... } 
  } 
}

Como você pode ver, os resultados são bem diferentes. E, dependendo da versão e do nível da sua licença, os resultados podem variar um pouco também.

Como posso ter certeza de que meu cluster Elasticsearch está seguro?

Para garantir que pessoas de fora não tenham acesso aos seus clusters Elasticsearch, você pode fazer duas coisas:

  1. Habilitar a autenticação para que ninguém tenha acesso ao Elasticsearch sem credenciais.
  2. Habilitar o TLS para que ninguém consiga ver dados do Elasticsearch que estejam circulando pela rede.

Temos muitos recursos disponíveis (listados abaixo) que explicam como manter o Elasticsearch seguro, incluindo como implementar de forma fácil as duas recomendações acima. Mas a forma mais rápida de garantir a segurança é consultar nosso artigo Uma introdução à segurança no Elasticsearch (TLS e RBAC) e o vídeo de 7 minutos sobre segurança no Elasticsearch.

Também temos um botão fácil para tudo isso no Elasticsearch Service no Elastic Cloud. Quando você usa o nosso Elasticsearch Service, pode ter certeza de que ele já vem com a segurança configurada automaticamente para cada cluster.

Segurança é uma questão de trabalho em equipe

Se tiver alguma dúvida, é só falar com a gente. Existem várias formas de participar da comunidade Elastic, como nos fóruns, eventos presenciais e consultando as diversas documentações (muito mais do que as listadas acima). Também estamos sempre trabalhando para que seja cada vez mais fácil garantir a segurança do Elasticsearch. Fique de olho em nossos blogs para saber das novidades e do que estamos programando para o futuro. E, se você é fã do Homem-Aranha, deve conhecer a citação “Com grandes poderes vêm grandes responsabilidades”, e isso também é verdade para a Elastic e qualquer pessoa que use o Elasticsearch para armazenar dados.

Recursos adicionais para garantir a segurança do Elasticsearch

Blogs

Vídeos

Documentação

Treinamento