BeyondTrust Secure Remote Access のログを収集する

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

このドキュメントでは、Bindplane を使用して BeyondTrust Secure Remote Access ログを収集する方法について説明します。パーサーは 2 つの syslog 形式を処理します。最初の形式では構造化されたメッセージ内で Key-Value ペアが使用され、2 番目の形式ではパイプ区切りのフィールドが使用されます。パーサーは両方の形式から関連するフィールドを抽出し、UDM にマッピングします。また、抽出されたキーワードに基づいてイベントタイプの分類を行い、ログイン/ログアウト イベントと認証タイプの特定のロジックを処理します。

始める前に

  • Google Security Operations インスタンスがあることを確認します。
  • Windows 2016 以降、または systemd を使用する Linux ホストを使用していることを確認します。
  • プロキシの背後で実行している場合は、ファイアウォール ポートが開いていることを確認します。
  • BeyondTrust Secure Remote Access への特権アクセス権があることを確認します。

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

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [コレクション エージェント] に移動します。
  3. Ingestion Authentication File をダウンロードします。Bindplane をインストールするシステムにファイルを安全に保存します。

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

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

Bindplane エージェントをインストールする

Windows のインストール

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

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

Linux のインストール

  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. 構成ファイルにアクセスします。

    1. config.yaml ファイルを見つけます。通常、Linux では /etc/bindplane-agent/ ディレクトリに、Windows ではインストール ディレクトリにあります。
    2. テキスト エディタ(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: BEYONDTRUST_REMOTE_ACCESS
                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 の取り込み認証ファイルを取得するで認証ファイルを保存したパスに更新します。

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

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

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

    net stop BindPlaneAgent && net start BindPlaneAgent
    

BeyondTrust リモート サポートを設定する

  1. BeyondTrust ウェブ UI にログインします。
  2. [アプライアンス] > [セキュリティ] > [アプライアンス管理] を選択します。
  3. [Syslog] セクションで、次の操作を行います。
    • メッセージ形式: [レガシー BSD 形式] を選択します。
    • リモート Syslog サーバー: Bindplane の IP アドレスとポートを入力します。
  4. [送信] をクリックします。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
datetime metadata.event_timestamp when フィールドが存在しない場合、タイムスタンプは RFC3 339 形式を使用して datetime フィールドから解析されます。
deviceHost target.hostname deviceHost の値は target.hostname に直接マッピングされます。
dstHost target.ip dstHost の値は、有効な IP アドレスとして検証された後、target.ip に直接マッピングされます。
dstPriv additional.fields.[key=dstPriv].value.string_value dstPriv の値は、キー dstPriv を持つ additional フィールドに配置されます。
dstUid target.user.userid dstUid の値は target.user.userid に直接マッピングされます。
dstUser target.user.user_display_name dstUser の値は target.user.user_display_name に直接マッピングされます。
eventName metadata.event_type eventNamelogin(大文字と小文字を区別しない)の場合、metadata.event_typeUSER_LOGIN に設定されます。eventNamelogout(大文字と小文字を区別しない)の場合、metadata.event_typeUSER_LOGOUT に設定されます。それ以外の場合で、eventName が空でない場合は、metadata.event_typeUSER_UNCATEGORIZED に設定されます。eventName が空で、メッセージが 2 番目の grok パターンと一致する場合、metadata.event_typeGENERIC_EVENT に設定されます。eventName が空で、メッセージが最初の grok パターンと一致する場合、metadata.event_typeGENERIC_EVENT に設定されます。srcUiduseridwho が空でない場合、metadata.event_typeUSER_CHANGE_PERMISSIONS に設定されます。deviceHost または site が空でない場合、metadata.event_typeUSER_UNCATEGORIZED に設定されます。それ以外の場合は、metadata.event_typeGENERIC_EVENT に設定されます。
event_name additional.fields.[key=event_name].value.string_value event_name の値は、キー event_name を持つ additional フィールドに配置されます。
event_name metadata.product_event_type event_name の値は id フィールドと組み合わせて使用され、metadata.product_event_type[id] -event_name`` 形式で入力されます。
externalKeyLabel additional.fields.[key=externalKeyLabel].value.string_value externalKeyLabel の値は、キー externalKeyLabel を持つ additional フィールドに配置されます。
id metadata.product_event_type id の値は event_name フィールドと組み合わせて使用され、metadata.product_event_type[id] -event_name`` 形式で入力されます。
jumpGroupId additional.fields.[key=jumpGroupId].value.string_value jumpGroupId の値は、キー jumpGroupId を持つ additional フィールドに配置されます。
jumpGroupName additional.fields.[key=jumpGroupName].value.string_value jumpGroupName の値は、キー jumpGroupName を持つ additional フィールドに配置されます。
jumpGroupType additional.fields.[key=jumpGroupType].value.string_value jumpGroupType の値は、キー jumpGroupType を持つ additional フィールドに配置されます。
jumpointId additional.fields.[key=jumpointId].value.string_value jumpointId の値は、キー jumpointId を持つ additional フィールドに配置されます。
jumpointName additional.fields.[key=jumpointName].value.string_value jumpointName の値は、キー jumpointName を持つ additional フィールドに配置されます。
kv_data さまざまな UDM フィールド kv_data フィールドは Key-Value ペアに解析され、キー(eventNamewhenwhowho_ipsitetargetstatusreason)。
kvdata さまざまな UDM フィールド kvdata フィールドは Key-Value ペアに解析され、キー(msgsrcUsersrcUidsrcHostdstUserdstUiddstHostsessionIdjumpointIdjumpointNamejumpGroupIdjumpGroupNamejumpGroupTypeexternalKeyLabeldstPriv)。
message さまざまな UDM フィールド message フィールドは grok パターンを使用して解析され、さまざまなフィールドが抽出されて UDM フィールドにマッピングされます。
msg metadata.description msg の値は metadata.description に直接マッピングされます。
product_event_type metadata.product_event_type product_event_type の値は metadata.product_event_type に直接マッピングされます。
product_log_id metadata.product_log_id product_log_id の値は metadata.product_log_id に直接マッピングされます。
process_id principal.process.pid process_id の値は principal.process.pid に直接マッピングされます。
reason security_result.description reason の値は security_result.description に直接マッピングされます。
segment_number additional.fields.[key=segment_number].value.string_value segment_number の値は、キー segment_number を持つ additional フィールドに配置されます。
sessionId network.session_id sessionId の値は network.session_id に直接マッピングされます。
site target.hostname site の値は target.hostname に直接マッピングされます。
site_id additional.fields.[key=site_id].value.string_value site_id の値は、キー site_id を持つ additional フィールドに配置されます。
srcHost principal.ip srcHost の値は、有効な IP アドレスとして検証された後、principal.ip に直接マッピングされます。
srcUid principal.user.userid srcUid の値は principal.user.userid に直接マッピングされます。
srcUser principal.user.user_display_name srcUser の値は principal.user.user_display_name に直接マッピングされます。
status security_result.action statusfailure(大文字と小文字を区別しない)の場合、security_result.actionBLOCK に設定されます。それ以外の場合は、security_result.actionALLOW に設定されます。
status security_result.action_details status の値は security_result.action_details に直接マッピングされます。
target target.application target の値は target.application に直接マッピングされます。rep_clientRepresentative Console に置き換えられ、web/loginWeb/Login に置き換えられます。
target extensions.auth.type targetrep_client の場合、extensions.auth.typeMACHINE に設定されます。targetweb/login の場合、extensions.auth.typeSSO に設定されます。それ以外の場合は、extensions.auth.typeAUTHTYPE_UNSPECIFIED に設定されます。
timestamp metadata.event_timestamp datetimewhen のどちらも存在しない場合は、未加工ログの timestamp がフォールバックとして使用されます。
total_segments additional.fields.[key=total_segments].value.string_value total_segments の値は、キー total_segments を持つ additional フィールドに配置されます。
device_product additional.fields.[key=device_product].value.string_value device_product の値は、キー device_product を持つ additional フィールドに配置されます。
device_vendor additional.fields.[key=device_vendor].value.string_value device_vendor の値は、キー device_vendor を持つ additional フィールドに配置されます。
device_version metadata.product_version device_version の値は metadata.product_version に直接マッピングされます。
when metadata.event_timestamp タイムスタンプは、存在する場合は UNIX 形式を使用して when フィールドから解析されます。
who principal.user.userid who フィールドが正規表現パターンと一致する場合、抽出された useridprincipal.user.userid にマッピングされます。それ以外の場合、who フィールド全体が principal.user.userid にマッピングされます。
who principal.user.user_display_name who フィールドが正規表現パターンと一致する場合、抽出された user_display_nameprincipal.user.user_display_name にマッピングされます。
who_ip principal.ip who_ip の値は principal.ip に直接マッピングされます。
(パーサー ロジック) metadata.log_type ログタイプは BEYONDTRUST_REMOTE_ACCESS に設定されます。
(パーサー ロジック) metadata.product_name プロダクト名が BeyondTrust Secure Remote Access に設定されます。
(パーサー ロジック) metadata.vendor_name ベンダー名が BeyondTrust に設定されます。
(パーサー ロジック) security_result.summary 値は User %{eventName} 形式で取得されます。
(パーサー ロジック) extensions.auth.mechanism methodusing password が含まれている場合、メカニズムは USERNAME_PASSWORD に設定されます。methodusing elevate が含まれている場合、メカニズムは REMOTE に設定されます。

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