O Elasticsearch é um mecanismo de pesquisa baseado em Java que possui uma interface HTTP e armazena seus dados em documentos JSON sem esquema. Infelizmente, uma série de violações dispendiosas e dolorosas de Informações de Identificação Pessoal (PII) continuam a atormentar os bancos de dados Elasticsearch online:
No entanto, todas as PII ou outras informações confidenciais nesses bancos de dados foram mascaradas, hacks bem-sucedidos e cópias de desenvolvimento podem não ser problemáticos. O objetivo do IRI DarkShield é bloquear essas informações em produção ou teste usando funções de anonimização compatíveis com a lei de privacidade.
O Assistente de pesquisa e máscara do Elasticsearch no IDE gráfico do IRI Workbench para IRI DarkShield usa as mesmas ferramentas que os conectores MongoDB e Cassandra descritos neste artigo. Esse assistente pode ser usado para classificar, localizar e desidentificar ou excluir PII e outras informações confidenciais mantidas em coleções do Elasticsearch e para produzir resultados de pesquisa e auditoria.
Configuração
Se você não tiver um cluster do Elasticsearch para se conectar, poderá criar facilmente um cluster local fazendo download do Elasticsearch aqui e seguindo o guia de instruções.
Para minha demonstração deste assistente, estou usando um único índice chamado clientes em um cluster hospedado localmente. Esse índice armazena informações básicas do cliente que normalmente seriam vistas em uma conta e é um alvo rico para atos ilícitos. Isso inclui:e-mail, nome e número de telefone:
Pesquisar
Assim como as outras fontes de dados que o DarkShield suporta, você deve criar um .search arquivo de especificação de trabalho para definir seus critérios de digitalização e mercado. Como você faria com o MongoDB ou Cassandra, selecione o NoSQL Search/Masking Job … no menu DarkShield na parte superior da barra de ferramentas do IRI Workbench. Selecione uma pasta de projeto e insira um nome para o trabalho.
Na próxima página, crie um URI de origem:
Aqui é onde você insere os parâmetros para o cluster do Elasticsearch. O host e a porta padrão do Elasticsearch são localhost e 9200 se esses campos forem deixados em branco.
Se o cluster ao qual você está se conectando precisar de um nome de usuário e senha, insira-os na seção de autenticação. Para este exemplo, estou usando host:localhost, port:9200 e o cluster:Elasticsearch.
Um nome de usuário e senha também podem ser adicionados nesta página. Para a simplicidade desta demonstração, o cluster local não foi configurado com a segurança em mente. Qualquer cluster real deve ter login e permissões habilitados para casos de uso reais.
Clique em OK para terminar e você retornará à página anterior. Digite o índice que deseja pesquisar. Neste exemplo, estou usando o índice chamado clientes .
Em seguida, você precisará definir um URI de destino para os resultados mascarados. Lembre-se de que apenas os resultados mascarados do Elasticsearch só podem ser enviados para os destinos do Elasticsearch. Nesse caso, usarei o mesmo URI de clientes criado anteriormente, mas com um índice diferente. Isso criará um novo índice com os resultados mascarados que serão criados posteriormente nesta demonstração.
Em seguida, você será solicitado a criar um Search Matcher, que é responsável por associar uma classe de dados a uma regra de dados (mascaramento) correspondente. Este é um passo necessário, pois nenhum mascaramento pode ser aplicado sem ele.
Conforme explicado no artigo Classificação de dados, as classes de dados catalogam centralmente e definem critérios globais para localizar e mascarar PII em fontes estruturadas, semiestruturadas ou não estruturadas para FieldShield e DarkShield. O IRI Workbench é fornecido com várias classes de dados predefinidas (por exemplo, nomes, endereços de e-mail e IP, números de cartão de crédito), encontrados em Janela> Preferências> IRI> Classes e grupos de dados . Você pode editá-los e adicionar os seus próprios.
Clique em Procurar ou Criar na linha de classe de dados. O Browse permitirá que você selecione suas próprias classes de dados ou uma das várias classes ou grupos predefinidos, incluindo e-mail, número de telefone e nomes. Neste caso, o grupo de classes de dados NAMES inclui uma classe de dados first names.
Aqui eu selecionei a classe de dados EMAIL que irá procurar emails dentro do meu índice Elasticsearch:
Agora, uma regra de mascaramento deve ser aplicada à classe de dados que foi escolhida. Clique no botão Criar botão para criar uma nova regra de dados ou Procurar para usar qualquer um que você já tenha definido.
Para e-mails, escolho uma função de redação:
É claro que mais de uma classe de dados pode ser mascarada simultaneamente. Adicionei classes e atribuí uma função de criptografia de preservação de formato para números de telefone e um pseudônimo aleatório (pesquisa de arquivo definida) para os nomes das pessoas:
Se houver necessidade de filtros de pesquisa, eles podem ser adicionados na página anterior. Os filtros podem ser usados para encontrar resultados específicos ou para isolar campos específicos em CSV, XML, JSON ou RDBs a serem mascarados, evitando a necessidade de verificar o conteúdo da linha. Eu não especifiquei nenhum neste caso, no entanto.
Clique em Concluir quando feito. Isso conclui o assistente e cria um .search arquivo que contém os detalhes de configuração do DarkShield para executar a(s) tarefa(s) de pesquisa e/ou mascaramento.
Observação: Se você estiver usando o cluster padrão hospedado localmente como o deste exemplo, certifique-se de que o cluster esteja ativado, caso contrário, qualquer trabalho de pesquisa ou mascaramento falhará. Você pode verificar se o servidor está rodando abrindo um navegador web e digitando “http://localhost:9200/” na barra de endereços.
Pesquisando e mascarando
O DarkShield oferece suporte à pesquisa e mascaramento como operações separadas ou simultâneas. Nesse caso, quero pesquisar primeiro e ver o que encontrei antes de mascará-lo. Isso porque trabalhos de mascaramento (maiores) podem levar tempo, e talvez eu queira aprimorar meus métodos de pesquisa e verificá-los novamente.
Para fazer isso, clique com o botão direito do mouse em .search e execute o arquivo como um trabalho de pesquisa. Isso criará um .darkdata com os resultados da pesquisa que acabou de ser realizada. O artefato aparece no Workbench assim:
Depois de verificar os resultados, você pode executar o .darkdata arquivo como um mascaramento job para corrigir a coleção com a função de redação que especifiquei.
Os resultados pesquisados anteriormente serão mascarados no local de destino. Para verificar isso, você pode realizar uma pesquisa novamente e ver que os dados agora foram "DarkShield'ed" conforme especificado; ou seja, e-mails redigidos, nomes pseudônimos e números de telefone mascarados com criptografia com preservação de formato:
Se você precisar de ajuda para proteger suas coleções do Elasticsearch mascarando seus dados em repouso por meio dessa interface DarkShield no IRI Workbench ou sua CLI, ou quaisquer dados semi/não estruturados em andamento por meio da API REST do DarkShield, envie um e-mail para [email protected].