FireEye HX のログを収集する
このドキュメントでは、Bindplane を使用して FireEye Endpoint Security(HX)ログを Google Security Operations に収集する方法について説明します。パーサーは、入力メッセージを JSON として処理しようとします。メッセージが JSON 形式でない場合は、grok パターンを使用してフィールドを抽出し、抽出されたイベントタイプとその他の条件に基づいて条件付き UDM マッピングを実行します。
始める前に
- Google Security Operations インスタンスがあることを確認します。
- Windows 2016 以降、または
systemd
を使用する Linux ホストを使用していることを確認します。 - プロキシの背後で実行している場合は、ファイアウォール ポートが開いていることを確認します。
- FireEye Endpoint Security への特権アクセス権があることを確認します。
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: '/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: 'FIREEYE_HX' 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 エージェントを再起動するには、Services コンソールを使用するか、次のコマンドを入力します。
net stop BindPlaneAgent && net start BindPlaneAgent
UI を使用して FireEye HX Event Streamer syslog を構成する
- FireEye HX 管理コンソールにログインします。
- イベント ストリーマーに移動します。
- [ホストで Event Streamer を有効にする] を選択します。
- ポリシーの変更を保存します。
- [Destinations] > [Server settings] > [Add syslog destination] に移動します。
- 次の構成の詳細を指定します。
- 名前: Google SecOps ログコレクタにラベルを付ける一意の名前を入力します。
- IP アドレス: Bindplane エージェントの IP アドレスを入力します。
- ポート: Bindplane エージェントのポート番号を入力します。
- 変更を保存して適用します。
CLI を使用して FireEye HX Event Streamer syslog を構成する
- コマンドライン インターフェース(CLI)を使用して FireEye HX アプライアンスにログインします。
次のコマンドを実行して、構成モードを有効にします。
enable configure terminal
次のコマンドを実行して、リモート syslog サーバーの宛先を追加します。
logging BINDPLANE_IP_ADDRESS port PORT_NUMBER port
- 次のように置き換えます。
BINDPLANE_IP_ADDRESS
: Google SecOps フォワーダーの IP アドレスPORT_NUMBER
: ポート番号
- 次のように置き換えます。
次のコマンドを実行して、構成の詳細を保存します。
write mem
UDM マッピング テーブル
ログフィールド | UDM マッピング | ロジック |
---|---|---|
alert.agent._id | principal.asset.asset_id | 未加工ログのエージェント ID。接頭辞は AGENT ID: です。 |
alert.agent.url | principal.labels.value | 未加工ログのエージェント URL。 |
alert.condition._id | additional.fields.value.string_value | 未加工のログの条件 ID(= 文字が削除されています)。 |
alert.condition.url | additional.fields.value.string_value | 未加工のログの条件 URL(= 文字が削除されています)。 |
alert.decorators[].data.fireeye_report.indicator_verdict.malware_families.0 | security_result.threat_name | FireEye レポートのマルウェア ファミリー。生ログのデコレーター フィールドにあります。 |
alert.decorators[].data.fireeye_report.risk_summary | security_result.description | 未加工のログのデコレータ フィールドにある FireEye レポートのリスクの概要。 |
alert.decorators[].data.fireeye_verdict | security_result.severity_details | 未加工ログのデコレータ フィールドの FireEye の判定。 |
alert.event_at | read_only_udm.metadata.event_timestamp | 未加工ログのイベント タイムスタンプ。 |
alert.event_id | read_only_udm.metadata.product_log_id | 未加工ログのイベント ID。 |
alert.event_type | read_only_udm.metadata.product_event_type | 未加工ログのイベントタイプ。 |
alert.event_values.fileWriteEvent/fullPath | target.file.full_path | 未加工ログから書き込まれたファイルのフルパス。 |
alert.event_values.fileWriteEvent/md5 | target.file.md5 | 未加工のログから書き込まれたファイルの MD5 ハッシュ。 |
alert.event_values.fileWriteEvent/pid | principal.process.pid | 未加工のログからファイルを書き込んだプロセス ID。 |
alert.event_values.fileWriteEvent/processPath | principal.process.file.full_path | 未加工ログからファイルを書き込んだプロセスのパス。OS が Windows の場合、alert.event_values.fileWriteEvent/process と組み合わせて完全なパスを作成します。 |
alert.event_values.fileWriteEvent/size | target.file.size | 未加工ログから書き込まれたファイルのサイズ。 |
alert.event_values.fileWriteEvent/username | principal.user.userid | 未加工ログからファイルを書き込んだユーザー。 |
alert.event_values.ipv4NetworkEvent/localIP | principal.ip | 未加工ログのローカル IP アドレス。 |
alert.event_values.ipv4NetworkEvent/localPort | principal.port | 未加工ログのローカルポート。 |
alert.event_values.ipv4NetworkEvent/pid | principal.process.pid | 未加工ログのプロセス ID。 |
alert.event_values.ipv4NetworkEvent/process | principal.process.file.full_path | 未加工ログのプロセス名。OS が Windows の場合、alert.event_values.ipv4NetworkEvent/processPath と組み合わせてフルパスを作成します。 |
alert.event_values.ipv4NetworkEvent/processPath | principal.process.file.full_path | 未加工ログのプロセスパス。OS が Windows の場合、alert.event_values.ipv4NetworkEvent/process と組み合わせて完全なパスを作成します。 |
alert.event_values.ipv4NetworkEvent/protocol | network.ip_protocol | 未加工ログのネットワーク プロトコル。 |
alert.event_values.ipv4NetworkEvent/remoteIP | target.ip | 未加工ログのリモート IP アドレス。 |
alert.event_values.ipv4NetworkEvent/remotePort | target.port | 未加工ログのリモートポート。 |
alert.event_values.ipv4NetworkEvent/timestamp | read_only_udm.metadata.event_timestamp | 未加工ログのイベント タイムスタンプ。 |
alert.event_values.ipv4NetworkEvent/username | principal.user.userid | 未加工ログのユーザー。 |
alert.event_values.processEvent/md5 | target.process.file.md5 | 未加工ログのプロセスの MD5 ハッシュ。 |
alert.event_values.processEvent/parentPid | principal.process.pid | 未加工ログの親プロセス ID。 |
alert.event_values.processEvent/parentProcess | principal.process.file.full_path | 未加工のログの親プロセス名。 |
alert.event_values.processEvent/parentProcessPath | principal.process.file.full_path | 未加工ログの親プロセスパス。 |
alert.event_values.processEvent/pid | target.process.pid | 未加工ログのプロセス ID。 |
alert.event_values.processEvent/process | target.process.file.full_path | 未加工ログのプロセス名。 |
alert.event_values.processEvent/processCmdLine | target.process.command_line | 未加工ログのプロセス コマンドライン。 |
alert.event_values.processEvent/processPath | target.process.file.full_path | 未加工ログのプロセスパス。 |
alert.event_values.processEvent/timestamp | read_only_udm.metadata.event_timestamp | 未加工ログのイベント タイムスタンプ。 |
alert.event_values.processEvent/username | principal.user.userid | 未加工ログのユーザー。 |
alert.event_values.urlMonitorEvent/hostname | target.hostname | 未加工ログのホスト名。 |
alert.event_values.urlMonitorEvent/localPort | principal.port | 未加工ログのローカルポート。 |
alert.event_values.urlMonitorEvent/pid | principal.process.pid | 未加工ログのプロセス ID。 |
alert.event_values.urlMonitorEvent/process | principal.process.file.full_path | 未加工ログのプロセス名。OS が Windows の場合、alert.event_values.urlMonitorEvent/processPath と組み合わせて完全なパスを作成します。 |
alert.event_values.urlMonitorEvent/processPath | principal.process.file.full_path | 未加工ログのプロセスパス。OS が Windows の場合、alert.event_values.urlMonitorEvent/process と組み合わせて完全なパスを作成します。 |
alert.event_values.urlMonitorEvent/remoteIpAddress | target.ip | 未加工ログのリモート IP アドレス。 |
alert.event_values.urlMonitorEvent/remotePort | target.port | 未加工ログのリモートポート。 |
alert.event_values.urlMonitorEvent/requestUrl | target.url | 未加工ログからリクエストされた URL。 |
alert.event_values.urlMonitorEvent/timestamp | read_only_udm.metadata.event_timestamp | 未加工ログのイベント タイムスタンプ。 |
alert.event_values.urlMonitorEvent/urlMethod | network.http.method | 未加工ログの HTTP メソッド。 |
alert.event_values.urlMonitorEvent/userAgent | network.http.user_agent | 未加工ログのユーザー エージェント。 |
alert.event_values.urlMonitorEvent/username | principal.user.userid | 未加工ログのユーザー。 |
alert.indicator._id | security_result.about.labels.value | 未加工ログのインジケーター ID。 |
alert.indicator.name | read_only_udm.security_result.summary | 未加工のログの指標名。 |
alert.indicator.url | security_result.about.labels.value | 未加工ログのインジケータ URL。 |
alert.multiple_match | read_only_udm.metadata.description | 未加工ログの複数一致メッセージ。 |
alert.source | additional.fields.value.string_value | 未加工ログから取得したアラートのソース。 |
authmethod | extensions.auth.mechanism | 未加工ログの認証方法。値が local または LOCAL の場合は LOCAL に設定し、それ以外の場合は MECHANISM_OTHER に設定します。 |
authsubmethod | extensions.auth.auth_details | 未加工ログの認証サブメソッド(大文字に変換)。 |
クライアント | principal.ip | 未加工ログのクライアント IP アドレス。 |
conditions.data.tests[].token | security_result.detection_fields.key | 未加工ログの条件テストからのトークン。 |
conditions.data.tests[].value | security_result.detection_fields.value | 未加工ログの条件テストの値。 |
説明 | read_only_udm.metadata.description | 未加工ログの説明。 |
host.agent_version | read_only_udm.metadata.product_version | 未加工ログのエージェント バージョン。 |
host.containment_state | read_only_udm.principal.containment_state | 未加工ログの封じ込め状態。 |
host.domain | read_only_udm.principal.administrative_domain | 未加工ログのドメイン。 |
host.hostname | read_only_udm.principal.hostname | 未加工ログのホスト名。 |
host.os.platform | read_only_udm.principal.platform | 未加工ログのオペレーティング システム プラットフォーム。 |
host.os.product_name | read_only_udm.principal.platform_version | 未加工ログのオペレーティング システムのプロダクト名。 |
host.primary_ip_address | read_only_udm.principal.ip | 未加工ログのプライマリ IP アドレス。 |
host.primary_mac | read_only_udm.principal.mac | 未加工ログのプライマリ MAC アドレス。- 文字は : に置き換えられます。 |
host_ | principal.hostname | 未加工ログのホスト名。 |
host_details.data.agent_version | read_only_udm.metadata.product_version | 未加工ログのエージェント バージョン。 |
host_details.data.containment_state | read_only_udm.security_result.severity_details | 未加工ログの封じ込め状態。 |
host_details.data.domain | read_only_udm.principal.administrative_domain | 未加工ログのドメイン。 |
host_details.data.hostname | read_only_udm.principal.hostname | 未加工ログのホスト名。 |
host_details.data.os.platform | read_only_udm.principal.platform | 未加工ログのオペレーティング システム プラットフォーム。 |
host_details.data.os.product_name | read_only_udm.principal.platform_version | 未加工ログのオペレーティング システムのプロダクト名。 |
host_details.data.primary_ip_address | read_only_udm.principal.ip | 未加工ログのプライマリ IP アドレス。 |
host_details.data.primary_mac | read_only_udm.principal.mac | 未加工ログのプライマリ MAC アドレス。- 文字は : に置き換えられます。 |
indicators.data.description | read_only_udm.metadata.description | 未加工ログのインジケーターの説明。 |
行 | target.application | 未加工ログの行。 |
localusername | target.user.user_display_name | 未加工のログのローカル ユーザー名。 |
principal_ip | principal.ip | 未加工ログのプリンシパル IP アドレス。 |
プロセス | read_only_udm.principal.application | 未加工ログのプロセス名。 |
process_id | read_only_udm.principal.process.pid | 未加工ログのプロセス ID。 |
referrer | network.http.referral_url | 未加工ログの参照 URL。 |
remoteaddress | principal.ip | 未加工ログのリモート アドレス。 |
リクエスト | additional.fields.value.string_value | 未加工ログのリクエスト。 |
ロール | target.user.role_name | 未加工ログのロール。 |
サーバー | target.resource.attribute.labels.value | 未加工ログのサーバー。 |
sessionID | network.session_id | 未加工ログのセッション ID。 |
重要度 | security_result.severity | 未加工ログの重大度に基づいて、LOW 、MEDIUM 、HIGH のいずれかに設定します。 |
target_host | read_only_udm.target.hostname | 未加工ログのターゲット ホスト名。 |
target_ip | target.ip | 未加工ログのターゲット IP アドレス。 |
target_ip1 | target.ip | 未加工ログのターゲット IPv6 アドレス。 |
timestamp | timestamp | 未加工ログのタイムスタンプ。 |
アップストリーム | target.url | 未加工ログのアップストリーム URL。 |
ユーザー名 | target.user.userid | 未加工ログのユーザー名。 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。