У меня есть продукт на основе CentOS, который я собираюсь распространить как виртуальную машину (VMWare, XEN и KVM), и в последнее время я оценивал шаги, необходимые для защиты виртуальной машины. Данные виртуальной машины не должны быть доступны никому, кроме авторизованных людей, поскольку они содержат конфиденциальные данные, под этим я подразумеваю, что всегда следует запрашивать пароль root или запрещать доступ.
Используя XEN, можно было получить доступ к машине следующими способами:
Используя VMWare, вы можете смонтировать образ в другой системе и получить доступ к файлам.
Возможно, есть и другие способы доступа к машине, у меня вопрос: какие еще способы я должен принять во внимание и как я могу предотвратить их, в том числе перечисленные выше?
Что ж, пока у людей есть «физический» доступ (что в данном случае означало бы, что у них есть виртуальная машина), всегда есть выход - однопользовательский режим или какой-то инструмент, например konboot.
Единственный практический способ, которым я могу справиться с этим, - это зашифровать весь жесткий диск - у вас возникнут проблемы с производительностью, но, поскольку вам вообще понадобится пароль для доступа к данным, однопользовательский режим не принесет никакой пользы, ни установил бы образ.
Это должно обрабатывать большинство векторов атак, кроме экзотических - например, скомпрометированный хост, который может сбрасывать содержимое памяти (если такое существует)
Я действительно не вижу способа запретить конечным пользователям видеть данные на диске без шифрования, и даже тогда были бы способы обойти это (иначе они не смогли бы фактически использовать виртуальную машину)
Решение, которое я вижу, состоит в том, чтобы автоматизировать способ настройки продукта для каждого пользователя, который использует ваш продукт, или обобщить виртуальную машину таким образом, чтобы конечный пользователь должен был установить правильные учетные данные и самостоятельно администрировать машину. Вы не разбираетесь в том, чем является ваш продукт, но на самом деле вы не можете полностью помешать им смонтировать образ диска и обойти защиту, и все, что вы установите, скорее всего, станет более обременительным для законных конечных пользователей. придется иметь дело с.
По сути, вам необходимо разработать решение с учетом того, что конечный покупатель может видеть и будет видеть эту информацию, поэтому вы не можете поместить секретную информацию в свой продукт, который вы распространяете. Настройте решение для сайта этого пользователя или заставьте его администрировать его, задав пароли и учетные данные при настройке.