Защита виртуалки kvm от слива данных из нее админом хоста
Есть хост с linux, физический, а не в облаке. На нем запущена kvm-виртуалка. В виртуалке настроено шифрование luks (при включении или перезагрузке требуется ввести пароль, после чего виртуалка загружается и можно входить уже как пользователь). Пока виртуалка работает, может ли админ хоста получить доступ к данным внутри виртуалки? Мне что-то подсказывает, что может. Как защититься от этого? Никак не могу вспомнить, с какой стороны зайти – вроде бы задача стандартная, но сформулировать точно вопрос гуглу не выходит.
комментариев: 11558 документов: 1036 редакций: 4118
Физическим разделением. В текущей постановке задача не имеет решения.
комментариев: 5 документов: 1 редакций: 0
комментариев: 1060 документов: 16 редакций: 32
комментариев: 11558 документов: 1036 редакций: 4118
В общем случае, если у противника есть физический доступ к системе, Вы не сможете защитить от него исполняемый на ней код. Что бы Вы ни делали.
Задача может иметь ограниченные решения, если на противника накладываются те или иные ограничения (то, что называется моделью угрозы), но ошибка в таком анализе приведёт к неадекватным мерам защиты.
комментариев: 450 документов: 10 редакций: 13
комментариев: 5 документов: 1 редакций: 0
Админ – это в данном случае техническая поддержка на удаленном хостинге.
В общем случае защитить код/данные вообще невозможно, если уж так. Модель угрозы: любопытный опытный админ или средней руки промышленный шпионаж.
Не рассматривается.
Пример угрозы:
1. под видом аварии по электричеству выключается сервер, делают дамп дисков. Профит? Вроде бы нет, кроме последующего брутфорса – решается длинным паролем или соглашаемся, что противник слишком крут, но я и не пытаюсь противостоять крупной группировке хакеров :) иначе вопрос вообще бы здесь не задавал;
2. к работающему серверу, на котором я предварительно ввел пароль, подключают съемный диск и пытаются... что? В консоль ввести пароль рута? Предположим, у меня стоит уведомление о том, что было подключено новое устройство, что были попытки ввести пароль любого пользователя с консоли. Как вариант, я знаю, что что-то происходит. Это уже половина решения проблемы.
3. С консоли перейти в single mode без выключения/перезагрузки сервера и пытаться сбросить пароль рута без ввода пароля luks? Это возможно?
Где-то читал, что могут сделать дамп памяти работающей системы. Т.е. аварийно выдергивается кабель питания сервера, он вырубается, и что дальше? Если обобщить вопрос: если система работает, что с ней могут сделать? Зная "что могут сделать", можно думать над тем, "как защититься".
комментариев: 5 документов: 1 редакций: 0
Все три варианта – это простые способы, которые мне приходят в голову. Они же могут быть применены и к гостевой системе, включая доступ к терминалу (консоли).
В дополнение к защите гостевой системе: если я правильно понимаю, получив доступ к хосту, злоумышленник в любом случае сможет получить содержимое оперативной памяти, в которой обязан находиться пароль от запущенной гостевой системы? Насколько это просто? Это что-то типа (дальше выдуманная на ходу команда) # dump ram --starblkt 1292 --endblk 6726365544 >> /mnt/guest.dump? Или все сложнее?
комментариев: 5 документов: 1 редакций: 0
комментариев: 5 документов: 1 редакций: 0
Вопрос про дамп оперативной памяти гостя из хоста снимается. В общем, остается актуальной только защита хоста?
комментариев: 450 документов: 10 редакций: 13
Тут, тут. Обсуждалось многократно, но было урывками разбросано по разным веткам обсуждений, легко не ищется.
Да, это одна из правильных уловок, но есть и другие.
Single mode грузится с рутовой файловой системы, которая может (должна бы) быть зашифрованной. В этом случае пароль на LUKS запрашивается до single mode из-под grub'а (по SSH), если этот вариант настроен. Протроянить загрузчик, чтобы перехватить пароль на LUKS, конечно, ничто не мешает.
Пароль рута – вообще не проблема. Как минимум, его можно отключить в настройках и начать логиниться удалённо по SSH-ключам.
Если надёжно зашифровано, в руки попадёт только загрузчик, а также немного инфы о конфигурации системы и используемом софте.
Много что могут сделать. Например – вычислить все ключи шифрования через анализ скачков напряжения на клеммах или корпусе, через акустический шум процессора или через скачки в его энергопотреблении, и вы принципиально никак не сможете это программно проконтролировать и даже узнать, применялись ли такие методы.
Виртуалки обычно используются для защиты системы от программных атак изнутри (через уязвимые программы), а не от внешнего физического атакующего. Это разные угрозы. Вопрос защиты от последнего полностью ортогонален тому, есть внутри виртуалка или нет. Считать, что виртуалка сильно усложняет анализ дампа оперативной памяти, я бы не стал.