ESET AV ログを収集する
このドキュメントでは、Bindplane を使用して ESET AV ログを Google Security Operations に取り込む方法について説明します。Logstash パーサーコードは、SYSLOG または JSON 形式の ESET_AV ログからセキュリティ イベントデータを抽出します。まず、未加工のメッセージを正規化し、特定された形式に基づいて解析します。抽出されたフィールドを対応する 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_AV' 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 Web コンソールにログインします。
- [その他> 設定> 詳細設定> Syslog サーバー] に移動します。
- [Syslog を有効にする] の横にある切り替えを選択します。
- 次の構成の詳細を指定します。
- ホスト: Bindplane エージェントの IP アドレスを入力します。
- ポート: Bindplane エージェントのポート番号を入力します(UDP の場合は
514
)。 - 形式: [Syslog] を選択します。
- トランスポート: [UDP] を選択します。
- トレースログの詳細度: [Informational] を選択します。
- Syslog にログをエクスポートする切り替え: [有効にする] を選択します。
- エクスポートされたログの形式: [JSON] を選択します。
- [保存] をクリックします。
ESET PROTECT Cloud の Syslog を構成する
- ESET Protect Web コンソールにログインします。
- [その他> 設定> Syslog サーバー] に移動します。
- [Syslog を有効にする] の横にある切り替えを選択します。
- 次の構成の詳細を指定します。
- ペイロードの形式: [JSON] を選択します。
- エンベロープの形式: [Syslog] を選択します。
- 最小ログレベル: [Informational] を選択します。
- [ログに記録するイベントタイプ]: [すべての] イベントタイプを選択します。
- 宛先 IP: Bindplane エージェントの IP アドレスを入力します。
- ポート: Bindplane エージェントのポート番号を入力します(UDP の場合は
514
)。
- [保存] をクリックします。
UDM マッピング テーブル
ログフィールド | UDM マッピング | ロジック |
---|---|---|
アカウント | principal.administrative_domain | Grok パターン %{DATA:admin_domain}\\\\%{WORD:user_id} を使用して account フィールドから抽出されます。 |
アカウント | principal.user.userid | Grok パターン %{DATA:admin_domain}\\\\%{WORD:user_id} を使用して account フィールドから抽出されます。 |
アクション | security_result.action | action が Block (大文字と小文字を区別しない)の場合は、BLOCK に設定します。action が Start (大文字と小文字を区別しない)の場合は、ALLOW に設定します。 |
action_taken | security_result.action_details | action_taken フィールドから直接マッピングされます。 |
computer_severity_score | security_result.detection_fields | キー computer_severity_score と computer_severity_score フィールドの値で Key-Value ペアが作成されます。このペアは security_result.detection_fields 配列に追加されます。 |
詳細 | security_result.description | detail フィールドから直接マッピングされます。 |
ドメイン | principal.domain.name | domain フィールドから直接マッピングされます。 |
eialarmid | security_result.detection_fields | キー eialarmid と eialarmid フィールドの値で Key-Value ペアが作成されます。このペアは security_result.detection_fields 配列に追加されます。 |
eiconsolelink | principal.url | eiconsolelink フィールドから直接マッピングされます。 |
イベント | metadata.description | event から event_desc に名前が変更され、metadata.description にマッピングされます。 |
event_type | metadata.product_event_type | event_type フィールドから直接マッピングされます。 |
group_name | principal.group.group_display_name | group_name フィールドから直接マッピングされます。 |
ハッシュ | principal.file.sha1 | 小文字に変換されます。小文字の値が SHA-1 正規表現と一致する場合、principal.file.sha1 にマッピングされます。 |
ハッシュ | principal.resource.attribute.labels | キー hash と hash フィールドの値で Key-Value ペアが作成されます。このペアは principal.resource.attribute.labels 配列に追加されます。 |
hostname | principal.asset.hostname | hostname フィールドから直接マッピングされます。 |
hostname | principal.hostname | hostname フィールドから直接マッピングされます。 |
インバウンド | network.direction | true の場合は、INBOUND に設定します。false の場合は、OUTBOUND に設定します。 |
ipv4 | target.asset.ip | target_address が空の場合、ipv4 フィールドから直接マッピングされます。 |
ipv4 | target.ip | target_address が空の場合、ipv4 フィールドから直接マッピングされます。 |
json_data | JSON として解析され、さまざまなフィールドが抽出されます。 | |
メッセージ | grok を使用して解析し、タイムスタンプ、ホスト、json_data を抽出します。 | |
need_restart | additional.fields | キー need_restart と need_restart フィールドの値(文字列に変換)で Key-Value ペアが作成されます。このペアは additional.fields 配列に追加されます。 |
os_name | principal.platform | Window または window (大文字と小文字を区別しない)が含まれている場合は、WINDOWS に設定します。Linux または linux (大文字と小文字を区別しない)が含まれている場合は、LINUX に設定します。Mac または mac (大文字と小文字を区別しない)が含まれている場合は、MAC に設定します。 |
os_name | principal.platform_version | os_name フィールドから直接マッピングされます。 |
process_name | principal.process.file.full_path | process_name フィールドから直接マッピングされます。空の場合、processname の値が使用されます。 |
processname | principal.process.file.full_path | process_name が空の場合、process_name にマッピングされます。 |
プロトコル | network.ip_protocol | 大文字に変換されました。大文字の値が既知のプロトコル(TCP、UDP、ICMP など)と一致する場合、network.ip_protocol にマッピングされます。 |
結果 | security_result.summary | result フィールドから直接マッピングされます。 |
rulename | security_result.rule_name | rulename フィールドから直接マッピングされます。 |
scan_id | security_result.detection_fields | キー scan_id と scan_id フィールドの値で Key-Value ペアが作成されます。このペアは security_result.detection_fields 配列に追加されます。 |
scanner_id | security_result.detection_fields | キー scanner_id と scanner_id フィールドの値で Key-Value ペアが作成されます。このペアは security_result.detection_fields 配列に追加されます。 |
重要度 | security_result.severity | Warn または warn (大文字と小文字を区別しない)が含まれている場合は、HIGH に設定します。Info または info (大文字と小文字を区別しない)が含まれている場合は、LOW に設定します。 |
severity_score | security_result.detection_fields | キー severity_score と severity_score フィールドの値で Key-Value ペアが作成されます。このペアは security_result.detection_fields 配列に追加されます。 |
source_address | principal.asset.ip | source_address フィールドから直接マッピングされます。 |
source_address | principal.ip | source_address フィールドから直接マッピングされます。 |
source_port | principal.port | 文字列に変換されてから整数に変換されます。principal.port にマッピングされます。 |
source_uuid | metadata.product_log_id | source_uuid フィールドから直接マッピングされます。 |
ターゲット | 名前が target1 に変わりました。 |
|
target_address | target.asset.ip | target_address フィールドから直接マッピングされます。 |
target_address | target.ip | target_address フィールドから直接マッピングされます。 |
target_port | target.port | 文字列に変換されてから整数に変換されます。target.port にマッピングされます。 |
threat_handled | security_result.detection_fields | キー threat_handled と threat_handled フィールドの値(文字列に変換)で Key-Value ペアが作成されます。このペアは security_result.detection_fields 配列に追加されます。 |
threat_name | security_result.threat_name | threat_name フィールドから直接マッピングされます。 |
threat_type | security_result.threat_id | threat_type フィールドから直接マッピングされます。 |
時間 | metadata.event_timestamp | metadata.event_timestamp の設定に使用されます。 |
ユーザー名 | principal.user.userid | user_id と user が空の場合、username フィールドから直接マッピングされます。 |
ユーザー | principal.user.userid | user_id が空の場合、user フィールドから直接マッピングされます。 |
metadata.event_type | source_address と target_address が空でない場合は、NETWORK_CONNECTION に設定します。それ以外の場合、has_user が true の場合は USER_UNCATEGORIZED に設定します。それ以外の場合、has_principal が true の場合は STATUS_UPDATE に設定します。それ以外の場合は GENERIC_EVENT に設定します。 |
|
metadata.log_type | ESET_AV に設定します。 |
|
metadata.product_name | ESET_AV に設定します。 |
|
metadata.vendor_name | ESET_AV に設定します。 |
|
intermediary.hostname | このフィールドの値は、ログメッセージから抽出された host フィールドから取得されます。 |
|
principal.user.userid | フィールド account が空でない場合、パーサーは grok パターンを使用して account フィールドからユーザー ID を抽出します。それ以外の場合は、フィールド user が空でないかどうかを確認し、空でない場合はその値を取得します。account と user の両方が空の場合、フィールド username が空でないかどうかを確認し、空でない場合はその値を取得します。 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。