セキュリティで保護されたコードのベスト プラクティス
Azure Machine Learning では、あらゆるソースのファイルとコンテンツを Azure にアップロードすることができます。 読み込んだ Jupyter ノートブックやスクリプトの内容によって、セッションのデータが読み取られたり、Azure にある組織内の機密データがアクセスされたり、ユーザーに代わって悪質なプロセスが実行されたりする可能性があります。
重要
実行するノートブックやスクリプトは、信頼できるソースのものに限定してください。 たとえば、皆さんやそのセキュリティ チームによって確認されたノートブックまたはスクリプトが該当します。
潜在的な脅威
Azure Machine Learning を使用した開発には多くの場合、Web ベースの開発環境 (Notebooks や Azure Machine Learning スタジオなど) が関係します。 Web ベースの開発環境を使用する際に考えられる脅威として、次のようなものがあります。
-
- DOM インジェクション: このタイプの攻撃では、ブラウザーに表示される UI が改変される可能性があります。 たとえば、Jupyter Notebook で実行ボタンを押したときの動作が変更されます。
- アクセス トークンまたは Cookie: XSS 攻撃は、ローカル記憶域やブラウザーの Cookie にアクセスすることもできます。 Microsoft Entra の認証トークンはローカル記憶域に格納されます。 XSS 攻撃は、このトークンを使用することにより、皆さんに代わって API 呼び出しを実行した後、外部システムや API にデータを送信します。
クロスサイト リクエスト フォージェリ (CSRF): 画像やリンクの URL が、この攻撃によって、悪意のあるスクリプトや API の URL に置き換えられることがあります。 画像が読み込まれるか、リンクがクリックされると、その URL に対する呼び出しが実行されます。
Azure Machine Learning スタジオ ノートブック
Azure Machine Learning Studio は、ブラウザーでホストされるノートブック環境を備えています。 ノートブックのセルから、悪質なコードを含んだ HTML ドキュメントや HTML フラグメントが出力される可能性があります。 出力がレンダリングされたときにそのコードが実行されるおそれがあります。
考えられる脅威:
- クロスサイト スクリプティング (XSS)
- クロスサイト リクエスト フォージェリ (CSRF)
Azure Machine Learning によって提供されている軽減策:
- コード セルの出力は、iframe 内にサンドボックス化されています。 iframe によってスクリプトは、親 DOM や Cookie、セッション ストレージにはアクセスできないようになっています。
- Markdown セルの内容は、dompurify ライブラリを使用して消去されます。 そうすることで、マークダウン セルがレンダリングされて悪質なスクリプトが実行されるのを防止しています。
- 画像の URL と マークダウン リンクは、Microsoft が所有するエンドポイントに送信され、そこで悪質な値がないかチェックされます。 悪質な値が検出された場合、その要求はエンドポイントによって拒否されます。
推奨アクション:
- スタジオにアップロードするファイルは、事前にその内容が信頼できることを確認します。 信頼できるファイルをアップロードしていることを確認する必要があります。
- 外部アプリケーションを開くリンクを選択すると、そのアプリケーションを信頼するように求められます。
Azure Machine Learning コンピューティング インスタンス
Azure Machine Learning コンピューティング インスタンスは、Jupyter と JupyterLab をホストしています。 そのどちらかを使用しているとき、ノートブック セル内のコードによって、悪意のあるコードを含む HTML ドキュメントや HTML フラグメントが出力される可能性があります。 出力がレンダリングされたときにそのコードが実行されるおそれがあります。 コンピューティング インスタンスでホストされている RStudio や Posit Workbench (旧称 RStudio Workbench) を使用する場合も、同じ脅威が当てはまります。
考えられる脅威:
- クロスサイト スクリプティング (XSS)
- クロスサイト リクエスト フォージェリ (CSRF)
Azure Machine Learning によって提供されている軽減策:
- なし。 Jupyter と JupyterLab は、Azure Machine Learning コンピューティング インスタンスでホストされるオープンソース アプリケーションです。
推奨アクション:
- アップロードする前に、ファイルの内容が信頼できることを確認します。 信頼できるファイルをアップロードしていることを確認する必要があります。
セキュリティの問題や懸念事項をレポートする
Azure Machine Learning は、Microsoft Azure 報奨金プログラムの対象となっています。 詳細については、https://www.microsoft.com/msrc/bounty-microsoft-azure を参照してください。