はじめに
こんにちは、エーピーコミュニケーションズiTOC事業部 BzD部 0-WANの篠崎です。
CrowdStrikeの設計、構築、運用からSOCまで幅広く対応できるエンジニアとして日々研鑽に励んでおります。
今回はWindows端末にインストールされたCrowdStrikeとOktaを連携し、ZTAによって算出されたセキュリティスコアによるアクセス制御が実施できるよう構築していきます。
セキュリティパッチ未適用、レガシーOS等、リスクのある端末からの接続を制限し、SaaSアプリケーションを保護することができます。
機能概要
CrowdStrikeにおけるZTAとは
ZTA(ゼロトラストアセスメント)は、組織内のホストのセキュリティ状況を評価するCrowdStrikeの機能です。ホストのOSやCrowdStrike Falconセンサーの設定を監視し、セキュリティ上のリスクを可視化、スコアリングします。
CrowdStrikeのダッシュボード上で、以下の機能を提供します。
- セキュリティスコア: 各ホストのセキュリティ状況を1~100のスコアで表示、スコアが高いほどセキュリティ状況が良好
- リスクホスト: リスクの高い設定を使用しているホストを特定
- レポート: 監査対策に必要な、ホストの設定に関するレポートを作成
これらのセキュリティスコアは、以下の要素に基づいて算出されます。
- OS設定: OSに組み込まれたセキュリティオプション、ファームウェアの更新状況、脆弱性対策状況
- センサー設定: CrowdStrike Falconセンサーの設定状況(ポリシーの有効化、無効化、アンインストール保護等)
算出されたセキュリティスコアを各種セキュリティ製品と連携することができます。
ZTAを利用したデバイスの状態に基づく条件付きアクセス制御
CrowdStrikeのZTAによって算出されたセキュリティスコアをOktaと連携することにより、下記の機能を実装することができます。
リスクベースの認証 ユーザーがOktaを通じて認証を行う前に、CrowdStrikeがホストのセキュリティ状況を評価します。 ホストのセキュリティスコアが、ポリシーによって設定された基準に達していない場合、ユーザーはアクセスを拒否されます。
継続的な認証 ユーザーが認証後も、CrowdStrikeはデバイスの活動を監視し続け、セキュリティスコアを更新します。 Oktaはセキュリティスコアの変化に応じて、ユーザーのアクセス権を自動的に調整します。
構築について
端末設定
端末にOkta Verifyをインストールし、プラグインを有効化します。 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\" $filePath = $path + "com.crowdstrike.zta.json" if (-not (Test-Path $path)) { New-Item $path -ItemType Directory } [System.IO.File]::WriteAllText($filePath, $content)
下記フォルダに"com.crowdstrike.zta.json"が存在することを確認します。
"C:\ProgramData\Okta\OktaVerify\Plugins"
ファイルが存在していればプラグインの有効化は完了です。 help.okta.com
CrowdStrike設定
CrowdStrikeサポートに連絡し、ZTA統合機能を有効化する
ZTAをアプリと連携するためには、サポートに連絡しZTA統合機能を有効化してもらう必要があります。
CrowdStrikeのサポートページからCaseを作成し、ZTA統合機能有効化の設定を依頼します。
この設定が必要なことに気が付かず、検証に数日費やしました。
API連携
OktaとCrowdStrikeを連携するための設定です。
まずは、Okta管理ポータルにログインし、APIトークンを発行します。
Security > API > Tokens
"Create token"を実施、トークンの名前を設定します。
"Token Value"が表示されるので忘れずに控えておきます。
※トークンはこのタイミングで1度しか表示されず、失念した際は再発行となります。
【APIトークン管理の推奨事項】
Okta APIトークンの管理 | Okta
トークンは、トークンを作成したユーザーがアクティブな場合にのみ有効です。非アクティブ化されたユーザーが発行したトークンは拒否されます。Oktaでは、サービスの中断を避けるために、変更されることのないスーパー管理者権限を持った、非アクティブ化されることのないサービスアカウントを使用してAPIトークンを生成することを推奨しています。
CrowdStrike設定
CrowdStrike管理ポータルでの設定です。
Identity protection > Connectors >Rules
画面左上のプルダウンから"Okta Verify"を選択します。
入力欄が追加されるので、Oktaのドメイン、先ほど発行したAPIキーをそれぞれ入力します。 左側で緑ランプが点灯すれば正常に設定完了です。
Okta設定
Okta管理ポータルでの設定です。
Security > Device Integrations > Endpoint security
"Add endpoint integrations"からCrowdStrikeを選択します。 エンドポイントセキュリティ統合を追加する | Okta
アクション設定
ZTAスコアが設定条件を満たしている場合、満たしていない場合の動作を設定していきます。
Security > Authentication policies
"Add a policy"を選択
設定の項目内でセキュリティスコアのしきい値を設定することができます。
今回はセキュリティスコアが70以上であればアクセス許可、70未満ではアクセス制限と設定しました。
アプリケーション選択
Security > Authentication policies > Applications "Add app"を選択しZTAによるアクセス制御を実施するアプリを選択。
おわりに
以上でCrowdStrikeとOktaのZTA連携は完了となります。
ZTAを活用することによって、リスクのある端末からのアクセスを制御することが可能となり、よりセキュアな運用が実現できます。
最後までお読みいただきありがとうございました。
0-WANについて
私たち0-WANは、ゼロトラスト製品を中心とした、マルチベンダーでのご提案で、お客様の経営課題解決を支援しております。
ゼロトラストってどうやるの?製品を導入したけれど使いこなせていない気がする等々、どんな内容でも支援いたします。
お気軽にご相談ください。
問い合わせ先、0-WANについてはこちら。
一緒に働いて頂ける仲間も募集しています
今までの経験を活かして、私たちと一緒にゼロトラスト分野で活躍しませんか?