Управление уязвимостями для Машинного обучения Azure
Управление уязвимостями включает обнаружение, оценку, устранение и отчеты о любых уязвимостях безопасности, существующих в системах и программном обеспечении организации. Ответственность за управление уязвимостями несете как вы сами, так и корпорация Майкрософт.
В этой статье рассматриваются эти обязанности и описываются элементы управления управление уязвимостями, которые Машинное обучение Azure предоставляются. Вы узнаете, как обновлять экземпляр службы и приложения с помощью последних обновлений системы безопасности, а также как свести к минимуму окно возможностей для злоумышленников.
Образы виртуальных машин, управляемых корпорацией Майкрософт
Машинное обучение Azure управляет образами виртуальной машины ос узла для Машинное обучение Azure вычислительных экземпляров, Машинное обучение Azure вычислительных кластеров и Виртуальная машина для обработки и анализа данных. Частота обновления является ежемесячной и включает следующие сведения:
Для каждой новой версии образа виртуальной машины источником последних обновлений является исходный издатель операционной системы. Использование последних обновлений помогает обеспечить получение всех применимых исправлений, связанных с ОС. Для Машинное обучение Azure издатель является каноническим для всех образов Ubuntu. Эти образы используются для вычислительных экземпляров Машинного обучение Azure, вычислительных кластеров и виртуальных машин для обработки и анализа данных.
Образы виртуальных машин обновляются ежемесячно.
Помимо исправлений, которые применяет исходный издатель, Машинное обучение Azure обновлять системные пакеты при наличии обновлений.
Машинное обучение Azure проверяет и проверяет все пакеты машинного обучения, которые могут потребовать обновления. В большинстве случаев новые образы виртуальных машин содержат последние версии пакетов.
Все образы виртуальных машин построены на основе безопасных подписок, регулярно выполняющих проверку уязвимостей. Машинное обучение Azure помечает все неисправные уязвимости и исправляет их в следующем выпуске.
Частота — это ежемесячный интервал для большинства изображений. Для вычислительных экземпляров выпуск образа выравнивается с частотой выпуска пакета SDK Машинное обучение Azure, предварительно установленного в среде.
В дополнение к регулярной частоте выпуска Машинное обучение Azure применяет исправления, если уязвимости поверхности. Корпорация Майкрософт развертывает исправления в течение 72 часов для Машинное обучение Azure вычислительных кластеров и в течение недели для вычислительных экземпляров.
Примечание.
Операционная система узла не является версией ОС, которую можно указать для среды при обучении или развертывании модели. Среды запускаются внутри Docker. Docker выполняется в ОС узла.
Образы контейнеров, управляемые корпорацией Майкрософт
Базовые образы docker, которые Машинное обучение Azure поддерживают часто получать исправления безопасности для решения новых обнаруженных уязвимостей.
Машинное обучение Azure выпускает обновления для поддерживаемых образов каждые две недели, чтобы устранить уязвимости. В качестве обязательства мы намерены упразднить все уязвимости старше 30 дней в последней версии поддерживаемых образов.
Исправленные изображения выпускаются под новым неизменяемым тегом и обновленным :latest
тегом. :latest
Использование тега или закрепления в определенной версии образа может быть компромиссом между безопасностью и воспроизведением среды для задания машинного обучения.
Управление средами и образами контейнеров
Воспроизводимость является ключевым аспектом разработки программного обеспечения и экспериментов машинного обучения. Основное внимание компонента среды Машинное обучение Azure заключается в обеспечении воспроизводимости среды, в которой выполняется код пользователя. Чтобы обеспечить воспроизводимость для любого задания машинного обучения, более ранние созданные образы извлекаются на вычислительные узлы без необходимости рематериализации.
Хотя Машинное обучение Azure исправления базовых образов с каждым выпуском, возможно ли использование последнего образа, может быть компромиссом между воспроизводимостью и управление уязвимостями. Вы несете ответственность за выбор версии среды, используемой для заданий или развертываний моделей.
По умолчанию зависимости размещаются на основе базовых образов, которые Машинное обучение Azure предоставляются при создании сред. Вы также можете использовать собственные базовые образы при использовании сред в Машинное обучение Azure. После установки дополнительных зависимостей на основе предоставленных корпорацией Майкрософт образов или принести собственные базовые образы, управление уязвимостями становится вашей ответственностью.
Связанная с рабочей областью Машинное обучение Azure — это Реестр контейнеров Azure экземпляр, который работает в качестве кэша для образов контейнеров. Любой образ, который материализуется, отправляется в реестр контейнеров. Рабочая область использует ее, если экспериментирование или развертывание активируется для соответствующей среды.
Машинное обучение Azure не удаляет образ из реестра контейнеров. Вы несете ответственность за оценку необходимости изображения с течением времени. Чтобы отслеживать и поддерживать гигиену среды, можно использовать Microsoft Defender для Реестра контейнеров, чтобы проверять образы на предмет уязвимостей. Чтобы автоматизировать процессы на основе триггеров из Microsoft Defender, см . статью "Автоматизация ответов на исправление".
Дополнительные сведения см. в статье об уязвимостях в средах.
Использование частного репозитория пакетов
Машинное обучение Azure использует Conda и Pip для установки пакетов Python. По умолчанию Машинное обучение Azure загружает пакеты из общедоступных репозиториев. Если вашей организации требуется использовать исходные пакеты только из частных репозиториев, таких как веб-каналы Azure DevOps, можно переопределить конфигурацию Conda и Pip в составе базовых образов и конфигураций среды для вычислительных экземпляров.
В следующем примере конфигурации показано, как удалить каналы по умолчанию и добавить собственные частные каналы Conda и Pip. Рекомендуется использовать скрипты настройки вычислительных экземпляров для автоматизации.
RUN conda config --set offline false \
&& conda config --remove channels defaults || true \
&& conda config --add channels https://my.private.conda.feed/conda/feed \
&& conda config --add repodata_fns <repodata_file_on_your_server>.json
# Configure Pip private indexes and ensure that the client trusts your host
RUN pip config set global.index https://my.private.pypi.feed/repository/myfeed/pypi/ \
&& pip config set global.index-url https://my.private.pypi.feed/repository/myfeed/simple/
# In case your feed host isn't secured through SSL
RUN pip config set global.trusted-host http://my.private.pypi.feed/
Сведения о том, как указать собственные базовые образы в Машинное обучение Azure, см. в статье "Создание среды из контекста сборки Docker". Дополнительные сведения о настройке сред Conda см. в разделе "Создание файла среды" вручную на сайте Conda.
Управление уязвимостями на узлах вычислений
Управляемые вычислительные узлы в Машинное обучение Azure используют образы виртуальных машин, управляемых корпорацией Майкрософт. При подготовке узла извлекает последний обновленный образ виртуальной машины. Это поведение применяется к вычислительным экземплярам, вычислительному кластеру, бессерверным вычислениям (предварительная версия) и параметрам вычислений управляемого вывода.
Хотя образы виртуальных машин ОС регулярно исправляются, Машинное обучение Azure активно не сканирует вычислительные узлы на наличие уязвимостей во время их использования. Для дополнительного уровня защиты рассмотрите сетевую изоляцию вычислений.
Убедитесь, что ваша среда обновлена и что вычислительные узлы используют последнюю версию ОС, является общей ответственностью между вами и Корпорацией Майкрософт. Узлы, которые не являются неактивными, не могут быть обновлены до последнего образа виртуальной машины. Рекомендации немного отличаются для каждого типа вычислений, как описано в следующих разделах.
Вычислительная операция
Вычислительные экземпляры получают последние образы виртуальных машин во время подготовки к работе. Корпорация Microsoft ежемесячно выпускает новые образы виртуальных машин. После развертывания вычислительного экземпляра он не обновляется. Вы можете запросить версию операционной системы экземпляра. Чтобы обеспечить актуальность последних обновлений программного обеспечения и исправлений безопасности, можно использовать один из следующих методов:
Повторно создайте вычислительный экземпляр, чтобы получить последний образ ОС (рекомендуется).
При использовании этого метода вы потеряете данные и настройки (например, установленные пакеты), которые хранятся на ОС экземпляра и временных дисках.
При повторном создании экземпляра:
- Сохраните записные книжки в каталоге пользовательских файлов, чтобы сохранить их.
- Подключите данные для сохранения файлов.
Дополнительные сведения о выпусках образов см. в Машинное обучение Azure заметках о выпуске образа вычислительного экземпляра.
Регулярно обновляйте пакеты ОС и Python.
Используйте средства управления пакетами Linux для обновления списка пакетов с помощью последних версий:
sudo apt-get update
Используйте средства управления пакетами Linux для обновления пакетов до последних версий. Конфликты пакетов могут возникать при использовании этого подхода.
sudo apt-get upgrade
Используйте средства управления пакетами Python, чтобы обновить пакеты и проверить наличие обновлений:
pip list --outdated
Вы можете установить и запустить дополнительное программное обеспечение сканирования на вычислительном экземпляре, чтобы проверить наличие проблем с безопасностью:
- Используйте Trivy для обнаружения уязвимостей на уровне пакетов ОС и Python.
- Используйте ClamAV для обнаружения вредоносных программ. Он предустановлен для вычислительных экземпляров.
В настоящее время установка агента Microsoft Defender для серверов не поддерживается.
Рекомендуется использовать скрипты настройки для автоматизации. Пример скрипта установки, объединяющего Trivy и ClamAV, см . в примерах скриптов установки вычислительного экземпляра.
Вычислительные кластеры
Вычислительные кластеры автоматически обновляют узлы до последнего образа виртуальной машины. При настройке кластера min nodes = 0
он автоматически обновляет узлы до последней версии образа виртуальной машины при завершении всех заданий, а кластер уменьшает до нуля узлов.
В следующих условиях узлы кластера не масштабируются, поэтому они не могут получить последний образ виртуальной машины:
- Минимальное число узлов кластера имеет значение больше нуля.
- Задания планируются непрерывно в кластере.
Вы несете ответственность за масштабирование узлов кластера бездействия, чтобы получить последние обновления образа виртуальной машины ОС. Машинное обучение Azure не останавливает выполнение рабочих нагрузок на вычислительных узлах для выдачи обновлений виртуальной машины. Временно измените минимальное число узлов на ноль и подождите, пока число узлов кластера будет уменьшено до нуля.
Управляемые сетевые конечные точки
Управляемые сетевые конечные точки автоматически получают обновления образа узла ОС, которые включают исправления уязвимостей. Частота обновления образов составляет не менее одного раза в месяц.
Вычислительные узлы автоматически обновляются до последней версии образа виртуальной машины при выпуске этой версии. Никаких дополнительных действий от вас не требуется.
Управляемые клиентом кластеры Kubernetes
Вычислительные ресурсы Kubernetes позволяют настраивать кластеры Kubernetes для обучения, выполнения вывода и управления моделями в Машинное обучение Azure.
Так как вы управляете средой с помощью Kubernetes, управление уязвимостями виртуальной машины ОС и уязвимостями образов контейнеров является вашей ответственностью.
Машинное обучение Azure часто публикует новые версии образов контейнеров расширений Машинное обучение Azure в Реестр артефактов Microsoft. Корпорация Майкрософт отвечает за обеспечение того, чтобы новые версии образов были свободны от уязвимостей. Каждый выпуск устраняет уязвимости.
При выполнении заданий кластера без прерывания выполнение заданий может выполнять устаревшие версии образа контейнера. После обновления amlarc
расширения до работающего кластера только что отправленные задания начинают использовать последнюю версию образа. При обновлении amlarc
расширения до последней версии очистите старые версии образов контейнера из кластеров по мере необходимости.
Чтобы проверить, работает ли кластер Azure Arc с последней версиейamlarc
, используйте портал Azure. В ресурсе Azure Arc типа Kubernetes — Azure Arc перейдите к расширениям , чтобы найти версию amlarc
расширения.
Внимание
Если вы отключили автоматическое обновление с помощью --auto-upgrade false
параметра az k8s-extension create
команды, необходимо вручную обновить расширение с помощью az k8s-extension update
. Дополнительные сведения о версиях этого расширения см. в заметках о выпуске.
Среды АвтоML и конструктора
Для обучения на основе кода вы управляете тем, какой Машинное обучение Azure среде для использования. С помощью AutoML и конструктора среда инкапсулируется как часть службы. Эти типы заданий могут выполняться при настроенных вычислениях, чтобы обеспечить дополнительные элементы управления, такие как сетевая изоляция.
Задания AutoML выполняются в средах, на основе Машинное обучение Azure базовых образов Docker.
Задания конструктора разделены на компоненты. Каждый компонент имеет собственную среду, которая слои на вершине Машинное обучение Azure базовых образов Docker. Дополнительные сведения о компонентах см. в справочнике по компонентам.