Verwaltung von Sicherheitsrisiken für Azure Machine Learning

Die Verwaltung von Sicherheitsrisiken umfasst das Erkennen, Bewerten, Mindern und Melden von Sicherheitsrisiken, die in den Systemen und der Software einer Organisation vorhanden sind. Die Verwaltung von Sicherheitsrisiken ist eine gemeinsame Verantwortung zwischen Ihnen und Microsoft.

In diesem Artikel werden diese Zuständigkeiten erläutert und die von Azure Machine Learning bereitgestellten Kontrollen für das Sicherheitsrisikomanagement beschrieben. Sie erfahren, wie Sie Ihre Dienstinstanz und Anwendungen mit den neuesten Sicherheitsupdates auf dem neuesten Stand halten und das Zeitfenster für Angreifer minimieren.

Von Microsoft verwaltete VM-Images

Azure Machine Learning verwaltet VM-Images des Hostbetriebssystems für Azure Machine Learning-Compute-Instanzen, Azure Machine Learning-Computecluster und Data Science Virtual Machines. Die Aktualisierungshäufigkeit ist monatlich und umfasst folgende Einzelheiten:

  • Für jede neue VM-Imageversion werden die neuesten Updates vom ursprünglichen Herausgeber des Betriebssystems bezogen. Durch die Verwendung der neuesten Updates wird sichergestellt, dass Sie alle anwendbaren betriebssystembezogenen Patches erhalten. Für Azure Machine Learning ist der Herausgeber für alle Ubuntu-Images Canonical. Diese Images werden für Azure Machine Learning Computeinstanzen, Computecluster und Data Science Virtual Machines verwendet.

  • VM-Images werden monatlich aktualisiert.

  • Zusätzlich zu Patches, die der ursprüngliche Herausgeber anwendet, aktualisiert Azure Machine Learning Systempakete, wenn Updates verfügbar sind.

  • Azure Machine Learning überprüft und bewertet alle Machine Learning-Pakete, für die möglicherweise ein Upgrade erforderlich ist. In den meisten Fällen enthalten neue VM-Images die neuesten Paketversionen.

  • Alle VM-Images basieren auf sicheren Abonnements, die regelmäßig Überprüfungen auf Sicherheitsrisiken ausführen. Azure Machine Learning kennzeichnet alle nicht behobenen Sicherheitsrisiken und behebt sie in der nächsten Version.

  • Die Häufigkeit erfolgt für die meisten Images in einem monatlichen Intervall. Für Computeinstanzen ist die Imageveröffentlichung auf den Releaserhythmus des Azure Machine Learning SDK, das es in der Umgebung vorinstalliert ist, ausgerichtet.

Zusätzlich zur regelmäßigen Veröffentlichungsfrequenz wendet Azure Machine Learning Hotfixes an, wenn Sicherheitsrisiken angezeigt werden. Microsoft führt Hotfixes für Azure Machine Learning-Computecluster innerhalb von 72 Stunden und für Computeinstanzen innerhalb einer Woche aus.

Hinweis

Das Hostbetriebssystem ist nicht die Betriebssystemversion, die Sie für eine Umgebung angeben, wenn Sie ein Modell trainieren oder bereitstellen. Umgebungen werden in Docker ausgeführt. Docker wird unter dem Hostbetriebssystem ausgeführt.

Von Microsoft verwaltete Containerimages

Basis-Docker-Images, die Azure Machine Learning pflegt, erhalten häufig Sicherheitspatches, um neu erkannte Sicherheitsrisiken zu beheben.

Azure Machine Learning veröffentlicht alle zwei Wochen Updates für unterstützte Images, um Sicherheitsrisiken zu beheben. Verpflichtend ist unser Ziel, in der neuesten Version der unterstützten Images keine Sicherheitsrisiken zu haben, die älter als 30 Tage sind.

Gepatchte Images werden unter dem neuen unveränderlichen Tag und dem aktualisierten :latest-Tag veröffentlicht. Die Verwendung des :latest-Tags oder das Anheften an eine bestimmte Imageversion kann ein Kompromiss zwischen der Sicherheit und der Reproduzierbarkeit der Umgebung für Ihren Machine Learning-Auftrag sein.

Verwalten von Umgebungen und Containerimages

Reproduzierbarkeit ist ein wichtiger Aspekt der Softwareentwicklung und der Machine Learning-Experimente. Der Hauptfokus der Komponente der Azure Machine Learning-Umgebung ist die Gewährleistung der Reproduzierbarkeit der Umgebung, in welcher der Code des Benutzers ausgeführt wird. Um die Reproduzierbarkeit für jeden Machine Learning-Auftrag zu gewährleisten, werden zuvor erstellte Images ohne erneute Materialisierung auf die Computeknoten übertragen.

Obwohl Azure Machine Learning-Basisimages mit jedem Release patcht, kann die Verwendung des neuesten Images einen Kompromiss zwischen Reproduzierbarkeit und Sicherheitsrisikomanagement darstellen. Daher liegt es in Ihrer Verantwortung, die Umgebungsversion auszuwählen, die für Ihre Aufträge oder Modellbereitstellungen verwendet wird.

Standardmäßig werden Abhängigkeiten über Basisimages angeordnet, die Azure Machine Learning beim Erstellen von Umgebungen bereitstellt. Sie können auch eigene Basisimages verwenden, wenn Sie Umgebungen in Azure Machine Learning verwenden. Nachdem Sie weitere Abhängigkeiten über den von Microsoft bereitgestellten Images installiert oder eigene Basisimages bereitgestellt haben, liegt die Verantwortung für die Sicherheitsrisikoverwaltung bei Ihnen.

Eine Azure Container Registry Instanz, die als Cache für Containerimages verwendet wird, ist Ihrem Azure Machine Learning-Arbeitsbereich zugeordnet. Jedes Image, das materialisiert wird, wird an die Containerregistrierung übertragen. Der Arbeitsbereich verwendet es, wenn Experimentieren oder Bereitstellung für die entsprechende Umgebung ausgelöst wird.

Azure Machine Learning löscht kein Image aus Ihrer Containerregistrierung. Sie sind dafür verantwortlich, die Notwendigkeit eines Bilds im Laufe der Zeit zu bewerten. Um die Umgebungsfreundlichkeit zu überwachen und zu warten, können SieMicrosoft Defender für Container Registry verwenden, um Ihre Images auf Sicherheitsrisiken zu überprüfen. Informationen zum Automatisieren Ihrer Prozesse basierend auf Triggern von Microsoft Defender finden Sie unter Automatisieren von Korrekturantworten.

Verwenden eines privaten Paketrepositorys

Azure Machine Learning verwendet Conda und Pip zum Installieren von Python-Paketen. Standardmäßig lädt Azure Machine Learning Pakete aus öffentlichen Repositorys herunter. Wenn Ihre Organisation erfordert, dass Pakete nur aus privaten Repositorys wie Azure DevOps-Feeds bezogen werden, können Sie die Conda- und Pip-Konfiguration als Teil Ihrer Basisimages und Ihrer Umgebungskonfigurationen für Computeinstanzen außer Kraft setzen.

In der folgenden Beispielkonfiguration wird gezeigt, wie Sie die Standardkanäle entfernen und Ihre eigenen privaten Conda- und Pip-Feeds hinzufügen können. Erwägen Sie die Verwendung von Setupskripts für Compute-Instanzen für die Automatisierung.

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/

Informationen zum Angeben eigener Basisimages in Azure Machine Learning finden Sie unter Erstellen einer Umgebung aus einem Docker-Buildkontext. Weitere Informationen zum Konfigurieren von Conda-Umgebungen finden Sie unter Manuelles Erstellen einer Umgebungsdatei auf der Conda-Website.

Verwaltung von Sicherheitsrisiken auf Computehosts

Verwaltete Computeknoten in Azure Machine Learning verwenden von Microsoft verwaltete VM-Images des Betriebssystems. Wenn Sie einen Knoten bereitstellen, wird das neueste aktualisierte VM-Image abgerufen. Dies gilt für Compute-Instanzen, Computecluster, serverlose Computes (Vorschau) und Compute-Optionen für verwalteten Rückschluss.

Obwohl VM-Images des Betriebssystems regelmäßig gepatcht werden, überprüft Azure Machine Learning Computeknoten nicht aktiv auf Sicherheitsrisiken, während sie verwendet werden. Um eine zusätzliche Schutzebene zu bieten, sollten Sie die Netzwerkisolation Ihrer Computeumgebung in Betracht ziehen.

Es liegt in der gemeinsamen Verantwortung von Ihnen und Microsoft, sicherzustellen, dass Ihre Umgebung auf dem neuesten Stand ist und Computeknoten die neueste Betriebssystemversion verwenden. Knoten, die nicht im Leerlauf sind, können nicht auf das neueste VM-Image aktualisiert werden. Die Überlegungen für jeden Computetyp unterscheiden sich geringfügig, wie in den folgenden Abschnitten aufgeführt.

Compute-Instanz

Compute-Instanzen erhalten zum Zeitpunkt der Bereitstellung die neuesten VM-Images. Microsoft veröffentlicht neue VM-Images monatlich. Nachdem Sie eine Computeinstanz bereitgestellt haben, wird sie nicht aktiv aktualisiert. Sie können die Betriebssystemversion einer Instanz abfragen. Um mit den neuesten Softwareupdates und Sicherheitspatches auf dem neuesten Stand zu bleiben, können Sie eine der folgenden Methoden verwenden:

  • Erstellen Sie eine Computeinstanz neu, um das neueste Betriebssystemimage zu erhalten (empfohlen).

    Wenn Sie diese Methode verwenden, gehen Daten und Anpassungen (z. B. installierte Pakete) verloren, die auf dem Betriebssystem der Instanz und temporären Datenträgern gespeichert sind.

    Wenn Sie Ihre Instanz erneut erstellen:

    Weitere Informationen zu Imageversionen finden Sie unter Image Release Notes der Azure Machine Learning Computeinstanz.

  • Aktualisieren Sie regelmäßig Betriebssystem- und Python-Pakete.

    • Verwenden Sie Linux-Paketverwaltungstools, um die Paketliste mit den neuesten Versionen zu aktualisieren:

      sudo apt-get update
      
    • Verwenden Sie Linux-Paketverwaltungstools, um ein Upgrade der Pakete auf die neuesten Versionen durchzuführen. Paketkonflikte können auftreten, wenn Sie diesen Ansatz verwenden.

      sudo apt-get upgrade
      
    • Verwenden Sie Python-Paketverwaltungstools, um Upgrades von Paketen durchzuführen und nach Updates zu suchen:

      pip list --outdated
      

Sie können zusätzliche Scansoftware auf der Computeinstanz installieren und ausführen, um sie auf Sicherheitsprobleme zu überprüfen:

  • Verwenden Sie Trivy, um Sicherheitsrisiken auf Betriebssystem- und Python-Paketebene aufzudecken.
  • Verwenden Sie ClamAV, um Schadsoftware zu entdecken. Es wird auf Computeinstanzen vorinstalliert.

Die Installation des Microsoft Defender for Servers-Agent wird derzeit nicht unterstützt.

Erwägen Sie die Verwendung von Anpassungsskripts für die Automatisierung. Ein Beispiel für ein Setupskript, das Trivy und ClamAV kombiniert, finden Sie unter Beispielskripts für die Einrichtung von Computeinstanzen.

Computecluster

Computecluster führen automatisch ein Upgrade der Knoten auf das neueste VM-Image durch. Wenn Sie das Cluster mit min nodes = 0 konfigurieren, aktualisiert der Knoten automatisch auf die neueste VM-Imageversion, wenn alle Aufträge abgeschlossen sind und das Cluster auf null Knoten reduziert wird.

In den folgenden Bedingungen werden Clusterknoten nicht herunterskaliert, sodass sie das neueste VM-Image nicht abrufen können:

  • Die minimale Knotenanzahl des Clusters wird auf einen Wert festgelegt, der größer als null ist.
  • Aufträge werden fortlaufend in Ihrem Cluster geplant.

Sie sind für die Skalierung von Clusterknoten ohne Leerlauf verantwortlich, um die neuesten Betriebssystem-VM-Imageupdates zu erhalten. Azure Machine Learning bricht keine laufenden Workloads auf Computeknoten ab, um VM-Updates auszuführen. Ändern Sie die Mindestknoten vorübergehend in 0 (null), und lassen Sie zu, dass der Cluster auf null Knoten reduziert wird.

Verwaltete Onlineendpunkte

Verwaltete Onlineendpunkte erhalten automatisch Updates für Betriebssystemhostimages, die Fehlerbehebungen für Sicherheitsrisiken enthalten. Die Aktualisierungshäufigkeit von Bildern beträgt mindestens einmal pro Monat.

Computeknoten werden automatisch auf die neueste VM-Imageversion aktualisiert, wenn diese Version veröffentlicht wird. Sie müssen keine Maßnahmen ergreifen.

Kundenseitig verwaltete Kubernetes-Cluster

Kubernetes Compute ermöglicht es Ihnen, Kubernetes-Cluster so zu konfigurieren, dass Sie Rückschlüsse durchführen und Modelle in Azure Machine Learning trainieren, durchführen und verwalten können.

Da Sie die Umgebung mit Kubernetes verwalten, liegt sowohl das Management von Sicherheitsrisiken von Betriebssystem-VMs als auch von Containerimages in Ihrer Verantwortung.

Azure Machine Learning veröffentlicht häufig neue Versionen von Azure Machine Learning-Erweiterungscontainerimages in Microsoft Artifact Registry. Microsoft ist dafür verantwortlich, sicherzustellen, dass neue Imageversionen von Sicherheitsrisiken frei sind. Jede Version behebt Sicherheitsrisiken.

Wenn Ihre Cluster Aufträge ohne Unterbrechung ausführen, werden möglicherweise bei ausgeführten Aufträgen veraltete Containerimageversionen ausgeführt. Nachdem Sie die amlarc-Erweiterung auf einem laufenden Cluster aktualisiert haben, beginnen neu übermittelte Aufträge mit der neuesten Imageversion. Wenn Sie die amlarc-Erweiterung auf die neueste Version aktualisieren, bereinigen Sie die alten Containerimageversionen nach Bedarf aus den Clustern.

Um festzustellen, ob Ihr Azure Arc-Cluster die neueste Version von amlarc ausführt, verwenden Sie das Azure-Portal. Wechseln Sie unter Ihrer Azure Arc-Ressource des Typs Kubernetes – Azure Arc zu Erweiterungen, um die Version der amlarc-Erweiterung zu finden.

AutoML- und Designerumgebungen

Für codebasierte Trainingsumgebungen steuern Sie, welche Azure Machine Learning Umgebung verwendet wird. Mit AutoML und dem Designer wird die Umgebung als Teil des Dienstes gekapselt. Diese Arten von Aufträgen können auf von Ihnen konfigurierten Computes ausgeführt werden, um zusätzliche Steuerelemente wie z. B. die Netzwerkisolation zu ermöglichen.

Automatisierte ML Aufträge werden in Umgebungen ausgeführt, die auf Azure Machine Learning-Docker-Basisimages aufsetzen.

Designer-Jobs sind in Komponenten unterteilt. Jede Komponente verfügt über eine eigene Umgebung, die auf den Azure Machine Learning-Docker-Basisimages aufsetzt. Weitere Informationen zu Komponenten finden Sie in der Komponentenreferenz.

Nächste Schritte