Ansible AWX ログを収集する

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

概要

このパーサーは、Ansible AWX から JSON 形式のログデータを抽出し、統合データモデル(UDM)に変換します。さまざまなログ形式を処理し、タイムスタンプ、IP アドレス、ホスト情報、イベントの詳細など、関連するフィールドを抽出して対応する UDM フィールドにマッピングします。また、特定のエッジケースを処理し、ラベルとメタデータでデータを拡充します。

始める前に

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

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

  1. [SIEM 設定] > [フィード] に移動します。
  2. [新しく追加] をクリックします。
  3. [フィード名] フィールドに、フィードの名前を入力します(例: Ansible AWX ログ)。
  4. [ソースタイプ] として [Webhook] を選択します。
  5. [ログタイプ] として [Ansible AWX] を選択します。
  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: フィードの認証用に生成したシークレット キー。

Ansible AWX で Webhook を構成する

  1. AWX インスタンスにログインします。
  2. [管理] の [通知] セクションに移動します。
  3. [追加] をクリックします。
  4. Webhook の設定を構成します。

    • 名前: Webhook のわかりやすい名前を指定します(例: Google SecOps Webhook)。
    • タイプ: リストから [Webhook] を選択します。
    • ターゲット URL: Google SecOps API エンドポイントの URL を入力します。
    • HTTP Method: [POST] を選択します。

    省略可: HTTP ヘッダー: 認証やコンテンツ タイプに必要なヘッダーを追加します。たとえば、署名なしトークンを含む Authorization ヘッダーを含める必要がある場合があります。ヘッダーの具体的な要件については、Google SecOps のドキュメントをご覧ください。

  5. [保存] をクリックして、Webhook を作成します。

  6. [リソース] の [プロジェクト] に移動します。

  7. Webhook を関連付けるプロジェクトを選択します。

  8. 選択したプロジェクトで、[通知] タブに移動します。

  9. 先ほど作成した Webhook 通知の開始 | 成功 | 失敗のいずれのトリガーをオンにするかを選択します。

通知は、プロジェクトに関連付けられているすべてのテンプレートに適用されるようになりました。各テンプレートの [通知] フィールドに移動して、手動で無効にできます。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
agent.ephemeral_id observer.labels.value 未加工ログの agent.ephemeral_id の値。
agent.hostname observer.hostname 未加工ログの agent.hostname の値。
agent.id observer.asset_id 「filebeat:」と未加工ログの agent.id の値を連結したものです。
agent.name observer.user.userid 未加工ログの agent.name の値。
agent.type observer.application 未加工ログの agent.type の値。
agent.version observer.platform_version 未加工ログの agent.version の値。
cloud.availability_zone principal.resource.attribute.labels.value 未加工ログの cloud.availability_zone の値。
cloud.instance.id principal.resource.product_object_id 未加工ログの cloud.instance.id の値。
cloud.instance.name principal.resource.name 未加工ログの cloud.instance.name の値。
cloud.machine.type principal.resource.attribute.labels.value 未加工ログの cloud.machine.type の値。
cloud.provider principal.resource.attribute.labels.value 未加工ログの cloud.provider の値。
event1 metadata.description 未加工ログの event1 の値。event1 が存在しない場合、message の値が使用されます。
event1_data.host principal.hostname 未加工ログの event1_data.host の値。host_namehost が存在しない場合、代替として使用されます。
event1_data.remote_addr principal.ip grok パターンを使用して event1_data.remote_addr から抽出された IP アドレス。
event1_data.task security_result.detection_fields.value 未加工ログの event1_data.task の値。
event1_data.task_path principal.process.file.full_path 未加工ログの event1_data.task_path の値。
event1_data.task_uuid security_result.detection_fields.value 未加工ログの event1_data.task_uuid の値。
event1_data.uuid metadata.product_log_id 未加工ログの event1_data.uuid の値。
event1_display security_result.description 未加工ログの event1_display の値。
host principal.hostname 未加工ログの host の値。host_name が存在しない場合の代替として使用されます。数値の場合は、文字列に変換されます。
host.architecture target.asset.hardware.cpu_platform 未加工ログの host.architecture の値。
host.fqdn target.administrative_domain 未加工ログの host.fqdn の値。
host.hostname target.hostname 未加工ログの host.hostname の値。
host.id target.asset.asset_id 「Host Id:」と、未加工ログの host.id の値を連結したもの。
host.ip target.asset.ip 未加工ログの host.ip 配列の値。
host.mac target.mac 未加工ログの host.mac 配列の値。
host.os.codename target.asset.attribute.labels.value 未加工ログの host.os.codename の値。
host.os.kernel target.platform_patch_level 未加工ログの host.os.kernel の値。
host.os.name target.asset.attribute.labels.value 未加工ログの host.os.name の値。
host.os.platform target.platform host.os.platform の値が「debian」の場合、UDM フィールドは「LINUX」に設定されます。
host.os.version target.platform_version 未加工ログの host.os.version の値。
host_name principal.hostname 未加工ログの host_name の値。
input.type network.ip_protocol input.type の値が「tcp」の場合、UDM フィールドは「TCP」に設定されます。
level security_result.severity level の値に基づいて、「DEBUG」、「INFO」、「AUDIT」は「INFORMATIONAL」にマッピングされ、「ERROR」は「ERROR」にマッピングされ、「WARNING」は「MEDIUM」にマッピングされます。
level security_result.severity_details 未加工ログの level の値。
log.source.address principal.ip grok パターンを使用して log.source.address から抽出された IP アドレス。
log.source.address principal.port Grok パターンを使用して log.source.address から抽出されたポート。
logger_name intermediary.application 未加工ログの logger_name の値。
message metadata.description 未加工ログの message の値。event1 が存在しない場合の代替として使用されます。
metadata.event_type metadata.event_type 特定のフィールドの有無に基づいてパーサー ロジックによって決定されます。log.source.addresshost.ip が存在する場合は「NETWORK_CONNECTION」。principal_hostname または event1_data.remote_addr が存在する場合は「STATUS_UPDATE」。それ以外の場合は「GENERIC_EVENT」です。
metadata.log_type metadata.log_type 「ANSIBLE_AWX」にハードコードされています。
metadata.product_name metadata.product_name 「ANSIBLE_AWX」にハードコードされています。
metadata.vendor_name metadata.vendor_name 「ANSIBLE_AWX」にハードコードされています。
parent_uuid security_result.detection_fields.value 未加工ログの parent_uuid の値。
principal.resource.resource_type principal.resource.resource_type cloud.instance.name が存在する場合は「VIRTUAL_MACHINE」にハードコードされます。
observer.labels.key observer.labels.key 「ephemeral_id」にハードコードされました。
principal.resource.attribute.labels.key principal.resource.attribute.labels.key マッピングされるフィールドに応じて、「machine_type」、「provider」、「availability_zone」にハードコードされます。
security_result.detection_fields.key security_result.detection_fields.key マッピングされるフィールドに応じて、「parent_uuid」、「task」、「task_uuid」にハードコードされます。
target.asset.attribute.labels.key target.asset.attribute.labels.key マッピングされるフィールドに応じて、「codename」または「os_name」にハードコードされています。
timestamp metadata.event_timestamp 未加工ログの timestamp の値。解析され、タイムスタンプに変換されます。
timestamp timestamp 未加工ログの timestamp の値。解析され、タイムスタンプに変換されます。

変更点

2022-11-09

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