Como proteger o servidor de gerenciamento de configuração

2

Atualmente, existem muitas opções de software de gerenciamento de configuração (Chef, Puppet, CFEngine, Ansible ...) que oferecem uma arquitetura com seu repositório em um servidor central e clientes se comunicando com o servidor usando TCP / IP. Esse tipo de arquitetura requer que toda a rede de clientes possa se comunicar com o servidor e exponha o servidor a ameaças, pois é um alvo muito promissor para qualquer invasor.

Pelo que entendi, as ferramentas mencionadas têm a capacidade de assinar os itens de configuração usando criptografia de chave privada. No entanto, as chaves de assinatura são chaves do servidor e são armazenadas no servidor. Se o servidor de gerenciamento de configuração for comprometido, toda a rede pode ser considerada comprometida.

Existe uma maneira de evitar o risco de uma equação comprometida servidor = toda a rede comprometida?

O que me vem à mente é assinar a configuração antes de enviá-la ao servidor por meio de uma chave privada pessoal. Todo administrador teria o seu próprio.

Alguma solução de gerenciamento de configuração comum oferece essa funcionalidade ou existe uma maneira diferente de reduzir o risco mencionado acima?

    
por Fedor Piecka 28.04.2016 / 11:14

1 resposta

0

What comes to my mind is signing the configuration prior to uploading it to the server by a personal private key. Every administrator would have his own.

Isso é essencialmente o que as soluções de estilo segredos em repouso fazem (lista na parte inferior), mas normalmente são executadas no mestre. Thomas A. Limoncelli basicamente argumenta que, sim, o mestre ainda é o SPOF com relação aos segredos, mas se você tem acesso root a essa caixa para obter os códigos em primeiro lugar, você já está bem recheado: você pode simplesmente use o mestre para fazer o que você quiser de qualquer maneira.

No entanto, com um pouco de ferramentas, você pode modificar seu código de gerenciamento de configuração para descriptografar os segredos durante cada ferramenta executada com um GPG confiável sem senha ou similar.

Com o Puppet, também há node_encrypt , que é criptografado com base no certificado do agente. Tenho certeza de que existem soluções semelhantes para outras ferramentas.

Daniel Somerfield tem uma ótima palestra sobre isso chamado "Tartarugas por todo o caminho" resumindo as diferentes ferramentas , com um código de exemplo e revisão dos diferentes métodos .

Lista de vários segredos em soluções de descanso

por 29.04.2016 / 11:49