Synology のログを収集する

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

概要

このパーサーは、grok パターンを使用して Synology SYSLOG メッセージからフィールドを抽出し、UDM にマッピングします。さまざまなログ形式を処理し、ユーザーのログインとリソースへのアクセスを特定し、キーワードに基づいてイベントを分類し、ベンダーとプロダクトの情報でデータを拡充します。

始める前に

  • Google SecOps インスタンスがあることを確認します。
  • Synology DSM への特権アクセス権があることを確認します。

Synology のログを取り込むように Google SecOps でフィードを構成する

  1. [SIEM 設定] > [フィード] に移動します。
  2. [新しく追加] をクリックします。
  3. [フィード名] フィールドに、フィードの名前を入力します(例: Synology Logs)。
  4. [Source type] として [Webhook] を選択します。
  5. [ログタイプ] として [Synology] を選択します。
  6. [次へ] をクリックします。
  7. 省略可: 次の入力パラメータの値を指定します。
    • Split delimiter: ログ行を区切るために使用される区切り文字(\n など)。
    • Asset namespace: アセットの名前空間
    • Ingestion labels: このフィードからのイベントに適用されるラベル。
  8. [次へ] をクリックします。
  9. [Finalize] 画面でフィードの設定を確認し、[送信] をクリックします。
  10. [秘密鍵を生成する] をクリックして、このフィードを認証するためのシークレット キーを生成します。
  11. 秘密鍵をコピーして保存します。この秘密鍵を再び表示することはできません。必要に応じて、新しい秘密鍵を再生成できますが、その場合以前の秘密鍵は無効になります。
  12. [詳細] タブで、[エンドポイント情報] フィールドから、フィードのエンドポイント URL をコピーします。 このエンドポイント URL をクライアント アプリケーション内で指定する必要があります。
  13. [完了] をクリックします。

Webhook フィード用の API キーを作成する

  1. [Google Cloud コンソール] > [認証情報] に移動します。

    [認証情報] に移動

  2. [認証情報を作成] をクリックして [API キー] を選択します。

  3. API キーのアクセスを Google Security Operations API に制限します。

エンドポイント URL を指定する

  1. クライアント アプリケーション内で、Webhook フィードで提供される HTTPS エンドポイント URL を指定します。
  2. 次の形式でカスタム ヘッダーの一部として API キーと秘密鍵を指定して、認証を有効にします。

    X-goog-api-key = API_KEY
    X-Webhook-Access-Key = SECRET
    

    推奨事項: API キーは URL 内で指定するのではなくヘッダーとして指定してください。

  3. Webhook クライアントがカスタム ヘッダーをサポートしていない場合は、次の形式のクエリ パラメータを使用して API キーと秘密鍵を指定できます。

    ENDPOINT_URL?key=API_KEY&secret=SECRET
    

    以下を置き換えます。

    • ENDPOINT_URL: フィードのエンドポイント URL。
    • API_KEY: Google Security Operations に対する認証に使用する API キー。
    • SECRET: フィードの認証用に生成した秘密鍵。

Google SecOps 用に Synology で Webhook を作成する

  1. Synology NAS で DiskStation Manager(DSM)にログインします。
  2. [コントロール パネル] > [通知] > [Webhook] に移動します。
  3. [追加] をクリックします。
  4. 次のパラメータの値を指定します。

    • プロバイダ: [カスタム] を選択します。
    • ルール: Webhook で送信するメッセージの種類を選択します。

    • [次へ] をクリックします。

    • Provider name: Webhook にわかりやすい名前を付けます(例: Google SecOps)。

    • Subject: 通知メッセージの接頭辞として追加されます。

    • Webhook URL: ENDPOINT_URL と入力します。

    • [通知メッセージを英語で送信する] を選択します。

    • [次へ] をクリックします。

    • HTTP Method: [POST] を選択します。

    • ヘッダー X-Webhook-Access-Key を追加し、値を SECRET にします。

    • ヘッダー X-goog-api-key を追加し、API_KEY の値を指定します。

    • [適用] をクリックします。

  5. [Apply] をクリックして Webhook を保存します。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
app target.application grok フィルタによって抽出された app フィールドの値が target.application に割り当てられます。
desc metadata.description grok フィルタによって抽出された desc フィールドの値が metadata.description に割り当てられます。
desc target.file.names desc フィールドに「Closed)" が含まれている場合、かっこ内のファイルパスが抽出され、target.file.names に割り当てられます。desc フィールドに「アクセスされた共有フォルダ」が含まれている場合、かっこ内のフォルダパスが抽出され、target.file.names に割り当てられます。
host principal.hostname grok フィルタによって host_and_ip フィールドから抽出された host フィールドの値が principal.hostname に割り当てられます。
host_and_ip principal.ip host_and_ip フィールドが解析されます。IP アドレス(ip1)が見つかった場合は、principal.ip に割り当てられます。2 つ目の IP アドレス(ip2)が見つかった場合、principal.ip にも追加されます。
intermediary_host intermediary.hostname grok フィルタによって抽出された intermediary_host フィールドの値が intermediary.hostname に割り当てられます。メッセージに「ログイン済み」または「ログイン」が含まれている場合、extensions 内に空の auth オブジェクトが作成されます。未加工ログの collection_time フィールドのタイムスタンプが使用されます。メッセージに「ログイン済み」または「ログイン」が含まれている場合、値は USER_LOGIN に設定されます。メッセージに「アクセスした共有フォルダ」が含まれている場合、値は USER_RESOURCE_ACCESS に設定されます。それ以外の場合は GENERIC_EVENT に設定されます。grok フィルタによって抽出された type フィールドの値が metadata.product_event_type に割り当てられます。この値は静的に「SYNOLOGY」に設定されます。この値は静的に「SYNOLOGY」に設定されます。メッセージに「failed to sign」が含まれている場合、値は BLOCK に設定されます。メッセージに「success」が含まれている場合、値は ALLOW に設定されます。severity フィールド(grok によって抽出)が「INFO」の場合、値は INFORMATIONAL に設定されます。
severity security_result.severity security_result.severity の決定には、grok フィルタによって抽出された severity フィールドの値が使用されます。値が「INFO」の場合、値は「INFORMATIONAL」にマッピングされます。
time metadata.event_timestamp grok フィルタによって抽出された time フィールドは解析され、タイムスタンプに変換されます。このタイムスタンプは metadata.event_timestamp に割り当てられます。
type metadata.product_event_type grok フィルタによって抽出された type フィールドの値が metadata.product_event_type に割り当てられます。
user target.administrative_domain ドメインが user フィールドから抽出されると、target.administrative_domain に割り当てられます。
user target.user.userid user フィールドのユーザー名部分(「&」より前)が抽出され、target.user.userid に割り当てられます。未加工ログの collection_time フィールドのタイムスタンプが使用されます。

変更点

2024-01-16

  • 新しく作成されたパーサー。

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