Synology のログを収集する
概要
このパーサーは、grok パターンを使用して Synology SYSLOG メッセージからフィールドを抽出し、UDM にマッピングします。さまざまなログ形式を処理し、ユーザーのログインとリソースへのアクセスを特定し、キーワードに基づいてイベントを分類し、ベンダーとプロダクトの情報でデータを拡充します。
始める前に
- Google SecOps インスタンスがあることを確認します。
- Synology DSM への特権アクセス権があることを確認します。
Synology のログを取り込むように Google SecOps でフィードを構成する
- [SIEM 設定] > [フィード] に移動します。
- [新しく追加] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例: Synology Logs)。
- [Source type] として [Webhook] を選択します。
- [ログタイプ] として [Synology] を選択します。
- [次へ] をクリックします。
- 省略可: 次の入力パラメータの値を指定します。
- Split delimiter: ログ行を区切るために使用される区切り文字(
\n
など)。 - Asset namespace: アセットの名前空間。
- Ingestion labels: このフィードからのイベントに適用されるラベル。
- Split delimiter: ログ行を区切るために使用される区切り文字(
- [次へ] をクリックします。
- [Finalize] 画面でフィードの設定を確認し、[送信] をクリックします。
- [秘密鍵を生成する] をクリックして、このフィードを認証するためのシークレット キーを生成します。
- 秘密鍵をコピーして保存します。この秘密鍵を再び表示することはできません。必要に応じて、新しい秘密鍵を再生成できますが、その場合以前の秘密鍵は無効になります。
- [詳細] タブで、[エンドポイント情報] フィールドから、フィードのエンドポイント URL をコピーします。 このエンドポイント URL をクライアント アプリケーション内で指定する必要があります。
- [完了] をクリックします。
Webhook フィード用の API キーを作成する
[Google Cloud コンソール] > [認証情報] に移動します。
[認証情報を作成] をクリックして [API キー] を選択します。
API キーのアクセスを Google Security Operations API に制限します。
エンドポイント URL を指定する
- クライアント アプリケーション内で、Webhook フィードで提供される HTTPS エンドポイント URL を指定します。
次の形式でカスタム ヘッダーの一部として API キーと秘密鍵を指定して、認証を有効にします。
X-goog-api-key = API_KEY X-Webhook-Access-Key = SECRET
推奨事項: API キーは URL 内で指定するのではなくヘッダーとして指定してください。
Webhook クライアントがカスタム ヘッダーをサポートしていない場合は、次の形式のクエリ パラメータを使用して API キーと秘密鍵を指定できます。
ENDPOINT_URL?key=API_KEY&secret=SECRET
以下を置き換えます。
ENDPOINT_URL
: フィードのエンドポイント URL。API_KEY
: Google Security Operations に対する認証に使用する API キー。SECRET
: フィードの認証用に生成した秘密鍵。
Google SecOps 用に Synology で Webhook を作成する
- Synology NAS で DiskStation Manager(DSM)にログインします。
- [コントロール パネル] > [通知] > [Webhook] に移動します。
- [追加] をクリックします。
次のパラメータの値を指定します。
- プロバイダ: [カスタム] を選択します。
ルール: 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 の値を指定します。
[適用] をクリックします。
[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 のプロフェッショナルから回答を得ることができます。