セキュリティ対策を評価するサーバレスアプリ「Cloud Katana」をオープンソース化 MicrosoftHTTPリクエストで攻撃シミュレーションを実行可能

Microsoftは、クラウドとハイブリッドクラウド環境におけるセキュリティ対策を評価するサーバレスアプリケーション「Cloud Katana」をオープンソース化した。

» 2021年08月27日 13時07分 公開
[@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 Microsoftは2021年8月19日(米国時間)、クラウドとハイブリッドクラウド環境のセキュリティ対策を評価するサーバレスアプリケーション「Cloud Katana」をオープンソース化したと発表した。

画像 Cloud Katanaの設計原則(出典:Microsoft

 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送ることで、セキュリティ評価の攻撃シミュレーション(以下、シミュレーション)に必要なコードを関数として呼び出せる。

画像 サーバレスWeb APIによるコンピュートオンデマンド。シミュレーションを行う関数はATT&CKフレームワークで分類されている(出典:Microsoft

 この機能のおかげで、シミュレーションに関する特定の情報と一緒にHTTPリクエストを送るだけでシミュレーションを実行できる。現時点では、全ての関数がPowerShellで書かれており、「MITRE ATT&CKフレームワーク」に従って分類されている。ただし、今後PowerShell以外で書かれた関数が登場する可能性もあるという。

YAMLベースの攻撃定義

 シミュレーションは、さまざまなメタデータを集めるためにYAMLベースのフォーマットで文書化する。メタデータには、タイトル、説明、ATT&CKマッピング、予想される入力、出力、さらにはシミュレーションステップの実行前に適切な権限を取得するための前提条件などが含まれる。

画像 YAMLベースのドキュメントのサンプル(出典:Microsoft

 これによって、文書化されたアクションのプログラミング処理や他の幾つかのリソースのセットアップを自動化できる。

オーケストレーションされたステートフル実行

 Cloud KatanaはAzure Functionsの拡張機能「永続関数」(durable functions)を活用することで、多数のシミュレーションにわたって状態を処理し、信頼性を確保できる設計になっている。これによって「対象となるアクションが他のシミュレーションに影響するかもしれないシナリオ」であってもシミュレーションできるようになる。

安全な認証と認可

 Cloud Katanaは「認証と認可のベストプラクティス」を強制してアプリケーションを保護する。

 「Microsoft Identity Platform」などのAzure AD(Azure Active Directory)アプリケーションをIDプロバイダーとして使用し、クライアントを認証する。Azure ADアプリケーションは別途必要になるが、条件付きアクセスポリシー、多要素認証、シングルサインオン(SSO)といった認証機能を使えるようになる。OAuth認証を用いてAzure Functionで開発したアプリに接続できる。

画像 Cloud Katanaで使用される、OAuthのデバイス認可付与フロー(出典:Microsoft

 シミュレーションの実行前にユーザーに認証を強制するだけでなく、「アプリケーションの役割の割り当て」でユーザーのアクセス制限も可能だ。

マネージド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アプリの中間で動作する。

画像 Cloud Katana関数アプリからオンプレミスリソースでシミュレーションを実行(出典:Microsoft

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。