Synology のログを収集する

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

概要

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

始める前に

次の前提条件を満たしていることを確認します。

  • Google SecOps インスタンス。
  • Synology DSM への特権アクセス。

フィードを設定する

Google SecOps プラットフォームでフィードを設定するには、次の 2 つのエントリ ポイントがあります。

  • [SIEM 設定] > [フィード]
  • [Content Hub] > [Content Packs]

[SIEM 設定] > [フィード] でフィードを設定する

フィードを構成する手順は次のとおりです。

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

コンテンツ ハブからフィードを設定する

次のフィールドに値を指定します。

  • Split delimiter: ログ行を区切るために使用される区切り文字(\n など)。

詳細オプション

  • フィード名: フィードを識別する事前入力された値。
  • ソースタイプ: Google SecOps にログを収集するために使用される方法。
  • アセットの名前空間: フィードに関連付けられた名前空間。
  • Ingestion Labels: このフィードのすべてのイベントに適用されるラベル。

  • [秘密鍵を生成する] をクリックして、このフィードを認証するためのシークレット キーを生成します。

  • 秘密鍵をコピーして保存します。この秘密鍵を再び表示することはできません。必要に応じて、新しい秘密鍵を再生成できますが、その場合以前の秘密鍵は無効になります。

  • [詳細] タブで、[エンドポイント情報] フィールドから、フィードのエンドポイント URL をコピーします。 このエンドポイント URL をクライアント アプリケーション内で指定する必要があります。

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 で送信するメッセージの種類を選択します。

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

    • プロバイダ名: Webhook にわかりやすい名前を付けます(例: Google SecOps)。

    • 件名: 通知メッセージのプレフィックスとして追加されます。

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

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

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

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

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

    • API_KEY 値を使用して、ヘッダー X-goog-api-key を追加します。

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

  5. [適用] をクリックして、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 フィールドに「accessed shared folder」が含まれている場合、角かっこ内のフォルダパスが抽出され、target.file.names に割り当てられます。
host principal.hostname host_and_ip フィールドから grok フィルタによって抽出された 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 に割り当てられます。メッセージに「signed in」または「sign in」が含まれている場合、extensions 内に空の auth オブジェクトが作成されます。未加工ログの collection_time フィールドのタイムスタンプが使用されます。メッセージに「signed in」または「sign in」が含まれている場合、値は USER_LOGIN に設定されます。メッセージに「accessed shared folder」が含まれている場合、値は 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 grok フィルタによって抽出された severity フィールドの値は、security_result.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 フィールドのタイムスタンプが使用されます。

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