Akeyless Vault のログを収集する

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

このドキュメントでは、直接取り込みまたは Bindplane を使用して Akeyless Vault ログを Google Security Operations に取り込む方法について説明します。パーサーは、まずログメッセージ(Key-Value 形式または JSON 形式)を正規化して、一貫性のある構造にします。次に、関連するフィールドを抽出し、統合データモデル(UDM)スキーマにマッピングします。IP アドレスの有無と実行されたアクションに基づいて、イベントタイプを分類します。

始める前に

次の前提条件を満たしていることを確認してください。

  • Google SecOps インスタンス
  • Akeyless Vault への特権アクセス

Google SecOps の取り込み認証ファイルを取得する

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [収集エージェント] に移動します。
  3. Ingestion Authentication File をダウンロードします。

Google SecOps のお客様 ID を取得する

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [プロファイル] に移動します。
  3. [組織の詳細情報] セクションから [お客様 ID] をコピーして保存します。

Akeyless Vault で Google SecOps への直接取り込み用にログ転送を構成する

  1. Akeyless Gateway のウェブ UI にログインします。
  2. [ログ転送] に移動します。
  3. [有効にする] を選択します。
  4. 次の構成の詳細を指定します。
    • ログ形式: [JSON] を選択します。
    • 監査ログサーバー: 「https://audit.akeyless.io/」と入力します。
    • サービス: [Google Chronicle] を選択します。
    • サービス アカウント キー: サービス アカウント認証情報を含む JSON ファイルを指定します。
    • お客様 ID: Google SecOps の一意の識別子を入力します。
    • リージョン: Google SecOps がプロビジョニングされているリージョンを入力します。
    • ログタイプ: AKEYLESS_VAULT と入力します。
  5. [変更を保存] をクリックします。

省略可: Bindplane を介して Syslog を取り込む

Windows Bindplane のインストール

  1. 管理者として コマンド プロンプトまたは PowerShell を開きます。
  2. 次のコマンドを実行します。

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Linux Bindplane のインストール

  1. root 権限または sudo 権限でターミナルを開きます。
  2. 次のコマンドを実行します。

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

その他のインストール リソース

その他のインストール オプションについては、インストール ガイドをご覧ください。

Syslog を取り込んで Google SecOps に送信するように Bindplane エージェントを構成する

  1. 構成ファイルにアクセスします。
    • config.yaml ファイルを見つけます。通常、Linux では /etc/bindplane-agent/ ディレクトリに、Windows ではインストール ディレクトリにあります。
    • テキスト エディタ(nanovi、メモ帳など)を使用してファイルを開きます。
  2. config.yaml ファイルを次のように編集します。

    receivers:
        udplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            ingestion_labels:
                log_type: 'AKEYLESS_VAULT'
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. 自社のインフラストラクチャでの必要性に応じて、ポートと IP アドレスを置き換えます。

  4. <customer_id> は、実際の顧客 ID に置き換えます。

  5. /path/to/ingestion-authentication-file.json の値を、Google SecOps の取り込み認証ファイルを取得するで認証ファイルを保存したパスに更新します。

Bindlane エージェントを再起動して変更を適用する

  • Linux で Bindplane エージェントを再起動するには、次のコマンドを実行します。

    sudo systemctl restart bindplane-agent
    
  • Windows で Bindplane エージェントを再起動するには、Services コンソールを使用するか、次のコマンドを入力します。

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Akeyless Vault で Bindplane への Syslog 転送を構成する

  1. Akeyless Gateway のウェブ UI にログインします。
  2. [ログ転送] に移動します。
  3. [有効にする] を選択します。
  4. 次の構成の詳細を指定します。
    • ログ形式: [JSON] を選択します。
    • 監査ログサーバー: 「https://audit.akeyless.io/」と入力します。
    • サービス: [Syslog] を選択します。
    • Syslog ネットワーク: [UDP] を選択します。(Bindplane エージェントの構成に応じて、別のオプションを選択することもできます)。
    • Syslog ホスト: Bindplane エージェントの IP アドレスを入力します。
    • Syslog Formatter: [Text] を選択します。
    • 省略可)TLS: [TLS] チェックボックスをオンにして、TLS 証明書をアップロードします。
  5. [変更を保存] をクリックします。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
access_id read_only_udm.metadata.product_log_id access_id フィールドから直接マッピングされます。存在しない場合は、正規表現 access_id:\s+(?<accessid>[\w-]+) を使用して message フィールドから抽出されます。
account_id read_only_udm.target.user.userid account_id フィールドから直接マッピングされます。
アクション read_only_udm.security_result.action_details action フィールドから直接マッピングされます。
コンポーネント read_only_udm.target.resource.name component フィールドから直接マッピングされます。
duration read_only_udm.network.session_duration.seconds duration フィールドから直接マッピングされ、整数に変換されます。
remote_addr read_only_udm.principal.ip remote_addr フィールドから抽出され、カンマで分割されて principal.ip 配列に追加されます。
request_parameters.access_type read_only_udm.target.resource.attribute.labels.value(キーが「access_type」の場合) request_parameters.access_type フィールドから直接マッピングされます。存在しない場合は、正規表現 access_type:\s+(?<accesstype>[\S]+) を使用して message フィールドから抽出されます。
request_parameters.comment read_only_udm.target.resource.attribute.labels.value(キーが「comment」の場合) request_parameters.comment フィールドから直接マッピングされます。
request_parameters.operation read_only_udm.target.resource.attribute.labels.value(キーが「operation」の場合) request_parameters.operation フィールドから直接マッピングされます。
request_parameters.product read_only_udm.target.resource.attribute.labels.value(キーが「product」の場合) request_parameters.product フィールドから直接マッピングされます。存在しない場合は、正規表現 product:\s+(?<product>[\w\s]+) を使用して message フィールドから抽出されます。
request_parameters.token_id read_only_udm.target.resource.attribute.labels.value(キーが「token_id」の場合) request_parameters.token_id フィールドから直接マッピングされます。
request_parameters.transaction_type read_only_udm.target.resource.attribute.labels.value(キーが「transaction_type」の場合) request_parameters.transaction_type フィールドから直接マッピングされ、文字列に変換されます。存在しない場合は、正規表現 transaction_type:\s+(?<transactiontype>[\S]+) を使用して message フィールドから抽出されます。
request_parameters.unique_id read_only_udm.target.resource.attribute.labels.value(キーが「unique_id」の場合) request_parameters.unique_id フィールドから直接マッピングされます。存在しない場合は、正規表現 unique_id:\s+(?<uniqueid>[\w-]+) を使用して message フィールドから抽出されます。
request_parameters.universal_identity_rotate_type read_only_udm.target.resource.attribute.labels.value(キーが「universal_identity_rotate_type」の場合) request_parameters.universal_identity_rotate_type フィールドから直接マッピングされます。
request_parameters.user_agent read_only_udm.target.resource.attribute.labels.value(キーが「user_agent」の場合) request_parameters.user_agent フィールドから直接マッピングされます。
重要度 severity フィールドから直接マッピングされます。
ステータス read_only_udm.network.http.response_code status フィールドから直接マッピングされ、整数に変換されます。
timestamp read_only_udm.metadata.event_timestamp ログエントリの timestamp フィールドから直接マッピングされます。
read_only_udm.metadata.log_type AKEYLESS_VAULT にハードコードされています。
read_only_udm.metadata.event_type ip_present が true の場合は STATUS_UPDATE に設定し、それ以外の場合はデフォルトの GENERIC_EVENT に設定します。
read_only_udm.metadata.vendor_name 正規表現 CEF:0|%{DATA:device_vendor}|%{DATA:device_product}|%{DATA:device_version}|%{DATA:device_event_class_id}\s+%{WORD}\[%{INT}\]:\s+%{GREEDYDATA:kv_data} を使用して message フィールドから抽出されます。
read_only_udm.metadata.product_name 正規表現 CEF:0|%{DATA:device_vendor}|%{DATA:device_product}|%{DATA:device_version}|%{DATA:device_event_class_id}\s+%{WORD}\[%{INT}\]:\s+%{GREEDYDATA:kv_data} を使用して message フィールドから抽出されます。
read_only_udm.metadata.product_version 正規表現 CEF:0|%{DATA:device_vendor}|%{DATA:device_product}|%{DATA:device_version}|%{DATA:device_event_class_id}\s+%{WORD}\[%{INT}\]:\s+%{GREEDYDATA:kv_data} を使用して message フィールドから抽出されます。
read_only_udm.metadata.product_event_type 正規表現 <%{INT}>%{TIMESTAMP_ISO8601:time}\s+%{DATA}\s+(?P<product_event_type>[\w-]+)\[%{INT}\]:\s+(?P<time2>\d{1,2}-%{MONTH}-\d{1,4}\s+\d{1,2}:\d{1,2}:\d{1,2}.\d+)\s+%{WORD}\s+%{WORD:severity}\s+CEF:0|%{DATA:device_vendor}|%{DATA:device_product}|%{DATA:device_version}|%{DATA:device_event_class_id}\s+%{WORD}\[%{INT}\]:\s+%{GREEDYDATA:kv_data} を使用して message フィールドから抽出されます。
read_only_udm.target.namespace 正規表現 namespace:\s+(?<namespace>[\S]+) を使用して message フィールドから抽出されます。
read_only_udm.security_result.severity severity フィールドからマッピング: Info から INFORMATIONALError から ERRORWarning から MEDIUM、それ以外の場合は UNKNOWN_SEVERITY
read_only_udm.network.http.method action フィールドからマッピング: get から GETputAuthentication から PUTpost から POSTdelete から DELETE

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