エンジニアリング

DorothyとElasticセキュリティでOktaの可視性と検知機能をテスト

ロギングおよびアラート機能について組織内の関係者から尋ねられたときに、それらが予測どおりに機能していることを、自信を持って示すことができるセキュリティチームはあまりありません。組織は分散化が進んでいるため、アイデンティティおよびアクセス管理、ユーザーの生産性、ファイルストレージなどのユースケースではクラウドサービスに依存することが増えています。その一方で、攻撃者はクラウド環境での活動能力を高めています。セキュリティチームにとって、組織のデータを攻撃から保護するためには、それらのシステムの不正利用を監視できることが重要です。

Dorothyは、セキュリティチームがOktaシングルサインオン(SSO)環境の可視性、監視、検知機能をテストするのに役立つ無料のオープンツールです。Dorothyを使用したテスト方法をご確認ください。また、Elasticセキュリティ無料かつオープンな検知ルールを使用して、関連する疑わしい振る舞いがあった場合にアラートが生成されるようにする方法についても説明します。

Okta SSOとは

馴染みのない方のためにご説明すると、Okta SSOは、ユーザーが単一のユーザーアカウントを使用して組織内のさまざまなシステムやアプリケーションから認証されるようにする、クラウドベースのアイデンティティ管理ソリューションです。エンドユーザーは、10個以上ではなく1つのユーザー名とパスワードを覚えるだけで済むため、エンドユーザーのパスワードの衛生状態が悪化するリスクを軽減できるとともに、システム管理者は強力なパスワードポリシーを適用できます。さらに、多要素認証(MFA)ポリシーをOktaで設定することができ、攻撃者の侵入に対する防御力を高めることができます。多くの攻撃者は、ターゲットのネットワークまたはユーザーアカウントにMFAが適用されていることが分かると単純に、より簡単なターゲットを探そうとして離れていきます。

SSOソリューションは、便利なユーザーエクスペリエンスと組織のサイバーセキュリティリスクの軽減を実現しますが、このような一元化システムは多くのシステムやアプリケーションへの合い鍵のようなものを提供することになるため、往々にして攻撃者にとって魅力的なターゲットとなります。重要なのは、Okta環境の通常の振る舞いがどのようなものであるかをセキュリティチームが理解することです。そうすることで、より簡単に疑わしいアクティビティを特定することができます。

Dorothyのご紹介

Dorothyには、攻撃者がOkta環境での活動時に実行する可能性のあるアクション、セキュリティチームが監視、検知するべき振る舞い、およびアラートを受領するべき振る舞いをシミュレートする、25以上のモジュールがあります。すべてのモジュールは、関連するMITRE ATT&CK®戦術にマッピングされています。つまり、永続化、防御回避、探索、影響などです。

1-Dorothy-blog-listing-modules.png

図1 - Dorothyの起動とモジュールの一覧表示

Dorothyは、防御担当者がセキュリティの可視性と制御性をテストできるように作成されたものであり、Okta環境での初期アクセスの取得や権限の昇格のためのモジュールは提供しません。Dorothyを使用してアクションを実行するためには、1つ以上の管理ロールが割り当てられたユーザーにリンクされている有効なOkta APIトークンが必要です。

ユーザーは、コンテキストに基づいてヘルプを表示する使いやすいシェルインターフェースでメニューやモジュール間をナビゲーションしながら、侵入者のシナリオをシミュレーションできます。その他の機能には、それぞれのOkta環境への接続を管理する構成ポリシーや、Dorothyを使用して実行されたアクションの監査証跡を提供する詳細なロギング機能(イベントをElasticsearchにインデックスするオプション付き)などがあります。

Dorothyを使用してOkta環境でアクションを実行

このセクションでは、DorothyのいくつかのモジュールをOkta環境で実行する方法を説明します。下記の図2は、Elasticセキュリティユーザーの典型的なワークフローを示しています。この記事の説明をお読みいただければ、自信を持って、DorothyのGitHubレポジトリにアクセスし、プロジェクトのWikiにある「Getting Started」に記載された手順に従って進めることができます。

2-Dorothy-blog-example_workflow.png

図2 - Dorothyを使用してOkta環境でアクションを実行する際のワークフロー例

whoamiとは

攻撃者の気持ちになって、Okta環境での活動中にどのようなアクションを実行するか考えてみましょう。最初の拠点を確立した攻撃者としてまず知りたいのは、自分がAPIトークンを持っているユーザーについてです。そのような攻撃者のアクションを、Dorothyのwhoamiコマンドを使用してシミュレーションしてみましょう。関連付けられているユーザーログインID、最終ログイン時刻、パスワードの最終更新日を見ることができます。

これで、制御可能なユーザーアカウントに関してさらに理解を深めることができました。次の作業を行う前に、Dorothyのモジュールを一覧表示し、ヘルプメニューを確認します。

図3 - Dorothyのwhoamiとlist-modulesコマンドの実行

探索

Dorothyには、Okta環境に関して攻撃者が得る可能性のある知識をシミュレーションするために使用できる探索モジュールがいくつかあります。攻撃者は往々にして、初期アクセスを達成した後、環境の詳細を確認します。その詳細情報は、次のステップを計画する前に方向付けを行うのに不可欠です。

以下の情報を収集して、Okta環境についての知識を深めてみましょう。

  • ユーザー - 名前、ログインID、メールアドレス、パスワードリカバリのための質問、各ユーザーのステータスのリストは、どのアカウントの支配権を握るか、変更するか、または検知を回避するためにそのまま放置しておくかを選択する際に便利です
  • ポリシー - Oktaポリシーは、パスワードの複雑さやMFA要件、ユーザーが使用を許可されたデバイスなど、セキュリティ要素の制御に使用されます。この知識は、ターゲットのセキュリティ設定の何らかのコンポーネントを脆弱化させるときに役立ちます
  • ゾーン - ネットワークゾーンは、Okta環境のセキュリティ境界線の定義に使用できます。ポリシーと同様、この情報は環境の構成を知り、情報に基づいて意思決定を行うのに役立ちます。それらを基に、どのトラフィックを許可またはブロックするかについて変更を加えることができるようになります

最後に、find-adminsモジュールを実行して、各Oktaユーザーのロールとアイデンティティを列挙し、どのユーザーに1つ以上の管理者ロールが割り当てられているかを確認します。

図4 - Dorothyの「探索」モジュールを実行してOkta環境に関する知識を取得

情報収集タスクに役立つその他の探索モジュールには、ユーザー名とパスワードだけを使用して認証している可能性のあるユーザーを見つけることができるfind-users-without-mfaや、 1つ以上の管理者ロールが割り当てられているユーザーグループを特定できるfind-admin-groupsなどがあります。

永続化

攻撃者がターゲット環境へのアクセスを取得すると、永続化を確立できる機会を模索する場合があります。永続化できれば、攻撃者は最初に確立した拠点を失った場合でもアクセスを維持できます。攻撃者がアクセスを失う可能性のある最も一般的な例は、セキュリティチームが攻撃者の存在を検知してその攻撃者が悪用しているユーザーアカウントを無効化した場合、またはネットワーク境界でその通信をブロックした場合です。

攻撃者が複数の永続化メカニズムを確立しているということは、攻撃者にとっての経路の1つがブロックまたは遮断されても引き続きその目的を継続できるということです。この例では、Dorothyのcreate-userおよびcreate-admin-userモジュールを使用してOktaユーザーを作成し、その新しいユーザーに管理者ロールを割り当てます。次に、別のOktaユーザー用のリカバリのための質問を作成し、そのユーザーのパスワードリセットプロセスを実行できるようにして、永続化のもう1つの方法としてそのアカウントの制御を確保します。

図5 - Oktaユーザーアカウントを作成および変更して永続化を確立

Dorothyにはその他にも、ユーザーが登録している認証要素を削除するreset-factorsや、ユーザーのパスワードをリセットするための1回限りのリンクを生成するreset-passwordなど、攻撃者が実行する可能性のある手順を理解するのに役立つ永続化モジュールがあります。

防御回避

攻撃者は、そのミッション全体で検知を回避するために、防御回避テクニックを実行しようと試みます。たとえば、不正なアクションについてセキュリティチームが認識できないように、セキュリティログを無効化しようと試みます。

ここまでで、環境についての知識を得て、いくつかの永続化の形を構成しました。次に、Dorothyのchange-policy-stateおよびchange-zone-stateモジュールを実行して、「ターゲット」のセキュリティ制御を無力化します。

図6 - Oktaポリシーとネットワークゾーンオブジェクトを無効化

防御回避に関するその他のモジュールでは、アプリケーションや個々のポリシールールなど、その他のOktaオブジェクトを有効化、無効化、変更できます。

ここまでで、架空の攻撃シナリオは終了です。Dorothyによって可能になるその他の内容について関心をお持ちの場合は、GitHubレポジトリをご覧ください。

Elasticセキュリティで疑わしい振る舞いを検知

このセクションでは、チームが疑わしい振る舞いを監視し、アラートを受領できるようにするために役立つElasticの無料の検知ルールに、Oktaのシステムログがどのように貢献できるかについて見ていきます。

Oktaのシステムログは、組織の環境で観察されたアクティビティの監査証跡を提供します。これには、ユーザーによるログインまたはパスワードの変更、管理者による構成の変更などのアクティビティが含まれます。このデータソースは、セキュリティの監視、調査、コンプライアンス、対応アクティビティに関してきわめて有用です。

Fleetを使用してOktaのシステムログを投入

Fleetは、Okta、AWS、Azure、Google Cloud Platform、Google Workspaceなど、人気のサービスおよびプラットフォームの追加および統合管理が可能なWebベースのUIをKibanaに提供します。FleetのOkta統合機能では、Oktaのシステムログイベントの投入と正規化が簡単にできます。

7-Dorothy-blog-reviewing-fleet.png

図7 - KibanaでのFleetのOkta統合機能のレビュー

すでにBeatsを使用しているチームは、Okta Filebeatモジュールも利用できます。

Elasticセキュリティの無料の検知ルールで疑わしい振る舞いを検知

Elasticセキュリティプロテクションチームは、エンドポイント、クラウド、およびネットワークプラットフォームでの検知および防止機能を開発するために、攻撃者のノウハウを調査しています。Elasticの検知ルールは無料であり、広範なセキュリティコミュニティとともに開発されたオープンなルールです。

ElasticのOktaルールは、 Elastic Common Schema(ECS)に正規化されたインデックス済みシステムログイベントを使用して、関連する疑わしい振る舞いに関するアラートをセキュリティチームに提示します。

下記の図8は、Dorothyを使用して、攻撃者がOkta環境での活動中に実行する可能性のあるアクションをシミュレーションした後のElasticセキュリティでのアラート数を示しています。

8-Dorothy-blog-reviewing-alerts.png

図8 - Elasticセキュリティでのオープンなアラートのレビュー

煩わしい誤検知についてはどうでしょうか?Elasticセキュリティのルールに例外を追加して、日々の予測可能な振る舞いを除外することは簡単にできます。この機能には、例外にマッチするすべてのアラートをクローズするオプションがあり、時間を節約できます。

9-Dorothy-blog-adding_exception.png

図 9 - ElasticセキュリティのOktaルールに例外を追加

Dorothyでクラウドのカバー範囲を測定

Oktaおよびその他のアイデンティティ管理ソリューションは頻繁に攻撃者のターゲットとなっていますが、監視が不十分な場合があります。Elasticは、セキュリティチームがOkta環境内での攻撃者の活動方法について理解できるようにするとともに、Elasticの無料でオープンな検知ルールの可視性と有効性をテストできるようにするためにDorothyを作成しました。

Dorothyの使用を開始する方法については、プロジェクトのWikiをご覧ください。まだElasticセキュリティを使用していない場合は、今すぐ無料のクラウドトライアルに登録してElasticの無料の検知ルールをご確認ください。