В настоящее время существует множество вариантов программного обеспечения для управления конфигурацией (Chef, Puppet, CFEngine, Ansible ...), которые предлагают архитектуру с их репозиторием на центральном сервере и клиентами, связывающимися с сервером с помощью TCP / IP. Такая архитектура требует, чтобы вся сеть клиентов могла связываться с сервером, и подвергает сервер угрозам, поскольку это очень многообещающая цель для любого злоумышленника.
Насколько я понимаю, упомянутые инструменты имеют возможность подписывать элементы конфигурации с использованием криптографии с закрытым ключом. Однако ключи подписи являются ключами сервера, и они хранятся на сервере. Если сервер управления конфигурацией скомпрометирован, вся сеть может считаться скомпрометированной.
Есть ли способ избежать риска того, что сервер скомпрометирован уравнением = скомпрометирована вся сеть?
Мне приходит в голову подписать конфигурацию перед ее загрузкой на сервер личным закрытым ключом. У каждого администратора будет свое.
Предлагают ли какие-либо распространенные решения для управления конфигурацией такую функциональность или есть другой способ снизить риск, упомянутый выше?
Мне приходит в голову подписать конфигурацию перед ее загрузкой на сервер личным закрытым ключом. У каждого администратора будет свое.
По сути, это то, что делают такие решения в стиле "секреты в состоянии покоя" (список внизу), но обычно они выполняются на главном сервере. Томас А. Лимончелли в основном утверждает, что да, хозяин по-прежнему является SPOF в отношении секретов, но если у вас есть root-доступ к этому ящику, чтобы получить коды в первую очередь, вы уже довольно набиты: вы можете просто в любом случае используйте мастера, чтобы делать все, что вы хотите.
Однако с помощью небольшого инструментария вы можете изменить свой код управления конфигурацией, чтобы расшифровывать секреты во время каждого запуска инструмента с помощью доверенного GPG без пароля или аналогичного.
С Puppet также есть node_encrypt, который шифрует на основе сертификата агента. Я уверен, что есть аналогичные решения для других инструментов.
Дэниел Сомерфилд действительно хорошо рассказал об этом под названием "Черепахи полностью вниз" резюмируя различные инструменты, с последующими пример кода и обзор различных методов.
Список различных секретов в покое решений