Cybereason EDR のログを収集する
このドキュメントでは、Bindplane エージェントを使用して Cybereason EDR ログを Google Security Operations に取り込む方法について説明します。
Cybereason EDR(Endpoint Detection and Response)は、エンドポイント全体で高度な脅威を検知して対応するサイバーセキュリティ プラットフォームです。Malops(悪意のあるオペレーション)を特定します。これは、不審なアクティビティを完全な攻撃シナリオに結び付ける相関関係のある攻撃チェーンです。セキュリティ アナリストは、脅威の進行状況、影響を受けたマシン、侵害されたユーザー、ネットワーク接続を把握できます。
始める前に
次の前提条件を満たしていることを確認してください。
- Google SecOps インスタンス
- Windows Server 2016 以降、または
systemdを使用する Linux ホスト - Bindplane エージェントと Cybereason Detection Server 間のネットワーク接続
- プロキシの背後で実行している場合は、Bindplane エージェントの要件に従ってファイアウォール ポートが開いていることを確認します。
- システム管理者ロールで Cybereason 管理コンソールにアクセスできること
- Cybereason プラットフォーム バージョン 20.1 以降
Google SecOps の取り込み認証ファイルを取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [コレクション エージェント] に移動します。
Ingestion Authentication File をダウンロードします。Bindplane エージェントがインストールされるシステムに、ファイルを安全に保存します。
Google SecOps のお客様 ID を取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [プロファイル] に移動します。
[組織の詳細情報] セクションから [お客様 ID] をコピーして保存します。
Bindplane エージェントをインストールする
次の手順に沿って、Windows または Linux オペレーティング システムに Bindplane エージェントをインストールします。
Windows のインストール
- 管理者としてコマンド プロンプトまたは PowerShell を開きます。
次のコマンドを実行します。
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quietインストールが完了するまで待ちます。
次のコマンドを実行して、インストールの内容を確認します。
sc query observiq-otel-collectorサービス ステータスは RUNNING になります。
Linux のインストール
- root 権限または sudo 権限でターミナルを開きます。
次のコマンドを実行します。
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.shインストールが完了するまで待ちます。
次のコマンドを実行して、インストールの内容を確認します。
sudo systemctl status observiq-otel-collectorサービスのステータスが [active (running)] になります。
その他のインストール リソース
その他のインストール オプションとトラブルシューティングについては、Bindplane エージェントのインストール ガイドをご覧ください。
syslog を取り込んで Google SecOps に送信するように Bindplane エージェントを構成する
構成ファイルを見つける
Linux:
sudo nano /etc/bindplane-agent/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
構成ファイルを編集します。
config.yamlの内容全体を次の構成に置き換えます。receivers: tcplog: listen_address: "0.0.0.0:514" exporters: chronicle/cybereason: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: 'your-customer-id' endpoint: malachiteingestion-pa.googleapis.com log_type: CYBEREASON_EDR raw_log_field: body service: pipelines: logs/cybereason_to_chronicle: receivers: - tcplog exporters: - chronicle/cybereason各プレースホルダを次のように置き換えます。
レシーバーの構成:
listen_address: リッスンする IP アドレスとポート:0.0.0.0:514: ポート 514 のすべてのインターフェースをリッスンします(Linux で root が必要)。0.0.0.0:1514: 非特権ポートでリッスンする(Linux の非 root ユーザーにおすすめ)
受信機のタイプ オプション:
- TCP Syslog の
tcplog(Cybereason Syslog 転送に必要)
- TCP Syslog の
エクスポータの構成:
creds_file_path: Google SecOps の取り込み認証ファイルの完全パス:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
customer_id: Google SecOps お客様 IDendpoint: リージョン エンドポイント URL:- 米国:
malachiteingestion-pa.googleapis.com - ヨーロッパ:
europe-malachiteingestion-pa.googleapis.com - アジア:
asia-southeast1-malachiteingestion-pa.googleapis.com - 完全なリストについては、リージョン エンドポイントをご覧ください。
- 米国:
構成ファイルを保存する
編集が完了したら、ファイルを保存します。
- Linux:
Ctrl+O、Enter、Ctrl+Xの順に押します。 - Windows: [ファイル>保存] をクリックします。
Bindplane エージェントを再起動して変更を適用する
Linux で Bindplane エージェントを再起動するには:
次のコマンドを実行します。
sudo systemctl restart observiq-otel-collectorサービスが実行されていることを確認します。
sudo systemctl status observiq-otel-collectorログでエラーを確認します。
sudo journalctl -u observiq-otel-collector -f
Windows で Bindplane エージェントを再起動するには:
次のいずれかのオプションを選択します。
管理者としてコマンド プロンプトまたは PowerShell を開きます。
net stop observiq-otel-collector && net start observiq-otel-collectorサービス コンソール:
Win+Rキーを押して「services.msc」と入力し、Enter キーを押します。- observIQ OpenTelemetry Collector を見つけます。
- 右クリックして [再起動] を選択します。
サービスが実行されていることを確認します。
sc query observiq-otel-collectorログでエラーを確認します。
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
Cybereason EDR の syslog 転送を構成する
Cybereason は、syslog 経由で CEF(Common Event Format)で MalOp イベントとユーザー監査イベントを送信します。Syslog 転送の構成には、Cybereason テクニカル サポートへのリクエストが必要です。
Cybereason テクニカル サポートに syslog 転送をリクエストする
- Cybereason 管理コンソールにログインします。
- Cybereason サポート ポータルから Cybereason テクニカル サポートにお問い合わせください。
- 次の情報を使用して、syslog 転送構成リクエストを送信します。
- Syslog サーバーの IP アドレス: Bindplane エージェント ホストの IP アドレス(例:
192.168.1.100)。 - Syslog サーバー ポート: Bindplane エージェントの
listen_addressに一致するポート(例:514)。 - プロトコル: TCP(暗号化されていない TCP Syslog)。
- ログタイプ: 次のログタイプの転送をリクエストします。
- MalOp syslog: セキュリティ アラートと悪意のあるオペレーション イベント
- ユーザー監査 syslog: ユーザー アクティビティと管理アクション
- Syslog サーバーの IP アドレス: Bindplane エージェント ホストの IP アドレス(例:
Cybereason テクニカル サポートが syslog 転送構成を確認するまで待ちます。
ファイアウォール ルールを構成する
次のファイアウォール ルールが設定されていることを確認します。
方向 プロトコル ポート ソース 目的地 送信 TCP 514 Cybereason Detection Server Bindplane エージェント ホスト
代替: Cybereason CEF Forwarder
Cybereason テクニカル サポートが直接 Syslog 転送を構成できない場合は、Cybereason CEF Forwarder ツールを使用できます。
- Cybereason テクニカル サポートから Cybereason CEF Forwarder Docker イメージをダウンロードします。
cybereason-forwarders/config/config.jsonで構成ファイルを作成または編集します。以下の設定を構成します。
{ "host": "<BINDPLANE_AGENT_IP>", "port": 514 }<BINDPLANE_AGENT_IP>は、Bindplane エージェント ホストの IP アドレスに置き換えます。Docker コンテナをビルドして実行します。
docker build -t cybereason-cef-forwarder . docker run -d --name cybereason-forwarder cybereason-cef-forwarder
Syslog イベントタイプ
Cybereason は、次のイベント カテゴリの CEF syslog メッセージを生成します。
| イベント カテゴリ | 説明 |
|---|---|
| MalOp が作成されました | 新しい悪意のあるオペレーションが検出されました |
| MalOp updated | 既存の MalOp のステータスまたは詳細が変更された |
| MalOp がクローズされた | アナリストによって MalOp が解決またはクローズされた |
| マルウェアが検出された | エンドポイントでマルウェアが特定された |
| 不審なプロセス | 不審なプロセス アクティビティが検出されました |
| ネットワーク接続 | 疑わしいネットワーク接続が特定された |
| ユーザーのログイン | ユーザー認証イベント |
| マシンの分離 | エンドポイントがネットワークから分離された、またはネットワークに再接続された |
| ポリシーの変更 | セキュリティ ポリシーの変更 |
syslog 転送を確認する
- Cybereason テクニカル サポートが syslog 構成を確認したら、Cybereason コンソールでテスト操作(MalOp の表示やテストマシンの分離など)を実行します。
- Bindplane エージェントのログで、受信した syslog メッセージを確認します。
- Linux:
sudo journalctl -u observiq-otel-collector -f - Windows:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
- Linux:
CEF 形式のメッセージがログに表示されることを確認します。次に例を示します。
CEF:0|Cybereason|Cybereason|2.0|MalOp|MalOp Created|8|cs1=MALOP_ID_HERE dvchost=server01.company.com suser=admin@company.com
UDM マッピング テーブル
| ログフィールド | UDM マッピング | ロジック |
|---|---|---|
| detectionName_label | additional.fields | Key-Value ペアとしてマッピング |
| sensorId_label | additional.fields | Key-Value ペアとしてマッピング |
| ステータス | metadata.description | 値が空でない場合 |
| log_description | metadata.description | ステータスが空の場合のフォールバック |
| (CEF 形式) | metadata.event_type | CEF ログの場合は GENERIC_EVENT に設定 |
| event_type | metadata.event_type | 値が「PROCESS_OPEN」の場合は PROCESS_OPEN、値が「NETWORK_CONNECTION」の場合は NETWORK_CONNECTION、値が「MALWARE」の場合は SCAN_HOST に設定します。 |
| has_principal、has_target | metadata.event_type | has_principal と has_target の両方が true の場合は SCAN_FILE に設定します。 |
| has_principal | metadata.event_type | has_principal が true の場合のみ STATUS_UPDATE に設定 |
| has_user | metadata.event_type | Malop コンテキストで has_user が true の場合は USER_UNCATEGORIZED に設定 |
| (デフォルト) | metadata.event_type | それ以外の場合は GENERIC_EVENT に設定 |
| LogType | metadata.product_event_type | 値が空でない場合 |
| malop_data.simpleValues.elementDisplayName.values.0 | metadata.product_event_type | LogType が空の場合のフォールバック |
| type | metadata.product_event_type | フォールバック |
| prod_event、prod_event2 | metadata.product_event_type | prod_event - prod_event2 として連結 |
| malop_process.guidString | metadata.product_log_id | PROCESS_OPEN イベントタイプの場合 |
| malop_connection.guidString | metadata.product_log_id | NETWORK_CONNECTION イベントタイプの場合 |
| guid | metadata.product_log_id | MALWARE または Malop イベントタイプの場合 |
| (静的) | metadata.product_version | 最初は「2.0」に設定 |
| Sensor.version | metadata.product_version | 存在する場合は「2.0」を上書きします |
| malop_url | metadata.url_back_to_product | 直接マッピングされます。 |
| (静的) | metadata.vendor_name | 「Cybereason」に設定 |
| direction | network.direction | 直接マッピングされます。 |
| malop_connection.simpleValues.transportProtocol.values.0 | network.ip_protocol | 直接マッピングされます。 |
| malop_connection.simpleValues.receivedBytesCount.values.0 | network.received_bytes | 符号なし整数に変換されました |
| malop_connection.simpleValues.transmittedBytesCount.values.0 | network.sent_bytes | 符号なし整数に変換されました |
| Sensor.fqdn | principal.administrative_domain | 直接マッピングされます。 |
| malop_process.elementValues.ownerMachine.elementValues.0.guid | principal.asset.asset_id | 「Cybereason:」の接頭辞が付いています。 |
| malop_data.elementValues.affectedMachines.elementValues.0.guid | principal.asset.asset_id | 「Cybereason:」の接頭辞が付いている場合、フォールバック |
| malop_process.elementValues.ownerMachine.elementValues.0.name | principal.asset.hostname | 直接マッピングされます。 |
| malop_data.elementValues.affectedMachines.elementValues.0.name | principal.asset.hostname | フォールバック |
| machineName | principal.asset.hostname | フォールバック |
| ホスト | principal.asset.hostname | フォールバック |
| dvchost | principal.asset.hostname | フォールバック |
| Sensor.fqdn | principal.asset.hostname | フォールバック |
| client.ip | principal.asset.ip | 直接マッピングされます。 |
| Sensor.externalIpAddress | principal.asset.ip | フォールバック |
| malop_process.elementValues.ownerMachine.elementValues.0.name | principal.hostname | 直接マッピングされます。 |
| malop_data.elementValues.affectedMachines.elementValues.0.name | principal.hostname | フォールバック |
| machineName | principal.hostname | フォールバック |
| ホスト | principal.hostname | フォールバック |
| dvchost | principal.hostname | フォールバック |
| Sensor.fqdn | principal.hostname | フォールバック |
| client.ip | principal.ip | 直接マッピングされます。 |
| Sensor.externalIpAddress | principal.ip | フォールバック |
| Sensor.internalIpAddress | principal.nat_ip | 直接マッピングされます。 |
| Sensor.privateServerIp | principal.nat_ip | フォールバック |
| Sensor.osType | principal.platform | 値が「WINDOWS」の場合は WINDOWS、「LINUX」の場合は LINUX、「MAC」の場合は MAC に設定します。 |
| Sensor.osVersionType | principal.platform_version | 直接マッピングされます。 |
| malop_connection.simpleValues.localPort.values.0 | principal.port | 整数に変換しました |
| malop_process.simpleValues.commandLine.values.0 | principal.process.command_line | 直接マッピングされます。 |
| malwareDataModel.filePath | principal.process.command_line | フォールバック |
| malop_process.simpleValues.calculatedName.values.0 | principal.process.file.full_path | 直接マッピングされます。 |
| name | principal.process.file.full_path | フォールバック |
| malop_process.elementValues.parentProcess.elementValues.0.guid | principal.process.parent_process.product_specific_process_id | 「Cybereason:」の接頭辞が付いています。 |
| malop_process.elementValues.self.elementValues.0.guid | principal.process.pid | 直接マッピングされます。 |
| malop_process.elementValues.self.elementValues.0.guid | principal.process.product_specific_process_id | 「Cybereason:」の接頭辞が付いています。 |
| malop_connection.elementValues.ownerProcess.elementValues.0.guid | principal.process.product_specific_process_id | 「Cybereason:」の接頭辞が付いている場合、フォールバック |
| companyName | principal.user.company_name | 直接マッピングされます。 |
| malop_process.elementValues.calculatedUser.elementValues.0.name | principal.user.user_display_name | 直接マッピングされます。 |
| malop_data.elementValues.affectedUsers.elementValues.0.name | principal.user.user_display_name | フォールバック |
| malop_connection.elementValues.ownerProcess.user.elementValues.0.name | principal.user.user_display_name | フォールバック |
| malop_process.elementValues.calculatedUser.elementValues.0.guid | principal.user.userid | 直接マッピングされます。 |
| malop_data.elementValues.affectedUsers.elementValues.0.guid | principal.user.userid | フォールバック |
| malop_connection.elementValues.ownerProcess.user.elementValues.0.guid | principal.user.userid | フォールバック |
| security_result_action | security_result.action | ステータスに基づいて ALLOW、BLOCK、QUARANTINE に設定 |
| is_alert | security_result.alert_state | 値が True の場合は ALERTING に設定 |
| sr_category | security_result.category | SOFTWARE_MALICIOUS または NETWORK_MALICIOUS に設定 |
| query_details | security_result.detection_fields | Key-Value ペアとしてマッピング |
| affected_machine_count | security_result.detection_fields | Key-Value ペアとしてマッピング |
| link_to_malop | security_result.detection_fields | Key-Value ペアとしてマッピング |
| context_label | security_result.detection_fields | Key-Value ペアとしてマッピング |
| old_state_label | security_result.detection_fields | Key-Value ペアとしてマッピング |
| new_state_label | security_result.detection_fields | Key-Value ペアとしてマッピング |
| investigation_label | security_result.detection_fields | Key-Value ペアとしてマッピング |
| event_id_label | security_result.detection_fields | Key-Value ペアとしてマッピング |
| malop_activity_type_label | security_result.detection_fields | Key-Value ペアとしてマッピング |
| malop_suspect_label | security_result.detection_fields | Key-Value ペアとしてマッピング |
| malop_key_suspicion_label | security_result.detection_fields | Key-Value ペアとしてマッピング |
| device_custom_date_label | security_result.detection_fields | Key-Value ペアとしてマッピング |
| device_custom_date2_label | security_result.detection_fields | Key-Value ペアとしてマッピング |
| device_custom_date3_label | security_result.detection_fields | Key-Value ペアとしてマッピング |
| guid_label | security_result.detection_fields | Key-Value ペアとしてマッピング |
| displayName_label | security_result.detection_fields | Key-Value ペアとしてマッピング |
| pylumId_label | security_result.detection_fields | Key-Value ペアとしてマッピング |
| connected_label | security_result.detection_fields | Key-Value ペアとしてマッピング |
| isolated_label | security_result.detection_fields | Key-Value ペアとしてマッピング |
| osType_label | security_result.detection_fields | Key-Value ペアとしてマッピング |
| admin_label | security_result.detection_fields | Key-Value ペアとしてマッピング |
| domainUser_label | security_result.detection_fields | Key-Value ペアとしてマッピング |
| localSystem_label | security_result.detection_fields | Key-Value ペアとしてマッピング |
| 説明 | security_result.description | decision_feature、malop_status、privileges、passwordAgeDays、elementType、status、score、detectionValue、detectionValueType、detectionEngine と連結されます。 |
| decision_feature | security_result.description | 説明に連結 |
| malop_status | security_result.description | 説明に連結 |
| 権限 | security_result.description | 説明に連結 |
| passwordAgeDays | security_result.description | 説明に連結 |
| elementType | security_result.description | 説明に連結 |
| ステータス | security_result.description | 説明に連結 |
| スコア | security_result.description | 説明に連結 |
| detectionValue | security_result.description | 説明に連結 |
| detectionValueType | security_result.description | 説明に連結 |
| detectionEngine | security_result.description | 説明に連結 |
| malop_data.malopPriority | security_result.priority | 直接マッピングされます。 |
| malop_severity | security_result.severity | 直接マッピングされます。 |
| security_severity | security_result.severity | 値が 8 より大きい場合は CRITICAL、6 より大きい場合は HIGH、4 より大きい場合は MEDIUM、1 より大きい場合は LOW に設定されます。 |
| 重要度 | security_result.severity | 「Info」の場合は INFORMATIONAL、「Error」または「High」の場合は ERROR、「Warning」または「Medium」の場合は MEDIUM、「Critical」の場合は CRITICAL、「Low」の場合は LOW、それ以外の場合は UNKNOWN に設定します。 |
| 説明 | security_result.summary | 直接マッピングされます。 |
| type | security_result.summary | フォールバック |
| malopId | security_result.threat_id | 直接マッピングされます。 |
| malop_data.simpleValues.detectionType.values.0 | security_result.threat_name | 直接マッピングされます。 |
| virusName | security_result.threat_name | フォールバック |
| ステータス | security_result.threat_status | 値が「Active」の場合は ACTIVE に設定し、それ以外の場合は FALSE_POSITIVE に設定します。 |
| malop_url | security_result.url_back_to_product | 直接マッピングされます。 |
| machineName | target.asset.hostname | 直接マッピングされます。 |
| affectedMachine | target.asset.hostname | フォールバック |
| dvchost | target.asset.hostname | フォールバック |
| Sensor.serverName | target.asset.hostname | フォールバック |
| server.ip | target.asset.ip | 直接マッピングされます。 |
| Sensor.serverIp | target.asset.ip | フォールバック |
| malop_process.simpleValues.calculatedName.values.0 | target.file.full_path | 直接マッピングされます。 |
| malop_connection.elementValues.ownerProcess.elementValues.0.name | target.file.full_path | フォールバック |
| name | target.file.full_path | フォールバック |
| malwareDataModel_filePath | target.file.full_path | フォールバック |
| malop_process.simpleValues.imageFile.md5String.values.0 | target.file.md5 | 直接マッピングされます。 |
| name | target.file.names | 直接マッピングされます。 |
| machineName | target.hostname | 直接マッピングされます。 |
| affectedMachine | target.hostname | フォールバック |
| dvchost | target.hostname | フォールバック |
| Sensor.serverName | target.hostname | フォールバック |
| server.ip | target.ip | 直接マッピングされます。 |
| Sensor.serverIp | target.ip | フォールバック |
| malop_connection.simpleValues.remoteAddressCountryName.values.0 | target.location.country_or_region | 直接マッピングされます。 |
| Sensor.privateServerIp | target.nat_ip | 直接マッピングされます。 |
| malop_connection.simpleValues.remotePort.values.0 | target.port | 整数に変換しました |
| malop_process.simpleValues.calculatedName.values.0 | target.process.file.full_path | 直接マッピングされます。 |
| malop_process.elementValues.self.elementValues.0.guid | target.process.pid | 直接マッピングされます。 |
| malop_url | target.url | 直接マッピングされます。 |
| (静的) | metadata.product_name | 「Cybereason」に設定 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。