Uma Nova Solução para Proteger Dados na Nuvem
Apresentando um sistema de chave-valor distribuído pra aumentar a segurança dos dados em ambientes de nuvem.
― 11 min ler
Índice
- Preocupações de Segurança em Datastores na Nuvem
- O que é Computação Confidencial?
- Desafios na Adaptação de Aplicativos para TEEs
- Apresentando uma Nova Solução
- Recursos e Benefícios
- Compreendendo o etcd
- Desafios das Implementações Atuais do etcd
- O Novo Datastore de Chave-Valor: Uma Visão Geral
- Modelo de Dados e Funcionalidade da API
- Lidando com Segurança e Confiança
- Consistência e Gerenciamento de Falhas
- Flexibilidade na Transição para Sistemas Seguros
- Detalhes da Implementação
- Avaliação de Desempenho
- Conclusão
- Fonte original
- Ligações de referência
Datastores distribuídos são sistemas usados para armazenar dados importantes para as empresas. Eles são super essenciais para aplicativos que precisam rodar de forma segura e eficiente. Um exemplo de datastore distribuído bem conhecido é o etcd, que é comumente usado no Kubernetes, uma plataforma para gerenciar aplicativos em contêineres. O Kubernetes depende do etcd para acompanhar todo o estado e as configurações dos aplicativos que gerencia.
Num setup do Kubernetes, todos os dados importantes, incluindo configurações e segredos, são armazenados em um único cluster etcd. Se um atacante conseguir acesso a esse cluster, ele pode manipular recursos, causando problemas dentro do Kubernetes. Por isso, é vital que o etcd funcione corretamente, de forma confiável e rápida, especialmente agora que mais datastores estão sendo hospedados na nuvem. Infelizmente, armazenar dados na nuvem pode deixá-los expostos, mesmo com criptografia e outras medidas de segurança.
Preocupações de Segurança em Datastores na Nuvem
À medida que mais empresas movem seus dados para ambientes em nuvem, a segurança se torna uma preocupação maior. Mesmo com criptografia durante a transmissão e armazenamento dos dados, eles podem ser vulneráveis. Isso é especialmente verdadeiro se os provedores de nuvem enfrentarem seus próprios problemas de segurança. Por exemplo, se atacantes conseguirem acesso privilegiado a uma máquina na nuvem, eles podem contornar as medidas de segurança implementadas pelos clientes e potencialmente extrair dados diretamente.
Para lidar com essas preocupações de segurança, algumas tecnologias introduzem Ambientes de Execução Confiáveis (TEEs). TEEs como Intel SGX, Intel TDX, AMD SEV-SNP e Arm TrustZone oferecem suporte de hardware para Computação Confidencial. Esse tipo de computação ajuda a manter os dados seguros enquanto estão sendo processados, garantindo que até mesmo o acesso privilegiado não comprometa os dados.
O que é Computação Confidencial?
Computação confidencial foca em proteger dados e códigos sensíveis enquanto estão em uso. Ao utilizar TEEs, a informação fica segura na memória, evitando acessos ou alterações não autorizadas. Isso é crucial para empresas que lidam com informações confidenciais ou transações sensíveis.
Os TEEs também permitem que máquinas virtuais inteiras operem em um ambiente seguro. Isso dá mais flexibilidade para as empresas em como podem rodar seus aplicativos e lidar com dados sensíveis. Contudo, simplesmente mover aplicativos existentes para um ambiente TEE não é o suficiente. Os desenvolvedores também precisam ajustar seus aplicativos para se adequar às ameaças de segurança específicas que vêm com o novo ambiente.
Desafios na Adaptação de Aplicativos para TEEs
Transitar aplicativos existentes para operar de forma segura em TEEs é complicado. A confiança deve ser gerenciada com cuidado; continuar confiando no sistema operacional host pode quebrar as garantias de confidencialidade. Então, construir novos sistemas projetados para TEEs não é uma tarefa simples.
Existem esforços para enfrentar os desafios de rodar aplicativos em TEEs. Esses esforços incluem pesquisas focadas em tempo de host não confiável e soluções de armazenamento seguro, mas combinar esses elementos em sistemas eficazes continua sendo difícil. Além disso, os próprios aplicativos podem ser complexos e precisar de mecanismos para garantir que funcionem corretamente.
Mesmo quando os aplicativos são movidos para um TEE, eles podem não ter as adaptações necessárias para lidar com novas ameaças de segurança. Por exemplo, eles podem não oferecer aos clientes uma maneira de validar as ações de um servidor intermediário, forçando os clientes a confiarem nesses servidores sem verificação.
Apresentando uma Nova Solução
Esse trabalho apresenta um novo datastore distribuído de chave-valor voltado para proteger dados sensíveis na nuvem. Ele se baseia na estrutura existente do etcd, garantindo compatibilidade enquanto se adapta às novas necessidades de segurança. Este sistema aborda as questões de intermediários não confiáveis e oferece uma transição gradual para o armazenamento seguro de dados.
Esse novo datastore fornece uma API familiar semelhante à do etcd, enquanto adiciona recursos que atendem ao seu modelo de ameaça. Ele suporta servidores intermediários não confiáveis que lidam com transações seguras, permitindo que os clientes façam a transição suavemente para um ambiente seguro.
Recursos e Benefícios
O novo sistema melhora a confidencialidade através de uma API de chave-valor parecida com a do etcd. Ele suporta recursos essenciais como consultas de faixa, transações, locações e watches. Isso serve como uma base forte para construir confiança em sistemas que dependem de dados sensíveis.
As contribuições desse novo sistema incluem:
- Motivação do porquê datastores existentes não são adequados para uma transição simples para ambientes seguros.
- Um caminho para alcançar a confidencialidade dos dados sem as desvantagens de simplesmente mover sistemas.
- Novas funções para aguardar que solicitações otimistas sejam tratadas e permitir que os clientes construam confiança em serviços intermediários.
- Desempenho competitivo ao lado do etcd, atendendo às demandas de várias cargas de trabalho.
Compreendendo o etcd
etcd é um datastore de chave-valor confiável que é fundamental para muitos sistemas distribuídos. Ele oferece uma ampla gama de recursos, incluindo uma API abrangente acessada principalmente através do gRPC. O etcd suporta um modelo básico que pode lidar com transações, locações e funções de nível superior como locks distribuídos. Ele usa o protocolo de consenso Raft para garantir a consistência e durabilidade dos dados.
O etcd é amplamente implementado em sistemas de produção devido à sua confiabilidade e baixa sobrecarga de manutenção. Além disso, ele pode rodar tanto em ambientes de nuvem quanto em locais, tornando-se versátil para diferentes aplicativos.
Para proteger os dados, o etcd implementa criptografia para dados em trânsito usando TLS. Contudo, como a memória permanece não criptografada, isso coloca as implantações do etcd em risco, especialmente em ambientes de nuvem. Chaves de criptografia armazenadas na memória podem levar a vulnerabilidades se um atacante conseguir acessar o sistema.
Desafios das Implementações Atuais do etcd
Clientes que não confiam totalmente no etcd podem criptografar seus dados antes de enviá-los. No entanto, isso transfere a responsabilidade pela segurança e gerenciamento de chaves para os clientes, introduzindo complexidade adicional.
Rodar o etcd dentro de máquinas virtuais seguras é uma maneira de ajudar a proteger os dados durante a execução. Embora isso forneça alguma segurança, o modelo de confiança central do etcd ainda depende fortemente do sistema operacional host. Se o host for comprometido, isso pode levar a ataques, como rollbacks, que minam a confiabilidade dos dados.
Além disso, sistemas que não se adaptaram ao novo modelo de ameaça podem expor dados a servidores API não confiáveis. Se atacantes controlarem um servidor API, poderão manipular as solicitações dos clientes sem que eles percebam.
O Novo Datastore de Chave-Valor: Uma Visão Geral
O novo datastore distribuído de chave-valor visa proteger dados sensíveis na nuvem. Ele é construído sobre a estrutura do Confidential Consortium Framework (CCF) e oferece compatibilidade com o etcd enquanto aborda seus desafios de segurança. Este sistema permite intermediários não confiáveis que podem encerrar conexões TLS e adiciona uma abordagem incremental para usuários que estão fazendo a transição para datastores na nuvem seguros.
O framework CCF garante a Integridade dos Dados armazenados. Ele possui mapas de chave-valor para gerenciar estado em um livro-razão e se baseia em um modelo de API REST para lidar com solicitações. Ao produzir uma Árvore Merkle para integridade dos dados, o novo sistema pode garantir que as atualizações sejam tratadas de forma segura entre diferentes nós.
Modelo de Dados e Funcionalidade da API
Essa nova solução imita a API do etcd, visando compatibilidade na linha enquanto adiciona novos campos aos cabeçalhos de resposta e introduz um endpoint de recibo. Os clientes podem enviar solicitações tanto por HTTP quanto por gRPC, oferecendo flexibilidade em como os aplicativos se conectam ao datastore.
Valores atualizados são versionados com um contador de revisão, tornando fácil acompanhar mudanças históricas. Os clientes também podem estabelecer locações ligadas à atividade do cliente, garantindo uma coordenação suave entre sistemas distribuídos.
Valores podem ser monitorados pelos clientes sem precisar ficar polindo constantemente o datastore. Os clientes podem iniciar solicitações de watch a partir da última revisão para receber atualizações ou de uma revisão histórica anterior para se atualizar.
Os cabeçalhos de resposta enviados de volta aos clientes contêm informações vitais, como IDs de cluster, IDs de membros e as últimas revisões. Isso ajuda os clientes a acompanhar suas interações com o datastore de forma eficaz.
Lidando com Segurança e Confiança
O novo sistema classifica os atores em três categorias: operadores não confiáveis, governadores confiáveis e clientes não confiáveis. Os operadores, geralmente, gerenciam as instâncias de aplicativos e têm controle total sobre o ambiente de execução.
Os governadores gerenciam as operações de serviço com base em uma constituição definida que contém as ações disponíveis. Embora sejam coletivamente confiáveis, as ações individuais deles estão sujeitas a escrutínio.
Os clientes podem usar os endpoints do aplicativo sem expor dados sensíveis, mas são considerados não confiáveis em geral. Eles só precisam fornecer certificados de cliente válidos para acessar toda a gama de funcionalidades.
Consistência e Gerenciamento de Falhas
Esse sistema fornece gravações linearizáveis e leituras serializáveis. Os clientes têm permissão para esperar que os valores sejam confirmados como comprometidos, o que ajuda a garantir que recebam dados consistentes em seus aplicativos.
Em caso de falhas, o sistema requer que a maioria dos nós do cluster permaneça operacional para a recuperação padrão de falhas. A estrutura do código dentro do TEE ajuda a prevenir problemas relacionados a comportamentos maliciosos no ambiente host, garantindo a integridade dos dados.
Flexibilidade na Transição para Sistemas Seguros
O novo datastore de chave-valor suporta a adoção gradual de princípios seguros, oferecendo flexibilidade em como bancos de dados existentes podem transitar para o novo framework. Isso permite que os operadores testem o desempenho e a estabilidade do sistema em um datacenter privado antes de progredir para uma implantação em nuvem pública onde os operadores podem não ser confiáveis.
Ao introduzir recibos de gravação, os clientes podem solicitar confirmação de suas operações. Isso garante que as gravações de dados sejam confirmadas, permitindo que os clientes evitem atividades maliciosas potenciais de servidores intermediários que podem lidar com seus dados.
Detalhes da Implementação
A implementação deste novo datastore é estruturada para maximizar eficiência e segurança. Ele utiliza a linguagem de programação C++ para funcionalidade central, enquanto também se integra com o CCF. A arquitetura do código separa eficientemente funcionalidades, permitindo operações simplificadas.
As solicitações enviadas ao sistema são roteadas e executadas eficientemente, com os resultados sendo registrados em um livro-razão seguro. Transações comprometidas são rastreadas e preservadas em um índice histórico para fácil referência.
Avaliação de Desempenho
Para avaliar a efetividade do novo datastore, foram realizadas comparações com o etcd em várias cargas de trabalho. O objetivo era medir o desempenho em termos de latência, taxa de transferência e escalabilidade.
Os resultados indicaram que, enquanto o novo datastore mantém desempenho competitivo, ele experimenta uma leve sobrecarga devido aos recursos adicionais de segurança que oferece. O modelo de consistência otimista melhora o tratamento de transações e mantém os clientes informados sobre suas solicitações.
Além disso, o sistema demonstra forte escalabilidade tanto horizontal quanto vertical. À medida que nós adicionais são adicionados, o desempenho permanece consistente, e adicionar mais threads de trabalho otimiza a taxa de transferência geral.
Conclusão
Esse novo datastore distribuído de chave-valor oferece uma base segura para gerenciar dados sensíveis na nuvem. Ao se basear em tecnologias existentes enquanto aborda suas limitações, ajuda as organizações a fazer a transição para ambientes de computação confidencial.
Com suporte para intermediários não confiáveis e uma abordagem flexível para adotar princípios seguros, ele se torna uma opção atraente para negócios que buscam proteger seus dados. Através de seu desempenho competitivo e recursos robustos, esse sistema pode habilitar o desenvolvimento de aplicativos confiáveis em várias indústrias.
Título: LSKV: A Confidential Distributed Datastore to Protect Critical Data in the Cloud
Resumo: Software services are increasingly migrating to the cloud, requiring trust in actors with direct access to the hardware, software and data comprising the service. A distributed datastore storing critical data sits at the core of many services; a prime example being etcd in Kubernetes. Trusted execution environments can secure this data from cloud providers during execution, but it is complex to build trustworthy data storage systems using such mechanisms. We present the design and evaluation of the Ledger-backed Secure Key-Value datastore (LSKV), a distributed datastore that provides an etcd-like API but can use trusted execution mechanisms to keep cloud providers outside the trust boundary. LSKV provides a path to transition traditional systems towards confidential execution, provides competitive performance compared to etcd, and helps clients to gain trust in intermediary services. LSKV forms a foundational core, lowering the barriers to building more trustworthy systems.
Autores: Andrew Jeffery, Julien Maffre, Heidi Howard, Richard Mortier
Última atualização: 2024-07-17 00:00:00
Idioma: English
Fonte URL: https://arxiv.org/abs/2407.12623
Fonte PDF: https://arxiv.org/pdf/2407.12623
Licença: https://creativecommons.org/licenses/by/4.0/
Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.
Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.