Перейти к основному содержимому

Харденинг

Модель безопасности​

Харденинг vStack Center — это сужение поверхности доступа управляющего слоя и выдача минимально необходимых прав пользователям. Продукт даёт средства разграничения, но безопасной конфигурации по умолчанию не предполагает: набор ролей, область их действия и сетевую доступность определяет администратор.

Устройство самой модели — привилегии, области действия, защита фиксированных ролей — описано в разделе Модель безопасности.

Харденинг​

Сетевой доступ. Ограничьте доступ к HTTPS-endpoint кластера и к брокеру сообщений: это точки, через которые управляющий слой принимает запросы, и ни одна из них не нуждается в доступности из клиентских сетей. Остальной обмен — с менеджером кластера и с базой данных — идёт по служебной сети и наружу не выставляется тем более.

Наименьшие права. Выдавайте привилегии по принципу наименьших прав и всегда задавайте точную область действия. Назначение роли без ограничения областью делает права кластерными, даже если задача пользователя ограничена одним ВЦОД. Для доступа к собственным объектам пользователя используйте привилегии вида Own, а не полные привилегии на ВЦОД.

Разделение доступа. Разделяйте административный и пользовательский доступ по разным ВЦОД. Один ВЦОД для инфраструктурных операций и другой для прикладных нагрузок ограничивают последствия скомпрометированной учётной записи областью одного ВЦОД.

Отдельная роль для аудита. Для разбора событий безопасности назначайте роль администратора безопасности, а не роль Cluster master. Она даёт просмотр, фильтрацию, экспорт журнала и проверку целостности, но не даёт управлять ВМ, сетями, пользователями и инфраструктурой — то есть аудитор не может изменить то, что проверяет.

Разработка конфигураций без права запуска. Если задача пользователя — готовить конфигурации ВМ, назначайте роль разработчика ВМ с областью действия по ВЦОД. Она позволяет создавать машины и менять их диски и сетевые адаптеры, но не даёт запускать, останавливать и удалять их, подключаться к консоли и управлять снимками.

Ограничение выгрузки журнала. Просмотр и экспорт журнала безопасности управляются отдельными привилегиями. Держите их только у роли Cluster master и у администратора безопасности: выгрузка журнала — это полный след действий всех пользователей кластера.

Проверка целостности. Периодически запускайте проверку хеш-цепочки журнала и читайте её статус. Порядок и методы описаны в разделе Журнал безопасности.

Парольная политика. Сверьте минимальную длину и обязательные классы символов с таблицей ниже — по умолчанию они выставлены под 4 класс защиты, но настройка их ослабляет так же легко, как ужесточает. Запрет совпадения пароля с именем пользователя отключить нельзя, он действует всегда.

Параметры под 4 класс защиты. Требования к средствам виртуализации 4 класса задают часть параметров числом. Политика входа и архивация журнала приходят со значениями, которые этим числам удовлетворяют, поэтому работа администратора здесь — не выставить их, а не ослабить: проверить после развёртывания и ещё раз после обновления кластера. Оповещения — единственное, что придётся включить самому.

Ослабить их платформа позволяет молча: метод правки параметров безопасности принимает минимальную длину пароля от единицы и лимит попыток от единицы, границ класса защиты он не проверяет. Значение вне таблицы ниже будет принято без возражений, поэтому сверка — единственный способ заметить расхождение.

ПараметрЗначение под класс 4Где задаётся
password_min_lengthне меньше 8Settings → Security policy
Требования к составу символоввсе четыре включенытам же, четыре тумблера
max_failed_attemptsне больше 4там же
lockout_duration_minutesсрок снятия блокировки или 0 для снятия только вручнуютам же
Автоархивация журналавключена, каталог хранения заданнастройки журнала безопасности
Оповещения о событиях безопасностивключены, получатели заданы, порог важности выбрантам же; по умолчанию рассылка выключена

Четыре требуемых роли разведите по разным учётным записям. Совмещение роли администратора безопасности с ролью мастера кластера в одном пользователе обнуляет смысл разделения: аудитор получает права менять то, что проверяет. Подробности сопоставления ролей — в разделе Соответствие ФСТЭК.

Архивы журнала лежат в каталоге на управляющем узле и вместе с кластером теряются. Требование резервного копирования сведений о событиях безопасности закрывается только переносом архивов на внешнее хранение, и этот перенос настраивает администратор.

То же и с параметрами настройки платформы: отдельной операции копирования в интерфейсе нет, поэтому требование закрывается регламентным дампом базы управляющего слоя по расписанию. Расписание и место хранения дампа задаёт администратор — без этого копия конфигурации кластера не существует.

Настройки узла под класс 4. Часть требований класса закрывается механизмами хостовой ОС, и три из них в поставке выключены. В интерфейсе vStack Center они не отражаются, поэтому проверять и включать их приходится на узле.

МеханизмТребованиеСостояние в поставке
hw.vmm.safe_exitОчистка остаточной информации в памяти при её освобождении: затирание памяти гостя при уничтожении ВМВыключено, значение 0. Включается установкой в 1, но на текущей линии сборки вместе с затиранием включается отладочная обвязка — см. предупреждение ниже
Свойство набора данных secure_destroyУдаление объектов файловой системы перезаписьюВыключено. Включается на наборах данных, где лежат диски ВМ, и наследуется дочерними
kern.elf64.allow_wxРазмещение кода вне области, доступной одновременно для записи и исполненияЗначение 0 приходит файлом настроек только с сертифицируемым контуром сборки. В обычной сборке режим разрешительный

Подсистему контроля целостности узла нужно привести в рабочее состояние вручную: собрать манифест, загрузить его в ядро, включить проверку, перевести в режим блокировки и запретить загрузку новых манифестов. Автоматически это не происходит: путь через загрузчик в базовой системе есть, но подписанный манифест загрузки в поставку не собирается, и ни установочный overlay, ни стартовые скрипты сборку манифеста не запускают. Ожидаемое состояние после настройки — «загружена, включена, применяется, загрузка новых манифестов запрещена»; проверяйте его после каждого обновления узла, потому что обновление меняет файлы, попавшие в манифест.

Прежде чем включать затирание памяти, прочтите это. На текущей линии сборки затирание памяти гостя идёт в паре с отладочной обвязкой, которая скомпилирована безусловно. При hw.vmm.safe_exit=1 уничтожение каждой ВМ выполняет два полных прохода по памяти гостя в поисках фиксированного тестового образца — до затирания и после — и печатает в журнал ядра границы областей памяти, включая адреса в адресном пространстве ядра. К стоимости самого затирания это добавляет два обхода всей памяти машины и заметный объём записей в журнал. Обвязка предусмотрена для проверки механизма на стенде; на узлах с ВМ в сотни гигабайт включать затирание без предварительного замера задержки уничтожения не стоит. Замеров на больших ВМ в проекте не делалось.

Затирание при удалении набора данных выполняется синхронно и на больших наборах удлиняет удаление; продолжения с места остановки после потери питания нет. Это стоит учесть в регламенте обслуживания, а не выяснять на первом удалении крупного диска.

Блокировку записи в верифицированный файл и запрет его переименования отдельно включать не нужно: оба тумблера по умолчанию включены и задаются только из настроек загрузчика — сменить их на работающей системе нельзя. Проверять стоит обратное: что их никто не выключил при отладке.

Удалённый доступ пользователей через сети связи общего пользования требует средств криптографической защиты, прошедших оценку соответствия. В состав платформы они не входят: канал до HTTPS-endpoint кластера защищается отдельно развёрнутым средством.