ESET EDR のログを収集する
このドキュメントでは、Bindplane を使用して ESET ログを Google Security Operations に取り込む方法について説明します。Logstash パーサーコードは、一連の grok
パターンを使用して、SYSLOG または JSON 形式の ESET EDR ログからフィールドを抽出します。抽出されたフィールドとその形式に応じて、Key-Value(kv
)フィルタまたは JSON 解析を使用してデータをさらに処理し、情報を Unified Data Model(UDM)表現に構造化します。
始める前に
次の前提条件を満たしていることを確認してください。
- Google SecOps インスタンス
- Windows 2016 以降、または
systemd
を使用する Linux ホスト - プロキシの背後で実行されている場合、ファイアウォール ポートが開いている
- ESET Protect への特権アクセス
Google SecOps の取り込み認証ファイルを取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [コレクション エージェント] に移動します。
- Ingestion Authentication File をダウンロードします。Bindplane をインストールするシステムにファイルを安全に保存します。
Google SecOps のお客様 ID を取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [プロファイル] に移動します。
- [組織の詳細情報] セクションから [お客様 ID] をコピーして保存します。
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 ingestion_labels: log_type: 'ESET_EDR' 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 の取り込み認証ファイルを取得するで認証ファイルを保存したパスに更新します。
Bindplane エージェントを再起動して変更を適用する
Linux で Bindplane エージェントを再起動するには、次のコマンドを実行します。
sudo systemctl restart bindplane-agent
Windows で Bindplane エージェントを再起動するには、サービス コンソールを使用するか、次のコマンドを入力します。
net stop BindPlaneAgent && net start BindPlaneAgent
ESET PROTECT オンプレミス用に Syslog を構成する
- ESET Protect ウェブ コンソールにログインします。
- [その他> 設定> 詳細設定> Syslog サーバー] に移動します。
- [Syslog を有効にする] の横にある切り替えを選択します。
- 次の構成の詳細を指定します。
- ホスト: Bindplane エージェントの IP アドレスを入力します。
- ポート: Bindplane エージェントのポート番号を入力します(UDP の場合は
514
)。 - 形式: [Syslog] を選択します。
- トランスポート: [UDP] を選択します。
- トレースログの詳細度: [Informational] を選択します。
- Syslog にログをエクスポートする切り替え: [有効にする] を選択します。
- エクスポートされたログの形式: [JSON] を選択します。
- [保存] をクリックします。
ESET PROTECT Cloud の Syslog を構成する
- ESET Protect ウェブ コンソールにログインします。
- [その他> 設定> Syslog サーバー] に移動します。
- [Syslog を有効にする] の横にある切り替えを選択します。
- 次の構成の詳細を指定します。
- ペイロードの形式: [JSON] を選択します。
- エンベロープの形式: [Syslog] を選択します。
- 最小ログレベル: [Informational] を選択します。
- [ログに記録するイベントタイプ]: [すべての] イベントタイプを選択します。
- 宛先 IP: Bindplane エージェントの IP アドレスを入力します。
- ポート: Bindplane エージェントのポート番号を入力します(UDP の場合は
514
)。
- [保存] をクリックします。
UDM マッピング テーブル
ログフィールド | UDM マッピング | ロジック |
---|---|---|
アクション | event1.idm.read_only_udm.security_result.action | 値が Blocked の場合は、条件付きで BLOCK に設定します。 |
actionTaken | event2.idm.read_only_udm.metadata.event_type | 値が Cleaned by deleting の場合は、条件付きで SCAN_PROCESS に設定します。 |
actionTaken | event1.idm.read_only_udm.security_result.action_details | actionTaken フィールドから直接マッピングされます。 |
actionTaken | event2.idm.read_only_udm.security_result.action_details | actionTaken フィールドから直接マッピングされます。 |
accountName | event2.idm.read_only_udm.additional.fields.value.string_value | accountName フィールドから直接マッピングされます。キーは accountName に設定されます。 |
アプリ | event3.idm.read_only_udm.principal.application | app フィールドから直接マッピングされます。 |
状況 | event2.idm.read_only_udm.additional.fields.value.string_value | circumstances フィールドから直接マッピングされます。キーは circumstances に設定されます。 |
Computer_name | event3.idm.read_only_udm.principal.hostname | Computer_name フィールドから直接マッピングされます。 |
Computer_name | event3.idm.read_only_udm.principal.asset.hostname | Computer_name フィールドから直接マッピングされます。 |
date_time | ||
Detection_name | event3.idm.read_only_udm.security_result.threat_name | Detection_name フィールドから直接マッピングされます。 |
Detectiontype | event3.idm.read_only_udm.security_result.category_details | Detectiontype フィールドから直接マッピングされます。 |
dst | event2.idm.read_only_udm.target.ip | dst フィールドから直接マッピングされます。 |
dst | event2.idm.read_only_udm.target.asset.ip | dst フィールドから直接マッピングされます。 |
dstPort | event2.idm.read_only_udm.target.port | dstPort フィールドから直接マッピングされ、整数に変換されます。 |
イベント | event1.idm.read_only_udm.metadata.description | event フィールドから直接マッピングされます。 |
event_type | event1.idm.read_only_udm.metadata.product_event_type | event_type フィールドから直接マッピングされます。 |
event_type | event1.idm.read_only_udm.metadata.event_type | 値が FirewallAggregated_Event の場合は、条件付きで NETWORK_CONNECTION に設定します。 |
ハッシュ | event1.idm.read_only_udm.target.file.sha1 | 小文字に変換された後、hash フィールドから直接マッピングされます。 |
hostname | event1.idm.read_only_udm.target.hostname | hostname フィールドから直接マッピングされます。 |
hostname | event1.idm.read_only_udm.target.asset.hostname | hostname フィールドから直接マッピングされます。 |
hostname | event.alert.devices.hostname | hostname フィールドから直接マッピングされます。 |
ipv4 | event1.idm.read_only_udm.principal.ip | ipv4 フィールドから直接マッピングされます。このフィールドは、まず一時フィールド udm_ip に保存されます。 |
ipv4 | event1.idm.read_only_udm.principal.asset.ip | ipv4 フィールドから直接マッピングされます。このフィールドは、まず一時フィールド udm_ip に保存されます。 |
ipv4 | event.alert.devices.ip_addresses | IP アドレスに変換された後、ipv4 フィールドから直接マッピングされます。 |
Logged_user | event3.idm.read_only_udm.principal.user.userid | Logged_user フィールドから直接マッピングされます。 |
objectUri | event1.idm.read_only_udm.target.file.full_path | objectUri フィールドから直接マッピングされます。 |
objectUri | event2.idm.read_only_udm.target.file.full_path | objectUri フィールドから直接マッピングされます。 |
processName | event2.idm.read_only_udm.target.process.file.full_path | processName フィールドから直接マッピングされます。 |
processName | event1.idm.read_only_udm.principal.process.file.full_path | processName フィールドから直接マッピングされます。 |
process_id | event3.idm.read_only_udm.principal.process.pid | process_id フィールドから直接マッピングされます。 |
process_id | event2.idm.read_only_udm.target.process.pid | process_id フィールドから直接マッピングされます。 |
プロトコル | event1.idm.read_only_udm.network.ip_protocol | protocol フィールドから直接マッピングされます。 |
proto | event2.idm.read_only_udm.network.ip_protocol | proto フィールドから直接マッピングされます。 |
結果 | event2.idm.read_only_udm.security_result.action | 値が Success の場合は、条件付きで ALLOW に設定します。 |
Scanner | event3.idm.read_only_udm.security_result.description | Scanner フィールドから直接マッピングされます。 |
重要度 | event1.idm.read_only_udm.security_result.severity | 次の条件に基づいて severity フィールドからマッピングされます。- INFO 、Informational 、DEBUG 、info : INFORMATIONAL - ERROR 、error : ERROR - WARNING 、Warning : LOW |
source_address | event1.idm.read_only_udm.principal.ip | source_address フィールドから直接マッピングされます。 |
source_address | event1.idm.read_only_udm.principal.asset.ip | source_address フィールドから直接マッピングされます。 |
source_port | event1.idm.read_only_udm.principal.port | source_port フィールドから直接マッピングされ、整数に変換されます。 |
source_uuid | event1.idm.read_only_udm.metadata.product_log_id | source_uuid フィールドから直接マッピングされます。 |
src | event2.idm.read_only_udm.principal.ip | src フィールドから直接マッピングされます。 |
src | event2.idm.read_only_udm.principal.asset.ip | src フィールドから直接マッピングされます。 |
srcPort | event2.idm.read_only_udm.principal.port | srcPort フィールドから直接マッピングされ、整数に変換されます。 |
target_address | event1.idm.read_only_udm.target.ip | target_address フィールドから直接マッピングされます。 |
target_address | event1.idm.read_only_udm.target.asset.ip | target_address フィールドから直接マッピングされます。 |
target_port | event1.idm.read_only_udm.target.port | target_port フィールドから直接マッピングされ、整数に変換されます。 |
threatName | event2.idm.read_only_udm.security_result.threat_name | threatName フィールドから直接マッピングされます。 |
threatName | event.alert.alert_short_name | threatName フィールドから直接マッピングされます。 |
Time_of_occurrence | event3.idm.read_only_udm.additional.fields.value.string_value | Time_of_occurrence フィールドから直接マッピングされます。キーは Time_of_occurrence に設定されます。 |
type | event2.idm.read_only_udm.security_result.category_details | type フィールドから直接マッピングされます。 |
type | event2.idm.read_only_udm.metadata.event_type | 他の特定のイベントタイプが一致しない場合は、条件付きで GENERIC_EVENT に設定されます。 |
user_id | event2.idm.read_only_udm.principal.user.userid | user_id フィールドから直接マッピングされます。 |
event1.idm.read_only_udm.metadata.event_type | event_type の値が Threat_Event の場合、条件付きで FILE_UNCATEGORIZED に設定します。 |
|
event1.idm.read_only_udm.metadata.log_type | ESET_EDR に設定します。 |
|
event1.idm.read_only_udm.metadata.product_name | event_type の値が FirewallAggregated_Event の場合、条件付きで ESET に設定します。 |
|
event2.idm.read_only_udm.metadata.log_type | ESET_EDR に設定します。 |
|
event2.idm.read_only_udm.metadata.product_name | EDR に設定します。 |
|
event2.idm.read_only_udm.metadata.vendor_name | ESET に設定します。 |
|
event3.idm.read_only_udm.metadata.event_type | これらのルールに基づいて条件付きで設定します。- principal_user_present が true の場合、USER_UNCATEGORIZED 。- principal_machine_id_present が true の場合、STATUS_UPDATE 。- それ以外の場合は GENERIC_EVENT 。 |
|
event3.idm.read_only_udm.metadata.log_type | ESET_EDR に設定します。 |
|
event3.idm.read_only_udm.metadata.product_name | EDR に設定します。 |
|
event3.idm.read_only_udm.metadata.vendor_name | ESET に設定します。 |
|
event.alert.is_significant | true に設定され、ブール値に変換されます。 |
|
event3.idm.read_only_udm.security_result.description | Scanner が空の場合、条件付きで kv_data の値に設定されます。 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。