ServiceNow Security ログを収集する
以下でサポートされています。
Google SecOpsSIEM
概要
このパーサーは、ServiceNow JSON ログからセキュリティ イベント データを抽出し、関連するフィールドを UDM にマッピングします。ログインや権限の変更などのさまざまなイベントタイプを処理し、プリンシパル/ターゲット ユーザー情報、IP アドレス、ベンダーやプロダクトの詳細などのメタデータを入力します。
始める前に
- Google SecOps インスタンスがあることを確認します。
- ServiceNow Security への特権アクセス権があることを確認します。
ServiceNow Security ログを取り込むように Google SecOps でフィードを構成する
- [SIEM 設定] > [フィード] に移動します。
- [新しく追加] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例: ServiceNow セキュリティ ログ)。
- [ソースタイプ] として [Webhook] を選択します。
- [ログタイプ] として [ServiceNow Security] を選択します。
- [次へ] をクリックします。
- 省略可: 次の入力パラメータの値を指定します。
- 分割区切り文字: ログ行を区切るために使用される区切り文字(
\n
など)。 - アセットの名前空間: アセットの名前空間。
- 取り込みラベル: このフィードのイベントに適用されるラベル。
- 分割区切り文字: ログ行を区切るために使用される区切り文字(
- [次へ] をクリックします。
- [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 SecOps に対する認証に使用する API キー。SECRET
: フィードの認証用に生成したシークレット キー。
ServiceNow で Webhook を構成する
- 特権アカウントで ServiceNow Security にログインします。
- [構成] > [モニタリング] > [接続] に移動します。
- [ 追加 ] をクリックします。
- [Webhook] を選択します。
- 次のパラメータの値を指定します。
- 名前: Webhook のわかりやすい名前を指定します(例: Google SecOps)。
- URL: Google SecOps の ENDPOINT_URL を入力し、API_KEY と SECRET を指定します。
- [保存] をクリックして、Webhook の構成を完了します。
UDM マッピング
ログフィールド | UDM マッピング | ロジック |
---|---|---|
created_by | target.user.userid | snc_user が空の場合、target.user.userid にマッピングされます。 |
イベント | metadata.product_event_type | 元のログフィールド「event」から直接マッピングされます。 |
event_created | metadata.event_timestamp.seconds | date フィルタを使用して、元のログフィールド「event_created」から秒単位に変換された値。 |
ip_address | principal.ip | 空でない場合、未加工のログフィールド「ip_address」から直接マッピングされます。 |
snc_user | target.user.userid | 未加工のログフィールド「snc_user」から直接マッピングされます(空でない場合)。 |
ユーザー | principal.user.userid | 空でないか「null」でない場合、未加工のログフィールド「user」から直接マッピングされます。 |
extensions.auth.type | event フィールドが「Failed Login」、「SNC Login」、「Admin Login」、「Impersonation」の場合は、「MACHINE」に設定します。 |
|
metadata.event_type | event フィールドが「Failed Login」、「SNC Login」、「Admin Login」、「Impersonation」の場合は、「USER_LOGIN」に設定します。event フィールドが「セキュリティの昇格」の場合は、「USER_CHANGE_PERMISSIONS」に設定します。 |
|
metadata.log_type | 「SERVICENOW_SECURITY」にハードコードされています。 | |
metadata.product_name | 「SERVICENOW_SECURITY」にハードコードされています。 | |
metadata.vendor_name | 「SERVICENOW」にハードコードされています。 | |
principal.user.userid | user フィールドが空または「null」の場合は、「UNKNOWN」に設定します。 |