Nesta postagem do blog, apresentarei três novos recursos do Couchbase Server 7.0.2 ("Servidor") para ajudar os administradores a implantar o Couchbase Server de forma segura: Enforce TLS, HSTS e Enforce IP Address Family.
Ao implantar um cluster do Couchbase Server, uma prática recomendada é evitar que um nó do servidor seja conectado diretamente à Internet. Aconselhamos que os clientes implantem um firewall no perímetro de rede do cluster, bem como um firewall em cada nó do servidor. Esses firewalls devem ser configurados para bloquear todas as portas inseguras, portas de serviços que não estejam em uso e famílias inteiras de endereços IP que não estejam em uso.
É nesse ponto que esses três novos recursos entram em ação. Os administradores devem implementar firewalls e permitir apenas portas específicas, conforme necessário. As novas configurações fornecem proteções adicionais que atingem o mesmo objetivo, no que alguns podem chamar de controle compensatório.
Aplicar TLS
O primeiro novo recurso é o reforço da criptografia de rede TLS. No Couchbase Server 6.5.0, introduzimos Criptografia de nó para nó. Com a criptografia de nó para nó ativada, permitimos a configuração de como os dados são tratados entre os nós do Couchbase Server.
Opcionalmente, os dados de controle são configurados para serem criptografados ou todos os dados entre os nós são criptografados. Isso garante que o tráfego de rede do cluster entre nós seja seguro e, se os administradores implantarem aplicativos para se conectarem apenas ao cluster usando conexões de rede criptografadas, todos os dados do banco de dados na rede serão criptografados. Nesse ponto, o administrador implantaria um firewall para bloquear as portas de rede que lidam com o tráfego de rede não criptografado ou de texto simples.
Com o novo recurso Enforce TLS, adicionamos uma terceira opção à configuração de criptografia do cluster, para ser rigoroso. Quando essa opção está ativada, o único tráfego de rede permitido no cluster é seguro e criptografado. Isso se aplica a tudo, desde a interface do usuário da Web, as ferramentas de linha de comando, o acesso a aplicativos e o tráfego de rede entre os nós do cluster, mas não se aplica às interfaces de loopback locais.
O Enforce TLS pode ser facilmente implementado usando o comando CLI:
couchbase-cli setting-security -cluster-encryption-level strict
Cabeçalho de transporte seguro HTTP (HSTS)
Juntamente com a configuração Enforce TLS, há também uma nova configuração para ativar opcionalmente um cabeçalho HTTP Secure Transport Header (HSTS). O cabeçalho HTTP Strict Transport Security informa ao navegador da Web de um usuário que ele nunca deve carregar um site usando HTTP e deve converter automaticamente todas as tentativas de acesso ao site usando HTTP para solicitações HTTPS. Isso é útil se você quiser que todo o acesso à interface do usuário ocorra somente por HTTPS.
Quando um navegador sabe que um domínio ativou o HSTS, ele faz duas coisas:
- Ele sempre usa um https:// mesmo ao clicar em uma conexão http:// ou após digitar um domínio na barra de localização sem especificar um protocolo.
- Ele remove a capacidade de os usuários clicarem nos avisos sobre certificados inválidos.
Um aspecto a ser lembrado sobre o Couchbase Server: por padrão, a porta não TLS da interface do usuário é 8091 enquanto a porta TLS é 18091. Com o HSTS ativado, todas as solicitações de http://cluster:8091 tentará acessar automaticamente o https://cluster:8091e não o correto 18091 porto.
O HSTS pode ser ativado com o comando CLI:
couchbase-cli setting-security -hsts-max-age
Configurar o Idade máxima para a quantidade de tempo, em segundos, que o navegador deve lembrar para acessar a interface do usuário do Couchbase somente usando HTTPS.
Você também pode optar por ativar/desativar o HSTS pré-carga e includeSubDomains diretivas.
Aplicar a família de endereços IP
Também aconselhamos os clientes a usar um firewall e bloquear todo o tráfego de rede para portas e protocolos que não sejam necessários, incluindo famílias inteiras de endereços IP. Por exemplo, se a sua organização usa somente endereços IPv4, você deve bloquear no nível do firewall todo o acesso a endereços IPv6 nos nós do Couchbase Server. Para adicionar alguns controles de compensação, adicionamos opções às configurações de Família de endereços IP.
No exemplo anterior, se uma organização só usa endereços IPv4 e usou o comando CLI:
couchbase-cli ip-family -set -ipv4
...o cluster usaria o IPv4 para a comunicação entre os nós, mas ainda seria possível que o tráfego passasse pelo IPv6 dos clientes, a menos que houvesse um firewall para impedir isso. Se o endereço IPv4 não pudesse ser vinculado, o nó sofreria uma falha automática. O novo -ipv4only instruirá o cluster a sempre tentar vincular-se a interfaces IPv4 e nunca permitir comunicações de rede IPv6.
Como alternativa, há também -ipv6 e -ipv6only que alcançam o mesmo resultado, mas para a família de endereços IPv6 em vez da família de endereços IPv4. Se -ipv4 e -ipv6 estiverem definidas, ambas as interfaces deverão ser vinculadas e, se uma delas estiver disponível, o sistema deverá usá-la e iniciar.
Conclusão
Neste artigo, mostrei a você o Enforce TLS, o HSTS e o Enforce IP Address Family. Todos esses recursos de segurança têm como objetivo criar uma barreira robusta para os invasores que tentam comprometer seus sistemas. Se a segurança for importante para você, recomendo a leitura de algumas publicações adicionais no blog sobre nossos recursos de segurança que ajudam a manter seus dados do Couchbase protegidos.