Escolar Documentos
Profissional Documentos
Cultura Documentos
de Segurança
do MongoDB
Índice
Introdução 3
Requisitos para proteção de dados de aplicativos modernos 4
Gerenciamento de Acesso do Usuário – Autenticação 7
Gerenciamento de Direitos do Usuário – Autorização 10
Auditoria 12
Criptografia 13
Controle Ambiental e de Processos 15
3
Arquitetura de
segurança do MongoDB
Requisitos para
proteção de dados
de aplicativos
modernos
4
Em face do aumento das ameaças na última década,
juntamente com a preocupação com a privacidade
individual intensificada , indústrias e governos em todo o
mundo iniciaram em uma série de iniciativas destinadas a
aumentar a segurança, reduzir fraudes e proteger
informações de identificação pessoal (PII), incluindo:
o PCI DSS para gerenciamento de informações do titular do cartão
o Padrões HIPAA para gerenciamento de informações de saúde
o GDPR e CCPA para a proteção, respectivamente, da
privacidade de dados dos cidadãos da UE e da
Califórnia
o FISMA para garantir a segurança dos dados no governo federal
o FERPA para proteger a privacidade dos registros educacionais dos
alunos
o O Arranjo Transfronteiriço para a Garantia da Privacidade da
Cooperação Econômica Ásia-Pacífico (CPEA), criando uma
estrutura para cooperação regional na aplicação de leis de
privacidade
5
Arquitetura de
segurança do MongoDB
Processo Plataformas
o Plataformas define as
tecnologias utilizadas para
Figura 1: Arquitetura de segurança de ponta a ponta do MongoDB
armazenamento e
processamento de dados.
6
Uma arquitetura de segurança holística deve cobrir o seguinte:
8
Oferecer suporte ao gerenciamento de
acesso de usuário centralizado e de
banco de dados
Os bancos de dados devem fornecer a capacidade de
gerenciar a autenticação do usuário dentro do próprio banco
de dados, geralmente por meio de um mecanismo de
Desafio/Resposta, ou por meio da integração com sistemas de
gerenciamento de identidade de toda a organização.
A integração do MongoDB à infraestrutura de segurança da
informação existente reforça o controle centralizado e
padronizado sobre o acesso do usuário. Por exemplo, se o
acesso de um usuário precisar ser revogado, a atualização pode
ser feita em um único repositório e aplicada instantaneamente
em todos os sistemas, incluindo o MongoDB.
9
Arquitetura de
segurança do
MongoDB
10
Controlar quais ações uma entidade pode executar.
Ao conceder acesso a um banco de dados, deve-se considerar quais
ações ou comandos específicos cada entidade deve ter permissão
para executar. Por exemplo, um aplicativo pode precisar de
permissões de leitura/gravação no banco de dados, enquanto uma
ferramenta de relatório pode estar restrita a uma permissão somente
de leitura. Alguns usuários podem receber privilégios que lhes
permitem inserir novos dados
ao banco de dados, mas não atualizar ou excluir dados existentes.
Deve-se ter cuidado para garantir que somente o conjunto mínimo
de privilégios seja fornecido. As credenciais das contas mais
privilegiadas podem comprometer todo o banco de dados se forem
hackeadas internamente ou por um invasor externo.
11
Arquitetura de
segurança do MongoDB
Auditoria
Ao criar trilhas de auditoria, as alterações nos dados e na
configuração do banco de dados podem ser capturadas para cada
entidade que acessa o banco de dados, fornecendo um registro para
conformidade e análise forense. A auditoria também pode detectar
tentativas de acesso a dados não autorizados.
12
Criptografia
A criptografia é a codificação de dados críticos sempre que
estiverem em trânsito, em repouso ou em uso, permitindo que
apenas entidades autorizadas realizem sua leitura. Os dados serão
protegidos no caso de “bisbilhoteiros” ou hackers obterem acesso
ao servidor, rede, sistema de arquivos ou banco de dados.
13
Arquitetura de
segurança do MongoDB
14
Controle Ambiental e de Processos
O ambiente no qual o banco de dados e a infraestrutura subjacente
estão sendo executados deve ser protegido com controles físicos e
lógicos. Eles são aplicados no ambiente de implantação subjacente,
em vez de no próprio banco de dados, e incluem:
° Instalação de firewalls
° Configurações de rede
° Definição de permissões do sistema de arquivos
° Criação de controles de acesso físico ao ambiente de TI
LDAP
Diretório de usuários
KERBEROS
corporativos
Como erros de configuração e sistemas não corrigidos são uma das maiores
causas do sucesso das invasões aos mecanismos de segurança, há uma série
de processos operacionais que devem ser adotados para promover e reforçar
ainda mais a operação segura, incluindo:
15
Arquitetura de
segurança do
MongoDB
Recursos de
segurança do
MongoDB
16
A seção a seguir discute a arquitetura de segurança do
MongoDB. Consulte também a Lista de verificação de
segurança do MongoDB para obter uma lista de medidas
de segurança que você deve implementar para proteger
sua instalação do MongoDB.
MongoDB Enterprise Advanced
O MongoDB Enterprise Advanced é a versão de produção certificada e
com suporte do MongoDB para execução em sua infraestrutura, com
recursos avançados de segurança, incluindo autenticação e
autorização LDAP, suporte a Kerberos, criptografia de dados em
repouso, conformidade com FIPS e manutenção de registros de
auditoria.
Esses recursos estendem a estrutura de segurança já abrangente do
MongoDB, que inclui controle de acesso baseado em função, certificados
PKI, criptografia de transporte de dados TLS, visualizações somente de
leitura e criptografia no nível de campo do lado do cliente. Você pode obter
acesso a todos os recursos do MongoDB Enterprise gratuitamente para
ambientes de avaliação e desenvolvimento.
Embora o MongoDB Enterprise Advanced seja o foco deste artigo, os
principais recursos do MongoDB Atlas estão resumidos na seção “Por que o
MongoDB Atlas?” deste artigo, pois referências ocasionais são feitas ao
Atlas ao longo deste artigo. O MongoDB Atlas é um serviço global de banco
de dados em nuvem disponível em todas as principais plataformas de
nuvem. Baixe o whitepaper Controles de Segurança do MongoDB Atlas para
saber mais sobre a arquitetura de segurança específica do serviço Atlas.
17
Arquitetura de
segurança do MongoDB
Autenticação do MongoDB
Autenticação é o processo de validação da identidade da entidade
que faz uma conexão com o MongoDB. O MongoDB suporta vários
mecanismos de autenticação, incluindo:
° SCRAM (Padrão)
° Autenticação com Certificado x.509
° Autenticação com proxy LDAP
° Autenticação com Kerberos
18
Autenticação do banco de dados
Ao adicionar uma entidade como um usuário, você cria o usuário em
um banco de dados específico. Esse banco de dados é conhecido como
“banco de dados de autenticação” para o usuário. Um usuário pode ter
privilégios em diferentes bancos de dados, ou seja, os privilégios de um
usuário não estão limitados ao seu banco de dados de autenticação.
admin de uso
db.createUser(
{
user:
“reportsUser”,
pwd: “12345678”,
roles: [
{ role: “read”, db: “reporting” },
{ role: “read”, db: “products” },
{ role: “read”, db: “sales” },
{ role: “readWrite”, db: “accounts” }
]
}
)|
19
Arquitetura de
segurança do MongoDB
Autenticação LDAP
LDAP é amplamente utilizado por muitas organizações para padronizar e simplificar a
maneira como um grande número de usuários é gerenciado em sistemas e aplicativos
internos. Em muitos casos, LDAP também é utilizado como autoridade centralizada
para o controle de acesso do usuário a fim de garantir que as políticas de segurança
interna estejam em conformidade com as diretrizes corporativas e regulatórias. Com a
integração do LDAP, o MongoDB Enterprise Advanced pode tanto autenticar quanto
autorizar usuários diretamente na infraestrutura LDAP existente para aproveitar
arquiteturas de controle de acesso centralizado.
20
Autenticação com Certificado x.509
Com suporte para certificados x.509, o MongoDB pode ser integrado à
infraestrutura de segurança da informação e autoridades de certificação
existentes, oferecendo suporte de autenticação de usuário e entre nós.
Os usuários podem ser autenticados no MongoDB utilizando
certificados de cliente em vez de senhas mantidas por conta própria.
A autenticação entre clusters e a comunicação entre os nós do MongoDB
podem ser protegidas com certificados x.509 de membro em vez de
arquivos de chave, garantindo controles de participação mais rígidos com
menos sobrecarga administrativa, ou seja, eliminando a senha
compartilhada utilizada pelos arquivos de chave. Os certificados x.509
podem ser usados por nós para verificar sua participação em conjuntos
de réplicas do MongoDB e clusters fragmentados.
RELATÓRIO
FUNÇÃO DE BI
o Somente leitura no banco de dados do aplicativo
ETL
FUNÇÃO DE DBA
o Ler e gravar no banco de dados dos aplicativos
DBA
o Administração no banco de dados do aplicativo
o Administração no cluster do MongoDB
21
Arquitetura de segurança
do MongoDB
22
MongoDB e Microsoft
Active Directory
O MongoDB Enterprise Advanced oferece suporte para
autenticação utilizando o Microsoft Active Directory com
Kerberos e LDAP. O controlador do domínio do Active Directory
autentica os usuários e servidores do MongoDB em execução
em uma rede Windows, novamente para aproveitar o controle
de acesso centralizado.
Autorização do MongoDB
A autorização é o processo de determinar as permissões
específicas que uma entidade tem no banco de dados. O
MongoDB emprega o controle de acesso baseado em função
(RBAC) para controlar o acesso a um sistema MongoDB. Um
usuário recebe uma ou mais funções que determinam o acesso
do usuário aos recursos e operações do banco de dados. Fora
das atribuições de função, o usuário não tem acesso ao
sistema.
23
Arquitetura de segurança
do MongoDB
24
Os privilégios são atribuídos às funções que, por
sua vez, são atribuídas aos usuários.
Por exemplo:
° Classes de usuários e aplicativos podem receber privilégios
para inserir dados, mas não para atualizar ou excluir dados do banco de
dados
° DBAs podem receber privilégios que lhes permitem criar coleções e
índices no banco de dados, enquanto os desenvolvedores estão
restritos a operações CRUD
° Certas funções de administrador podem ter privilégios em todo o
cluster para criar conjuntos de réplicas e configurar fragmentação,
enquanto outras estão restritas à criação de novos usuários ou
inspeção de registro
° Processos de monitoramento de clusters do MongoDB podem ser
restritos a executar apenas os comandos que recuperam o status do
servidor, sem acesso administrativo total para realizar operações de
banco de dados
° Dentro de um ambiente multilocatário, desenvolvedores e administradores
“proprietários” podem receber permissões em bancos de dados físicos,
enquanto desenvolvedores e administradores “inquilinos” podem receber
um conjunto mais limitado de ações em bancos de dados lógicos ou
coleções individuais. Essa funcionalidade permite uma separação clara de
funções e controle, tanto entre as organizações quanto dentro delas.
25
Arquitetura de
segurança do MongoDB
Autorização LDAP
Além da autenticação LDAP, o MongoDB Enterprise Advanced também suporta
autorização via LDAP. Isso permite que os privilégios de usuário existentes
armazenados no servidor LDAP sejam mapeados para funções do MongoDB,
sem a necessidade de recriar usuários no próprio MongoDB. Quando
configurado com um servidor LDAP para autorização, o MongoDB permitirá a
autenticação do usuário via LDAP, Active Directory, Kerberos ou X.509 sem exigir
documentos do usuário local no banco de dados $external.
Observação: O banco de dados $external é utilizado quando os usuários têm
credenciais armazenadas externamente ao MongoDB. Quando um usuário é
autenticado com sucesso, o MongoDB realizará uma consulta no servidor LDAP
para recuperar todos os grupos dos quais o usuário LDAP é membro e
transformará esses grupos em suas funções equivalentes do MongoDB. A
autenticação e autorização LDAP podem ser configuradas por meio de linha de
comando ou, para conveniência administrativa adicional, por meio da GUI do
Ops Manager.
26
Segurança no nível de campo utilizando
visualizações somente de leitura
Para reforçar a segurança no nível de campo, desenvolvedores e DBAs têm
diversas abordagens disponíveis. Discutiremos a criptografia no nível de campo
do lado do cliente posteriormente, enquanto esta seção se concentra no uso de
visualizações somente de leitura para impor a segurança no nível de campo.
Você pode definir visualizações não materializadas que expõem apenas um subconjunto de
dados de uma coleção subjacente do MongoDB, ou seja, uma visualização que filtra campos
específicos, como Informações de Identificação Pessoal (PII) de dados de vendas ou registros de
saúde. Como resultado, os riscos de exposição de dados são drasticamente reduzidos. Os DBAs
podem definir uma visualização de uma coleção que é gerada a partir de uma agregação sobre
outra(s) coleção(ões) ou visualização. As permissões concedidas à visualização são especificadas
separadamente das permissões concedidas às coleções subjacentes. Esse recurso permite que
as organizações atendam mais facilmente aos padrões de conformidade em setores
regulamentados, restringindo o acesso a dados confidenciais, sem criar os silos que surgem
quando os dados precisam ser divididos para refletir diferentes privilégios de acesso.
27
Arquitetura de
segurança do MongoDB
Redação de registro
O MongoDB Enterprise Advanced também pode ser configurado com
redação de registro para evitar que informações potencialmente
confidenciais, como identificadores pessoais, sejam gravados no
registro de diagnóstico do banco de dados.
Auditoria do MongoDB
A estrutura de auditoria do MongoDB Enterprise Advanced registra todos os acessos
e ações executadas no banco de dados. A estrutura de auditoria captura ações
administrativas (DDL), como operações de esquema, bem como atividades de
autenticação e autorização, juntamente com operações de leitura e gravação (DML)
no banco de dados. Os administradores podem criar e filtrar trilhas de auditoria para
qualquer operação no MongoDB, seja DML, DCL ou DDL, sem depender de
ferramentas de terceiros. Por exemplo, é possível registrar e auditar as identidades
de usuários que acessaram documentos específicos e quaisquer alterações feitas no
banco de dados durante a sessão.
28
Cada servidor MongoDB grava eventos em seu armazenamento anexado. O DBA
pode então usar suas próprias ferramentas para mesclar esses eventos em um
único registro de auditoria, permitindo uma visão de todo o cluster das
operações que afetaram múltiplos nós.
Trilha de
auditoria
Figura 4: MongoDB mantém uma trilha de auditoria de ações administrativas contra o banco de dados
29
Arquitetura de segurança
do MongoDB
Criptografia do MongoDB
Os administradores podem criptografar dados do MongoDB em trânsito pela
rede e em repouso em armazenamento e backups permanentes. Os usuários
podem criptografar dados no nível de campo, protegendo informações
confidenciais de administradores e outros usuários legítimos enquanto os
dados estão em uso no servidor.
Criptografia de rede
O suporte para TLS permite que os clientes se conectem ao
MongoDB por meio de um canal criptografado. Os clientes são
definidos como qualquer entidade capaz de se conectar ao
servidor MongoDB, incluindo:
o Usuários e administradores
o Aplicativos
o Ferramentas do MongoDB (por exemplo, mongodump,
mongorestore, mongotop)
o Nós que compõem um cluster do MongoDB, como
membros do conjunto de réplicas, roteadores de
consulta e servidores de configuração.
30
O protocolo TLS também é compatível com certificados x.509 e
oferece suporte a Forward Secrecy, fornecendo a garantia de que
as chaves de sessão de seus usuários permanecerão seguras
mesmo que a chave privada do servidor seja comprometida.
O MongoDB Enterprise Advanced oferece suporte a criptografia
FIPS 140-2 se executado no modo FIPS com um módulo
criptográfico validado por FIPS. Os processos mongod e mongos
devem ser configurados com “sslFIPSMode”. Além disso, esses
processos devem ser implantados em sistemas com uma
biblioteca OpenSSL configurada com o módulo FIPS 140-2.
31
Arquitetura de segurança
do MongoDB
32
A maioria das exigências regulatórias exige que as chaves de criptografia
sejam alternadas e substituídas por uma nova chave no mínimo uma vez
ao ano.
33
Arquitetura de segurança
do MongoDB
34
A Criptografia no Nível de Campo serve como uma adição
importante à sua estratégia de segurança de defesa em
profundidade. Considere uma implantação típica do MongoDB
de uma perspectiva de gerenciamento de risco:
• Apenas com a criptografia do sistema de arquivos, os administradores de
sistema ou invasores que elevam os privilégios de usuário no nível do
sistema ainda têm acesso a arquivos de banco de dados de texto simples
no armazenamento do servidor e na memória.
• O Mecanismo de armazenamento criptografado do MongoDB fornece uma
maneira de mitigar os riscos de acesso ao arquivo de backup e ao sistema
de arquivos criptografando todos os dados do MongoDB antes de serem
gravados no disco e garantindo que as chaves não sejam persistentes.
Qualquer invasor que obtiver arquivos do banco de dados do sistema de
arquivos será incapaz de lê-los. No entanto, administradores e usuários de
banco de dados autenticados comprometidos ainda têm acesso aos dados
subjacentes em uma instância em execução.
• Utilizando o MongoDB FLE, agora você pode proteger campos individuais
com todas as operações de gerenciamento, criptografia e descriptografia
de chaves que ocorrem exclusivamente fora do servidor de banco de
dados. Com a FLE ativada, um administrador ou usuário comprometido
que obtém acesso ao banco de dados, ao sistema de arquivos subjacente
ou ao conteúdo da memória do servidor (por exemplo, por meio de
raspagem ou inspeção de processo) verá apenas dados criptografados
ilegíveis. Embora a criptografia do mecanismo de armazenamento e a FLE
possam ser utilizadas de forma independente, elas trazem os maiores
níveis de proteção quando utilizadas em conjunto.
35
Arquitetura de segurança
do MongoDB
36
Para entender mais sobre a implementação da FLE, vamos dar uma
olhada no fluxo de uma consulta enviada por um cliente autenticado,
representado na figura a seguir:
Consulta e
resposta ao
cliente
autenticado
Arquivos
criptografados
sempre
armazenados,
transmitidos e
recuperados como
texto cifrado
37
Arquitetura de segurança
do MongoDB
Com a adição da FLE, as chaves são protegidas em uma conta do AWS KMS isolada
gerenciada pelo cliente (soluções adicionais de gerenciamento de chaves estarão
online em um futuro próximo). Os Engenheiros de Confiabilidade do Site Atlas e os
Engenheiros de Produto não têm nenhum mecanismo para acessar as chaves de
FLE KMS, tornando os dados ilegíveis para qualquer equipe do MongoDB que
esteja gerenciando o banco de dados ou a infraestrutura subjacente para você.
38
Ambiente e processos
Com base nos controles de segurança do banco de dados
discutidos acima, a execução do MongoDB em um ambiente
confiável, a implementação de um ciclo de vida de
desenvolvimento seguro e a aplicação das melhores práticas de
implantação reduzem ainda mais o risco de violações de
segurança.
39
Arquitetura de
segurança do MongoDB
Filtro da rede:
Ao utilizar filtros como firewalls e regras de ACL de roteador, as conexões
com o MongoDB de sistemas desconhecidos podem ser bloqueadas. Os
firewalls devem limitar o tráfego de entrada e saída de/para uma porta
específica para sistemas confiáveis e não confiáveis. Para obter melhores
resultados e minimizar a exposição geral, certifique-se de que apenas o
tráfego de fontes confiáveis possa alcançar as instâncias mongod e mongos
e que elas possam se conectar somente à saídas confiáveis. Além disso, os
serviços desnecessários do sistema devem ser desativados.
Endereços IP de ligação:
A configuração bind_ip para instâncias mongod e mongos limita as
interfaces de rede nas quais os programas do MongoDB escutarão
as conexões de entrada.
Execução em VPNs:
Limite os programas do MongoDB a redes locais não públicas e redes
privadas virtuais. As Redes Privadas Virtuais (VPNs) possibilitam vincular
duas redes em uma rede confiável criptografada e de acesso limitado.
Geralmente, os usuários do MongoDB configuram protocolos SSL em vez de
IPSEC para obter vantagens de desempenho.
40
Permissões do sistema de arquivos:
Os servidores que executam o MongoDB devem implementar permissões de sistema
de arquivos que impeçam os usuários de acessar os arquivos de dados criados pelo
MongoDB. Os arquivos de configuração do MongoDB e o arquivo-chave do cluster
devem ser protegidos para impedir o acesso de usuários não autorizados.
Injeção de consulta:
À medida que um programa cliente monta uma consulta no MongoDB, ele cria um
objeto BSON, não uma cadeia de caracteres. Assim, os ataques tradicionais de
injeção de SQL não devem representar um risco ao sistema para consultas
enviadas como objetos BSON.
41
Arquitetura de segurança
do MongoDB
42
O MongoDB Cloud Manager é uma ferramenta de gerenciamento
hospedada para o MongoDB que fornece muitos dos mesmos
recursos do Ops Manager.
As métricas são relatadas com segurança para o Ops Manager, onde são
processadas, agregadas, alertadas e visualizadas em um navegador,
permitindo que os administradores determinem facilmente a integridade do
MongoDB em tempo real. As visualizações podem ser baseadas em
permissões explícitas, para que a visibilidade da equipe do projeto possa ser
restrita a seus próprios aplicativos, enquanto os administradores de
sistemas podem monitorar todas as implantações do MongoDB em toda a
organização.
43
Arquitetura de segurança
do MongoDB
Recuperação do Desastre:
Backups e recuperação em um
momento específico
Os dados podem ser comprometidos por vários eventos
imprevistos: falha do banco de dados ou de sua infraestrutura
subjacente, erro do usuário, atividade maliciosa ou bugs de
aplicativos.
44
Serviços de treinamento e consultoria
O MongoDB oferece amplo treinamento e serviços de
consultoria para ajudar os clientes a aplicar as
melhores práticas de segurança:
Mantenha-se atualizado
Sempre certifique-se de estar executando a versão mais recente com
certificação de produção do MongoDB e dos drivers, e de ter aplicado
o conjunto de patches mais recente. Enquanto os clientes do
MongoDB Enterprise Advanced têm acesso a patches de emergência,
correções para vulnerabilidades de segurança estão disponíveis para
todos os usuários do MongoDB assim que são lançadas.
45
Arquitetura de segurança
do MongoDB
MongoDB Atlas:
Banco de Dados
como um Serviço
para o MongoDB
46
O MongoDB Atlas está disponível sob demanda por meio de um
modelo de pagamento por utilização e cobrado por hora.
47
Arquitetura de segurança
do MongoDB
48
Conclusão
Com os bancos de dados armazenando os ativos de
informações mais importantes de uma organização,
protegê-los é um primeiro passo essencial para
combater novas classes e atores de ameaças.
Conforme demonstrado neste whitepaper, com o MongoDB
Enterprise Advanced as organizações se beneficiam de amplos
recursos para defender, detectar e controlar o acesso a dados
valiosos e confidenciais.
Você pode começar revisando a Documentação de segurança
do MongoDB ou baixando o Whitepaper Controles de
Segurança do MongoDB Atlas para saber mais sobre a
arquitetura de segurança específica do serviço Atlas.
Avalie o MongoDB
Enterprise Advanced
Baixe hoje.
49