Juniper Junos のログを収集する

以下でサポートされています。

このドキュメントでは、Google Security Operations フォワーダーを使用して Juniper Junos のログを収集する方法について説明します。

詳細については、Google Security Operations へのデータの取り込みの概要をご覧ください。

取り込みラベルによって、未加工のログデータを構造化 UDM 形式に正規化するパーサーが識別されます。このドキュメントの情報は、取り込みラベル JUNIPER_JUNOS が付加されたパーサーに適用されます。

Juniper Networks SRX デバイスのための構造化ロギングを構成する

構造化ログ形式を使用してログメッセージから情報を抽出します。ログ形式は Syslog プロトコルに準拠しています。

  1. 管理 IP アドレスへの SSH を使用して Juniper SRX CLI にログインします。
  2. シェル プロンプトで CLI と入力し、Enter キーを押します。
  3. configure と入力し、Enter キーを押してデバイスの構成モードに入ります。
  4. 連絡先情報またはお客様の参照ポイントを入力します。
  5. フィールドをユーザー アカウントにマッピングするには、次のコマンドを実行します。

       set system syslog host FORWARDER_IP_ADDRESS any info
    
       set system syslog host FORWARDER_IP_ADDRESS structured-data
    
    

    FORWARDER_IP_ADDRESS は、Google Security Operations フォワーダーの IP アドレスに置き換えます。

  6. セキュリティ ログの構造化ロギングを有効にするには、次のコマンドを使用します。

       set security log mode stream
    
       set security log source-address SRC_IP_ADDRESS
    
       set security log stream SYSLOG_STREAM_NAME host FORWARDER_IP_ADDRESS
    
       set security log stream SYSLOG_STREAM_NAME format sd-syslog
    
    

    以下を置き換えます。

    • SRC_IP_ADDRESS: Juniper SRX デバイスの IP アドレス。

    • SYSLOG_STREAM_NAME: syslog サーバーに割り当てられた名前。

    • FORWARDER_IP_ADDRESS: Google Security Operations フォワーダーの IP アドレス。

  7. すべてのセキュリティ ポリシーでロギングが有効になっていることを確認します。ロギングを有効にするには、次のコマンドを実行します。

       set security policies from-zone <zone-name1> to-zone <zone-name2> policy <policy-name> then log session-close
    
       set security policies from-zone <zone-name1> to-zone <zone-name2> policy <policy-name> then log session-init
    
    
  8. 次のコマンドを使用して、デバイスのホスト名を構成します。

       set system host-name HOSTNAME
    
    

    HOSTNAME は、割り当てられた Juniper Networks SRX デバイスに置き換えます。

  9. commit を入力して、実行されたコマンドを構成に保存します。

Juniper Junos のログを取り込むように Google Security Operations フォワーダーと Syslog を構成する

  1. [SIEM の設定] > [フォワーダー] を選択します。
  2. [新しいフォワーダーの追加] をクリックします。
  3. [フォワーダーの名前] フィールドに一意の名前を入力します。
  4. [送信]、[確認] の順にクリックします。フォワーダーが追加され、[コレクタの構成を追加する] ウィンドウが表示されます。
  5. [コレクタ名] フィールドに、コレクタの一意の名前を入力します。
  6. [ログタイプ] として [Juniper Junos] を選択します。
  7. [コレクタタイプ] として [Syslog] を選択します。
  8. 次の入力パラメータを構成します。
    • プロトコル: プロトコルを UDP として指定します。
    • アドレス: コレクタが存在し、Syslog データをリッスンするターゲット IP アドレスまたはホスト名を指定します。
    • ポート: コレクタが存在し、syslog データをリッスンするターゲット ポートを指定します。
  9. [送信] をクリックします。

Google Security Operations フォワーダーの詳細については、Google Security Operations フォワーダーのドキュメントをご覧ください。各フォワーダ タイプの要件については、タイプ別のフォワーダ構成をご覧ください。フォワーダーの作成時に問題が発生した場合は、Google Security Operations サポートにお問い合わせください。

フィールド マッピング リファレンス

このパーサーは、Juniper JUNOS syslog メッセージからフィールドを抽出し、Key-Value 形式と Key-Value 以外の形式の両方を処理します。grok パターンを使用して、さまざまなメッセージ構造(ファイアウォール ログ、SSH アクティビティ、コマンド実行など)をマッチングし、抽出されたフィールドを UDM にマッピングします。また、このパーサーは、インクルード ファイルを使用して CEF 形式のログを処理し、メッセージの内容に基づいて特定のアクションを実行します(IP アドレスとユーザー名を適切な UDM フィールドに統合するなど)。

UDM マッピング テーブル

ログフィールド UDM マッピング 論理
DPT target.port ネットワーク接続の宛先ポートを整数に変換したもの。
DST target.ip ネットワーク接続の宛先 IP アドレス。
FLAG additional.fields{}.key: "FLAG"、additional.fields{}.value.string_value: FLAG の値 ネットワーク接続に関連付けられた TCP フラグ。
ID additional.fields{}.key: "ID"、additional.fields{}.value.string_value: ID の値 IP ID フィールド。
IN additional.fields{}.key: "IN"、additional.fields{}.value.string_value: IN の値 受信ネットワーク インターフェース。
LEN additional.fields{}.key: "LEN"、additional.fields{}.value.string_value: LEN の値 IP パケットの長さ。
MAC principal.mac MAC フィールドから抽出された MAC アドレス。
OUT additional.fields{}.key: "OUT"、additional.fields{}.value.string_value: OUT の値 発信ネットワーク インターフェース。
PREC additional.fields{}.key: "PREC"、additional.fields{}.value.string_value: PREC の値 IP ヘッダーの優先度フィールド。
PROTO network.ip_protocol ネットワーク接続で使用される IP プロトコル。
RES additional.fields{}.key: "RES"、additional.fields{}.value.string_value: RES の値 TCP ヘッダー内の予約済みフィールド。
SPT principal.port ネットワーク接続のソースポートを整数に変換したもの。
SRC principal.ip ネットワーク接続のソース IP アドレス。
TOS additional.fields{}.key: "TOS"、additional.fields{}.value.string_value: TOS の値 IP ヘッダーの Type of Service フィールド。
TTL network.dns.additional.ttl 有効期間(TTL)値を符号なし整数に変換したもの。
URGP additional.fields{}.key: "URGP"、additional.fields{}.value.string_value: URGP の値 TCP ヘッダーの緊急ポインタ フィールド。
WINDOW additional.fields{}.key: "WINDOW_SIZE"、additional.fields{}.value.string_value: WINDOW の値 TCP ウィンドウ サイズ。
action security_result.action ファイアウォールが行ったアクション。CEF メッセージから抽出されます。
agt observer.ip エージェントの IP アドレス。
amac target.mac ターゲットの MAC アドレスを小文字に変換し、ハイフンをコロンに置き換えたもの。
app target.application イベントに関連するアプリケーション。
artz observer.zone オブザーバーのタイムゾーン。
atz target.location.country_or_region ターゲット タイムゾーン。
categoryBehavior additional.fields{}.key: "Category Behavior"、additional.fields{}.value.string_value: categoryBehavior の値からスラッシュを削除したもの カテゴリの動作。
categoryDeviceGroup additional.fields{}.key: "Category Device Group"、additional.fields{}.value.string_value: categoryDeviceGroup の値からスラッシュを削除したもの カテゴリ デバイス グループ。
categoryObject additional.fields{}.key: "Category Object"、additional.fields{}.value.string_value: categoryObject の値からスラッシュを削除したもの カテゴリ オブジェクト。
categoryOutcome additional.fields{}.key: "Category Outcome"、additional.fields{}.value.string_value: categoryOutcome の値からスラッシュを削除したもの カテゴリの結果。
categorySignificance additional.fields{}.key: "category Significance"、additional.fields{}.value.string_value: categorySignificance の値 カテゴリの重要度。
command target.process.command_line 実行されたコマンド。
cs1Label additional.fields{}.key: cs1Labeladditional.fields{}.value.string_value: 対応する CEF フィールドの値 CEF メッセージのカスタム文字列フィールド 1 のラベルと値。
cs2Label additional.fields{}.key: cs2Labeladditional.fields{}.value.string_value: 対応する CEF フィールドの値 CEF メッセージのカスタム文字列フィールド 2 のラベルと値。
cs3Label additional.fields{}.key: cs3Labeladditional.fields{}.value.string_value: 対応する CEF フィールドの値 CEF メッセージのカスタム文字列フィールド 3 のラベルと値。
cs4Label additional.fields{}.key: cs4Labeladditional.fields{}.value.string_value: 対応する CEF フィールドの値 CEF メッセージのカスタム文字列フィールド 4 のラベルと値。
cs5Label additional.fields{}.key: cs5Labeladditional.fields{}.value.string_value: 対応する CEF フィールドの値 CEF メッセージのカスタム文字列フィールド 5 のラベルと値。
cs6Label additional.fields{}.key: cs6Labeladditional.fields{}.value.string_value: 対応する CEF フィールドの値 CEF メッセージのカスタム文字列フィールド 6 のラベルと値。
dhost target.hostname 宛先ホスト名。
deviceCustomString1 additional.fields{}.key: cs1Labeladditional.fields{}.value.string_value: deviceCustomString1 の値 デバイス カスタム文字列 1。
deviceCustomString2 additional.fields{}.key: cs2Labeladditional.fields{}.value.string_value: deviceCustomString2 の値 デバイス カスタム文字列 2。
deviceCustomString3 additional.fields{}.key: cs3Labeladditional.fields{}.value.string_value: deviceCustomString3 の値 デバイス カスタム文字列 3。
deviceCustomString4 additional.fields{}.key: cs4Labeladditional.fields{}.value.string_value: deviceCustomString4 の値 デバイス カスタム文字列 4。
deviceCustomString5 additional.fields{}.key: cs5Labeladditional.fields{}.value.string_value: deviceCustomString5 の値 デバイス カスタム文字列 5。
deviceCustomString6 additional.fields{}.key: cs6Labeladditional.fields{}.value.string_value: deviceCustomString6 の値 デバイス カスタム文字列 6。
deviceDirection network.direction ネットワーク トラフィックの方向。
deviceEventClassId additional.fields{}.key: "eventId"、additional.fields{}.value.string_value: deviceEventClassId の値 デバイス イベント クラス ID。
deviceFacility observer.product.subproduct デバイス ファシリティ。
deviceProcessName about.process.command_line デバイス プロセス名。
deviceSeverity security_result.severity デバイスの重大度。
deviceTimeZone observer.zone デバイスのタイムゾーン。
deviceVendor metadata.vendor_name デバイス ベンダー。
deviceVersion metadata.product_version デバイスのバージョン。
dpt target.port 宛先ポート。
dst target.ip 宛先 IP アドレス。
duser target.user.user_display_name 宛先ユーザー。
eventId additional.fields{}.key: "eventId"、additional.fields{}.value.string_value: eventId の値 予定 ID。
event_time metadata.event_timestamp イベントが発生した日時(メッセージから解析)。
firewall_action security_result.action_details 実行されたファイアウォール アクション。
host principal.hostnameintermediary.hostname ログを生成するデバイスのホスト名。さまざまなケースで、プリンシパルと仲介者の両方に使用されます。
msg security_result.summary イベントに関連付けられたメッセージ。セキュリティ結果の要約として使用されます。
name metadata.product_event_type イベントの名前。
process_name additional.fields{}.key: "process_name"、additional.fields{}.value.string_value: process_name の値 プロセスの名前。
p_id target.process.pid プロセス ID を文字列に変換したもの。
sha256 principal.process.file.sha256 ファイルの SHA256 ハッシュ(SSH2 鍵情報から抽出されたもの)。
shost principal.hostname ソースのホスト名。
source_address principal.ip ソース IP アドレス。
source_port principal.port ソースポートを整数に変換したもの。
src principal.ip ソース IP アドレス。
src_ip principal.ip ソース IP アドレス。
src_port principal.port ソースポートを整数に変換したもの。
ssh2 security_result.detection_fields{}.key: "ssh2"、security_result.detection_fields{}.value: ssh2 の値 SSH2 鍵情報。
subtype metadata.product_event_type イベントのサブタイプ。
task_summary security_result.description タスク要約。セキュリティ結果の説明として使用されます。
timestamp metadata.event_timestamp イベントのタイムスタンプ。
user target.user.userid イベントに関連付けられているユーザー。
username principal.user.userid イベントに関連付けられたユーザー名。
user_name principal.user.userid ユーザー名。
metadata.vendor_name 「Juniper Firewall」にハードコードされています。「Juniper Firewall」にハードコードされています。「JUNIPER_JUNOS」にハードコードされています。ログの内容に基づいてパーサー ロジックによって決定されます。CEF メッセージではなく、他の具体的なイベントタイプが特定されていない場合のデフォルトは「STATUS_UPDATE」です。CEF メッセージの場合は「NETWORK_HTTP」に設定されます。desc フィールドが存在しない場合、このフィールドには未加工ログメッセージから抽出された message_description が入力されます。

変更

2024-05-02

  • 機能強化
  • 新しい SYSLOG + KV 形式のログをサポートする Grok パターンを追加しました。

2023-10-25

  • 機能強化
  • 未解析ログを解析するための Grok パターンを追加しました。
  • 「source_port」を「principal.port」にマッピングしました。
  • 「source_address」を「principal.ip」にマッピングしました。
  • 「user_name」を「target.user.userid」にマッピングしました。
  • 「application_name」を「target.application」にマッピングしました。
  • 「p_id」を「target.process.pid」にマッピングしました。
  • KV マッピングの前に「invalid_pattern」チェックを追加しました。
  • 「description_present」が false の場合に「security_result.description」をマッピングする Grok パターンを追加しました。

2023-08-17

  • 機能強化
  • 解析された未解析ログに Grok パターンを追加しました。
  • 「msg」を「security_result.summary」にマッピングしました。
  • 「src_ip」を「principal.ip」にマッピングしました。
  • 「user」を「target.user.userid」にマッピングしました。
  • 「username」を「principal.user.userid」にマッピングしました。
  • 「command」を「target.process.command_line」にマッピングしました。
  • 「src_port」を「principal.port」にマッピングしました。
  • 「ssh2」を「security_result.detection_fields」にマッピングしました。
  • 「sha256」を「principal.process.file.sha256」にマッピングしました。
  • 「desc」を「sec_result.summary」にマッピングしました。
  • 「mac-address」を「principal.mac」にマッピングしました。
  • event_type が「STATUS_UPDATE」の場合、「host」を「principal.hostname」にマッピングしました。

2023-01-15

  • 機能強化
  • 次のタイプが含まれる未解析ログをサポートするように Grok パターンを変更しました。"UI_CMDLINE_READ_LINE"、"UI_COMMIT_PROGRESS"、"UI_CHILD_START"、
  • "UI_CFG_AUDIT_OTHER"、"UI_LOGIN_EVENT"、"UI_CHILD_STATUS"、"UI_LOGOUT_EVENT"、"UI_LOAD_EVENT"、
  • "JTASK_IO_CONNECT_FAILED"、"UI_AUTH_EVENT"、"UI_NETCONF_CMD"、"UI_COMMIT_NO_MASTER_PASSWORD"、"UI_CFG_AUDIT_SET"、"UI_JUNOSCRIPT_CMD"、
  • "SNMPD_AUTH_FAILURE", "UI_CFG_AUDIT_NEW", "UI_COMMIT" , "LIBJNX_LOGIN_ACCOUNT_LOCKED", "UI_COMMIT_COMPLETED",
  • "PAM_USER_LOCK_LOGIN_REQUESTS_DENIED", "RTPERF_CPU_USAGE_OK", "RTPERF_CPU_THRESHOLD_EXCEEDED", "LIBJNX_LOGIN_ACCOUNT_UNLOCKED",
  • 「JSRPD_SET_OTHER_INTF_MON_FAIL」、「JSRPD_SET_SCHED_MON_FAILURE」、「UI_CHILD_WAITPID」、「UI_DBASE_LOGIN_EVENT」。

2022-05-02

  • 新しいデフォルト パーサー。

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。