共用方式為


安全程序代碼的最佳做法

在 Azure Machine Learning 中,您可以將檔案和內容從任何來源上傳至 Azure。 Jupyter 筆記本或腳本內的內容,您可以載入這些筆記本或腳本,從您的會話讀取數據、存取 Azure 組織內的敏感數據,或代表您執行惡意程式。

重要

只執行來自信任來源的筆記本或指令碼。 例如,您或您的安全性小組已檢閱筆記本或指令碼。

潛在威脅

使用 Azure 開發 機器學習 通常牽涉到 Web 型開發環境,例如筆記本或 Azure Machine Learning 工作室。 當您使用以 Web 為基礎的開發環境時,可能的威脅如下:

  • 跨網站指令碼 (XSS)

    • DOM 插入:這種類型的攻擊可修改瀏覽器中顯示的 UI。 例如,藉由變更執行按鈕在 Jupyter Notebook 中的運作方式。
    • 存取令牌或 Cookie:XSS 攻擊也可以存取本機記憶體和瀏覽器 Cookie。 您的 Microsoft Entra 驗證權杖會儲存在本機儲存體中。 XSS 攻擊可以使用此權杖來代表您進行 API 呼叫,然後將資料傳送至外部系統或 API。
  • 跨網站偽造要求 (CSRF):此攻擊可能會以惡意腳本或 API 的 URL 取代影像的 URL 或連結。 當載入影像或按一下連結時,就會對 URL 進行呼叫。

Azure Machine Learning 工作室筆記本

Azure Machine Learning 工作室會在瀏覽器中提供託管的筆記本體驗。 筆記本中的儲存格可以輸出包含惡意程式碼的 HTML 檔案或片段。 轉譯輸出時,可以執行程式碼。

可能的威脅

  • 跨網站指令碼 (XSS)
  • 跨網站偽造請求(CSRF)

Azure Machine Learning 所提供的緩和措施

  • 程式碼儲存格輸出是 iframe 中的沙箱。 iframe 可以防止指令碼存取父 DOM、Cookie 或工作階段儲存體。
  • Markdown 儲存格內容會使用 dompurify 程式庫來清理。 這會阻止惡意指令碼與 Markdown 儲存格一起執行。
  • 影像 URLMarkdown 連結 會傳送至 Microsoft 擁有的端點,以檢查是否有惡意值。 如果偵測到惡意值,端點就會拒絕要求。

建議的動作

  • 在上傳至 Studio 之前,請確認您信任檔案的內容。 您必須確認您正在上傳信任的檔案。
  • 選取連結以開啟外部應用程式時,系統會提示您信任應用程式。

Azure Machine Learning 計算執行個體

Azure 機器學習 計算實例裝載 Jupyter 和 JupyterLab。 當您使用任一項時,筆記本數據格內的程式碼可以輸出 HTML 檔或包含惡意代碼的片段。 轉譯輸出時,可以執行程式碼。 當您使用裝載在計算實例上的 RStudio 或 Posit Workbench(先前稱為 RStudio Workbench)時,會套用相同的威脅。

可能的威脅

  • 跨網站指令碼 (XSS)
  • 跨網站偽造請求(CSRF)

Azure Machine Learning 所提供的緩和措施

  • 無。 Jupyter 和 JupyterLab 是裝載在 Azure 機器學習 計算實例上的開放原始碼應用程式。

建議的動作

  • 在上傳之前,請確認您信任檔案的內容。 您必須確認您正在上傳信任的檔案。

報告安全性問題或疑慮

Azure Machine Learning 符合 Microsoft Azure 錯誤懸賞計劃資格。 如需詳細資訊,請瀏覽 https://www.microsoft.com/msrc/bounty-microsoft-azure