Atlassian Bitbucket のログを収集する

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

概要

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

始める前に

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

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

  1. [SIEM 設定] > [フィード] に移動します。
  2. [新しく追加] をクリックします。
  3. [フィード名] フィールドに、フィードの名前を入力します(例: Atlassian Bitbucket Logs)。
  4. [ソースタイプ] として [Webhook] を選択します。
  5. [ログタイプ] として [Atlassian Bitbucket] を選択します。
  6. [次へ] をクリックします。
  7. 省略可: 次の入力パラメータの値を指定します。
    • 分割区切り文字: ログ行を区切るために使用される区切り文字(\n など)。
    • アセットの名前空間: アセットの名前空間
    • 取り込みラベル: このフィードのイベントに適用されるラベル。
  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 ではなくヘッダーとして指定してください。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 直接マッピング。

変更点

2023-06-12

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