O Couchbase agora oferece suporte à criptografia de disco LUKS para proteger seus dados em repouso. Quão seguro é o LUKS?
O Couchbase 7.0 dá grande ênfase à segurança, lançando o suporte para ambos controle de acesso baseado em função (RBAC) para escopos e coleçõese criptografia de dados em repouso via Linux Unified Key Setup (LUKS).
A criptografia de disco é uma parte essencial da estratégia de segurança de dados de qualquer organização e da conformidade com PCI DSS, FIPS, FISMA, GDPR e outros padrões regulatórios.
Então, a criptografia LUKS é segura? Nesta postagem, começaremos com uma visão geral das opções de segurança para os três estágios dos documentos em um cluster do Couchbase Server - dados em processo, dados em trânsito e dados em repouso (consulte a tabela abaixo) - e, em seguida, nos aprofundaremos nas especificidades da segurança dos dados em repouso por meio da criptografia LUKS no disco.
Estágio | Descrição | Caso de uso | Opções de criptografia no Couchbase |
Dados em processo | Dados ativos, memória no sistema | Documentos que estão em uso | Criptografia em nível de campo na camada de aplicativos |
Dados em trânsito | Dados que estão se movendo entre sistemas | Replicação, replicação entre data centers (XDCR) | Criptografia TLS, Certificados X.509 |
Dados em repouso | Dados que não estão em uso ativo | Compartimentos no disco de uma máquina off-line | Várias opções, incluindo LUKS e suporte para soluções de terceiros, como Thales Vormetric |
Por que usar a criptografia de dados em repouso?
A criptografia de dados em repouso protege os sistemas de armazenamento bloqueados ou off-line e impede que os dados sejam lidos sem a autoridade e o acesso adequados. Os dados criptografados em repouso não permanecem protegidos enquanto um dispositivo estiver on-line, desbloqueado e operacional. Para isso, você deve usar um dos outros métodos de criptografia mencionados na tabela acima.
Os cenários a seguir são comuns para a criptografia de dados em repouso:
-
- Para proteger informações confidenciais ou de identificação pessoal contra qualquer possível violação de dados
- Por padrão, em dispositivos como smartphones (geralmente chamada de criptografia de disco completo)
- Em ambientes como a nuvem, em que vários usuários acessam o mesmo hardware subjacente
Criptografia de disco LUKS
O LUKS é uma ferramenta de código-fonte totalmente aberto que é o padrão de fato para criptografia de disco em ambientes Linux.
Ele está incluído em todos os sistemas operacionais Linux certificados pelo Couchbase e é suportado pelos respectivos fornecedores de sistemas operacionais. O LUKS fica na camada do kernel e criptografa o armazenamento no nível do bloco de disco, permitindo que os usuários implementem de forma transparente qualquer sistema de arquivos sobre essa criptografia no nível do bloco. O LUKS pode criptografar partições de armazenamento, que podem ser apresentadas a partir de uma única unidade, matrizes RAID de vários discos, Logical Volume Manager (LVM) e até mesmo partições apoiadas em arquivos.
Para que serve a criptografia LUKS...
O LUKS é flexível e oferece uma variedade de suítes de cifras.
Por padrão, em um ambiente Red Hat 8 Linux, o LUKS usa uma chave AES (Advanced Encryption Standard) de 512 bits altamente segura. Os volumes LUKS criptografados contêm vários slots de chave, permitindo que os usuários adicionem chaves ou senhas de backup, além de usar recursos como revogação de chave e proteção para senhas ruins usando Argon2.
...e para que não é bom?
O LUKS não é uma boa opção para instâncias do Couchbase implantadas em plataformas que não sejam Linux, como MacOS e Windows. Ele também não é adequado para clientes que não têm um contrato de suporte ativo com o fornecedor do sistema operacional.
Tecnologias de criptografia padrão fornecidas pelo sistema operacional, como o Microsoft Encrypted File System (EFS) ou o Parceiros terceirizados de criptografia em repouso do Couchbase são uma opção melhor se sua organização não usa Linux ou não tem um contrato de suporte com o fornecedor do sistema operacional.
Uso da segurança LUKS para criptografar seus dados do Couchbase em repouso
Há várias maneiras de implementar o LUKS em um ambiente Linux - mais comumente usando dm-crypt
(parte da infraestrutura de mapeamento de dispositivos no nível do kernel) e o criptsetup
utilitário de linha de comando para configurar dm-crypt
alvos.
No exemplo de código a seguir, mostrarei um exemplo de comandos que usei no meu cluster do Couchbase Server Ubuntu 16 para configurar um disco com LVM. Em seguida, mostrarei como implantar um volume lógico criptografado LUKS e montá-lo como o diretório de dados de um nó do Couchbase Server. Isso garante que, se o seu Couchbase Server for violado, os dados confidenciais nos seus Buckets do Couchbase não poderão ser acessados por usuários não autorizados.
As etapas fornecidas aqui são anteriores à versão GA (General Availability, disponibilidade geral) do Couchbase Server 7.0 e podem ser alteradas no momento do lançamento ou em futuras atualizações. Sempre consulte a documentação do Couchbase sobre segurança para obter as informações mais atualizadas sobre o produto.
Use as etapas a seguir em um nó do Couchbase Server antes de adicioná-lo a um cluster e carregar dados nos Buckets. Observação: essas etapas apagarão tudo o que estiver residindo no disco de destino, portanto, tenha cuidado e verifique se está gravando no dispositivo correto.
1. Instale o lvm
e criptsetup
utilidade.
1 |
sudo apto-obter instalar lvm2 criptsetup |
2. Configure a unidade (/dev/sdb
) e crie uma nova partição primária para usar o LVM.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
$ sudo fdisk /dev/sdb Comando (m para ajuda): n Partição tipo p primário (0 primário, 0 estendido, 4 gratuito) e estendido (contêiner para lógico partições) Selecione (padrão p): p Partição número (1-4, padrão 1): 1 Primeiro setor (2048-2097151, padrão 2048): Último setor, +setores ou +tamanho{K,M,G,T,P} (2048-2097151, padrão 2097151): Criado a novo partição 1 de tipo 'Linux' e de tamanho 1023 MiB. Comando (m para ajuda): t Selecionado partição 1 Partição tipo (tipo L para lista todos tipos): 8e Alterado tipo de partição 'Linux' para 'Linux LVM'. Comando (m para ajuda): p Disco /dev/sdb: 1 GiB, 1073741824 bytes, 2097152 setores Unidades: setores de 1 * 512 = 512 bytes Setor tamanho (lógico/físico): 512 bytes / 512 bytes I/O tamanho (mínimo/ideal): 512 bytes / 512 bytes Etiqueta de disco tipo: dos Disco identificador: 0x980c1049 Dispositivo Bota Início Fim Setores Tamanho Id Tipo /dev/sdb1 2048 2097151 2095104 1023M 8e Linux LVM Comando (m para ajuda): w O partição tabela tem foram alterado. Chamada ioctl() para re-ler partição tabela. Sincronização discos. |
3. Configurar o LVM para usar /dev/sdb1
como um volume físico.
1 2 |
$ sudo pvcreate /dev/sdb1 Físico volume "/dev/sdb1" com sucesso criado |
4. Crie um grupo de volumes no qual o volume físico residirá. Nós o nomearemos couchbase
.
1 2 |
$ sudo vgcreate couchbase /dev/sdb1 Volume grupo "couchbase" com sucesso criado |
5. Crie um volume lógico de 500 MB chamado cbdata
no couchbase
grupo de volumes.
1 2 |
$ sudo lvcreate -L 500M -n cbdata /dev/couchbase Lógico volume "cbdata" criado. |
6. Use o criptsetup
para criptografar o cbdata
volume lógico.
1 2 3 4 5 6 7 8 9 10 |
$ sudo criptsetup --detalhado --verificar-senha luksFormat /dev/couchbase/cbdata AVISO! ======== Isso vontade sobrescrever dados em /dev/couchbase/cbdata irrevogavelmente. São você com certeza? (Tipo maiúsculas sim): SIM Entrar senha: Verificar senha: Comando bem-sucedido. |
7. Desbloquear os dados criptografados cbdata
volume lógico e torná-lo acessível como um dispositivo chamado cbdata-luks
.
1 2 |
$ sudo criptsetup luksOpen /dev/couchbase/cbdata cbdata-luks Entrar senha para /dev/couchbase/cbdata: |
8. Escreva um sistema de arquivos sobre o cbdata-luks
dispositivo.
1 2 3 4 5 6 7 8 9 10 11 |
$ sudo mkfs.ext4 /dev/mapeador/cbdata-luks mke2fs 1.42.13 (17-Maio-2015) Criação de sistema de arquivos com 509952 1k blocos e 127512 inodes Sistema de arquivos UUID: a26d318b-afdd-45ca-857a-063899183ffd Superbloco backups armazenado em blocos: 8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409 Alocação grupo tabelas: feito Redação inode tabelas: feito Criação de jornal (8192 blocos): feito Redação superblocos e sistema de arquivos contábil informações: feito |
9. Crie um diretório em /couchbase-data
para montar o sistema de arquivos que será usado para o diretório de dados do Couchbase e, em seguida, monte o sistema de arquivos.
1 2 |
$ sudo mkdir /couchbase-dados $ sudo montagem /dev/mapeador/cbdata-luks /couchbase-dados |
10. Agora temos um dispositivo de armazenamento criptografado LUKS montado em /couchbase-data
que usamos como destino para o diretório de dados do Couchbase Server. Verifique isso com o comando montagem
e criptsetup
comandos dessa forma:
1 2 3 |
$ montagem ... /dev/mapeador/cbdata-luks em /couchbase-dados tipo ext4 (rw,tempo real,dados=encomendado) |
1 2 3 4 5 6 7 8 9 |
$ sudo criptsetup status /dev/mapeador/cbdata-luks /dev/mapeador/cbdata-luks é ativo e é em uso. tipo: LUKS1 cifra: aes-xts-simples64 Tamanho da chave: 256 bits dispositivo: /dev/mapeador/couchbase-cbdata compensação: 4096 setores tamanho: 1019904 setores modo: ler/escrever |
Saiba mais sobre o Couchbase 7.0
Pronto para se aprofundar no Couchbase 7.0 e em todos os seus recursos? Dê uma olhada nestes recursos:
Documentação
O que há de novo na versão 7.0
Notas de versão do Couchbase 7.0
Postagens de blog relacionadas
Como os escopos e coleções simplificam as implementações de aplicativos multilocatários no Couchbase
A linguagem de consulta N1QL agora oferece suporte a transações ACID distribuídas
Downloads e suporte
O suporte ao cliente do Enterprise Edition está disponível por meio de seus canais de suporte regulares. O suporte da comunidade está disponível nos fóruns do Couchbase
Faça um test drive do Couchbase 7