STIX Threat Intelligence ログを収集する
このドキュメントでは、Bindplane エージェントを使用して STIX 脅威インテリジェンス ログを Google Security Operations に取り込む方法について説明します。
STIX(Structured Threat Information Expression)は、組織間でセキュリティ侵害インジケーター(IOC)と脅威インテリジェンス データを共有するための標準化された言語と形式です。通常、STIX データは TAXII サーバーまたは脅威インテリジェンス プラットフォームから JSON ファイルまたは XML ファイルとして受信されます。Bindplane エージェントは、ローカル ファイル システムから STIX データファイルを直接収集します。
始める前に
次の前提条件を満たしていることを確認してください。
- Google SecOps インスタンス
- Windows Server 2016 以降、または
systemdを使用する Linux ホスト - プロキシの背後で実行している場合は、Bindplane エージェントの要件に従ってファイアウォール ポートが開いていることを確認します。
- STIX 形式のファイル(JSON または XML)をローカル ディレクトリに保存する TAXII クライアントまたは脅威インテリジェンス プラットフォーム
Google SecOps の取り込み認証ファイルを取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [収集エージェント] に移動します。
- 取り込み認証ファイル をダウンロードします。
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 エージェントのインストール ガイドをご覧ください。
ログを取り込んで Google SecOps に送信するように Bindplane エージェントを構成する
構成ファイルを探す
Linux:
sudo nano /opt/observiq-otel-collector/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
構成ファイルを編集します。
config.yamlの内容全体を次の構成に置き換えます。receivers: filelog: include: - /var/log/stix/*.json start_at: beginning exporters: chronicle/stix: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: STIX raw_log_field: body ingestion_labels: env: production service: pipelines: logs/stix_to_chronicle: receivers: - filelog exporters: - chronicle/stix
構成パラメータ
各プレースホルダを次のように置き換えます。
レシーバーの構成:
filelog: ディスクからログファイルを収集するためのレシーバー タイプinclude: モニタリングするファイルパスのリスト。これを STIX ファイルが保存されているディレクトリに設定します。- Linux:
/var/log/stix/*.json - Windows:
C:\Logs\stix\*.json
- Linux:
start_at: 既存のログを読み取る場合はbeginning、新しいエントリのみを読み取る場合はendに設定します。
エクスポータの構成:
stix: エクスポータのわかりやすい名前creds_file_path: 取り込み認証ファイルのフルパス:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
<customer_id>: 前のステップの顧客 IDendpoint: リージョン エンドポイント URL:- 米国:
malachiteingestion-pa.googleapis.com - ヨーロッパ:
europe-malachiteingestion-pa.googleapis.com - アジア:
asia-southeast1-malachiteingestion-pa.googleapis.com - 完全なリストについては、リージョン エンドポイントをご覧ください。
- 米国:
STIX: Chronicle に表示されるログタイプingestion_labels: YAML 形式の省略可能なラベル(例:env: production)
パイプラインの構成:
stix_to_chronicle: パイプラインのわかりやすい名前
構成ファイルを保存する
- 編集後、ファイルを保存します。
- Linux:
Ctrl+O、Enter、Ctrl+Xの順に押します。 - Windows: [ファイル> 保存] をクリックします。
- Linux:
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"
STIX データファイルの収集を構成する
STIX はプロダクトではなく、データ形式です。STIX 脅威インテリジェンス データは通常、TAXII クライアント、脅威インテリジェンス プラットフォーム、または手動ダウンロードから JSON ファイルまたは XML ファイルとして受信されます。これらのファイルは、Bindplane エージェントがモニタリングするディレクトリに配置する必要があります。
Linux
STIX データファイルを保存するディレクトリを作成します。
sudo mkdir -p /var/log/stixTAXII クライアントまたは脅威インテリジェンス プラットフォームを構成して、STIX ファイルを
/var/log/stix/に保存します。Bindplane エージェント サービス アカウントにディレクトリに対する読み取りアクセス権があることを確認します。
sudo chmod 755 /var/log/stix
Windows
STIX データファイルを保存するディレクトリを作成します。
mkdir C:\Logs\stixTAXII クライアントまたは脅威インテリジェンス プラットフォームを構成して、STIX ファイルを `C:\Logs\stix` に保存します。
config.yamlの Bindplane エージェントのincludeパスを更新して、一致するようにします。include: - C:\Logs\stix\*.json
UDM マッピング テーブル
| ログフィールド | UDM マッピング | ロジック |
|---|---|---|
| entity.administrative_domain | 「TEST」に設定 | |
| assetid_value | entity.asset.asset_id | assetid_value が空でない場合は、その値 |
| condition_label、related_indicators_relationship_label、related_indicators_scope、indicator_types_label、valid_start_time_label、controlled_structure_label、marking_structure_label | entity.asset.attribute.labels | さまざまなラベルから統合 |
| name | entity.file.full_path | 値を直接コピーする |
| val、hash.simple_hash_value、MD5_val、hash_value | entity.file.md5 | md5 正規表現と一致する場合は val の値、タイプが MD5 の場合は hash.simple_hash_value、それ以外の場合は MD5_val、それ以外の場合は hash_value |
| 値 | entity.file.names | 値を直接コピーする |
| val、hash.simple_hash_value、sha1_val、hash_value | entity.file.sha1 | sha1 正規表現と一致する場合は val の値、タイプが SHA1 の場合は hash.simple_hash_value、それ以外の場合は sha1_val、それ以外の場合は hash_value |
| val, hash.simple_hash_value, sha256val, sha_value, sha_value | entity.file.sha256 | sha256 正規表現と一致する場合は val の値、タイプが SHA256 の場合は hash.simple_hash_value、それ以外の場合は sha256val、それ以外の場合は sha_value |
| observable.object.properties.value、dom、value、host、name、external_references.0.source_name | entity.hostname | タイプが FQDN の場合は observable.object.properties.value の値、それ以外の場合は grok の dom、タイプが domain-name の場合は value、それ以外の場合は host、main_observable_type が domain/hostname の場合は name、それ以外の場合は external_references.0.source_name |
| ip_val、ipval、ip、source_ip、value、src_ip | entity.ip | Grok が一致した場合は ip_val の値、カテゴリが ipv4-addr の場合は ipval、パターン Grok の場合は ip、source_ip、タイプが ipv4 の場合は値、Grok の場合は src_ip |
| source_port、src_port | entity.port | source_port または src_port の値 |
| indicator_label、extension_value1、extension_value2、extension_value3、extension_value4、revoked_value、spec_version_value、object_marking_ref_value、label_value | entity.resource.attribute.labels | さまざまなラベルから統合 |
| observable.object.properties.value、url_val、value、observable_properties_value | entity.url | 型が URL の場合は observable.object.properties.value の値、それ以外の場合は grok の url_val、型が url の場合は value、それ以外の場合は observable_properties_value(空でない場合) |
| email_val、mail、value | entity.user.email_addresses | Grok が一致した場合は email_val の値、それ以外の場合は Grok のメール、それ以外の場合はタイプが email-addr の値 |
| timestamp | metadata.collected_timestamp | 日付照合 ISO8601/RFC 3339 を使用して変換 |
| title、description | metadata.description | タイトルまたは説明文の値 |
| entity_type | metadata.entity_type | 値を直接コピーする |
| timestamp、valid_until | metadata.interval.end_time | タイムスタンプまたは valid_until から変換(日付が ISO8601/RFC 3339 と一致) |
| timestamp、valid_from、created | metadata.interval.start_time | タイムスタンプ、valid_from、created、またはタイムスタンプから変換。日付は ISO8601/RFC 3339 に一致 |
| id | metadata.product_entity_id | 値を直接コピーする |
| version | metadata.product_version | 値を直接コピーする |
| threat_detail | metadata.threat | threat_detail から統合 |
| threat_detail_category | threat.category | 値を直接コピーする |
| confidence_value、confidence、x_stix_confidence、x_ctix_confidence_score | threat.confidence_details | confidence_value の値。ない場合は confidence、ない場合は x_stix_confidence、ない場合は x_ctix_confidence_score |
| value、confidence、x_ctix_confidence_score | threat.confidence_score | 名前が Confidence Score の場合は value の値、それ以外の場合は confidence、それ以外の場合は x_ctix_confidence_score を float に変換した値 |
| property_label、sha512_value、observable_id、observable_object_id、keyword_label | threat.detection_fields | さまざまなラベルから統合 |
| 説明 | threat.description | 値を直接コピーする |
| 値、extensions.extension-definition--ea279b3e-5c71-4632-ac08-831c66a786ba.score | threat.risk_score | 名前が Risk の場合は値から値、それ以外の場合は拡張機能のスコアを浮動小数点数に変換 |
| metadata.product_name | 「STIX」に設定 | |
| metadata.vendor_name | 「STIX」に設定 | |
dom |
event.idm.entity.entity.hostname |
変更履歴からマッピング |
name |
event.idm.entity.entity.url |
変更履歴からマッピング |
valid_from |
event.idm.entity.entity.resource.attribute.labels |
変更履歴からマッピング |
valid_until |
event.idm.entity.entity.resource.attribute.labels |
変更履歴からマッピング |
pattern_version |
event.idm.entity.entity.resource.attribute.labels |
変更履歴からマッピング |
observable.object.properties.value.condition |
event.idm.entity.entity.asset.attribute.labels |
変更履歴からマッピング |
handling.controlled_structure |
event.idm.entity.entity.asset.attribute.labels |
変更履歴からマッピング |
handling.marking_structures.color |
event.idm.entity.entity.asset.attribute.labels |
変更履歴からマッピング |
related_indicators.related_indicators |
event.idm.entity.entity.asset.attribute.labels |
変更履歴からマッピング |
related_indicators.scope |
event.idm.entity.entity.asset.attribute.labels |
変更履歴からマッピング |
indicator_types |
event.idm.entity.entity.asset.attribute.labels |
変更履歴からマッピング |
valid_time_positions |
event.idm.entity.entity.asset.attribute.labels |
変更履歴からマッピング |
observable.object.properties.custom_properties |
event.idm.entity.metadata.threat.detection_fields |
変更履歴からマッピング |
observable.object.properties.value |
event.ioc.domain_and_ports.domain |
変更履歴からマッピング |
mitre-extension-definition.extension_type |
entity.resource.attribute.labels.value |
変更履歴からマッピング |
sco-extension-definition.extension_type |
entity.resource.attribute.labels.value |
変更履歴からマッピング |
x_ctix_confidence_score |
threat_detail.confidence_score |
変更履歴からマッピング |
modified |
timestamp |
変更履歴からマッピング |
valid_from |
entity_event.metadata.interval.start_time |
変更履歴からマッピング |
confidence |
threat_detail.confidence_score |
変更履歴からマッピング |
name |
entity.entity.file.full_path |
変更履歴からマッピング |
description |
threat_detail.description |
変更履歴からマッピング |
external_references.0.source_name |
entity_event.entity.hostname |
変更履歴からマッピング |
entity_type |
IP_ADDRESS |
変更履歴からマッピング |
entity_type |
USER |
変更履歴からマッピング |
entity_type |
FILE |
変更履歴からマッピング |
entity_type |
DOMAIN_NAME |
変更履歴からマッピング |
変更ログ
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。