SaaS

Netskope Secure Enrollment 結局どうすれば良いの?

はじめに

こんにちは、セキュリティチームのむろです。

今回はNetskopeのSecure Enrollment機能の特に導入(はじめ方)と運用(トークン更新)についてお話しします。

Secure Enrollmentについては以前にもブログも公開していますが、もう少し手順ベースに落とし込んだ内容、新しく得た情報も含めてお伝えできればと思います。

本ブログの内容は2025/3/28時点の情報となる点はご了承ください。

はじめにまとめ

  • Secure Enrollmentは2025/6/1に強制有効化が発表されている
    • Secure Enrollmentに関係するのはUPNモードでインストールしている端末
      • IdPモード、Email Inviteでインストールしている端末は関係はない
      • ただし、UPNモード以外でもNPAのPrelogon機能を利用している場合は設定が必要となる
  • Secure Enrollmentは管理コンソール上で単純に有効化する操作だけではなく、MDM側も設定変更が必要
  • Secure Enrollmentで利用するトークン値は定期的に更新が必要
  • 有効化する際やトークンの更新する際に影響を少なくするために作業の順序性が存在する

2025/6/1に強制有効化が予定されている

Netskope社にて2025/6/1にSecure Enrollmentを強制有効化する旨のアナウンスが発表されています。

End-of-Life Announcement for Insecure API Enrollment Mechanisms

※本URLはNetskpe Supportサイトのアカウントによるログインが必要となります

というわけでSecure Enrollmentの有効化が未実施の環境は期限まで対応を済ませておく必要がありますが、Secure Enrollmentは管理コンソールから有効化を選択するだけでは正しく動作しません。

MDM側にも対応が必要になり、適切な対応をしないとNetskope Clientのインストール(厳密にはユーザーエンロール)に影響が出る可能性があります。

公式ドキュメントや関連情報

まずは公開されている公式ドキュメントやコミュニティの情報を貼っておきます。

本ブログや前述の過去ブログも参考にしながら参照いただけると幸いです。

Secure Enrollment – Netskope Knowledge Portal

Secure Enrollment Frequently Asked Questions – Netskope Knowledge Portal

Understanding and Actioning Notification Related to Secure Enrollment | Community

また、脆弱性「NSKPSA-2024-001(CVE-2024-7401 )」についてもご理解いただくとSecure Enrollmentがなぜ必要か、なぜ強制化をしようとしているか背景が見えてくるので知らない方は読んでみると良いかもしれません。

NSKPSA-2024-001

Secure Enrollmentについて簡単におさらい

先ほどの公式ドキュメントに記載されていますがポイントをおさらいしておきます

Netskope Clientのインストールモードによる影響の違い

  • Secure Enrollmentの「Authentication Token」はUPNモードの端末に影響がある
  • Secure Enrollmentの「Authentication Token」はIdPモードの端末には影響はない
    • 例外的にNPAのPrelogin機能を利用する場合はIdPモードでも「Authentication Token」が必要となります

Enforce authentication of Netskope Client Enrollment is mandatory to be enabled to protect against enrollment bypass issues. If user enrollment is enforced using UPN, then the token must be present in the end-user machine. For IDP enrollments, the token need not be present on the end-user machine as the user is authenticated using IdP. However, to use NPA Prelogon, auth token must be present on the end-user machine even with IDP enrollments.

  • 手動でインストールする際のEmail Invite手順はSecure Enrollmentは関係はない

既存のNetskope Clientへの影響

  • すでにユーザーエンロール済みのNetskope Clientには影響はない
    • 既存端末でシングルユーザーモードのNetskope Clientは影響はない
    • 既存端末でもマルチユーザーモードののNetskope Clientは新規にユーザーエンロールされる可能性があるため、影響を受ける
  • 新規にNetskope Clientがインストールされ、これから新規にユーザーエンロールするNetskope Clientはに影響がある
  • 既存端末でもNetskope Clientを再インストールする場合は影響がある

その他

  • Secure Enrollmentの2つのオプションの内、「Authentication Token」は有効化が必須ですが「Encryption Token」の有効化は必須ではありません。
    • 本ブログの「Secure Enrollment」は基本的に「Authentication Token」のみ有効化された状態を指します

有効化する前の準備

既存端末のNetskope Clientのバージョンアップを行っておきます

  • 原則はバージョンによって追加機能がある可能性があるため、最新バージョンへの更新をおすすめします
  • 例えば、R124からmacOSにおいてnsdiagによるトークン情報書き換えがサポートされています(以前はWindowsのみでした)

本ブログ手順の前提

  • 「Authentication Token」のみを有効化する前提の手順となります。
  • Netskope ClientバージョンがR124以上の前提となります。
  • マルチトークンサポートではない通常のSecure Enrollmentが前提の手順となります。

マルチトークンモードのSecure Enrollmentについては後述の補足を参照ください

Secure Enrollmentの有効化手順(はじめ方)

Secure Enrollmentを有効化する手順を以下に示します。

1) Secure Enrollmentを有効化してトークン値を控える

  • 「Create authentication of Netskope Client enrollment」を有効にする
  • STATUSが「Enforced」ステータスの場合は「DO NOT ENFORCE TOKEN(S)」を選択してすぐにNot Enforcedステータスに変更する(通常は有効直後はNot Enforcedステータスです)
  • 「Copy token」を選択してAUTHENTICATION TOKENの値を控える
  • AUTHENTICATION TOKENの有効期限を控える(有効化後の運用時に定期的な更新が必要になります)
    • 必要に応じてEDITから有効期限を調整する
    • この画面で行えるのは現在のりましたに対して期限を追加(EXTEND)のみとなる
      • 特定の日時指定は不可となる

2) MDM内のインストールコマンドへトークンを追加する

  • IntuneやJamfなどのMDMに設定しているインストールコマンドに控えたAUTHENTICATION TOKENをenrollauthtokenオプションを追加して指定する
    • enrollauthtoken=<認証トークン=AUTHENTICATION TOKENの値>

例)Single User Modeで配布したい場合

msiexec /i "NSClient_<クライアントバージョン>_Windows.msi" host=addon-<テナント名>.goskope.com token=<Org Key> enrollauthtoken=abc123dummy123abc123dummy /qn /l*v %PUBLIC%\nscinstall.log

※他のパターンのインストールコマンドの例は前述の公式ドキュメントを参照ください(enrollauthtokenオプション自体の利用方法に差異はありません)

3) MDMで既存の端末上のトークンの値を配布する

この手順は「UPN x マルチユーザーモードのNetskope Client 端末」のみが対象です

  • IntuneやJamfなどのMDMを利用してnsdiagコマンドの-eオプションを利用して端末内に保持されているAUTHENTICATION TOKENを更新した新しい値を配布する
nsdiag -e enrollauthtoken=abc123dummy123abc123dummy

4) Secure Enrollmentを強制モードに変更する

  • 「ENFORCE TOKEN(S)」を選択してEnforcedステータスにする

5) 動作確認を行う

  • 検証機などを利用して実際にMDMからNetskope Clientを配布し、ユーザーエンロールまで正常に完了するか確認を行う
  • 結果確認は端末側のNetskope Clientの状態を直接確認するか、Netskope管理コンソールのDevices上のNetskope Clientのステータスで判断することも可能です
    • 細かなインストールタイミングなどはデバイスの詳細画面ごとのEVENT HISTORYからも確認できます

Devices – Netskope Knowledge Portal

6) トークンの有効期限を管理する

  • 控えたAUTHENTICATION TOKENの有効期限を基準に対応漏れがないように管理してください
    • 例)Asanaなどのタスク管理できるサービスでチケット化しておく
    • 管理画面にも警告が出るようですが気づきにくいので別途期限管理することをおすすめします
    • 期限切れの何日前、あるいは特定の指定日にAUTHENTICATION TOKENを更新するか決定しておく必要があります
      • なるべくNetskopeのユーザーエンロールが発生しない・少ない日を選択することが望ましいです
      • 例)新しい従業員の入社日を避ける

Secure Enrollment有効化後のトークン更新手順(運用対応)

前述のようにSecure Enrollmentのトークンは期限があり、定期的に更新が必要となります。

作業内容はほぼ新規に有効化する際と同様ですが、マルチユーザーモードの場合は更新時に追加で作業がありますので注意ください。

1) トークンを更新する

  • 「DO NOT ENFORCE TOKEN(S)」を選択してすぐにNot Enforcedステータスに変更する
  • 「Refresh token」を選択してAUTHENTICATION TOKENの値を更新する
  • 「Copy token」を選択してAUTHENTICATION TOKENの値を控える
  • AUTHENTICATION TOKENの有効期限を控える
    • 必要に応じてEDITから有効期限を調整する

2) MDM内のインストールコマンド上のトークンの値を更新する

  • IntuneやJamfなどのMDMに設定しているインストールコマンド内のenrollauthtokenオプション指定で指定しているAUTHENTICATION TOKENを更新した新しい値へ書き換える
    • enrollauthtoken=<認証トークン=AUTHENTICATION TOKENの値>

例)Single User Modeで配布したい場合

msiexec /i "NSClient_<クライアントバージョン>_Windows.msi" host=addon-<テナント名>.goskope.com token=<Org Key> enrollauthtoken=abc123dummy123abc123dummy /qn /l*v %PUBLIC%\nscinstall.log

※他のパターンのインストールコマンドの例は前述の公式ドキュメントを参照ください(ただし、enrollauthtokenオプション自体の利用方法に差異はありません)

3) MDMで既存の端末上のトークンの値を更新する

この手順は「UPN x マルチユーザーモードのNetskope Client 端末」のみが対象です

  • IntuneやJamfなどのMDMを利用してnsdiagコマンドの-eオプションを利用して端末内に保持されているAUTHENTICATION TOKENを更新した新しい値へ書き換える
nsdiag -e enrollauthtoken=<認証トークン=AUTHENTICATION TOKENの値>

4) Secure Enrollmentを強制モードに戻す

  • 「ENFORCE TOKEN(S)」を選択してEnforcedステータスにする

5) 動作確認を行う

  • 検証機などを利用して実際にMDMからNetskope Clientを配布し、ユーザーエンロールまで正常に完了するか確認を行う
  • 結果の確認は端末側のNetskope Clientの状態を直接確認するか、Netskope管理コンソールのDevices上のNetskope Clientのステータスで判断することも可能です
    • 細かなインストールタイミングなどはデバイスの詳細画面ごとのEVENT HISTORYからも確認できます

Devices – Netskope Knowledge Portal

6) トークンの有効期限を管理する

  • 控えたAUTHENTICATION TOKENの有効期限を基準に対応漏れがないように次回の更新日を管理してください
    • 例)Asanaなどのタスク管理できるサービスでチケット化しておく
    • 管理画面にも警告が出るようですが気づきにくいので別途期限管理することをおすすめします
    • 期限切れの何日前、あるいは特定の指定日にAUTHENTICATION TOKENを更新するか決定しておく必要があります
      • なるべくNetskopeのユーザーエンロールが発生しない・少ない日を選択することが望ましいです
      • 例)新しい従業員の入社日を避ける

Secure Enrollmentに対する補足やTips

「nsdiag -e」とは

  • すでにユーザーエンロール済みのNetskope Client 端末内のトークンを更新する際に利用するコマンドです
  • 本ブログ内でも記載の通り、UPN x マルチユーザーモードのNetskope Clientで利用します
  • macOSでの「nsdiag -e」はR124からサポートされました

トークンの更新周期はどうするべきか

  • Secure Enrollmentも最小90日からとなり手順内に示すように期限の延長はコントロールが可能です
  • こういった前提の中で具体的に何日以内周期で更新すべきということの明言は難しいです
  • 各組織の運用リソース、トークンが長期間更新されないリスク評価、セキュリティに関する規定によって変わるため、各組織ごとに適切な更新周期は異なると思います
  • ただ、他製品のトークン期限のデフォルト値やCIS Benchmarkなどの記述からはこのような認証用のトークン(アクセスキー)は90日周期で更新することを推奨している記載や意図が多く見られます
  • そのため、特定の事情や要件がなければ最小の90日周期で更新する運用とするのが望ましいと思います

マルチトークンサポートについて

  • Secure Enrollmentのトークンを同時に複数保持できるオプションです
  • R123からGAされていますが現時点では個別の有効化依頼が必要となります
    • あるいはNetskope社が自動でSecure Enrollmentを有効にした場合にマルチトークンサポートが有効になるようです
  • 通常のSecure Enrollmentと運用観点の比較としてはトークンを更新する際に一時的にNot Enforcedモードへ変更する代わりに並行して複数のトークンが扱える点くらいかと思います
  • 逆にいうと初回の有効化を行う流れは通常のSecure Enrollmentとマルチトークンサポートが有効なSecure Enrollmentとで流れに違いはありません

一時的にNot Enforcedモードにしても問題ないのか

  • 本ブログではSecure Enrollmentの背景となっている脆弱性「NSKPSA-2024-001(CVE-2024-7401 )」の内容から短時間であればNot Enforcedモードにすることは大きなリスクではないと判断し、トークン更新中のユーザーエンロールへの影響回避を優先する手順としています
  • Not Enforcedモードにしない手順も組織の判断によってはあり得るとは思います
  • また、前述のマルチトークンでの運用にすることでこのリスクの無くすことは可能です

Secure Enrollmentの設定とインストールコマンドに対する挙動の違い

Secure Enrollmentの設定状態とインストールコマンドの状態の組み合わせに対して以下の挙動となる旨をサポートへ確認しています。

今回のブログ内手順はこの内容を元に順序性を組み立てています。

<Secure Enrollment自体が無効時の挙動>

  • 「enrollauthtoken=」オプション自体無しの場合 > エラーとならずにエンロール成功
  • 「enrollauthtoken=」を指定した場合 > エラーとならずにエンロール成功

<Not Enforcedステータス時の挙動>

  • 「enrollauthtoken=<auth token>」オプション自体無しの場合 > エラーとならずにエンロール成功
  • 「enrollauthtoken=<auth token>」トークン値が誤りの場合 > エラーとならずにエンロール成功
  • 「enrollauthtoken=<auth token>」トークン値が正しい場合 > エラーとならずにエンロール成功

<Enforcedステータス時の挙動>

  • 「enrollauthtoken=<auth token>」オプション自体無しの場合 > エラーとなりエンロール失敗
  • 「enrollauthtoken=<auth token>」トークン値が誤りの場合 > エラーとなりエンロール失敗
  • 「enrollauthtoken=<auth token>」トークン値が正しい場合 > エラーとならずにエンロール成功

おわりに

あと2ヶ月ほどでSecure Enrollmentが強制化されるということで今回は導入時の手順や運用に関して書いてみました。

まだSecure Enrollmentを有効にしていない、有効化はしたものの更新時の対応をまだ検討できてないといった方々に参考いただけると嬉しいです!

むろ

おいしいおつまみとお酒が好きです。
最近ハマっているのは芋焼酎のソーダ割り。

履き物の基本は下駄の人です。
好きな漫画はワールドトリガーです。