クラウド環境
Azureコントロールプレーンを狙った脅威を「TrendAI Vision One™」によって検知
Azureコントロールプレーンに対する攻撃は、連鎖的な被害に発展します。「TrendAI Vision One™」はコントロールプレーンに適した検知・対応機能を備えており、脅威を迅速に阻止します。
- Azureのコントロールプレーンは権限昇格や設定変更、サービス停止に繋がる重要な管理機能を提供するため、攻撃者からは格好の標的と見なされます。
- Azureアクティビティログの「管理カテゴリ」に属するものは、管理操作に関する重要な履歴を保持します。そのため、権限悪用や回避行動の監視、高リスクな設定変更の検知において、必要不可欠な情報源となります。
- コントロールプレーンを狙った攻撃では多くの場合、権限昇格、各種リソースの外部露出、最終的なサービス障害に至る一連の活動が進行します。こうした広域的な攻撃チェーンに対処するには、継続的な監視と的確なガバナンス運用が求められます。
- セキュリティプラットフォーム「TrendAI Vision One™」は、Azureの管理イベントを取り込むことで、検知能力を強めています。これによってセキュリティチームでは、コントロールプレーンに対する脅威を迅速かつ的確に検知、対処することが可能です。
Azureコントロールプレーンの概要
クラウドサービス「Microsoft Azure」のコントロールプレーン(Control Plane)は、クラウドリソースに対する全ての管理操作を一元的に統括し、その認証、検証、実行を制御します。リソースの作成や変更、設定、削除といった操作は、すべてこのコントロールプレーンを通して処理されます。たとえば、ストレージアカウントの設定変更、ネットワークセキュリティグループ(NSG)のルール編集、仮想マシンの新規作成やサイズ変更、削除に際しては、まずコントロールプレーンがそのリクエストを受け取ります。続いて、内容を検査し、関連するガバナンスルールをチェックした上で、当該Azureリソースに対する変更操作を実行します。
Azureコントロールプレーンは、「Azure Resource Manager(ARM)」を通して実装されています。このARMは、あらゆる管理操作のリクエストを受け付ける共通の窓口として働きます。管理操作の発生元がAzure Portal、CLI、PowerShell、APIのいずれであるかは問わず、すべてARMによって処理されます。こうした仕組みにより、ポリシーの適用や監査ログの記録を一貫した形で制御できるようになります。また、コントロールプレーンに対するリクエストは、すべてAzureのグローバル管理エンドポイントに送信されます。
Azureコントロールプレーンは、各リクエストに対して以下の処理を行います。
- 認証:Microsoft Entra IDを用いてリクエスト送信者の認証を実施
- 認可:Azureのロールベースアクセス制御(RBAC)に基づき、対象操作の実行権限があるかをチェック
- ガバナンス適用:Azure Policy や管理ロックを通して組織のガバナンスルールを適用
- ルーティング:リクエストを適切なAzureリソースプロバイダに転送
- ログ記録:各操作や処理の内容をAzureアクティビティログに記録
上記のようにコントロールプレーンは、サブスクリプションとテナントの全体を通して全ての管理操作に仲介し、リソースのライフサイクルやアクセス制御、構成状態、ガバナンス適用を一元的に制御します。また、その際の詳細な記録を残します。
Azureコントロールプレーンのログ記録
コントロールプレーン経由でAzureリソースを操作すると、それがAzure Portal、CLI、PowerShell、REST API、SDKのいずれで行われたかを問わず、すべてログとして記録されます。コントロールプレーンのログは、サブスクリプションと管理スコープの全体を通して、「誰が、何を、いつ、どこから実行したのか」に関する可視性を確保します。これは、データトラフィックを保管するのではなく、構成や権限の変更、リソース状態の変化を記録するものであり、下記業務において不可欠な要素となります。
- セキュリティ監視
- インシデント調査
- コンプライアンス監査
- 脅威検知
Azureのアクティビティログは、さまざまな種類の管理操作やプラットフォームイベントを整理して記録できるように、以下のカテゴリに分類されています。
- 管理ログ:コントロールプレーンを通してAzureリソースに対して行われた「作成」、「更新」、「削除」の全操作を記録する。サブスクリプションとリソースグループの全体を対象とする。
- セキュリティログ:RBACのロール割り当てやアクセス制御の変更など、セキュリティに絡む管理操作を記録する。
- ポリシーログ:Azure Policyの評価や適用状況を追跡し、コンプライアンスの状態、拒否・監査イベントを記録する。
- サービスヘルスログ:Azureプラットフォームの障害や停止、計画的メンテナンスのイベントを記録する。
- リソースヘルスログ:各Azureリソースの可用性や正常性を追跡し、記録する。
- アラートログ:Azure Monitorアラートの発動時や解決時に生成されたイベントを記録する。
- 自動スケールログ:Azureサービスの自動スケールイン・スケールアウトの履歴を記録する。
Azureのアクティビティログを確認する経路は、複数存在します。例えば、Azure Monitorのアクティビティログ用スキーマ(管理カテゴリ)によって直接確認できる他、ストレージアカウントやイベントハブのエクスポートスキーマを通して間接的に確認することも可能です。アクセス方式によらず、ログ内のイベントは本質的に同一のものですが、スキーマが変化します。直接アクセスの場合はAzure Monitorのアクティビティログ用フォーマットが使用されるのに対し、ストレージアカウントやイベントハブからエクスポートした場合は、ストリーミングまたは外部取り込み用に調整されます。
アクティビティログのカテゴリの中でも、特に「管理ログ」は、Azureコントロールプレーンの可視性やセキュリティに大きく関与します。そこで以降では、管理ログの性質や重要性について、脅威検知の立ち位置に基づいて解説します。
Azure管理ログ
Azureの管理ログは、コントロールプレーンからAzureリソースを変更しようとする管理操作を全て記録します。これらのログ機能はサブスクリプション単位で動作し、設定変更に関わる監査上の証跡を一元的に提供します。そのため、セキュリティ監視やフォレンジック調査、コンプライアンス検証における重要な情報源となります。具体的には、以下のログを記録します。
- リソースの作成、変更、削除
- RBACロールの割り当てや権限変更
- ネットワーク、アイデンティティ、コンピューティング、ストレージ設定の変更
- セキュリティコントロールやサービス設定の変更
- ユーザやサービスプリンシパル、マネージドアイデンティティによる管理操作
先述の通り管理ログは、Azureコントロールプレーンに対する脅威を検知する上で、有力な情報源となります。サービスログやヘルス関連ログとは異なり、「誰が、どの変更を、どのスコープで行ったのか」を記録することで、実行者の意図や権限を把握できるようにします。
Azureコントロールプレーンを狙った脅威
Azureコントロールプレーンを狙った脅威の大半は、Azureリソースに対する不正な操作に集約されます。攻撃者は多くの場合、正規の管理機能を悪用してアクセル関連ロールの変更やセキュリティ設定の編集、監視の無効化、リソース削除などを行うことで、標的環境を自在に操ろうとします。こうした動きは、一見すると正当な管理操作のように映る点で厄介であり、見過ごせば、攻撃者によって権限昇格や防御回避を実行され、機密情報流出や基幹サービス障害などの被害に発展する恐れがあります。図1に、Azure環境の管理機能を悪用した攻撃の流れを示します。
はじめに攻撃者は、開発者アカウントやサービスプリンシパルなど、権限の低いAzureアイデンティティを侵害し、不正アクセスの起点として利用します。この後、すぐに破壊行為を実行するのではなく、まず標的環境内での足場をかため、既存の権限や設定不備を探って悪用し、影響力の拡大に向けた準備を進めます。こうした初期侵入時の綿密な活動が、後の権限昇格やセキュリティ回避、最終的なシステム破壊を支えることになります。
第1段階:権限昇格と権限昇格と権限の操作
標的環境で足場を構築した後、攻撃者はロール割り当ての特権を悪用することで、自身の権限昇格を図ります。例えば「ユーザアクセス管理(User Access Administrator)」などのロールを用いることで、自身でコントロール中のアイデンティティに「共同管理者(Contributor)」などの管理者向けロールを割り当てます。これにより、リソース構成やアクセス権限、ガバナンス設定を広範に編集することが可能となり、その範囲はサブスクリプションと管理スコープの全体におよびます。
第2段階:監視機能やセキュリティ制御の回避
攻撃者は、入手した管理者権限を行使することで、自身の活動に関する可視性を低下させ、ガバナンスコントロールを弱体化しようと試みます。例えば、診断設定やポリシー割り当て、コンプライアンス設定の改変操作、ログ送信先の無効化などが挙げられます。このように初期段階で監視機能を意図的に無力化することで、後の不正なリソース変更が検知されにくくなります。
第3段階:ネットワーク操作と外部露出
続いて攻撃者は、ネットワーク設定を変更し、内部のワークロードをインターネットに露出させます。また、あらゆるソースからのインバウンドの通信を許可するようにNSGルールを書き換え、インターネットから内部用の仮想マシンにアクセスできるようにします。さらに、ファイアウォールルールやルーティング設定、DNS設定を改変して通信フィルタリングを弱体化させることで、本来許可されていないアクセス経路を確保します。
第4段階:機密情報の流出
攻撃者は、ストレージアカウントの設定を変更し、外部アクセスや匿名アクセスによって機密情報を取得できるようにします。さらに、複製に関する設定やアクセス制御の設定を変更することで、データを組織外に移す可能性もあります。こうした活動により、情報流出のリスクが著しく高まります。
第5段階:永続化
標的システムを長期的に支配できるように、攻撃者はコントロールプレーンを操作して永続的なアクセス手段を確保します。例えば、タスクスケジュールの登録、追加アイデンティティの作成、自動実行手順(Runbook)の作成などがあり、不正な設定を削除されたとしても、容易に再設定できるようにします。また、ストレージアカウントのアクセスキーやシークレットを再生成することにより、本来の正規ユーザをブロックしながら、攻撃者自身のアクセス手段を存続させます。
第6段階:サービス破壊と復旧妨害
最終段階として攻撃者は、仮想マシンやバックアップ、復元ポイント、復旧サービスなどの基幹インフラコンポーネントを削除、改変することで、効果の最大化を試みます。復旧用オプションの無効化により、標的側ではシステムを迅速に再稼働させることが難しくなり、全体的な稼働停止時間が長期化します。
Azureコントロールプレーンを保護するためのベストプラクティス
Azureのコントロールプレーンを保護するためには、強力なアイデンティティガバナンスの運用、厳格なアクセス制御、管理操作に対する継続的な監視が求められます。攻撃者は正規の管理操作を悪用することが多いため、企業や組織では、過剰な権限設定を極力削減するとともに、可視性を高め、リソース全体にわたってセキュアな構成を適用することが重要です。
- アイデンティティやアクセスのガバナンス:多要素認証(MFA:Multi Factor Authentication)や条件付きアクセス、最小権限の原則に基づくRBAC設定を厳格に適用することで、侵害済みアカウントを通した権限昇格やリソース変更のリスクが低減されます。
- ログの保護とセキュリティ監視:アクティビティログやセキュリティ監視を一元的に保持することで、不審な管理操作を検知するとともに、可視性に関わる制御機能を堅持します。
- ポリシーに基づくガバナンス:「Azure Policy」や「Microsoft Defender for Cloud」の推奨事項に準拠することで、セキュアな構成を維持し、高リスクな変更を制限するとともに、広範囲にわたってコンプライアンスを維持します。
- ネットワークやリソースの露出制御:リソースに対する外部アクセスの制限、セキュアなネットワーク構成の適用、ファイアウォールやNSG、DNS設定の変更監視を徹底することにより、露出のリスクが低減されます。
- バックアップと復旧機能の保護:復旧サービスを保護し、ソフト削除などの保護機能を有効化し、さらに破壊的操作の監視を厳密に行うことで、ランサムウェア攻撃などが発生した際にも、事業継続性が保たれます。
セキュリティプラットフォーム「TrendAI Vision One™」によってAzureの環境を保護
TrendAI Vision One™は、Azureコントロールプレーンに対する不審、または不正な管理操作を的確に検知します。これにより、攻撃の予兆を迅速に特定、対処することが可能となります。
セットアップ
TrendAI Vision One™は、Azure管理ログ(Administrative Log)の取り込みと脅威検知をサポートしています。本機能を有効化する手順については、インストールガイドに記載されています。
Workbenchによる検知
先に述べた攻撃シナリオの各段階に対応する検知ルールを、以下に記載します。
- 第1段階:Privilege escalation and administrative control(権限昇格と管理操作)
- Azure IAM Over Privileged Contributor Role Assigned To A User(Azure IAM 過大な権限 ロール「共同管理者(Contributor)」の割り当て)
- Azure IAM Over Privileged Key Vault Administrator Role Assigned To A User(Azure IAM 過大な権限 ロール「キーボールト管理者(Key Vault Administrator)」の割り当て)
- Azure IAM Over Privileged Owner Role Assigned To A User(Azure IAM 過剰なオーナー(Owner)権限のユーザへの割り当て)
- Azure IAM Over Privileged RBAC Administrator Role Assigned To A User(Azure IAM 過大な権限 ロール「RBAC管理者(RBAC Administrator)」の割り当て)
- Azure IAM Over Privileged User Access Administrator Role Successfully Assigned To A User(Azure IAM 過大な権限 ロール「ユーザアクセス管理者(User Access Administrator)」の割り当て)
- Azure Privileged Elevate Access Operation Started(Azure 権限昇格の手順を開始)
- 第2段階:Monitoring and security control evasion(監視機能やセキュリティ制御の回避)
- Azure Activity Log Alert Filter Deleted(Azure アクティビティログアラート フィルタの削除)
- Azure Monitor Diagnostics Configuration Successfully Deleted(Azure Monitor 診断設定の削除に成功)
- Azure Network Watcher NSG Flow Logs Disable(Azure Network Watcher NSGフローログの無効化)
- Azure Security Solution Successfully Deleted(Azure セキュリティソリューションの削除に成功)
- Azure Event Hub Successfully Deleted(Azure イベントハブの削除に成功)
- Azure Firewall Policy Successfully Deleted(Azure ファイアウォール用ポリシーの削除に成功)
- Azure Network Watcher Successfully Deleted(Azure Network Watcherの削除に成功)
- 第3段階:Network traffic manipulation and exposure(ネットワーク操作と外部露出)
- Azure NSG Successfully Updated With Inbound Rule Allowing Any IP(Azure NSG インバウンドの通信ルールの更新 - 任意のIPを許可)
- Azure DNS Zone Modified or Deleted(Azure DNSゾーンの変更・削除)
- Azure Application Gateway Modified Or Deleted(Azure アプリケーションゲートウェイの変更・削除)
- Azure Application Security Group Modified Or Deleted(Azure アプリケーションセキュリティグループの変更・削除)
- Azure Firewall Policy Successfully Deleted(Azure ファイアウォール用ポリシーの削除に成功)
- 第4段階:Sensitive data exposure(機密情報の流出)
- Azure Storage Account Successful Creation Or Update With Public Access(外部アクセス可能なAzure ストレージアカウント 作成・更新成功)
- Azure Storage Account Successful Creation Or Update With Anonymous Access To Blob Containers(Blobコンテナへの匿名アクセス可能なAzure ストレージアカウント作成・更新)
- Azure Storage Account Cross-Tenant Object Replication Successfully Enabled(Azure ストレージアカウント テナントをまたいだオブジェクト複製の有効化に成功)
- 第5段階:Persistence(永続化)
- Azure Storage Account Key Successfully Regenerated(Azure ストレージアカウント キーの再生成に成功)
- Azure Automation Runbook Successful Creation Or Modification(Azure オートメーション 自動実行手順(Runbook)の作成・変更に成功)
- 第6段階:Service destruction and recovery prevention(サービス破壊と復旧妨害)
- Azure Virtual Machine Successfully Deleted(Azure 仮想マシンの削除に成功)
- Azure Virtual Machine Snapshot Successfully Deleted(Azure 仮想マシン用スナップショットの削除に成功)
- Azure Compute Restore Point Collections Successfully Deleted(Azure コンピューティング 復元ポイントコレクションの削除に成功)
- Azure Recovery Services Resource Deleted(Azure 復旧サービス リソースの削除に成功)
- Azure Resource Group Successfully Deleted(Azure リソースグループの削除に成功)
- Azure Resource Lock Successfully Deleted(Azure リソースロックの削除に成功)
- Azure Storage Account Successfully Deleted(Azure ストレージアカウントの削除に成功)
参考記事
Azure Control Plane Threat Detection With TrendAI Vision One™
By: Yash Verma (Senior Threat Researcher, TrendAI™ Research), Ranjitha Raj (Senior Product Manager, TrendAI™), Fernando Cardoso (Vice President of Product Management – AI and Cloud Security, TrendAI™), Sunil Bharti (Senior Threat Researcher, TrendAI™ Research)
翻訳:清水 浩平(Platform Marketing, Trend Micro™ Research)