Freigeben über


Bewährte Methoden für sicheren Code

In Azure Machine Learning können Sie Dateien und Inhalte aus beliebigen Quellen in Azure hochladen. Über Inhalte in Jupyter Notebooks oder von Ihnen geladenen Skripts ist unter Umständen das Auslesen von Daten aus Ihren Sitzungen, das Zugreifen auf vertrauliche Daten Ihrer Organisation in Azure oder das Ausführen von schädlichen Prozessen in Ihrem Namen möglich.

Wichtig

Führen Sie nur Notebooks oder Skripts aus, die aus vertrauenswürdigen Quellen stammen. Ein Beispiel hierfür ist ein Fall, in dem Sie oder Ihr Sicherheitsteam das Notebook bzw. Skript überprüft haben.

Potenzielle Bedrohungen

Bei der Entwicklungsarbeit mit Azure Machine Learning werden häufig webbasierte Entwicklungsumgebungen wie Notebooks oder Azure Machine Learning Studio genutzt. Bei der Verwendung von webbasierten Entwicklungsumgebungen müssen Sie die folgenden potenziellen Bedrohungen beachten:

  • Cross-Site-Scripting (XSS)

    • DOM-Einschleusung: Bei dieser Art von Angriff kann die im Browser angezeigte Benutzeroberfläche geändert werden. Beispielsweise kann das Verhalten der Schaltfläche „Ausführen“ in einem Jupyter Notebook geändert werden.
    • Zugriffstoken oder Cookies: Bei XSS-Angriffen kann auch auf den lokalen Speicher und auf die Browsercookies zugegriffen werden. Ihr Microsoft Entra-Authentifizierungstoken wird im lokalen Speicher gespeichert. Bei einem XSS-Angriff kann dieses Token ggf. verwendet werden, um API-Aufrufe in Ihrem Namen durchzuführen und die Daten dann an ein externes System oder eine externe API zu senden.
  • Websiteübergreifende Anforderungsfälschung (CSRF): Bei diesem Angriff kann die URL eines Bilds oder links durch die URL eines bösartigen Skripts oder einer API ersetzt werden. Wenn das Bild geladen bzw. auf den Link geklickt wird, wird die URL aufgerufen.

Azure Machine Learning Studio-Notebooks

Azure Machine Learning Studio stellt in Ihrem Browser eine Umgebung mit einem gehosteten Notebook bereit. Über die Zellen eines Notebooks können HTML-Dokumente oder -Fragmente ausgegeben werden, die schädlichen Code enthalten. Beim Rendern der Ausgabe kann der Code ausgeführt werden.

Mögliche Bedrohungen:

  • Cross-Site-Scripting (XSS)
  • Websiteübergreifende Anforderungsfälschung (Cross-Site Request Forgery, CSRF)

Entschärfungsmöglichkeiten mit Azure Machine Learning:

  • Die Ausgabe von Codezellen wird in einem iFrame in einer Sandbox angeordnet. Der IFrame verhindert, dass über das Skript auf das übergeordnete DOM, Cookies oder den Sitzungsspeicher zugegriffen wird.
  • Der Inhalt von Markdownzellen wird mit der dompurify-Bibliothek bereinigt. Hierdurch wird verhindert, dass schädliche Skripts, die über Markdownzellen ausgeführt werden, gerendert werden.
  • Die Bild-URL und Markdownlinks werden an einen Endpunkt gesendet, der sich im Besitz von Microsoft befindet und auf dem eine Überprüfung auf schädliche Werte erfolgt. Wenn ein schädlicher Wert erkannt wird, lehnt der Endpunkt die Anforderung ab.

Empfohlene Aktionen:

  • Vergewissern Sie sich, dass die Inhalte von Dateien vertrauenswürdig sind, bevor Sie diese in Studio hochladen. Sie müssen bestätigen, dass es sich um vertrauenswürdige Dateien handelt.
  • Bei der Auswahl eines Links zum Öffnen einer externen Anwendung wird eine Eingabeaufforderung angezeigt, in der Sie die Vertrauenswürdigkeit der Anwendung bestätigen müssen.

Azure Machine Learning-Computeinstanz

Auf einer Azure Machine Learning-Compute-Instanz werden Jupyter und JupyterLab gehostet. Bei beiden können über Code in Notebook-Zellen oder Codezeilen in einem Skript HTML-Dokumente oder -Fragmente ausgegeben werden, die schädlichen Code enthalten. Beim Rendern der Ausgabe kann der Code ausgeführt werden. Die gleichen Bedrohungen gelten, wenn Sie eine Instanz von RStudio und Posit Workbench (früher RStudio Workbench) verwenden, die auf einer Compute-Instanz gehostet wird.

Mögliche Bedrohungen:

  • Cross-Site-Scripting (XSS)
  • Websiteübergreifende Anforderungsfälschung (Cross-Site Request Forgery, CSRF)

Entschärfungsmöglichkeiten mit Azure Machine Learning:

  • Keine. Jupyter und JupyterLab sind Open-Source-Anwendungen, die auf der Compute-Instanz von Azure Machine Learning gehostet werden.

Empfohlene Aktionen:

  • Vergewissern Sie sich, dass die Inhalte von Dateien vertrauenswürdig sind, bevor Sie sie hochladen. Sie müssen bestätigen, dass es sich um vertrauenswürdige Dateien handelt.

Melden von Sicherheitsproblemen oder -bedenken

Azure Machine Learning unterliegt dem Microsoft Azure Bounty Program (Prämienprogramm). Weitere Informationen finden Sie unter https://www.microsoft.com/msrc/bounty-microsoft-azure.