Akeyless Vault のログを収集する
このドキュメントでは、直接取り込みまたは Bindplane を使用して Akeyless Vault ログを Google Security Operations に取り込む方法について説明します。パーサーは、まずログメッセージ(Key-Value 形式または JSON 形式)を正規化して、一貫性のある構造にします。次に、関連するフィールドを抽出し、統合データモデル(UDM)スキーマにマッピングします。IP アドレスの有無と実行されたアクションに基づいて、イベントタイプを分類します。
始める前に
次の前提条件を満たしていることを確認してください。
- Google SecOps インスタンス
- Akeyless Vault への特権アクセス
Google SecOps の取り込み認証ファイルを取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [収集エージェント] に移動します。
- Ingestion Authentication File をダウンロードします。
Google SecOps のお客様 ID を取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [プロファイル] に移動します。
- [組織の詳細情報] セクションから [お客様 ID] をコピーして保存します。
Akeyless Vault で Google SecOps への直接取り込み用にログ転送を構成する
- Akeyless Gateway のウェブ UI にログインします。
- [ログ転送] に移動します。
- [有効にする] を選択します。
- 次の構成の詳細を指定します。
- ログ形式: [JSON] を選択します。
- 監査ログサーバー: 「
https://audit.akeyless.io/
」と入力します。 - サービス: [Google Chronicle] を選択します。
- サービス アカウント キー: サービス アカウント認証情報を含む JSON ファイルを指定します。
- お客様 ID: Google SecOps の一意の識別子を入力します。
- リージョン: Google SecOps がプロビジョニングされているリージョンを入力します。
- ログタイプ: AKEYLESS_VAULT と入力します。
- [変更を保存] をクリックします。
省略可: Bindplane を介して Syslog を取り込む
Windows Bindplane のインストール
- 管理者として コマンド プロンプトまたは PowerShell を開きます。
次のコマンドを実行します。
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Linux Bindplane のインストール
- root 権限または sudo 権限でターミナルを開きます。
次のコマンドを実行します。
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
その他のインストール リソース
その他のインストール オプションについては、インストール ガイドをご覧ください。
Syslog を取り込んで Google SecOps に送信するように Bindplane エージェントを構成する
- 構成ファイルにアクセスします。
config.yaml
ファイルを見つけます。通常、Linux では/etc/bindplane-agent/
ディレクトリに、Windows ではインストール ディレクトリにあります。- テキスト エディタ(
nano
、vi
、メモ帳など)を使用してファイルを開きます。
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
自社のインフラストラクチャでの必要性に応じて、ポートと IP アドレスを置き換えます。
<customer_id>
は、実際の顧客 ID に置き換えます。/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 転送を構成する
- Akeyless Gateway のウェブ UI にログインします。
- [ログ転送] に移動します。
- [有効にする] を選択します。
- 次の構成の詳細を指定します。
- ログ形式: [JSON] を選択します。
- 監査ログサーバー: 「
https://audit.akeyless.io/
」と入力します。 - サービス: [Syslog] を選択します。
- Syslog ネットワーク: [UDP] を選択します。(Bindplane エージェントの構成に応じて、別のオプションを選択することもできます)。
- Syslog ホスト: Bindplane エージェントの IP アドレスを入力します。
- Syslog Formatter: [Text] を選択します。
- (省略可)TLS: [TLS] チェックボックスをオンにして、TLS 証明書をアップロードします。
- [変更を保存] をクリックします。
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 から INFORMATIONAL 、Error から ERROR 、Warning から MEDIUM 、それ以外の場合は UNKNOWN_SEVERITY 。 |
|
read_only_udm.network.http.method | action フィールドからマッピング: get から GET 、put と Authentication から PUT 、post から POST 、delete から DELETE 。 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。