Introdução
Durante os dias 17 e 19/06 eu estive em NY, para palestrar no MongoDB World. Foi um evento incrível! Além de fazer minha primeira palestra internacional, recebi o prêmio William Zola. Escrevi no meu blog um resumo de como foi este evento.
Uma das discussões mais proveitosas que eu tive após a minha palestra, foi sobre a GDPR e o MongoDB. Por isso, resolvi escrever este post, listando alguns recursos legais do MongoDB para a proteção de dados pessoais.
O MongoDB é o banco de dados NoSQL mais usado no mundo, de acordo com o site DB-Engines.com. (Se você não conhece o MongoDB, acesse este link)
Apesar de muito usado, me arrisco a dizer que muitos recursos do MongoDB ainda são desconhecidos.
O MongoDB tem duas versões… A Community e a Enterprise Advanced
A versão Community tem recursos espetaculares! Mas precisamos ter cuidado com o tipo de licença desta versão, e com os recursos que podemos precisar quando colocarmos os bancos de dados em produção.
Por exemplo, suponha que você precise de recursos avançados para monitorar o ambiente, auditoria, criptografia, ou precise do conector de BI, ou da integração com o LDAP, ou do suporte oficial da MongoDB… estes são recursos disponíveis somente na versão Enterprise.
Se você está na dúvida sobre a versão que irá usar, verifique os termos da licença da versão Community e também a criticidade do seu ambiente… Porque, de acordo com os recursos necessários, a versão Enterprise pode ser a mais adequada.
O que é LGPD?
A Lei Geral de Proteção de Dados, a LGPD, é uma lei brasileira que tem como objetivo proteger dados pessoais dos cidadãos brasileiros.
As empresas têm pouco tempo para se adaptar a lei, porque ela entra em vigor em agosto de 2020. Para saber mais sobre a LGPD leia o post sobre este assunto.
Os dados pessoais armazenados em bancos de dados precisam ser protegidos, e para isso podemos contar com os recursos do SGBD.
Este post não tem a pretensão de ser um guia, mas uma lista de recursos disponíveis e que podem ser muito importantes para a segurança de dados pessoais, e se utilizados corretamente ajudarão as empresas a estarem de acordo com a LGPD.
Recursos do MongoDB
Antes de falar dos recursos do MongoDB, precisamos estar atentos aos processos e a governança dos dados.
Por isso, antes de implementar os controles de segurança, para proteger os dados pessoais, é preciso identificar os dados pessoais (não é piada!). Também é indispensável avaliar o impacto potencial para os indivíduos, caso os dados pessoais sejam divulgados a uma parte não autorizada.
Sem controle sobre os seus dados, sem conhecê-los ou sem qualidade é impossível protegê-los, e o pior é impossível estar de acordo com a LGPD.
Mais um lembrete importante… padrões de fábrica não são seguros, e sendo assim a porta 27017 só deve ser usada para testes, nunca em produção!
Agora vamos aos recursos…
1 – JSON Schema e a Modelagem de Dados
Modele seus dados e use o JSON Schema para garantir que os dados de uma coleção estejam de acordo com o modelo de dados criado.
Saiba mais em https://docs.mongodb.com/manual/core/schema-validation/
2 – Autorização e autenticação
O MongoDB fornece vários métodos de autenticação. Use sempre o mais adequado para a sua organização.
A autenticação pode ser gerenciada a partir do próprio banco de dados ou através da integração com mecanismos externos.
A versão Enterprise possibilita a escolha entre a autenticação com o protocolo SHA2, LDAP e lista de permissões de IP, integração para certificados Kerberos ou x.509 PKI.
A versão Community permite que o SGBD controle a autenticação e autorização.
O LDAP é amplamente utilizado por muitas organizações para centralizar o controle de acessos dos usuários aos bancos de dados, usando a infraestrutura LDAP existente, permitindo arquiteturas de controle de acesso centralizadas.
Lembre-se que no geral a regra é dar o menor privilégio possível, de forma que os sistemas, pessoas e ferramentas tenham acesso somente aos dados necessários para executar as suas atividades.
Se você optar por controlar a autorização com o MongoDB (ambas as versões), existem mais de dez roles predefinidas que suportam de usuários comuns a DBAs, e ainda podemos criar roles específicas, permitindo que os administradores atribuam privilégios refinados a usuários e grupos.
3 – Controle o acesso aos dados
Quem nunca precisou de uma cópia do banco de dados de produção que atire a primeira pedra!
Podemos criar views para filtrar campos específicos, em vez de acessar os dados diretamente. Desta forma, os usuários podem receber acesso somente às views e eles poderão ver somente determinados registros e atributos.
As views permitem a inclusão ou exclusão de campos, mascaramento de valores, filtros… entre outras operações.
A versão Enterprise também pode ser configurada para impedir que informações potencialmente confidenciais, como CPF, sejam gravadas no log do banco de dados. Os DBAs podem precisar acessar os logs, e terão informações sobre os metadados, erros e etc… Mas não terão acesso aos valores dos dados.
A criptografia pode proteger os dados em trânsito e em repouso, permitindo apenas o acesso autorizado. Caso usuários não autorizados tenham acesso a uma rede, servidor, sistema de arquivos ou banco de dados, os dados ainda podem ser protegidos por chaves de criptografia.
O suporte para TLS (Transport Layer Security) permite que os clientes se conectem ao MongoDB por meio de um canal de rede criptografado, protegendo os dados em trânsito. Além disso, o MongoDB criptografa os dados em repouso no disco e também criptografa os backups.
Somente os usuários com as credenciais apropriadas podem acessar dados pessoais criptografados. O acesso ao arquivo de banco de dados no servidor não expõe nenhuma informação armazenada.
4 – Replicação
A replicação do MongoDB é fantástica! E está disponível tanto na versão Enterprise quanto na versão Community.
Usando a replicação nativa, o MongoDB mantém várias cópias de dados de forma que o banco de dados esteja disponível em caso de problemas em um dos servidores. Se você não conhece a replicação, acesse este link
5 – Backup e Restore
Este é um item que sempre me questionam! Com a versão Community e bancos de dados grandes, fazer um backup pode ser um problema.
Backups e restores são indispensáveis para a recuperação dos dados em caso de falhas.
Com o Ops Manager, ferramenta disponível com a versão Enterprise, é possível fazer backups pontuais e restaurar o banco de dados no momento exato, com rapidez e segurança.
6 – Monitoração
É preciso ser proativo!!! Mas para isso é preciso ter as ferramentas adequadas, ou uma bola de cristal.
Anomalias, picos repentinos e inesperados de uso de memória e utilização da CPU podem, entre outros fatores, ser indicativos de um ataque, que pode ser mitigado se os DBAs forem alertados rapidamente.
A versão Community oferece uma ferramenta web para monitoração, e o MongoDB Compass tem alguns gráficos interessantes… Mas nada se compara ao Ops Manager, (fornecido com o MongoDB Enterprise) e que fornece alertas enviados de várias maneiras, gráficos, logs, além de permitir a instalação de patches sem tempo de inatividade.
7 – Auditoria
Para estar de acordo com a LGPD é preciso auditar as diversas operações que envolvam dados pessoais.
Com a versão Enterprise é possível auditar todos os acessos e ações executadas no banco de dados, como por exemplo, backups, restores, alterações de schemas, ações administrativas (como adicionar, modificar e remover usuários).
Além da auditoria de operações de banco de dados, com o change streams é possível criar alertas em tempo real. O change stream é um recurso muito poderoso e está disponível também na versão Community.
Conclusão
O MongoDB é fantástico e pode ser usado em ambientes de missão crítica, para armazenar dados pessoais e dados sensíveis.
A versão Enterprise possui recursos incríveis para garantir a conformidade com a LGPD.
A versão Community pode ser usada, mesmo não tendo tantos recursos, mas é preciso estar atento aos termos da licença, e lembrar de construir mecanismos para não ter problemas de segurança.
Precisamos usar as ferramentas disponíveis para garantir a segurança dos dados pessoais.
Para evitar custos, caos, demissões e estresses desnecessários, conheça os recursos de segurança do seu SGBD, e utilize-os sempre que forem adequados.
A LGPD vem aí… E eu desejo que você esteja preparado para ela!
Referências
https://webassets.mongodb.com/mongodb_gdpr.pdf?_ga=2.148050871.1455367728.15
61912675-743623411.1511181383
https://DB4Beginners.com/MongoDB
https://imasters.com.br/banco-de-dados/gdpr-e-lei-geral-de-protecao-de-dados-parte-02
https://docs.mongodb.com/master/