ユーザーデバイスの事前認証デバイスチェック表現
重要:
エンドポイント分析は、あらかじめ決められたコンプライアンス基準に照らしてユーザーデバイスを分析することを目的としており、エンドユーザーデバイスのセキュリティを強制または検証するものではありません。ローカル管理者による攻撃からデバイスを保護するには、エンドポイントセキュリティシステムを使用することをお勧めします。
NetScaler Gateway は、ユーザーデバイスの検証に役立つさまざまなエンドポイントコンプライアンスチェックを、ユーザーログオン中またはセッション中のその他の構成時間に行います。これらのチェックに合格したユーザーデバイスのみがNetScaler Gateway セッションを確立できます。
NetScaler Gateway で構成できるユーザーデバイスのチェックの種類は次のとおりです。
- スパム対策
- アンチウイルス
- ファイルポリシー
- インターネットセキュリティ
- オペレーティングシステム
- パーソナルファイアウォール
- プロセスポリシー
- レジストリポリシー
- サービスポリシー
ユーザーデバイス上でデバイスチェックが失敗した場合、次のチェックに合格するまで(定期的に行われるチェックの場合)、新しい接続は確立されません。ただし、既存の接続を経由するトラフィックは、引き続きNetScaler Gatewayをトンネル経由します。
構成ユーティリティを使用して、ユーザーデバイス上でチェックを実行するように設計されたセッションポリシー内の事前認証ポリシーまたはデバイスチェック式を設定できます。
ウイルス対策、ファイアウォール、インターネットセキュリティ、またはスパム対策の表現を構成する
ウイルス対策、ファイアウォール、インターネットセキュリティ、およびスパム対策ポリシーの設定は、[ 式の追加 ] ダイアログボックスで行います。各ポリシーの設定は同じです。違いは、選択した値です。たとえば、ユーザーデバイスのノートンアンチウイルスバージョン 10 と ZoneAlarm Pro をチェックする場合、セッションまたは事前認証ポリシー内に、各アプリケーションの名前とバージョン番号を指定する 2 つの式を作成します。
式の種類として Client Security を選択すると、次の項目を構成できます:
- コンポーネント:アンチウイルス、ファイアウォール、レジストリエントリなど、クライアントセキュリティの種類。
- 名前: アプリケーション、プロセス、ファイル、レジストリエントリ、またはオペレーティングシステムの名前。
- 修飾子:式がチェックするコンポーネントのバージョンまたは値。
- 演算子:値が存在するかどうか、または値と等しいかどうかを確認します。
- 値:ユーザーデバイス上のウイルス対策、ファイアウォール、インターネットセキュリティ、またはスパム対策ソフトウェアのアプリケーションバージョン。
- 頻度:認証後スキャンが実行される頻度 (分単位)。
- エラーの重み:複数の式が異なるエラー文字列を持つ場合に、ネストされた式に含まれる各エラーメッセージに割り当てられる重み。重みによって、表示されるエラーメッセージが決まります。
- 鮮度:ウイルス定義の古さを定義します。たとえば、ウイルス定義が 3 日を超えないように式を設定できます。
クライアントデバイスチェックポリシーを事前認証ポリシーまたはセッションポリシーに追加するには
- 構成ユーティリティのナビゲーションペインで、次のいずれかの操作を行います:
- 構成ユーティリティの [構成] タブのナビゲーションペインで、[ NetScaler Gateway] > [ポリシー ] を展開し、[セッション] をクリックします。
- 構成ユーティリティの[構成]タブのナビゲーションペインで、[NetScaler Gateway]>[ポリシー]>[認証/承認]を展開し、[事前認証EPA]をクリックします。
- 詳細ペインの [ポリシー] タブで、[ 追加] をクリックします。
- [名前] に、ポリシーの名前を入力します。
- [任意の式に一致] の横にある [追加] をクリックします。
- [式の追加] ダイアログボックスの [式の種類] で、[ Client Security] を選択します。
- 次の設定を構成します。
- 「コンポーネント」で、スキャンするアイテムを選択します。
- [名前] に、アプリケーションの名前を入力します。
- 「修飾子」で「 バージョン」を選択します。
- 「演算子」で、値を選択します。
- 「値」に、クライアント・デバイスのチェック文字列を入力し、「 OK」をクリックし、「 作成」をクリックして、「 閉じる」をクリックします。
サービスポリシーの設定
サービスは、ユーザーデバイス上でサイレントに実行されるプログラムです。セッションまたは事前認証ポリシーを作成するときに、セッションの確立時にユーザーデバイスが特定のサービスを実行していることを確認する式を作成できます。
サービスポリシーを設定するには
- 構成ユーティリティのナビゲーションペインで、次のいずれかの操作を行います:
- 構成ユーティリティの[構成]タブのナビゲーションペインで、[ NetScaler Gateway] >[ポリシー ]を展開し、[セッション]をクリックします。
- 構成ユーティリティの[構成]タブのナビゲーションペインで、[ NetScaler Gateway]>[ポリシー ]>[認証/承認]を展開し、[事前認証EPA]をクリックします。
- 詳細ペインの [ポリシー] タブで、[ 追加] をクリックします。
- [名前] に、ポリシーの名前を入力します。
- [任意の式に一致] の横にある [追加] をクリックします。
- [式の追加] ダイアログボックスの [式の種類] で、[ Client Security] を選択します。
- 次の設定を構成します。
- 「コンポーネント」で、「サービス」を選択します。
- [名前] に、サービスの名前を入力します。
- 「修飾子」で、空白のままにするか、「バージョン」を選択します。
- [Qualifier] での選択内容に応じて、次のいずれかを実行します。
- 空白のままの場合は、「演算子」で==または!=を選択
- 「バージョン」を選択した場合は、「演算子」の「値」に値を入力し、「OK」、「閉じる」の順にクリックします。
Windows ベースのコンピューターで利用可能なすべてのサービスの一覧と各サービスの状態は、次の場所で確認できます:
コントロールパネル > 管理ツール > サービス
注:
各サービスのサービス名は、リストされた名前とは異なります。[ プロパティ] ダイアログボックスを見て、サービスの名前を確認します。
プロセスポリシーの設定
セッションポリシーまたは事前認証ポリシーを作成するときに、ユーザーのログオン時にすべてのユーザーデバイスで特定のプロセスを実行するように要求する規則を定義できます。プロセスには任意のアプリケーションを使用でき、カスタマイズされたアプリケーションを含めることができます。
注:Windows ベースのコンピューターで実行されているすべてのプロセスのリストは、Windows タスクマネージャーの [ プロセス ] タブに表示されます。
プロセスポリシーを設定するには
- 構成ユーティリティのナビゲーションペインで、次のいずれかの操作を行います:
- 構成ユーティリティの[構成]タブのナビゲーションペインで、[ NetScaler Gateway]>[ポリシー ]の順に展開し、[セッション]をクリックします。
- 構成ユーティリティの[構成]タブのナビゲーションペインで、[ NetScaler Gateway]>[ポリシー]>[認証/承認]の順に展開し、[事前認証EPA]をクリックします。
- 詳細ペインの [ポリシー] タブで、[ 追加] をクリックします。
- [名前] に、ポリシーの名前を入力します。
- [任意の式に一致] の横にある [追加] をクリックします。
- [式の追加] ダイアログボックスの [式の種類] で、[ Client Security] を選択します。
- 次の設定を構成します。
- 「コンポーネント」で、「プロセス」を選択します。
- [名前] に、アプリケーションの名前を入力します。
- 「演算子」で「EXISTS」または「NOTEXISTS」を選択し、「OK」をクリックして。
Endpoint Analysis ポリシー(認証前または認証後)を設定してプロセスをチェックする場合、MD5 チェックサムを設定できます。
ポリシーの式を作成するときに、チェックするプロセスに MD5 チェックサムを追加できます。たとえば、notepad.exe がユーザーデバイスで実行されているかどうかを確認する場合、式は次のようになります。 CLIENT.APPLICATION.PROCESS(notepad.exe_md5_388b8fbc36a8558587afc90fb23a3b00) EXISTS
オペレーティングシステムポリシーを構成する
セッションまたは事前認証ポリシーを作成すると、クライアントデバイスのチェック文字列を構成して、ユーザーのログオン時にユーザーデバイスが特定のオペレーティングシステムを実行しているかどうかを判断できます。また、特定の Service Pack または修正プログラムをチェックするように式を構成することもできます。
WindowsとMacintoshの値は次のとおりです。
オペレーティングシステム | Value |
---|---|
macOS X | macOS |
Windows 8.1 | win8.1 |
Windows 8 | win8 |
Windows 7 | win7 |
Windows Vista | ビスタ |
Windows XP | winxp |
Windows Server 2008 | win2008 |
Windows Server 2003 | win2003 |
Windows 2000 Server | win2000 |
Windows 64 ビットプラットフォーム | win64 |
GUI を使用してオペレーティングシステムポリシーを構成するには
- ナビゲーションペインで、次のいずれかの操作を行います。
- [ NetScaler Gateway]>[ポリシー ]に移動し、[ セッション]をクリックします。
- NetScaler Gateway > ポリシー > 事前認証に移動します。
- 詳細ペインの [ ポリシー ] タブで、[ 追加] をクリックします。
- [名前] に、ポリシーの名前を入力します。
- 「 アクションのリクエスト 」で、既存のアクションを選択するか、アクションを作成します。
- [Expression Editor] をクリックします。
- [式の種類の選択]で、[ クライアントセキュリティ] を選択します。
- 次の設定を構成します。
- 「 コンポーネント」で、「 オペレーティング・システム」を選択します。
- [ 名前] に、オペレーティングシステムの名前を入力します。
- [修飾子] で、次のいずれかの操作を行います。
- フィールドは空白のままにします。
- サービスパックを選択
- 修正プログラムの選択
- バージョンを選択 (macOS のみ)
- 手順 7 での選択内容に応じて、[演算子] で次のいずれかを実行します。
- [修飾子] が空白の場合は、[演算子] で EQUAL (= =)、NOTEQUAL (!=)、EXISTSまたは NOTEXISTSを選択します。
- [Service Pack] または [Hotfix] を選択した場合は、演算子を選択し、[値] に値を入力します。
- [ 完了 ] をクリックし、[ 閉じる] をクリックします。
client.os (winxp).sp
などのサービスパックを構成している場合、[ 値 ]フィールドに数字がない場合、式が無効であるため、NetScaler Gateway はエラーメッセージを返します。
オペレーティングシステムに Service Pack 3 や Service Pack 4 などのサービスパックが存在する場合は、Service Pack 4 のチェックだけを構成できます。Service Pack 4 の存在により、以前のサービスパックが存在することが自動的に示されるためです。
レジストリポリシーを構成する
セッションポリシーまたは事前認証ポリシーを作成するときに、ユーザーデバイス上のレジストリエントリが存在し、値があるかどうかを確認できます。セッションは、特定のエントリが存在するか、設定されているか、またはより高い値を持つ場合にのみ確立されます。
レジストリ式を設定する場合は、次のガイドラインに従ってください。
-
4つのバックスラッシュは、キーとサブキーを区切るために使われます。
HKEY_LOCAL_MACHINE\\\\SOFTWARE
-
アンダースコアは、サブキーと関連する値の名前を区切るために使用されます。
HKEY_LOCAL_MACHINE\\\\SOFTWARE\\\\VirusSoftware_Version
-
バックスラッシュ (\) は、次の 2 つの例のように、スペースを示すために使用されます。
HKEY_LOCAL_MACHINE\\\\SOFTWARE\\Citrix\\\\Secure\ Access\ Client_ProductVersion
CLIENT.REG(HKEY_LOCAL_MACHINE\\\\Software\\\\Symantec\\Norton\ AntiVirus_Version).VALUE == 12.8.0.4 -frequency 5
以下は、ユーザーがログオンしたときにCitrix Secure Accessクライアントのレジストリキーを検索するレジストリ表現です。
CLIENT.REG(secureaccess
).VALUE==HKEY_LOCAL_MACHINE\\\\SOFTWARE\\\\CITRIX\\\\Secure\Access\Client_ProductVersion
注:
レジストリキーと値をスキャンするときに、「式」ダイアログ・ボックスで「アドバンスド・フリーフォーム」を選択し、式の先頭が CLIENT.REG で始まっている必要があります。
レジストリチェックは、次の最も一般的な 5 つのタイプでサポートされています。
- HKEY_CLASSES_ROOT
- HKEY_CURRENT_USER
- HKEY_LOCAL_MACHINE
- HKEY_USERS
- HKEY_CURRENT_CONFIG
チェックするレジストリ値には、次のタイプを使用します。
-
文字列
文字列型の場合は、大文字と小文字の区別がチェックされます。
-
DWORD
DWORD 型の場合、値は比較され、等しくなければなりません。
-
展開文字列
バイナリやマルチストリングなどの他のタイプはサポートされていません。
-
比較演算子 ‘==’ のみがサポートされています。
-
<、> などの他の比較演算子、大文字と小文字を区別する比較はサポートされていません。
-
レジストリ文字列の合計長は 256 バイト未満である必要があります。
式に値を追加できます。値には、ソフトウェアのバージョン、サービスパックのバージョン、またはレジストリに表示されるその他の値を指定できます。レジストリのデータ値がテスト対象の値と一致しない場合、ユーザーはログオンを拒否されます。
注:
サブキー内の値をスキャンすることはできません。スキャンは、名前付きの値と関連するデータ値と一致する必要があります。
レジストリポリシーを構成するには
- 構成ユーティリティのナビゲーションペインで、次のいずれかの操作を行います:
- 構成ユーティリティの[構成]タブのナビゲーションペインで、[ NetScaler Gateway]>[ポリシー ]の順に展開し、[セッション]をクリックします。
- 構成ユーティリティの[構成]タブのナビゲーションペインで、[ NetScaler Gateway]>[ポリシー]>[認証/承認]の順に展開し、[事前認証EPA]をクリックします。
- 詳細ペインの [ポリシー] タブで、[ 追加] をクリックします。
- [名前] に、ポリシーの名前を入力します。
- [任意の式に一致] の横にある [追加] をクリックします。
- [式の追加] ダイアログボックスの [式の種類] で、[ Client Security] を選択します。
- 次の設定を構成します。
- 「コンポーネント」で「レジストリ」を選択します
- [名前] に、レジストリキーの名前を入力します。
- 「修飾子」で、空白のままにするか、「値」を選択します。
- [演算子] で、次のいずれかを実行します。
- 修飾子が空白のままの場合は、EXISTS または NOTEXISTS を選択します。
- [修飾子] で [値] を選択した場合は、[==] または [!==
- [値]に、レジストリエディタに表示される値を入力し、[OK]、[閉じる]の順にクリックします。
複合クライアントデバイスチェック表現の設定
クライアントデバイスチェック文字列を組み合わせて、複合クライアントデバイスチェック式を作成できます。
NetScaler Gateway でサポートされているブール演算子は次のとおりです。
- と (&&)
-
または ( - ない (!)
精度を上げるには、括弧を使用して文字列をグループ化できます。
注:
コマンドラインを使用して式を設定する場合は、複合式を作成するときに括弧を使用してデバイスチェック式をグループ化します。かっこを使用すると、クライアント式の理解とデバッグが向上します。
AND (&&) 演算子を使用したポリシーの設定
AND (&&) 演算子は、2 つのクライアントデバイスのチェック文字列を組み合わせて、両方のチェックが合格した場合にのみ複合チェックが成功するようにします。式は左から右に評価され、最初のチェックが失敗した場合、2 番目のチェックは実行されません。
AND (&&) 演算子は、キーワード ‘AND’ または記号 ‘&&’ を使用して設定できます。
例:
以下は、ユーザーデバイスにバージョン 7.0 の Sophos antivirus がインストールされ、実行されているかどうかを判断するクライアントデバイスチェックです。また、Net Logon サービスが同じコンピュータで実行されているかどうかも確認します。
CLIENT.APPLICATION.AV(sophos).version==7.0 AND CLIENT.SVC(netlogon) EXISTS
この文字列は、次のように設定することもできます:
CLIENT.APPLICATION.AV(sophos).version==7.0 && CLIENT.SVC(netlogon) EXISTS
OR (||) 演算子を使用したポリシーの設定
OR (||)
演算子は、2 つのデバイスチェック文字列を組み合わせて機能します。複合チェックは、どちらかのチェックが true の場合にパスします。式は左から右に評価され、最初のチェックに合格した場合、2 番目のチェックは実行されません。最初のチェックがパスしない場合、2 番目のチェックが実行されます。
OR (||)
演算子は、 キーワードOR
または||
記号を使用して設定できます 。
例:
以下は、ユーザーデバイスにc:\\file.txt
ファイルがあるのか、それとも実行中のputty.exe
プロセスがあるのかを判断するクライアントデバイスチェックです。
client.file(c:\\\\\\\\file.txt) EXISTS) OR (client.proc(putty.exe) EXISTS
この文字列は、次のように設定することもできます
client.file(c:\\\\\\\\file.txt) EXISTS) || (client.proc(putty.exe) EXISTS
NOT (!) 演算子を使用してポリシーを設定
NOT (!)または、否定演算子はクライアントデバイスのチェック文字列を無効にします。
例:
ファイル c:\sophos_virus_defs.dat ファイルが作成されてから 2 日以内であれば、次のクライアントデバイスチェックに合格します。
\!(client.file(c:\\\\\\\\sophos\_virus\_defs.dat).timestamp==2dy)