Lista de verificação de segurança para implantações autogerenciadas
Este documento fornece uma lista de medidas de segurança que você deve implementar para proteger sua instalação do MongoDB. A lista não pretende ser exaustiva.
Lista de verificação/considerações de pré-produção
➤ Habilitar o controle de acesso e impor a autenticação
Habilite o controle de acesso e especifique um mecanismo de autenticação.
A MongoDB Community oferece suporte a vários mecanismos de autenticação que os clientes podem usar para verificar sua identidade:
Além dos mecanismos anteriores, o MongoDB Atlas e o MongoDB Enterprise oferecem suporte aos seguintes mecanismos:
Esses mecanismos permitem que o MongoDB se integre ao seu sistema de autenticação existente.
➤ Configurar controle de acesso baseado em roles
Crie um administrador de usuários primeiro e, em seguida, crie usuários adicionais. Crie um usuário MongoDB exclusivo para cada pessoa/aplicativo que acesse o sistema.
Siga o princípio do privilégio mínimo. Crie funções que definam os direitos de acesso exatos exigidos por um conjunto de usuários. Em seguida, crie usuários e atribua a eles apenas as funções necessárias para executar suas operações. Um usuário pode ser uma pessoa ou um aplicativo cliente.
Observação
Um usuário pode ter privilégios em diferentes bancos de dados. Se um usuário precisar de privilégios em vários bancos de dados, crie um único usuário com roles que concedam privilégios de banco de dados aplicáveis em vez de criar o usuário várias vezes em bancos de dados diferentes.
➤ Criptografar comunicação (TLS/SSL)
Configure o MongoDB para usar TLS/SSL para todas as conexões enviadas e recebidas. Use TLS/SSL para criptografar a comunicação entre o
mongod
e os componentesmongos
de uma MongoDB deployment, bem como entre todos os aplicativos e o MongoDB.O MongoDB usa as bibliotecas de sistemas operacionais TLS/SSL nativas:
PlataformaBiblioteca TLS/SSLWindowsSecure Channel (Schannel)Linux/BSDOpenSSLmacOSSecure Transport
➤ Criptografar e proteger dados
Você pode criptografar dados na camada de armazenamento com a criptografia em repouso nativado mecanismo de armazenamento WiredTiger .
Se você não estiver usando o encryption at rest do WiredTiger, os dados do MongoDB devem ser criptografados em cada host usando criptografia de sistema de arquivos, dispositivo ou física (por exemplo, dm-crypt). Você também deve proteger os dados do MongoDB usando permissões de sistema de arquivos. Os dados do MongoDB incluem ficheiro de dados, arquivos de configuração, registros de auditoria e arquivos de chaves.
Você pode usar a Queryable Encryption ou a Client-Side Field Level Encryption para criptografar campos em documentos do lado da aplicação antes de transmitir dados pela rede para o servidor.
Colete logs em um armazenamento central de logs. Esses logs contêm tentativas de autenticação do banco de dados, incluindo endereços IP de origem.
➤ Limitar a exposição da rede
Garanta que o MongoDB seja executado em um ambiente de rede confiável e configure firewall ou grupos de segurança para controlar o tráfego de entrada e saída para suas instâncias do MongoDB.
Desative o acesso raiz SSH direto.
Permita que apenas clientes confiáveis acessem as interfaces de rede e portas nas quais as instâncias MongoDB estão disponíveis.
Dica
Veja também:
Proteção de rede e configuração para implantações autogerenciadas
A configuração
net.bindIp
A configuração
security.clusterIpSourceAllowlist
o campo authenticationRestrictions para o comando
db.createUser()
para especificar uma lista de permissões de IP por usuário.
➤ Atividade do Sistema de Auditoria
Monitore o acesso e as alterações nas configurações e nos dados do banco de dados. OMongoDB Enterprise inclui um recurso de auditoria do sistema que pode registrar eventos do sistema (incluindo operações do usuário e eventos de conexão) em uma instância do MongoDB. Esses registros de auditoria permitem a análise forense e permitem que os administradores exerçam os controles adequados. Você pode configurar filtros para registrar apenas eventos específicos, como eventos de autenticação.
➤ Execute o MongoDB com um usuário dedicado
Execute processos MongoDB com uma conta de usuário do sistema operacional dedicado. Verifique se a conta tem permissões para acessar dados, mas não tem permissões desnecessárias.
➤ Execute o MongoDB com opções de configuração segura
O MongoDB aceita a execução de código JavaScript para determinadas operações no servidor:
mapReduce
,$where
$accumulator
e$function
. Se você não usar essas operações, desative os scripts no servidor usando a opção--noscripting
.Mantenha a validação de entrada habilitada. O MongoDB habilita a validação de entrada por padrão por meio da configuração
net.wireObjectCheck
. Isso garante que todos os documentos armazenados pela instânciamongod
sejam válidos BSON.
➤ Solicitar um Guia de Implementação Técnica de Segurança (quando aplicável)
O guia de implantação técnica de segurança (STIG) contém diretrizes de segurança para implantações no Departamento de Defesa dos Estados Unidos. O MongoDB Inc. fornece seu STIG, mediante solicitação.
➤ Considere a conformidade com os padrões de segurança
Para aplicativos que exigem conformidade com HIPAA ou PCI-DSS, consulte a Arquitetura de referência de segurança do MongoDB para saber mais sobre como você pode usar os principais recursos de segurança do MongoDB para construir uma infraestrutura de aplicativos compatível.
Análise de resposta e detecção de antivírus e terminais
Se você usar um scanner antivírus (AV) ou um scanner de detecção e resposta de terminal (EDR), configure o scanner para excluir o database storage path
e o database log path
da análise.
Os arquivos de dados em database storage path
são compactados. Além disso, se você utilizar o mecanismo de armazenamento criptografado, os arquivos de dados também serão criptografados. Os custos de E/S e CPU para verificar esses arquivos podem diminuir significativamente o desempenho sem oferecer nenhum benefício de segurança.
Se você não excluir os diretórios em seu database storage path
e database log path
, o scanner poderá colocar em quarentena ou excluir arquivos importantes. Arquivos ausentes ou em quarentena podem corromper seu banco de dados e travar sua instância do MongoDB.
Verificações de produção periódicas/constantes
Verifique periodicamente se há CVE do produto MongoDB e atualize seus produtos.
Consulte as datas de fim de vida útil do MongoDB e atualize sua instalação do MongoDB conforme necessário. Em geral, tente manter a versão mais recente.
Certifique-se de que as políticas e os procedimentos do sistema de gerenciamento de segurança da informação se estendam à instalação do MongoDB, incluindo a execução do seguinte:
Aplique patches periodicamente no computador.
Revise as alterações de políticas/procedimentos, especialmente as alterações nas regras de rede para evitar a exposição inadvertida do MongoDB à internet.
Revise os usuários do banco de dados MongoDB e rotacione-os periodicamente.
Informar suspeitas de bugs de segurança
Se você suspeitar que identificou um bug de segurança em qualquer produto MongoDB, informe o problema por meio do Formulário de Envio de Bug do MongoDB.