サイバーセキュリティ評価により、Azure Active Directory(Azure AD)に関する重大な脆弱性が明らかになりました。
ResecurityのHUNTERチームは、アプリケーションの認証情報、特にClientIdとClientSecretが、パブリックにアクセス可能なappsettings.jsonファイル内に漏洩していることを発見しました。
侵害への直接的な経路
これらの認証情報により、MicrosoftのOAuth 2.0エンドポイントへの直接認証が可能となります。実際には、攻撃者が信頼されたアプリケーションになりすまし、Microsoft 365の機密リソースへアクセスできることを意味します。
侵害されたアプリに付与された権限によっては、攻撃者は以下のことが可能です:
-
SharePoint、OneDrive、Exchange Onlineからファイルやメールを取得する
-
Azure AD内のユーザー、グループ、ディレクトリロールを列挙する
-
Microsoft Graph APIを悪用して権限を昇格させたり、永続化を維持する
-
組織のテナント内に悪意のあるアプリケーションを展開する
このファイルがパブリックに公開されていたため、認証情報は自動化されたボットや高度な攻撃者の両方によって収集される可能性がありました。
なぜ設定ミスが漏洩につながるのか
研究者たちは、この問題の原因を一般的なクラウド設定ミスにあるとしています。
開発者はしばしば、appsettings.jsonのような設定ファイルに秘密情報を直接埋め込んでしまいます。これらのファイルが適切な制限なしに本番環境へ誤って配置されることで、リスクが生じます。
問題の多くは以下に起因します:
-
静的ファイルを公開してしまうサーバーの設定ミス
-
設定データを保護しない不適切なデプロイ手法
-
Azure Key Vaultのような秘密情報管理ツールの未使用
-
セキュリティテストやコードレビューの不足
-
実際の保護機構ではなく、難読化に頼ること
クラウド設定ミスについてさらに読む:クラウド設定ミスの理解:原因、修正、予防
ASP.NET Coreアプリケーションでは、appsettings.jsonは中心的な設定ファイルです。通常、データベース接続文字列、APIキー、クラウドサービスの認証情報などが保存されています。Azure ADの詳細(ClientId、TenantId、ClientSecretなど)が含まれている場合、このファイルはアプリケーションの動作だけでなく、攻撃者が侵入するための設計図にもなり得ます。
対策と得られた教訓
Resecurityの研究者は、このような形で秘密情報を公開することは、単なる見落としではなく、直接的な攻撃経路であると警告しています。
「簡単に言えば、Azure ADの秘密情報を含むappsettings.jsonを公開することは、単なる設定ミスではなく、攻撃者にクラウドの鍵を直接渡す攻撃経路です」とチームは説明しています。
「これは単なる設定ミスではなく、クラウド侵害が起こるのを待っている状態です。組織は、クラウドセキュリティは最も脆弱な公開ファイルの強度にしかならないことを認識すべきです。」
対策には即時の対応が必要です。管理者には、設定ファイルへのパブリックアクセス制限、ハードコーディングされた秘密情報の削除、漏洩した認証情報のローテーション、最小権限アクセスの徹底、異常な認証情報使用の監視が推奨されます。
画像クレジット:jackpress / Shutterstock.com
翻訳元: https://www.infosecurity-magazine.com/news/azure-ad-credentials-exposed/