Delinea Secret Server のログを収集する
このドキュメントでは、Delinea(以前の Thycotic)Secret Server ログを収集する方法について説明します。パーサーは、未加工ログを Google Security Operations の統合データモデル(UDM)に準拠した構造化形式に変換します。まず、タイムスタンプ、イベントタイプ、ユーザー情報などのキーフィールドを抽出し、特定のイベントタイプに基づいて条件付きロジックを使用して、データを適切な UDM フィールドにマッピングします。最終的に、Google SecOps での分析用にデータを拡充します。
始める前に
次の前提条件を満たしていることを確認してください。
- Google Security Operations インスタンス
- Windows 2016 以降、または
systemd
を使用する Linux ホスト - プロキシの背後で実行している場合は、ファイアウォール ポートが開いていることを確認する
- Delinea Secrets Server への特権アクセス
Google SecOps の取り込み認証ファイルを取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [収集エージェント] に移動します。
- Ingestion Authentication File をダウンロードします。
- Bindplane をインストールするシステムにファイルを安全に保存します。
Google SecOps のお客様 ID を取得する
- Google Security Operations コンソールにログインします。
- [SIEM 設定] > [プロファイル] に移動します。
- [組織の詳細情報] セクションから [お客様 ID] をコピーして保存します。
Bindplane エージェントをインストールする
次の手順に沿って、Windows または Linux オペレーティング システムに Bindplane エージェントをインストールします。
Windows のインストール
- 管理者として コマンド プロンプトまたは PowerShell を開きます。
次のコマンドを実行します。
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Linux のインストール
- 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_file_path: '/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 log_type: 'THYCOTIC' raw_log_field: body ingestion_labels: 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 の取り込み認証ファイルを取得するで認証ファイルを保存したパスに更新します。
Bindplane エージェントを再起動して変更を適用する
Linux で Bindplane エージェントを再起動するには、次のコマンドを実行します。
sudo systemctl restart bindplane-agent
Windows で Bindplane エージェントを再起動するには、Services コンソールを使用するか、次のコマンドを入力します。
net stop BindPlaneAgent && net start BindPlaneAgent
Syslog を使用してログを送信するように Thycotic Secret Server を構成する
- 管理者認証情報を使用して Thycotic Secret Server にログインします。
- [管理者] > [構成] に移動します。
- [編集] をクリックします。
- [Syslog/CEF ロギングを有効にする] チェックボックスをオンにして、次の詳細を指定します。
- Syslog / CEF サーバー: Syslog サーバーまたは Bindplane の IP アドレスを入力します。
- Syslog/CEF プロトコル: [UDP] または [TCP] を選択します(Syslog サーバーまたは Bindplane の構成によって異なります)。
- Syslog/CEF ポート: Syslog サーバーまたは Bindplane がリッスンするように構成されているポート番号を入力します。
- [保存] をクリックします。
UDM マッピング テーブル
ログフィールド | UDM マッピング | ロジック |
---|---|---|
Account_Domain | event1.idm.read_only_udm.principal.domain | この値は、未加工ログの msg フィールドの Account_Domain フィールドから取得されます。 |
ユーザー別 | event1.idm.read_only_udm.principal.user.userid | この値は、未加工ログの msg フィールドの By User フィールドから取得されます。 |
コンテナ ID | event1.idm.read_only_udm.principal.asset.asset_id | この値は、未加工ログの msg フィールドの Container Id フィールドから取得され、container_id: が接頭辞として付加されます。 |
コンテナ名 | event1.idm.read_only_udm.principal.resource.name | この値は、未加工ログの msg フィールドの Container name フィールドから取得されます。 |
cs2 | event1.idm.read_only_udm.additional.fields[].value.string_value | この値は、未加工ログの msg フィールドの cs2 フィールドから取得されます。 |
cs3 | event1.idm.read_only_udm.target.file.full_path | この値は、未加工ログの msg フィールドの cs3 フィールドから取得されます。 |
cs4 | event1.idm.read_only_udm.principal.user.user_display_name | この値は、未加工ログの msg フィールドの cs4 フィールドから取得されます。 |
詳細 | event1.idm.read_only_udm.additional.fields[].value.string_value | この値は、未加工ログの msg フィールドの Details フィールドから取得されます。 |
fname | event1.idm.read_only_udm.target.file.full_path | この値は、未加工ログの msg フィールドの fname フィールドから取得されます。 |
ホスト | event1.idm.read_only_udm.principal.hostname、event1.idm.read_only_udm.principal.asset.hostname | この値は、未加工ログの msg フィールドの Host フィールドから取得されます。 |
項目名 | event1.idm.read_only_udm.target.user.userid | この値は、未加工ログの msg フィールドの Item Name フィールドから取得されます。 |
event1.idm.read_only_udm.additional.fields[].key | 値は fname にハードコードされています。 |
|
event1.idm.read_only_udm.additional.fields[].key | 値は Group or User にハードコードされています。 |
|
event1.idm.read_only_udm.additional.fields[].key | 値は Details にハードコードされています。 |
|
event1.idm.read_only_udm.additional.fields[].key | 値は type_id にハードコードされています。 |
|
event1.idm.read_only_udm.extensions.auth.type | 値は MACHINE にハードコードされています。 |
|
event1.idm.read_only_udm.metadata.description | 値は、grok パターンを使用して未加工ログから抽出された thycotic_event フィールドから取得されます。 |
|
event1.idm.read_only_udm.metadata.event_timestamp.seconds | 値は、存在する場合は rt フィールドから取得され、存在しない場合は ts フィールドから取得されます。どちらのフィールドも、grok パターンを使用して未加工のログから抽出されます。 |
|
event1.idm.read_only_udm.metadata.event_type | 値は、thycotic_event フィールドとその他の条件に基づいて決定されます。たとえば、thycotic_event が USER - LOGIN の場合、イベントタイプは USER_LOGIN に設定されます。 |
|
event1.idm.read_only_udm.metadata.log_type | 値は THYCOTIC にハードコードされています。 |
|
event1.idm.read_only_udm.metadata.product_event_type | 値は、grok パターンを使用して未加工ログから抽出された thycotic_event フィールドから取得されます。 |
|
event1.idm.read_only_udm.metadata.product_log_id | 値は、grok パターンを使用して未加工ログから抽出された action_id フィールドから取得されます。 |
|
event1.idm.read_only_udm.metadata.product_name | 値は、grok パターンを使用して未加工ログから抽出された device_product フィールドから取得されます。フィールドが空の場合、値は Secret Server にハードコードされます。 |
|
event1.idm.read_only_udm.metadata.product_version | 値は、grok パターンを使用して未加工ログから抽出された device_version フィールドから取得されます。 |
|
event1.idm.read_only_udm.metadata.vendor_name | 値は Thycotic にハードコードされています。 |
|
event1.idm.read_only_udm.network.ip_protocol | input.type フィールドが tcp の場合、値は TCP に設定されます。 |
|
event1.idm.read_only_udm.observer.application | 値は、存在する場合は agent.type フィールドから取得され、存在しない場合は Secret Server にハードコードされます。 |
|
event1.idm.read_only_udm.observer.asset_id | 値は、agent.id フィールドと連結された Agent ID: に設定されます。 |
|
event1.idm.read_only_udm.observer.hostname | 値は、存在する場合は agent.hostname フィールドから取得され、存在しない場合は server フィールドから取得されます。 |
|
event1.idm.read_only_udm.observer.platform_version | 値は agent.version フィールドから取得されます。 |
|
event1.idm.read_only_udm.observer.user.userid | 値は agent.name フィールドから取得されます。 |
|
event1.idm.read_only_udm.principal.asset.asset_id | 値は、host.id フィールドと連結された ID: に設定されます。 |
|
event1.idm.read_only_udm.principal.asset.hardware.cpu_platform | 値は host.architecture フィールドから取得されます。 |
|
event1.idm.read_only_udm.principal.asset.hostname | 値は、存在する場合は server フィールドから取得され、存在しない場合は host.hostname フィールドから取得されます。 |
|
event1.idm.read_only_udm.principal.asset.ip | 値は、存在する場合は src フィールドから取得され、存在しない場合は src_ip フィールドから取得されます。 |
|
event1.idm.read_only_udm.principal.hostname | 値は、存在する場合は host.hostname フィールドから取得され、存在しない場合は server フィールドから取得されます。 |
|
event1.idm.read_only_udm.principal.ip | 値は、存在する場合は src フィールドから取得されます。存在しない場合は、src_ip フィールドまたは host.ip フィールドから取得されます。 |
|
event1.idm.read_only_udm.principal.mac | 値は host.mac フィールドから取得されます。 |
|
event1.idm.read_only_udm.principal.platform | host_os_platform フィールドが centos の場合、値は LINUX に設定されます。それ以外の場合、値は host_os_platform フィールドの大文字の値に設定されます。 |
|
event1.idm.read_only_udm.principal.platform_patch_level | 値は host.os.kernel フィールドから取得されます。 |
|
event1.idm.read_only_udm.principal.platform_version | 値は host.os.version フィールドから取得されます。 |
|
event1.idm.read_only_udm.principal.port | 値は、grok パターンを使用して log.source.address フィールドから抽出された src_port フィールドから取得されます。 |
|
event1.idm.read_only_udm.principal.user.user_display_name | この値は、未加工ログの msg フィールドの cs4 フィールドから取得されます。 |
|
event1.idm.read_only_udm.principal.user.userid | この値は、未加工ログの msg フィールドの suser フィールドから取得されます。thycotic_event が USER - LOGIN 、USER - LOGOUT 、USER - LOGINFAILURE 、または USER - EDIT の場合は、By User フィールドから取得されます。 |
|
event1.idm.read_only_udm.security_result.action | この値は、未加工ログの msg フィールドの Action フィールドから取得されます。thycotic_event の値に基づいて ALLOW または BLOCK に設定することもできます。 |
|
event1.idm.read_only_udm.security_result.description | 値は temp_message フィールドから取得されます。このフィールドには、他のフィールドを抽出した後の msg フィールドの残りの部分が含まれています。 |
|
event1.idm.read_only_udm.security_result.severity | 値は syslog_severity フィールドに基づいて決定されます。たとえば、syslog_severity に error または warning が含まれている場合、重大度は HIGH に設定されます。thycotic_event が System Log の場合、重大度は INFORMATIONAL に設定されます。 |
|
event1.idm.read_only_udm.security_result.severity_details | 値は syslog_severity フィールドから取得されます。 |
|
event1.idm.read_only_udm.target.file.full_path | 両方のフィールドが存在する場合は、cs3 フィールドと fname フィールドを / セパレータで連結して値が構成されます。フィールドが 1 つしかない場合は、そのフィールドから値が取得されます。 |
|
event1.idm.read_only_udm.target.resource.product_object_id | 値は type_id フィールドから取得されます。 |
|
event1.idm.read_only_udm.target.user.userid | この値は、未加工ログの msg フィールドの item_name フィールドから取得されます。thycotic_event が USER - LOGIN 、USER - LOGOUT 、USER - LOGINFAILURE 、または USER - EDIT の場合は、Item Name フィールドから取得されます。 |
|
events.timestamp.seconds | 値は、存在する場合は rt フィールドから取得され、存在しない場合は ts フィールドから取得されます。どちらのフィールドも、grok パターンを使用して未加工のログから抽出されます。 |
|
rt | event1.idm.read_only_udm.metadata.event_timestamp.seconds | この値は、未加工ログの msg フィールドの rt フィールドから取得され、イベント タイムスタンプの設定に使用されます。 |
src | event1.idm.read_only_udm.principal.asset.ip、event1.idm.read_only_udm.principal.ip | この値は、未加工ログの msg フィールドの src フィールドから取得されます。 |
src_ip | event1.idm.read_only_udm.principal.asset.ip、event1.idm.read_only_udm.principal.ip | 値は、grok パターンを使用して log.source.address フィールドから抽出された src_ip フィールドから取得されます。 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。