【CrowdStrike&Okta】CrowdStrike ZTA × Oktaで実現する端末リスクに応じた動的アクセス制御(Windows編)
はじめに
こんにちは、 ネクストモード株式会社 の sobar です。
近年、ゼロトラストネットワークアクセスの実装において「認証時のデバイスのセキュリティ状態(ポスチャ)」の検証が不可欠となっています。本記事では、CrowdStrike Falconが端末の安全性(OS設定や脆弱性等)を数値化したZTA(Zero Trust Assessment)スコアをOkta Identity Engine(OIE)に連携し、スコアが低い(リスクが高い)Windows端末からのアクセスを自動的に制限・ブロックする仕組みの構築手順を解説します。
CrowdStrike Falcon のZTAについては以下のブログもご参照ください
全体像と動作イメージ
スコア低下時のアクセスブロックフローは以下の通りです。
- ①スコアの低下と記録:端末のセキュリティ侵害やOSの設定変更などをCrowdStrike Falconエージェントが検知し、ZTAスコアが低下(例:100 → 35)します。この最新スコアは端末内のファイル(
data.zta)に即座に書き出されます。 - ②スコアの読み取り:ユーザーが業務アプリ(Webサービス)へアクセスを試み、Oktaの認証がトリガーされると、端末上のOkta Verifyが
data.ztaファイルから最新のZTAスコアを読み取ります。 - ③スコアの送信:Okta Verifyが、取得したZTAスコア(35)をOktaクラウドへ送信します。
- ④ポリシー評価とアクセスブロック:Oktaの認証ポリシーでZTAスコアが評価されます。要件(例:スコア60以上)を満たしていないため、Oktaは認証を拒否し、結果としてWebサービスへのアクセスがブロックされます。
_22.png?width=792&height=435&name=crowdstrike_dynamic-access-control-based-on-device-risk-with-crowdstrike-zta-and-okta-(windows-edition)_22.png)
(※ZTAスコアによるWebアクセス制御イメージ)
前提条件
構築を始める前に、以下の条件(Windows端末の条件)を満たしているか確認します。
- Okta:Okta Identity Engine(OIE)環境であること / Okta FastPassが有効であること
- Okta Verify:Windows向け Okta Verify v3.x 以降が端末にインストールされていること
- CrowdStrike:
- CrowdStrike Falcon Agent(v6.14以降推奨)がインストールされていること
- CrowdStrikeテナントで以下が有効化されていること(※こちらはご利用されているライセンスをサポートしている代理店等にご確認ください。)
- CrowdStrike Falcon Zero Trust Assessment 機能の有効化:スコアを計算してファイルに書き出す基本機能
※[C:\ProgramData\CrowdStrike\ZeroTrustAssessment]に「data.zta ファイル 」が存在し、データが書き込まれている必要があります。ファイルが存在し、データが書き込まれていない場合もCrowdStrike Falcon Zero Trust Assessment 機能の有効化が実施されていないことが原因の場合がありますので本機能が有効化されているかをご確認ください。_12.png?width=734&height=208&name=crowdstrike_dynamic-access-control-based-on-device-risk-with-crowdstrike-zta-and-okta-(windows-edition)_12.png)
- Falcon センサーのZTAキャッシュ機能の有効化:こちらがオフだと端末を再起動した直後にクラウドから新しいスコアが降ってくるまでの間、ローカルのスコアファイルが空になってしまい、一時的にアクセス拒否(ロックアウト)が発生する原因になる
- CrowdStrike Falcon Zero Trust Assessment 機能の有効化:スコアを計算してファイルに書き出す基本機能
- 対象OS:Windows 10 / 11
設定手順
Step 1. Okta Admin Consoleでのエンドポイント統合の追加
まず、Okta側でCrowdStrikeからのシグナルを受信できるように設定を行います。
- Okta Admin Consoleにログインし、[セキュリティ] > [デバイス統合] を開きます。
- [エンドポイントセキュリティ]タブを選択し、[エンドポイント統合を追加] > [CrowdStrike] クリック。
_04.png?width=804&height=506&name=crowdstrike_dynamic-access-control-based-on-device-risk-with-crowdstrike-zta-and-okta-(windows-edition)_04.png)
補足: これにより、OktaがCrowdStrikeのシグナル(ZTAスコア等)を解釈するための連携が有効化されます。
Step 2. Windows端末(Okta Verify)側でのEDRプラグイン有効化
Windows端末上のOkta VerifyがCrowdStrikeのエージェントとローカル通信できるように設定します。
今回は既に端末にOkta Verifyがインストールされている状態で以下のPowerShellスクリプトを管理者権限で実行するだけで[com.crowdstrike.zta.json] ファイルが自動生成されます。
EDRプラグイン有効化のPowerShellコマンド:
| $content = "{`r`n`t`"name`": `"com.crowdstrike.zta`",`r`n`t`"description`": `"Okta provided integration with CrowdStrike Falcon endpoint collecting the zta score.`",`r`n`t`"type`": `"FILE`",`r`n`t`"format`": `"JWT`",`r`n`t`"location`": `"%PROGRAMDATA%\\CrowdStrike\\ZeroTrustAssessment\\data.zta`",`r`n`t`"availabilityChecks`": [`r`n`t`t{`r`n`t`t`t`"type`": `"SERVICE_RUNNING`",`r`n`t`t`t`"value`": `"csagent`"`r`n`t`t}`r`n`t]`r`n}" $path = $env:ProgramData + "\Okta\OktaVerify\Plugins\" $file = $path + "com.crowdstrike.zta.json" if (-not (Test-Path $path)) { New-Item $path -ItemType Directory } [System.IO.File]::WriteAllText($file, $content) |
※正常にスクリプトが実行された場合、「Windowsキー + R」を押して「ファイル名を指定して実行」より「%PROGRAMDATA%\Okta\OktaVerify\Plugins」を開いた際、開いたフォルダの中に com.crowdstrike.zta.json というファイルが作成されていればOKです。
_13.png?width=653&height=189&name=crowdstrike_dynamic-access-control-based-on-device-risk-with-crowdstrike-zta-and-okta-(windows-edition)_13.png)
Step 3. Okta 認証ポリシー(Authentication Policy)の設定
収集したZTAスコアに基づいてログインを制御するルールを作成します。今回はOkta Dashboardアクセスに対してZTAスコアによるアクセス制限を行うルールを追加したいと思います。
1. [Okta Admin Console]で [セキュリティ] > [認証ポリシー] > [アプリサインインポリシー] > [Okta Dashboard] を選択します。
_06.png?width=616&height=429&name=crowdstrike_dynamic-access-control-based-on-device-risk-with-crowdstrike-zta-and-okta-(windows-edition)_06.png)
2. [ルールを追加] をクリックし、ルール名(例:Block-Low-ZTA-Score-Devices ※今回はsobar-ruleというルール名で設定)を入力します。
_08.png?width=629&height=489&name=crowdstrike_dynamic-access-control-based-on-device-risk-with-crowdstrike-zta-and-okta-(windows-edition)_08.png)
3. ルールの設定を行います。
(※ルールについては、ユーザーやユーザーグループで一度絞って動作確認いただいたうえで全体適用するかたちとすることをお勧めいたします。)
ルール名を設定し、IF のアクションとして適切なユーザ・グループを設定のうえ、[AND 次のカスタム式をtrueとする]のテキストボックス、に「device.provider.zta.overall < 60」(ZTAスコア(全体的な評価スコア)が60未満の端末を拒否(ブロック)する場合のコマンド例)のように Okta Expression Language(OEL)を用いて条件を記述します。
THEN のアクションを [拒否](アクセス拒否)に設定して[保存]します。
_09.png?width=599&height=559&name=crowdstrike_dynamic-access-control-based-on-device-risk-with-crowdstrike-zta-and-okta-(windows-edition)_09.png)
Tips1: CrowdStrike ZTAの対象とすることができるZTAスコア
OS評価スコアを条件に設定(設定例:device.provider.zta.os < 60)
センサー評価スコアを条件に設定(設定例:device.provider.zta.sensorConfig < 60)
全体的な評価スコアを条件に設定(設定例:device.provider.zta.overall < 60)
(※参考画面 [CrowdStrikeテナント画面] > [ホストのセットアップおよび管理] > [ゼロトラストアセスメント] > [ホスト別評価])
Tips2: スコアに応じた段階的な制御例
- スコア 60未満: アクセス拒否(Denied)
- スコア 60〜79: パスワード+MFAの要求(Require MFA)
- スコア 80以上: パスワードレス(FastPassのみで通過)
Step 4. 動作確認
4-1. 制御の検証
意図的にZTAスコア条件を満たさない評価環境の端末(またはテストポリシー)からブラウザでOkta Dashboardのアクセスを試み、Oktaのログイン画面でアクセス拒否のメッセージが表示されることを確認します。
_25.png?width=448&height=370&name=crowdstrike_dynamic-access-control-based-on-device-risk-with-crowdstrike-zta-and-okta-(windows-edition)_25.png)
Oktaの [System Log] を開き、
「eventType eq "policy.evaluate_sign_on" and outcome.result eq "DENY"」を検索することで[イベント情報:Evaluation of sign-on policy DENY(Okta Dashboardアクセス)]が確認できます。
_15.png?width=802&height=234&name=crowdstrike_dynamic-access-control-based-on-device-risk-with-crowdstrike-zta-and-okta-(windows-edition)_15.png)
_18.png?width=1456&height=205&name=crowdstrike_dynamic-access-control-based-on-device-risk-with-crowdstrike-zta-and-okta-(windows-edition)_18.png)
4-1-1. CrowdStrikeのスコアがOktaに正しく渡っている
Device Integrator(または Target セクションのデバイス情報)の中に、以下のJSONペイロードが記録されています。
"overall":35(総合スコア 35点)"os":96(OSスコア 96点)"sensorConfig":4(センサースコア 4点)
_19.png?width=970&height=340&name=crowdstrike_dynamic-access-control-based-on-device-risk-with-crowdstrike-zta-and-okta-(windows-edition)_19.png)
![]()
これにより、Okta VerifyのプラグインがCrowdStrikeの data.zta ファイルを正しく読み取り、Okta側にスコアを送信できていることが確認できます。
4-1-2. サインインポリシーによって「拒否(DENY)」されている
EventType:policy.evaluate_sign_onOutcome:Sign-on policy evaluation resulted in DENIEDResult:DENY
_20.png?width=662&height=336&name=crowdstrike_dynamic-access-control-based-on-device-risk-with-crowdstrike-zta-and-okta-(windows-edition)_20.png)
認証(MFAなど)のチェックとは別に、アクセスさせるかどうかのポリシー評価が行われ、結果として「アクセス拒否」の判定が下されています。対象アプリも Okta Dashboard になっています。
4-1-3. 評価されたルールが特定されている
Target セクションに、どのルールによってブロックされたかが記録されています。
PolicyName:Okta DashboardDisplayName(ルール名):sobar-rule
_21.png?width=543&height=208&name=crowdstrike_dynamic-access-control-based-on-device-risk-with-crowdstrike-zta-and-okta-(windows-edition)_21.png)
条件(ZTAスコア60未満、またはカスタム式)を設定したルール名が「sobar-rule」ですので、設定したルールが合致してブロックを機能させたことが確認できました。
運用上の注意点とおすすめの進め方
- いきなり「拒否(Block)」にしない:ポリシー適用初期は、いきなりアクセス拒否ルールを全体適用せず、全社のZTAスコア分布をSystem Logで可視化・分析することをお勧めします。
- 適切な閾値(Threshold)の見極め:CrowdStrikeのZTAスコアは、OSの未適用パッチや各種設定状態によって変化します。自社のセキュリティ基準と照らし合わせ、「どのライン以下を危険とみなすか(例: 50以下、60以下など)」を事前に十分に検証・定義してください。
ZTAスコアが保存される具体的な場所
CrowdStrike Falconセンサーは、端末のセキュリティ状態を評価した結果をローカルドライブ上の特定のファイル(data.zta)に書き出します。
- Windowsの場合:
C:\ProgramData\CrowdStrike\ZeroTrustAssessment\data.zta - (参考) macOSの場合:
/Library/ApplicationSupport/Crowdstrike/ZeroTrustAssessment/data.zta
補足: ファイルの中身について この
data.ztaファイルは単なるテキストではなく、暗号化および署名された JWT(JSON Web Token) 形式で保存されています。この中には、OSのスコア(os)や全体スコア(overall)といった複数の評価値(クレーム)が格納されています。改ざんを防ぐためのセキュアな設計です。
必要なサブスクリプションについて
1. Okta側の要件
- Okta Identity Engine (OIE):従来のClassic Engineではなく、新しい基盤であるOIEにアップグレードされている必要があります。
- Adaptive MFA (または同等の上位ライセンス):ZTAスコア等のデバイスコンテキストに基づいた動的なアクセス制御(MFAの要求やアクセスのブロック)を認証ポリシーで設定するために必要になるのが一般的です。※「デバイスのコンテキスト(状態)を評価して認証の挙動を変える機能」や「カスタム式を利用したポリシー制御」を実施するために必要となります。
2. CrowdStrike Falcon側の要件
- Falcon Insight XDR (EDRモジュール):ZTAスコアの算出と連携には、エンドポイントでの検知と対応を行う「Falcon Insight XDR」のサブスクリプションが必須となります。
- 対象バンドル:Falcon Insight XDRは、CrowdStrikeの「Enterprise」「Elite」「Complete」といった主要なパッケージバンドルに含まれています。「Pro」などの下位バンドルの場合は追加が必要になる可能性があります。
- ZTA機能の有効化:Zero Trust Assessment (ZTA) 機能自体はFalcon Insightに含まれていますが、前項で記載の通りサポートに連絡して有効化してもらう必要があります。
※ライセンスの詳細につきましては弊社までお問い合わせください。
参考
- CrowdStrike > Home > エンドポイントセキュリティ > デバイス制御、ファイアウォール管理、ZTA > ゼロトラストアセスメント(要テナントログイン)
- Okta > デバイス > エンドポイントセキュリティ統合 # Okta側での設定手順の全体像や、連携の仕組み(アーキテクチャ)の概要を理解するための親ページ
- Okta > デバイス > エンドポイントセキュリティ統合 > カスタム式のEDRシグナル # CrowdStrikeからOktaへ、どのような情報(シグナル)が渡されるかを定義したドキュメント
- Okta > デバイス > エンドポイントセキュリティ統合 > 使用の開始 > macOS向けエンドポイントセキュリティ統合プラグインを管理する Windows # インストールコマンド時のフラグ指定などWindows端末でも同様にプラグインの設定
- Okta > デバイス > エンドポイントセキュリティ統合 > 使用の開始 > エンドポイントセキュリティ統合のアプリサインインポリシーを作成する # 実際にOktaが受け取ったZTAスコアを元に、ログインを許可/ブロックするルール(認証ポリシー)を作成する手順
さいごに
CrowdStrike ZTAとOktaの連携により、「正しく認証されたユーザー」であっても「端末が危険な状態であればアクセスを許可しない」 という高度なゼロトラスト型アクセス制御が実現します。
Windows端末のセキュリティ状態をリアルタイムに認証へフィードバックさせることで、万が一マルウェア等に感染・設定変更された端末からの二次被害(社内SaaSへの侵入)を水際で防ぐことが可能です。ぜひ導入をご検討ください!
本記事が、皆様のゼロトラストセキュリティ対策や、CrowdStrike Falconの運用の一助となれば幸いです。
CrowdStrike についてのお問い合わせ
ネクストモードでは、CrowdStrikeをはじめ、OktaやNetskopeを活用したSaaS・生成AIの包括的なセキュリティ対策をご支援しています 。ご興味のある方は、ぜひお気軽にご相談ください!
_10.png?width=1920&height=612&name=crowdstrike_dynamic-access-control-based-on-device-risk-with-crowdstrike-zta-and-okta-(windows-edition)_10.png)