Service FabricにおけるLinux上のコンテナ化されたワークロードからの特権昇格について
本ブログは、Service Fabric Privilege Escalation from Containerized Workloads on Linuxの抄訳版です。最新の情報は原文を参照してください。
協調的な脆弱性の公開(Coordinated Vulnerability Disclosure: CVD)に基づき、クラウドセキュリティベンダーのPalo Alto Networksは、Service Fabric(SF)Linuxクラスターに影響を与える問題CVE-2022-30137をマイクロソフトに通知しました。この脆弱性により、侵害されたコンテナにアクセスできる悪意のあるアクターは、特権を昇格し、リソースのホストSFノードとクラスター全体を制御できます。
このバグは両方のオペレーティングシステム(OS)プラットフォームに存在しますが、Linuxでのみ悪用が可能です。Windowsは徹底的に検証され、この攻撃に対して脆弱ではないことを確認しました。この特権昇格の問題に対する修正プログラムは、2022年5月26日に利用可能になり、自動更新を有効しているすべてのお客様に適用されました。
お客様への影響
自動更新を有効にしていないお客様は、Linuxクラスターを最新のSFリリースに更新する必要があります。リリースノートはこちらからご覧いただけます。Linuxクラスターが自動的に更新されるお客様は、これ以上のアクションを実行する必要はありません。
また、SF Windowsクラスターを実行している場合は、この問題の影響を受けません。ただし、常に最新のリリースに更新することをお勧めします。
Microsoftでは、ホストクラスターへのアクセスが許可されているコンテナー化されたすべてのワークロード(LinuxとWindowsの両方)を引き続き確認することをお勧めします。デフォルトでは、SFクラスターはシングルテナント環境であるため、アプリケーション間の分離はありません。分離の作成は可能であり、信頼できないコードのホストに関する追加のガイダンスについては、Azure Service Fabricのセキュリティのベストプラクティスのページを参照してください。
マイクロソフトの緩和策
この問題がマイクロソフトに報告されてから、次の手順を実行して問題を調査および緩和しました。
- 2022年5月24日 – SFランタイムの特権昇格のバグを修正し、自動更新を有効にしているお客様に更新を開始しました。具体的には、SF診断コレクションエージェント(DCA)が変更され、コンテナーのログフォルダーに書き込まれたユーザー生成ファイルが使用されないようにしました。
- 2022年6月9日 – 信頼できないコードをホストした場合や、コンテナが侵害された場合の影響に関する詳細について、public security guidanceを更新しました。
- 2022年6月14日 – この問題に対してCVE-2022-30137が公開され、自動更新を活用して修正プログラムをお客様に展開しました。自動更新を有効にしていないお客様は、Azureサービス正常性を通じてポータルにて通知を受け取りました。
技術的な詳細
この脆弱性に対する攻撃を成功させるには、以下の手順が必要です。
- ステップ1: 攻撃者は、Linux SFクラスターの所有者によってデプロイされたコンテナ化されたワークロードを侵害する必要があります。
- ステップ2: コンテナ内で実行されている悪意のあるコードは、DCAによって読み取られたインデックスファイルをシンボリックリンクで置き換えることができます。
追加で攻撃することで、攻撃者はSFノードをホストするマシンの制御を取得する可能性があります。
仕様上、SFノードをホストするマシン上のrootアクセスは、SFクラスターのセキュリティバウンダリとは見なされません。ノード上で最も高い特権ロールは、同じクラスター内の任意の場所で同等の特権を持ちます。
Palo Alto Networksは、この問題に関するブログを掲載しました。Palo Alto Networksによって報告された問題を調査する機会に感謝し、バグ報奨金プログラムの条件の下で安全なセキュリティ研究を実践してくれたことに感謝します。Microsoftバグ報奨金プログラムおよびプログラムの利用規約の詳細については、これらのリンクを参照してください。
その他の参考資料
- マイクロソフトが公開したCVE-2022-30137
- Azure Service Fabricリリースノート