セキュリティ対策を評価するサーバレスアプリ「Cloud Katana」をオープンソース化 Microsoft:HTTPリクエストで攻撃シミュレーションを実行可能
Microsoftは、クラウドとハイブリッドクラウド環境におけるセキュリティ対策を評価するサーバレスアプリケーション「Cloud Katana」をオープンソース化した。
Microsoftは2021年8月19日(米国時間)、クラウドとハイブリッドクラウド環境のセキュリティ対策を評価するサーバレスアプリケーション「Cloud Katana」をオープンソース化したと発表した。
MicrosoftによるとCloud Katanaは以下の9つの設計原則に基づいて設計開発されているという。
- サーバレス実行モデル
- Web APIとしてのコンピュートオンデマンド
- YAMLベースの攻撃定義
- オーケストレーションされたステートフル実行
- 安全な認証と認可
- マネージドIDの統合
- Azureリソースへのきめ細かなアクセス制御
- 特定のプログラミング言語に依存しないクライアント
- クラウドとオンプレミスに対応
それぞれの設計原則についてMicrosoftは次のように説明する。
サーバレス実行モデル
Cloud Katanaはサーバレスアプリケーションの開発基盤「Azure Functions」を使っており、インフラのスケーリング(拡張)やメンテナンスを気にせずに済むような設計になっている。
Microsoftは「Cloud Katanaはシンプルでスケーラブルなイベントドリブンソリューションを提供する」としており、Cloud Katanaはそれを実現するため、トリガーによる呼び出しに基づいて自動的にスケーリングする「実行ベースの料金モデル」を採用している。
Web APIとしてのコンピュートオンデマンド
HTTPリクエストをCloud KatanaのサーバレスWeb API送ることで、セキュリティ評価の攻撃シミュレーション(以下、シミュレーション)に必要なコードを関数として呼び出せる。
この機能のおかげで、シミュレーションに関する特定の情報と一緒にHTTPリクエストを送るだけでシミュレーションを実行できる。現時点では、全ての関数がPowerShellで書かれており、「MITRE ATT&CKフレームワーク」に従って分類されている。ただし、今後PowerShell以外で書かれた関数が登場する可能性もあるという。
YAMLベースの攻撃定義
シミュレーションは、さまざまなメタデータを集めるためにYAMLベースのフォーマットで文書化する。メタデータには、タイトル、説明、ATT&CKマッピング、予想される入力、出力、さらにはシミュレーションステップの実行前に適切な権限を取得するための前提条件などが含まれる。
これによって、文書化されたアクションのプログラミング処理や他の幾つかのリソースのセットアップを自動化できる。
オーケストレーションされたステートフル実行
Cloud KatanaはAzure Functionsの拡張機能「永続関数」(durable functions)を活用することで、多数のシミュレーションにわたって状態を処理し、信頼性を確保できる設計になっている。これによって「対象となるアクションが他のシミュレーションに影響するかもしれないシナリオ」であってもシミュレーションできるようになる。
安全な認証と認可
Cloud Katanaは「認証と認可のベストプラクティス」を強制してアプリケーションを保護する。
「Microsoft Identity Platform」などのAzure AD(Azure Active Directory)アプリケーションをIDプロバイダーとして使用し、クライアントを認証する。Azure ADアプリケーションは別途必要になるが、条件付きアクセスポリシー、多要素認証、シングルサインオン(SSO)といった認証機能を使えるようになる。OAuth認証を用いてAzure Functionで開発したアプリに接続できる。
シミュレーションの実行前にユーザーに認証を強制するだけでなく、「アプリケーションの役割の割り当て」でユーザーのアクセス制限も可能だ。
マネージドIDの統合
Azureでシミュレーションを実行する際、ユーザーに割り当てられた「マネージドID」を使ってAzure ADで保護されたリソースにアクセスできる。マネージドIDを使うことで機密情報のプロビジョニングやローテーションが不要になる。
Azureリソースへのきめ細かなアクセス制御
マネージドIDに割り当てられた権限でAzureリソースへのアクセス権を定義できる。Cloud Katanaは現時点ではAzureベースのシナリオのみをカバーしているため、主要なMicrosoft Graph APIセットそれぞれに関連付けられた権限を使ってAzureリソースへのアクセスを制御している。
特定のプログラミング言語に依存しないクライアント
Cloud Katanaは任意の言語を使ったシミュレーションが可能だ。その場合、Cloud Katanaを操作するためのクライアントがAzure ADの認証プロセスを処理できる必要がある。Microsoft Authenticationライブラリは、PowerShellでは「MSAL.PS」として、Pythonでは「MSAL」として提供されている。「Jupyter Notebooks」などの他のオープンソースプロジェクトを利用して、シミュレーションの実行状況を示すテンプレートを作成し、他のセキュリティ研究者と共有もできる。
クラウドとオンプレミスのシミュレーション
Microsoftは現在、クラウドだけでなくオンプレミスでもシミュレーションを実行するため、「Azure App Service」のハイブリッド接続の試験運用を行っている。ハイブリッド接続はリレーエージェントを使うことで、オンプレミスのサービスをパブリッククラウドでも安全に公開できる。リレーエージェントは、オンプレミスサーバとCloud Katana Azure Functionアプリの中間で動作する。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- クラウドやコンテナのセキュリティ評価でも使われている「Compliance As Code」の始め方
本連載では、グローバルスタンダードになっている「SCAP」(セキュリティ設定共通化手順)およびそれを基にシステム構成や脆弱性の検査を行うためのOSSツール「OpenSCAP」や、その周辺の技術、用語などを紹介する。今回は、OpenSCAP/SCAP Security Guideプロジェクトの発展形である「Compliance As Code」について実例を見ながら解説する。 - データ侵害のコストは過去最高の平均424万ドル、IBMがセキュリティ調査レポートを公開
日本IBMは、「2021年データ侵害のコストに関する調査レポート」を発表した。データ侵害インシデントにかかる1回の侵害当たりのコストは、前年よりも10%増え、平均424万ドルだった。 - セキュリティカンファレンス「Black Hat USA 2021」と「DEF CON 29」の主要プレゼンまとめ PortSwigger
PortSwiggerは、セキュリティカンファレンス「Black Hat USA 2021」と「DEF CON 29」の主要なプレゼンテーションをまとめたブログ記事を公開した。