サイバーセキュリティ研究者によって、Azure Machine Learning(AML)に影響を与える重大な特権昇格の脆弱性が発見されました。
この脆弱性により、ストレージアカウントへのアクセス権しか持たない攻撃者が、AMLパイプライン内で任意のコードを実行できるようになり、デフォルト設定下ではサブスクリプション全体の乗っ取りにつながる可能性があります。
インボーカースクリプトへのアクセスに起因する脆弱性
クラウドセキュリティ企業Orcaによって特定されたこの問題は、AMLがインボーカースクリプト(MLコンポーネントをオーケストレーションするPythonファイル)を自動的に作成されるストレージアカウント内に保存・実行する方法に起因しています。これらのスクリプトが改ざんされると、AMLコンピュートインスタンスの権限で実行されますが、この権限はしばしば広範または非常に高い特権を持っています。
Orcaは実証実験(POC)で、基本的なストレージ書き込み権限を持つ攻撃者が以下のことを行えることを示しました:
-
インボーカースクリプトを置き換えて悪意のあるコードを注入する
-
Azure Key Vaultからシークレットを抽出する
-
AMLコンピュートインスタンスのマネージドIDを利用して権限を昇格させる
-
インスタンス作成者の役割(Azureサブスクリプションの「所有者」権限を含む)を引き受ける
この攻撃経路が特に懸念されるのは、SSO(シングルサインオン)がデフォルトで有効になっており、コンピュートインスタンスが作成者レベルのアクセス権を継承するためです。
Microsoftの対応と主な緩和策
MicrosoftはOrcaの指摘を認めましたが、この挙動は「設計通り」であり、ストレージアカウントへのアクセスはコンピュートインスタンス自体へのアクセスと同等であると説明しています。
しかし、同社はその後ドキュメントを更新し、重要な変更を導入しました。AMLは現在、ジョブを実行する際にストレージからリアルタイムでスクリプトを読み込むのではなく、コンポーネントコードのスナップショットを使用するようになりました。
Azureの脆弱性についてさらに読む:Microsoft Azure MFAの脆弱性により簡単にアクセスがバイパス可能に
Microsoftはこれをセキュリティ上の欠陥とは見なしていませんが、Orcaはこのエクスプロイトがデフォルトかつサポートされた設定で動作したことを強調しています。ユーザーがストレージアクセス、SSO、マネージドIDを明示的に再設定しない限り、環境は依然としてリスクにさらされていると警告しています。
悪用を防ぐため、AMLユーザーには以下の対策が推奨されています:
-
AMLストレージアカウントへの書き込みアクセスを制限する
-
可能な場合はコンピュートインスタンスでSSOを無効にする
-
最小限の権限を持つシステム割り当てIDを使用する
-
重要なスクリプトに対してイミュータビリティ(不変性)とバージョニングを強制する
-
インボーカースクリプトのチェックサム検証を実装する
Orcaは、AMLのセキュリティモデルは理論上は妥当であるものの、実際には厳格なアクセス制御がなければ組織が危険にさらされると結論付けています。
機械学習パイプラインを保護するためには、定期的な設定レビューと最小権限の原則の遵守が不可欠です。
画像クレジット:sdx15 / Shutterstock.com
翻訳元: https://www.infosecurity-magazine.com/news/privilege-escalation-flaw-azure-ml/