Atlassian Bitbucket のログを収集する

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

概要

このパーサーは、Atlassian Bitbucket JSON ログからフィールドを抽出し、UDM にマッピングします。さまざまなログ形式を処理し、IP アドレス、ユーザー ID、アセット情報などの使用可能なフィールドに基づいてプリンシパルまたはターゲット エンティティを入力します。また、ネットワークとユーザーのアクティビティに基づいてイベントを分類し、セキュリティ検出結果が存在する場合は、その結果でデータを拡充します。パーサーは、フィールドに値を入力するときに agentDetectionInfo よりも agentRealtimeInfo を優先します。

始める前に

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

  • Google SecOps インスタンス。
  • リポジトリ内の特権アクセス。

フィードを設定する

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

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

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

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

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

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

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

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

詳細オプション

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

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

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

  • [詳細] タブで、[エンドポイント情報] フィールドから、フィードのエンドポイント 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 内ではなくヘッダーとして指定してください。Webhook クライアントがカスタム ヘッダーをサポートしていない場合は、次の形式のクエリ パラメータを使用して API キーと秘密鍵を指定できます。

    ENDPOINT_URL?key=API_KEY&secret=SECRET
    

以下を置き換えます。

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

Atlassian Bitbucket で Webhook を作成する

  1. Bitbucket で、リポジトリの設定に移動します。
  2. [Workflow] の [Webhooks] をクリックします。
  3. [Add webhook] をクリックします。
  4. 次のフィールドを構成します。
    • タイトル: わかりやすい名前を指定します(例: Google SecOps)。
    • URL: Google SecOps API エンドポイント URL を入力します。
    • ステータス: [有効] に設定します。
    • トリガー: 関連するイベントを選択します。
  5. [保存] をクリックします。

UDM マッピング テーブル

ログフィールド UDM マッピング 論理
agentComputerName principal.hostname agentRealtimeInfo.agentComputerName から入力されます。
agentDetectionInfo.accountId metadata.product_deployment_id 文字列に変換されます。agentRealtimeInfo.accountId が存在しない場合、使用されます。
agentDetectionInfo.accountName metadata.product_name agentRealtimeInfo.accountName が存在しない場合、使用されます。
agentDetectionInfo.agentDomain principal.administrative_domain 直接マッピングされます。
agentDetectionInfo.agentIpV4 target.ip JSON 配列から抽出され、target.ip フィールドに統合されます。
agentDetectionInfo.agentIpV6 principal.ip JSON 配列から抽出され、principal.ip フィールドに統合されます。
agentDetectionInfo.agentLastLoggedInUserName principal.user.userid 解析されて、ユーザー ID とドメイン(存在する場合)が抽出されます。ドメインがない場合は、principal.user.userid に直接マッピングされます。
agentDetectionInfo.agentOsName principal.platform_versionprincipal.asset.platform_software.platform_version agentRealtimeInfo.agentOsName が存在しない場合、使用されます。
agentDetectionInfo.agentOsRevision principal.platform_patch_levelprincipal.asset.platform_software.platform_patch_level agentRealtimeInfo.agentOsRevision が存在しない場合、使用されます。
agentDetectionInfo.agentRegisteredAt principal.asset.first_discover_time ISO8601 タイムスタンプとして解析されます。
agentDetectionInfo.agentUuid principal.asset_idprincipal.asset.asset_id agentRealtimeInfo.agentUuid が存在しない場合、使用されます。「agentUuid:」の接頭辞が付いています。
agentDetectionInfo.agentVersion metadata.product_version agentRealtimeInfo.agentVersion が存在しない場合、使用されます。
agentDetectionInfo.externalIp target.ip 直接マッピングされます。
agentDetectionInfo.groupId principal.user.group_identifiers 空でないか「-」でない場合、フィールドに統合されます。agentRealtimeInfo.groupId が存在しない場合に使用されます。
agentDetectionInfo.groupName principal.group.group_display_name agentRealtimeInfo.groupName が存在しない場合、使用されます。
agentDetectionInfo.siteId additional.fields キー「agentDetectionInfo.siteId」で Key-Value ペアとして追加されます。agentRealtimeInfo.siteId が存在しない場合、使用されます。
agentDetectionInfo.siteName additional.fields キー「agentDetectionInfo.siteName」で Key-Value ペアとして追加されます。agentRealtimeInfo.siteName が存在しない場合、使用されます。
agentRealtimeInfo.accountId metadata.product_deployment_id 文字列に変換されます。
agentRealtimeInfo.accountName metadata.product_name 直接マッピングされます。
agentRealtimeInfo.agentComputerName principal.hostnameprincipal.asset.hostname 直接マッピングされます。
agentRealtimeInfo.agentId principal.asset_idprincipal.asset.asset_id 「agentId:」の接頭辞が付いています。
agentRealtimeInfo.agentMachineType principal.asset.category 直接マッピングされます。
agentRealtimeInfo.agentOsName principal.platform_versionprincipal.asset.platform_software.platform_version 直接マッピングされます。
agentRealtimeInfo.agentOsRevision principal.platform_patch_levelprincipal.asset.platform_software.platform_patch_level 直接マッピングされます。
agentRealtimeInfo.agentOsType principal.asset.platform_software.platformprincipal.platform 値に基づいて WINDOWS、MAC、LINUX にマッピングされます。
agentRealtimeInfo.agentUuid principal.asset_idprincipal.asset.asset_id 直接マッピングされます。「agentUuid:」の接頭辞が付いています。
agentRealtimeInfo.agentVersion metadata.product_version 直接マッピングされます。
agentRealtimeInfo.groupId principal.user.group_identifiers 空でないか「-」でない場合、フィールドに統合されます。
agentRealtimeInfo.groupName principal.group.group_display_name 直接マッピングされます。
agentRealtimeInfo.siteId additional.fields キー「agentDetectionInfo.siteId」で Key-Value ペアとして追加されます。
agentRealtimeInfo.siteName additional.fields キー「agentDetectionInfo.siteName」で Key-Value ペアとして追加されます。
associatedItems.0.id principal.resource.id 直接マッピングされます。
associatedItems.0.name principal.resource.name 直接マッピングされます。
associatedItems.0.typeName principal.resource.resource_subtype 直接マッピングされます。
authorAccountId principal.user.userid 直接マッピングされます。
category metadata.product_event_type 直接マッピングされます。存在せず、メッセージに「脅威」が含まれている場合は、「脅威」に設定します。
id metadata.product_log_id 文字列に変換されます。
indicators.0.description security_result.description 直接マッピングされます。
objectItem.id additional.fields キー「objectItem.id」で Key-Value ペアとして追加されます。
objectItem.name additional.fields キー「objectItem.name」で Key-Value ペアとして追加されます。
objectItem.typeName additional.fields キー「objectItem.typeName」で Key-Value ペアとして追加されます。
remoteAddress principal.ip 直接マッピングされます。
summary security_result.summary 直接マッピングされます。
threatInfo.classification security_result.category_details 直接マッピングされます。security_result.category の決定にも使用されます。
threatInfo.collectionId metadata.ingestion_labels キー「alert_aggregation_value」で Key-Value ペアとして追加されます。
threatInfo.confidenceLevel security_result.confidence_details 直接マッピングされます。security_result.confidence の決定にも使用されます。
threatInfo.createdAt metadata.collected_timestamp ISO8601 タイムスタンプとして解析されます。
threatInfo.detectionEngines metadata.ingestion_labels 各要素の keytitle が Key-Value ペアとして追加されます。
threatInfo.fileExtensionType target.process.file.mime_type 直接マッピングされます。
threatInfo.filePath target.file.full_path 直接マッピングされます。
threatInfo.fileSize target.file.size 文字列に変換されてから符号なし整数に変換されます。
threatInfo.identifiedAt event_timestamp ISO8601 タイムスタンプとして解析されます。
threatInfo.maliciousProcessArguments principal.process.command_line 直接マッピングされます。summary が存在しない場合、security_result.summary フィールドでも使用されます。
threatInfo.md5 target.file.md5 直接マッピングされます。
threatInfo.originatorProcess target.process.parent_process.file.full_path 直接マッピングされます。summary が存在しない場合、security_result.summary フィールドでも使用されます。
threatInfo.processUser target.user.userid 直接マッピングされます。
threatInfo.sha1 target.file.sha1 直接マッピングされます。
threatInfo.sha256 target.file.sha256 直接マッピングされます。
threatInfo.storyline principal.process.product_specific_process_id 「ID:」の接頭辞が付いています。
threatInfo.threatId security_result.threat_id 直接マッピングされます。
threatInfo.threatName security_result.threat_nametarget.file.names 直接マッピングされ、target.file.names に統合されます。summary が存在しない場合、security_result.summary フィールドでも使用されます。最初は「GENERIC_EVENT」に設定されます。プリンシパルとターゲットの IP、ホスト名、ユーザーの有無に基づいて、「NETWORK_UNCATEGORIZED」、「STATUS_UPDATE」、「USER_UNCATEGORIZED」に変更しました。event.type フィールドからコピーされます。「Atlassian Bitbucket」に設定します。最初は「Atlassian Bitbucket」に設定されています。agentRealtimeInfo.accountName または agentDetectionInfo.accountName でオーバーライドできます。
timestamp metadata.event_timestamptimestamp 直接マッピングされます。

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