Поделиться через


Безопасность расширений

В этой статье описываются основы расширений виртуальных машин для серверов с поддержкой Azure Arc и сведения о настройке параметров расширения.

Основы расширения

Расширения виртуальных машин для серверов с поддержкой Azure Arc являются необязательными надстройками, которые обеспечивают другие функции, такие как мониторинг, управление исправлениями и выполнение скриптов. Расширения публикуются корпорацией Майкрософт и выбирают сторонних производителей из Azure Marketplace и хранятся в учетных записях хранения, управляемых Корпорацией Майкрософт. Все расширения сканируются для вредоносных программ в рамках процесса публикации. Расширения для серверов с поддержкой Azure Arc идентичны тем, которые доступны для виртуальных машин Azure, обеспечивая согласованность в операционных средах.

Расширения загружаются непосредственно из служба хранилища Azure (*.blob.core.windows.net) во время их установки или обновления, если только вы не настроили частные конечные точки. Учетные записи хранения регулярно изменяются и не могут быть заранее прогнозированы. При использовании частных конечных точек расширения используются через региональный URL-адрес службы Azure Arc.

Файл каталога с цифровой подписью загружается отдельно от пакета расширения и используется для проверки целостности каждого расширения перед открытием диспетчера расширений или выполнением пакета расширения. Если скачанный ZIP-файл для расширения не соответствует содержимому в файле каталога, операция расширения будет прервана.

Расширения могут принимать параметры для настройки или настройки установки, таких как URL-адреса прокси-сервера или ключи API для подключения агента мониторинга к облачной службе. Параметры расширения доступны в двух вариантах: обычные параметры и защищенные параметры. Защищенные параметры не сохраняются в Azure и шифруются на локальном компьютере.

Все операции расширения происходят из Azure с помощью вызова API, интерфейса командной строки, PowerShell или действия портала. Эта конструкция гарантирует, что любое действие для установки, обновления или обновления расширения на сервере регистрируется в журнале действий Azure. Агент подключенного компьютера Azure позволяет удалять расширения локально для устранения неполадок и очистки. Однако если расширение удалено локально, а служба по-прежнему ожидает, что на компьютере установлено расширение, он будет переустановлен при следующем синхронизации диспетчера расширений с Azure.

Выполнение сценария

Диспетчер расширений можно использовать для запуска скриптов на компьютерах с помощью расширения пользовательского скрипта или команды запуска. По умолчанию эти скрипты будут выполняться в пользовательском контексте диспетчера расширений — локальной системе в Windows или root в Linux, что означает, что эти скрипты будут иметь неограниченный доступ к компьютеру. Если вы не планируете использовать эти функции, их можно заблокировать с помощью списка разрешений или списка блокировок. Пример представлен в следующем разделе.

Элементы управления безопасностью локального агента

Начиная с версии 1.16 агента можно дополнительно ограничить расширения, которые можно установить на сервере и отключить гостевую конфигурацию. Эти элементы управления могут быть полезны при подключении серверов к Azure для одной цели, например сбор журналов событий, без разрешения использования других возможностей управления на сервере.

Эти элементы управления безопасностью можно настроить только с помощью команды на самом сервере и не могут быть изменены из Azure. Этот подход сохраняет намерение администратора сервера при включении сценариев удаленного управления с помощью Azure Arc, но также означает, что изменение параметра сложнее, если позже решите изменить их. Эта функция предназначена для конфиденциальных серверов (например, для контроллеров домен Active Directory, серверов, обрабатывающих данные оплаты, и серверов, зависимых от строгих мер управления изменениями). В большинстве других случаев не нужно изменять эти параметры.

Списки разрешений и блок-списки

Агент подключенного компьютера Azure поддерживает список разрешений и список блокировок, чтобы ограничить, какие расширения можно установить на компьютере. Списки разрешений являются эксклюзивными, что означает, что можно установить только определенные расширения, которые вы включаете в список. Блок-списки являются эксклюзивными, что означает, что все, кроме этих расширений, можно установить. Списки разрешений предпочтительнее блокировать списки, так как они по сути блокируют любые новые расширения, которые становятся доступными в будущем. Списки разрешений и списки блокировок настраиваются локально на основе каждого сервера. Это гарантирует, что никто, даже не пользователь с разрешениями владельца или глобального администратора в Azure, может переопределить правила безопасности, пытаясь установить несанкционированное расширение. Если кто-то пытается установить несанкционированное расширение, диспетчер расширений откажется установить его и помечает сообщение об ошибке установки расширения в Azure. Списки разрешений и списки блокировок можно настроить в любое время после установки агента, в том числе до подключения агента к Azure.

Если на агенте не настроен список разрешений или список блокировок, все расширения разрешены.

Наиболее безопасным вариантом является явное разрешение установленных расширений. Любое расширение, не в списке разрешений, автоматически блокируется. Чтобы настроить агент подключенного компьютера Azure, чтобы разрешить только агент Azure Monitor для Linux, выполните следующую команду на каждом сервере:

azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorLinuxAgent"

Ниже приведен пример блок-списка, который блокирует все расширения с возможностью выполнения произвольных скриптов:

azcmagent config set extensions.blocklist “Microsoft.Cplat.Core/RunCommandHandlerWindows, Microsoft.Cplat.Core/RunCommandHandlerLinux,Microsoft.Compute/CustomScriptExtension,Microsoft.Azure.Extensions/CustomScript,Microsoft.Azure.Automation.HybridWorker/HybridWorkerForWindows,Microsoft.Azure.Automation.HybridWorkerForLinux,Microsoft.EnterpriseCloud.Monitoring/MicrosoftMonitoringAgent, Microsoft.EnterpriseCloud.Monitoring/OMSAgentForLinux”

Укажите расширения с издателем и типом, разделенным косой чертой /. См. список наиболее распространенных расширений в документации или список расширений виртуальных машин, уже установленных на сервере на портале, Azure PowerShell или Azure CLI.

В таблице описывается поведение при выполнении операции расширения с агентом с настроенным списком разрешений или блок-списком.

Операция В списке разрешений В списке блокировок Как в списке разрешений, так и в списке блокировок Не в любом списке, но настроен список разрешений
Установка расширения Допустимо Заблокировано Заблокировано Заблокировано
Обновление (перенастройка) расширения Допустимо Заблокировано Заблокировано Заблокировано
Расширение обновления Допустимо Заблокировано Заблокировано Заблокировано
Удаление расширения Допустимо Допустимо Допустимо Допустимо

Внимание

Если расширение уже установлено на сервере перед настройкой списка разрешений или списка блокировок, оно не будет автоматически удалено. Вы несете ответственность за удаление расширения из Azure, чтобы полностью удалить его с компьютера. Запросы на удаление всегда принимаются для удовлетворения этого сценария. После удаления список разрешений и список блокировок определите, следует ли разрешать дальнейшие попытки установки.

Начиная с версии 1.35 агента, существует специальное значение Allow/Noneсписка разрешений, которое предписывает диспетчеру расширений запускаться, но не разрешать установку расширений. Это рекомендуемая конфигурация при использовании Azure Arc для доставки расширенных обновлений безопасности Windows Server 2012 (ESU) без использования других расширений.

azcmagent config set extensions.allowlist "Allow/None"

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

Рекомендации по блокировке компьютера

При настройке агента подключенного компьютера Azure с уменьшенным набором возможностей важно учитывать механизмы, которые кто-то может использовать для удаления этих ограничений и реализации соответствующих элементов управления. Любой пользователь, способный выполнять команды от имени администратора или корневого пользователя на сервере, может изменить конфигурацию агента подключенного компьютера Azure. Расширения и политики гостевой конфигурации выполняются в привилегированных контекстах на сервере, и таким образом может изменить конфигурацию агента. Если вы применяете элементы управления безопасностью локального агента для блокировки агента, корпорация Майкрософт рекомендует использовать следующие рекомендации, чтобы гарантировать, что только администраторы локальных серверов могут обновить конфигурацию агента:

  • Используйте списки разрешений для расширений вместо блок-списков, когда это возможно.
  • Не включайте расширение пользовательского скрипта в список разрешений расширения, чтобы предотвратить выполнение произвольных скриптов, которые могут изменить конфигурацию агента.
  • Отключите гостевую конфигурацию, чтобы предотвратить использование пользовательских политик гостевой конфигурации, которые могут изменить конфигурацию агента.

Пример конфигурации для сценариев мониторинга и безопасности

Обычно azure Arc используется для мониторинга серверов с помощью Azure Monitor и Microsoft Sentinel и защиты их с помощью Microsoft Defender для облака. В этом разделе содержатся примеры блокировки агента только для поддержки сценариев мониторинга и безопасности.

Только агент Azure Monitor

На серверах Windows выполните следующие команды в командной консоли с повышенными привилегиями:

azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorWindowsAgent"
azcmagent config set guestconfiguration.enabled false

На серверах Linux выполните следующие команды:

sudo azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorLinuxAgent"
sudo azcmagent config set guestconfiguration.enabled false

Log Analytics и зависимость (только Аналитика виртуальных машин Azure Monitor)

Эта конфигурация используется для устаревших агентов Log Analytics и агента зависимостей.

На серверах Windows выполните следующие команды в консоли с повышенными привилегиями:

azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/MicrosoftMonitoringAgent,Microsoft.Azure.Monitoring.DependencyAgent/DependencyAgentWindows"
azcmagent config set guestconfiguration.enabled false

На серверах Linux выполните следующие команды:

sudo azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/OMSAgentForLinux,Microsoft.Azure.Monitoring.DependencyAgent/DependencyAgentLinux"
sudo azcmagent config set guestconfiguration.enabled false

Мониторинг и безопасность

Microsoft Defender для облака развертывает расширения на сервере, чтобы определить уязвимое программное обеспечение на сервере и включить Microsoft Defender для конечной точки (если настроено). Microsoft Defender для облака также использует гостевую конфигурацию для ее функции соответствия нормативным требованиям. Так как настраиваемое назначение гостевой конфигурации можно использовать для отмены ограничений агента, следует тщательно оценить, требуется ли функция соответствия нормативным требованиям и, в результате, гостевая конфигурация будет включена на компьютере.

На серверах Windows выполните следующие команды в командной консоли с повышенными привилегиями:

azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/MicrosoftMonitoringAgent,Qualys/WindowsAgent.AzureSecurityCenter,Microsoft.Azure.AzureDefenderForServers/MDE.Windows,Microsoft.Azure.AzureDefenderForSQL/AdvancedThreatProtection.Windows"
azcmagent config set guestconfiguration.enabled true

На серверах Linux выполните следующие команды:

sudo azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/OMSAgentForLinux,Qualys/LinuxAgent.AzureSecurityCenter,Microsoft.Azure.AzureDefenderForServers/MDE.Linux"
sudo azcmagent config set guestconfiguration.enabled true

Режимы агента

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

Можно выбрать два режима:

  1. full — режим по умолчанию. Это позволяет всем функциям агента.
  2. монитор — ограниченный режим, который отключает агент политики гостевой конфигурации и позволяет использовать только расширения, связанные с мониторингом и безопасностью.

Чтобы включить режим мониторинга, выполните следующую команду:

azcmagent config set config.mode monitor

Вы можете проверить текущий режим агента и разрешенные расширения с помощью следующей команды:

azcmagent config list

Хотя в режиме мониторинга невозможно изменить список разрешений расширения или список блокировок. Если вам нужно изменить любой список, измените агент обратно на полный режим и укажите собственный список разрешений и список блокировок.

Чтобы изменить агент обратно в полный режим, выполните следующую команду:

azcmagent config set config.mode full

Отключение диспетчера расширений

Если вам не нужно использовать расширения с Azure Arc, вы также можете полностью отключить диспетчер расширений. Диспетчер расширений можно отключить с помощью следующей команды (выполнить локально на каждом компьютере):

azcmagent config set extensions.enabled false

Отключение диспетчера расширений не приведет к удалению расширений, уже установленных на сервере. Расширения, размещенные в собственных службах Windows или Linux, таких как агент Log Analytics, могут продолжать работать, даже если диспетчер расширений отключен. Другие расширения, размещенные самим диспетчером расширений, например агент Azure Monitor, не запускаются, если диспетчер расширений отключен. Перед отключением диспетчера расширений необходимо удалить все расширения , чтобы не продолжать работать на сервере.