NetScaler ログを収集する
このドキュメントでは、Google Security Operations フォワーダーを使用して NetScaler ログを収集する方法について説明します。
詳細については、Google Security Operations へのデータの取り込みの概要をご覧ください。
取り込みラベルによって、未加工のログデータを構造化 UDM 形式に正規化するパーサーが識別されます。このドキュメントの情報は、取り込みラベル CITRIX_NETSCALER
が付加されたパーサーに適用されます。
NetScaler VPX を構成する
Google Security Operations フォワーダーにログを送信するように NetScaler VPX を構成するには、次の操作を行います。
ホスト名の構成を確認する
- 管理者の認証情報を使用して NetScaler ウェブ インターフェースにログインします。
- [Configuration] > [Settings] を選択します。
- [Host name, DNS IP address, and Time zone] をクリックします。
- [ホスト名] フィールドが空の場合は、ホスト名を入力します。スペースは含めないでください。このフィールドがすでに設定されている場合は、特にご対応いただく必要はありません。
- [DNS IP address] フィールドで、ローカル DNS IP アドレスが指定されていることを確認します。
- [タイムゾーン] フィールドにタイムゾーンを入力します。
監査サーバーを作成する
- NetScaler ウェブ インターフェースで、[Configuration] > [System] > [Auditing] > [Syslog] > [Servers] を選択します。
- 次のフィールドに syslog の詳細を指定します。
- 名前
- サーバータイプ
- IP アドレス
- ポート
- [ログレベル] で [カスタム] を選択します。
- 構成で [DEBUG] レベルを除くすべてのチェックボックスをオンにします。
- [ログ ファシリティ] リストで [LOCAL0] を選択します。
- [日付の形式] リストで [MMDDYYYY] を選択します。
- [タイムゾーン] で [GMT] を選択します。
- 次のチェックボックスをオフにします。
- TCP ロギング
- ACL ロギング
- ユーザーが構成可能なログ メッセージ
- AppFlow のロギング
- 大規模な NAT ロギング
- ALG メッセージのロギング
- サブスクライバーのロギング
- DNS
- SSL インターセプト
- URL のフィルタリング
- コンテンツ検査のロギング
- [OK] をクリックして、監査サーバーを作成します。
作成した監査ポリシーをサーバーにバインドする
- NetScaler ウェブ インターフェースで、[Configuration] > [System] > [Auditing] > [Syslog] を選択します。
- [ポリシー] タブをクリックします。
- [名前] フィールドに、ポリシーの名前を入力します。
- [サーバー] リストで、前のセクションで作成したポリシーを選択します。
- [作成] をクリックします。
- 作成した監査ポリシーを右クリックし、[アクション > グローバル バインディング] を選択します。
- [バインディングを追加] をクリックします。
- [ポリシー バインディング] ウィンドウで、次の操作を行います。
- [ポリシーの選択] フィールドに、作成した監査ポリシーを入力します。
- [バインディングの詳細] ペインの [優先度] フィールドに、デフォルトの優先度である 120 と入力します。
- [Bind] をクリックします。
NetScaler SDX を構成する
Google Security Operations フォワーダーにログを送信するように NetScaler SDX を構成するには、次の操作を行います。
NetScaler SDX のホスト名構成を確認する
- 管理者の認証情報を使用して NetScaler ウェブ インターフェースにログインします。
- NetScaler ウェブ インターフェースで、[System] > [System settings] を選択します。
- [ホスト名] フィールドが空の場合は、ホスト名を入力します。スペースは含めないでください。このフィールドがすでに設定されている場合は、特にご対応いただく必要はありません。
- [タイムゾーン] フィールドで、[UTC] または [GMT] を選択します。
syslog サーバーを構成する
- NetScaler ウェブ インターフェースで、[System] > [Notifications] > [Syslog servers] を選択します。
- [詳細] ペインで、[追加] をクリックします。
- [Create syslog server] ウィンドウで、次の syslog サーバー パラメータの値を指定します。
- [名前] フィールドに名前を入力します。
- [IP アドレス] フィールドに、Google Security Operations 転送元の IP アドレスを入力します。
- [ポート] フィールドにポート番号を入力します。
- [ログレベル] で [カスタム] を選択します。
- [Debug] 以外のすべてのログレベルを選択します。
- [作成] をクリックします。
syslog パラメータを構成する
- NetScaler ウェブ インターフェースで、[System] > [Notifications] > [Syslog servers] を選択します。
- [詳細] ペインで、[Syslog パラメータ] をクリックします。
- [Configure syslog parameters] ページで、[Date format] を MMDDYYYY に、[Time zone] を GMT に設定します。
- [OK] をクリックします。
NetScaler ログを取り込むように Google Security Operations フォワーダーを構成する
- [SIEM の設定] > [転送元] を選択します。
- [新しいフォワーダーの追加] をクリックします。
- [フォワーダーの名前] フィールドに、フォワーダーの一意の名前を入力します。
- [送信]、[確認] の順にクリックします。フォワーダーが追加され、[コレクタの構成を追加する] ウィンドウが表示されます。
- [コレクタ名] フィールドに、コレクタの一意の名前を入力します。
- [ログタイプ] で [Citrix NetScaler] を選択します。
- [コレクタのタイプ] フィールドで [Syslog] を選択します。
- 次の必須入力パラメータを構成します。
- プロトコル: コレクタが syslog データをリッスンするために使用する接続プロトコルを指定します。
- Address: コレクタが存在し、Syslog データをリッスンするターゲット IP アドレスまたはホスト名を指定します。
- Port: コレクタが存在し、syslog データをリッスンするターゲット ポートを指定します。
- [送信] をクリックします。
Google Security Operations フォワーダーの詳細については、Google Security Operations UI でフォワーダー構成を管理するをご覧ください。
フォワーダーの作成時に問題が発生した場合は、Google Security Operations サポートにお問い合わせください。
フィールド マッピング リファレンス
このパーサーは、Citrix Netscaler SYSLOG ログを Key-Value 形式で処理し、message
フィールドから JSON 形式のデータを抽出します。また、host.hostname
や user_agent.original
などの他のフィールドの情報をサニタイズしてから UDM を拡充します。プライマリ メッセージが空の場合、元のログメッセージにフォールバックして処理します。
UDM マッピング テーブル
ログフィールド | UDM マッピング | ロジック |
---|---|---|
AAA トランザクション ID | security_result.detection_fields[].value |
「AAA trans id」フィールドから抽出された値。 |
アクセス | security_result.action_details |
[アクセス] が [許可] の場合は、security_result.action を ALLOW に設定します。[アクセス] が [拒否] の場合は、security_result.action を BLOCK に設定します。 |
applicationName | principal.application |
「applicationName」フィールドから抽出された値。 |
Browser_type | network.http.user_agent |
「Browser_type」フィールドから抽出された値。 |
ClientIP | principal.ip 、principal.asset.ip |
「ClientIP」フィールドから抽出された値。 |
ClientPort | principal.port |
[ClientPort] フィールドから抽出された値。 |
client_cookie | additional.fields[].value.string_value |
「client_cookie」フィールドから抽出された値。 |
コマンド | target.process.command_line |
[Command] フィールドから抽出された値。 |
connectionId | security_result.detection_fields[].value |
「connectionId」フィールドから抽出された値。 |
目的地 | target.ip 、target.asset.ip |
[Destination] フィールドから抽出された値。 |
目的地 | target.ip 、target.asset.ip |
[Destination] フィールドから抽出された値。 |
device_serial_number | target.asset_id |
target.asset_id が「device_serial_number: |
所要時間 | network.session_duration.seconds |
時間は秒に変換され、マッピングされます。 |
終了時刻 | security_result.detection_fields[].value |
[終了時間] フィールドから抽出された値。 |
Failure_reason | metadata.description |
「Failure_reason」フィールドから抽出された値。 |
flags | additional.fields[].value.string_value |
「flags」フィールドから抽出された値。 |
グループ | target.group.group_display_name |
[グループ] フィールドから抽出された値。 |
理由 | metadata.description |
[理由] フィールドから抽出された値。 |
Remote_ip | target.ip 、target.asset.ip |
「Remote_ip」フィールドから抽出された値。 |
ServerIP | target.ip 、target.asset.ip |
[ServerIP] フィールドから抽出された値。 |
ServerPort | target.port |
「ServerPort」フィールドから抽出された値。 |
session_guid | metadata.product_log_id |
「session_guid」フィールドから抽出された値。 |
SessionId | network.session_id |
「SessionId」フィールドから抽出された値。 |
ソース | principal.ip 、principal.asset.ip |
[ソース] フィールドから抽出された値。 |
開始時刻 | security_result.detection_fields[].value |
[開始時間] フィールドから抽出された値。 |
startTime | security_result.detection_fields[].value |
[startTime] フィールドから抽出された値。 |
ステータス | security_result.description |
[ステータス] フィールドから抽出された値。 |
Total_bytes_recv | network.received_bytes |
「Total_bytes_recv」フィールドから抽出された値。 |
Total_bytes_send | network.sent_bytes |
[Total_bytes_send] フィールドから抽出された値。 |
Total_bytes_wire_recv | security_result.detection_fields[].value |
「Total_bytes_wire_recv」フィールドから抽出された値。 |
Total_bytes_wire_send | security_result.detection_fields[].value |
[Total_bytes_wire_send] フィールドから抽出された値。 |
ユーザー | principal.user.userid |
[ユーザー] フィールドから抽出された値。 |
VserverServiceIP | target.ip 、target.asset.ip |
「VserverServiceIP」フィールドから抽出された値。 |
VserverServicePort | target.port |
「VserverServicePort」フィールドから抽出された値。「CITRIX」にハードコードされています。「NETSCALER」にハードコードされています。「CITRIX_NETSCALER」にハードコードされています。product_event_type に基づいてパーサーによって決定されます。例: NETWORK_CONNECTION、USER_LOGIN、USER_LOGOUT、USER_STATS、STATUS_UPDATE、USER_UNCATEGORIZED、GENERIC_EVENT。ログの接頭辞から抽出された値(例: CONN_DELINK、CONN_TERMINATE、OTHERCONN_DELINK など)。イベントの簡単な説明。他のフィールド(「Reason」や「Failure_reason」など)から派生する場合もあります。ログエントリの日時フィールドから計算されます。パーサーはさまざまな形式とタイムゾーンを処理します。「username:domainname」フィールドから抽出されます。コロンより後の部分が使用されます。metadata.product_event_type に「TCP」が含まれているイベントについては、TCP にハードコードされました。ログインとコマンドが成功した場合は ALLOW に、ログインに失敗した場合やリソースへのアクセスがブロックされた場合は BLOCK に設定します。[Status]、[Failure_reason]、[Access] などのフィールドから派生します。ユーザー名とパスワードが認証に使用される場合は USERNAME_PASSWORD に設定します(特定のログ メッセージから推測されます)。VPN 関連のログイン/ログアウト イベントの場合は VPN に設定します。ユーザー エージェント解析ライブラリを使用して network.http.user_agent フィールドから解析されます。 |
変更点
2024-05-21
- ドロップされたログを解析するように Grok パターンを変更しました。
2024-05-20
- 未解析ログを解析するための新しい Grok パターンを追加しました。
2024-05-08
- 時間情報のマッピングを「security_results」から「network.session_duration」に更新しました。
2024-04-29
- 「Browser_type」の条件付きチェックを追加し、「network.http.parsed_user_agent」にマッピングしました。
- 「userId」と「user_email」の条件付きチェックを追加しました。
- 「Browser」を「network.http.parsed_user_agent」にマッピングしました。
2024-02-23
- UDM フィールドで想定どおりにホスト名を解析するように Grok パターンを更新しました。
2024-01-25
- 「message_type」が「Message」、「NONHTTP_RESOURCEACCESS_DENIED」、「UDPFLOWSTAT」、「EXTRACTED_GROUPS」であるログを解析するための Grok パターンを追加しました。
- 「feature」が「GUI」と「EVENT」のログを解析するサポートを追加しました。
- 「principal_port」を「principal.port」にマッピングしました。
- 「ClientIP」を「principal.asset.ip」にマッピングしました。
- 「principal_ip」を「principal.ip」と「principal.asset.ip」にマッピングしました。
- 「target_ip」を「target.ip」と「target.asset.ip」にマッピングしました。
- 「target_port」を「target.port」にマッピングしました。
- 「description」を「metadata.description」にマッピングしました。
- 「type」、「aaa_trans_id」、「pcb_trans_id」、「pcb_state」、「pcb_label」、「trans_id」、「authPolicyLen」、「login_attempts」、「PromptLen」、「partitionLen」、「cmdPolicyLen」、「ssh_pubkey_len」を「security_result.detection_fields」にマッピングしました。
- 「principal_hostname」を「principal.hostname」と「principal.asset.hostname」にマッピングしました。
- 「hostname」を「intermediary.asset.hostname」にマッピングしました。
- 「hostname」を「observer.asset.hostname」にマッピングしました。
- 「cip」、「ServerIP」、「VIP」、「VserverServiceIP」、「Remote_ip」を「target.asset.ip」にマッピングしました。
- 「message_type」が「Message」の場合、「User」を「principal.user.userid」にマッピングしました。
- 「principal_ip」と「target_ip」が存在する場合は、「metadata.event_type」を「NETWORK_CONNECTION」に設定します。
- 「Client_ip」と「target_ip」が存在する場合は、「metadata.event_type」を「NETWORK_CONNECTION」に設定します。
- 「message_type」が「NONHTTP_RESOURCEACCESS_DENIED」と「UDPFLOWSTAT」の場合、「metadata.event_type」を「USER_STATS」に設定します。
- 「message_type」が「Message」で、「User」が存在する場合は、「metadata.event_type」を「USER_UNCATEGORIZED」に設定します。
- 「principal_ip」が存在する場合は、「metadata.event_type」を「STATUS_UPDATE」に設定します。
2023-11-26
- Enhancement-
- 「message_type」が「Message」であるログを解析するための Grok パターンを追加しました。
2023-07-21
- 機能拡張 - 機能「CLI」を含むログを正しく解析するようにパーサーを更新しました。
2022-09-26
- 機能拡張 - カスタム パーサーをデフォルトのパーサーに移行しました。
2022-06-09
- 機能拡張 - リクエストされたマッピングを追加しました。
- 「startTime」、「endTime」、「Duration」を「security_result.detection_fields」にマッピングしました。
- パーサーを更新して、message_type が「CHANNEL_UPDATE」、「NETWORK_UPDATE」、「AAATM Message」のログを解析できるようにしました。
2022-05-09
- バグ修正 - message_type が「TCPCONNSTAT」を含むログを正しく解析するようにパーサーを更新しました。
- 「principal.administrative_domain」に完全なドメイン名を含めるように grok を更新しました。
- Validation API のテスト中に失敗したログを解析しました。
2022-04-27
- 機能強化 - リクエストされたマッピングを追加しました
- マッピングされた intermediary.hostname フィールド
- 解析された API の失敗ログ