Netscout Arbor Sightline のログを収集する
このドキュメントでは、Bindplane エージェントを使用して Netscout Arbor Sightline ログを Google Security Operations に取り込む方法について説明します。
Netscout Arbor Sightline(以前の Peakflow SP)は、DDoS 検出とネットワークの可視性プラットフォームです。ネットワーク全体の容量計画から、DDoS やネットワークに対するその他の脅威の緩和策の特定と管理まで、堅牢な機能を提供します。Sightline は、フローデータ、BGP ルーティング情報、SNMP データを収集して分析し、異常を検出してアラートを生成し、緩和対応を調整します。
始める前に
次の前提条件を満たしていることを確認してください。
- Google SecOps インスタンス
- Windows Server 2016 以降、または
systemdを使用する Linux ホスト - Bindplane エージェントと Netscout Arbor Sightline アプライアンス間のネットワーク接続
- プロキシの背後で実行している場合は、Bindplane エージェントの要件に従ってファイアウォール ポートが開いていることを確認します
- Netscout Arbor Sightline ウェブ インターフェースへの管理者権限
- システム アラート構成用の Netscout Arbor Sightline コマンドライン インターフェース(CLI)への管理者権限
Bindplane エージェントの Google SecOps 認証情報を取得する
Bindplane エージェントを Google SecOps に対して認証するには、次のいずれかの方法を選択します。
- 新規デプロイ: Chronicle API を使用します(オプション 1)。
- 以前のデプロイ: 2027 年 7 月 20 日に Ingestion API が廃止されるまで、取り込み認証ファイル(オプション 2)を引き続き使用します。
オプション 1: Chronicle API のサービス アカウントを作成する(推奨)
- Google Cloud コンソールにログインし、Google SecOps インスタンスにリンクされている Google Cloud プロジェクトを選択します。
- [IAM と管理] > [サービス アカウント] に移動します。
- [サービス アカウントを作成] をクリックします。
- 次の構成情報を指定します。
- サービス アカウント名: アカウントの名前を入力します(例:
bindplane-ingest)。 - サービス アカウントの説明: 説明を入力します(例:
Bindplane agent log ingestion)。
- サービス アカウント名: アカウントの名前を入力します(例:
- [作成して続行] をクリックします。
- [このサービス アカウントにプロジェクトへのアクセスを許可する] セクションで、[ロールを選択] をクリックし、[Chronicle 編集者] を選択します。
- [続行] をクリックして [完了] をクリックします。
- 作成したサービス アカウントをクリックし、[キー] タブに移動します。
- [鍵を追加] > [新しい鍵を作成] の順にクリックします。
- [JSON] を選択し、[作成] をクリックします。鍵ファイルがパソコンにダウンロードされます。
- 鍵ファイルを
ingestion-auth.jsonとして Bindplane コレクタ ディレクトリ(Linux の場合は/opt/observiq-otel-collector/ingestion-auth.json、Windows の場合はC:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json)に保存するか、config.yamlのcreds_file_pathを更新して、保存先のパスと一致させます。 - [IAM と管理] > [設定] に移動し、[プロジェクト番号] をコピーします。これはエクスポータの構成に必要です。
オプション 2: 取り込み認証ファイルをダウンロードする(レガシー)
- 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 エージェントのインストール ガイドをご覧ください。
Syslog を取り込んで Google SecOps に送信するように Bindplane エージェントを構成する
構成ファイルを探します。
Linux:
sudo nano /opt/observiq-otel-collector/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
構成ファイルを編集します。
config.yamlの内容全体を次の構成に置き換えます。receivers: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/arbor_sightline: protocol: https # Region of your instance, for example us, europe, asia-southeast1 location: <LOCATION> # Project number of the Google Cloud project linked to the instance project: '<PROJECT_NUMBER>' compression: gzip creds_file_path: '<CREDS_FILE_PATH>' customer_id: '<CUSTOMER_ID>' endpoint: chronicle.googleapis.com log_type: ARBOR_SIGHTLINE raw_log_field: body ingestion_labels: env: production service: pipelines: logs/arbor_to_chronicle: receivers: - udplog exporters: - chronicle/arbor_sightline各プレースホルダを次のように置き換えます。
レシーバーの構成:
- レシーバーは、すべてのインターフェース(
0.0.0.0:514)で UDP ポート 514 をリッスンするように構成されています。 - 別のポート(たとえば、root 以外の Linux インストールでは
1514)を使用する必要がある場合は、listen_addressの値を変更します。 - TCP syslog を使用する場合は、受信セクションとパイプラインの両方で
udplogをtcplogに置き換えます。
- レシーバーは、すべてのインターフェース(
エクスポータの構成:
<CREDS_FILE_PATH>: サービス アカウントの JSON キーファイルのフルパス(オプション 1):- Linux:
/opt/observiq-otel-collector/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
<CUSTOMER_ID>: 前のステップの顧客 IDlocation:<LOCATION>は、Google SecOps インスタンスのリージョン(us、europe、asia-southeast1など)に置き換えます。エクスポーターは、chronicle.googleapis.comの先頭にこの値を付加します。完全なリストについては、リージョン エンドポイントをご覧ください。project:<PROJECT_NUMBER>を [IAM と管理] > [設定] のプロジェクト番号に置き換えます。endpoint:chronicle.googleapis.comに設定したままにします。log_type:ARBOR_SIGHTLINEに設定します(完全一致が必要です)。ingestion_labels: YAML 形式の省略可能なラベル(環境に合わせて必要に応じて変更)
構成の例
receivers:
udplog:
listen_address: "0.0.0.0:514"
exporters:
chronicle/arbor_sightline:
protocol: https
# Region of your instance, for example us, europe, asia-southeast1
location: <LOCATION>
# Project number of the Google Cloud project linked to the instance
project: '<PROJECT_NUMBER>'
compression: gzip
creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
customer_id: 'a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6'
endpoint: chronicle.googleapis.com
log_type: ARBOR_SIGHTLINE
raw_log_field: body
ingestion_labels:
env: production
source: sightline
service:
pipelines:
logs/arbor_to_chronicle:
receivers:
- udplog
exporters:
- chronicle/arbor_sightline
以前の Ingestion API エクスポータ
オプション 2 の取り込み認証ファイルを使用する場合は、
exportersブロックを次のように置き換えます。creds_file_pathを取り込み認証ファイルのパスに設定します。インスタンスが米国以外にある場合は、malachiteingestion-pa.googleapis.comをリージョン エンドポイント(例:europe-malachiteingestion-pa.googleapis.com)に置き換えます。exporters: chronicle/arbor_sightline: compression: gzip creds_file_path: '<CREDS_FILE_PATH>' customer_id: '<CUSTOMER_ID>' endpoint: malachiteingestion-pa.googleapis.com log_type: ARBOR_SIGHTLINE raw_log_field: body ingestion_labels: env: production
構成ファイルを保存する
編集が完了したら、ファイルを保存します。
- 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"
Netscout Arbor Sightline の syslog 転送を構成する
ログを Google SecOps に送信するには、syslog イベントを Bindplane エージェントに転送するように Netscout Arbor Sightline を構成する必要があります。これには、通知グループの作成、グローバル通知設定の構成、アラート通知ルールの設定が含まれます。
通知グループを作成する
- 管理者として Netscout Arbor Sightline ウェブ インターフェースにログインします。
- [Administration] > [Notification] > [Groups] に移動します。
- [通知グループを追加] をクリックします。
- 次の構成情報を指定します。
- 宛先: Bindplane エージェント ホストの IP アドレス(例:
192.168.1.100)を入力します。 - ポート:
514(または、Bindplane エージェントで構成されたポート(1514など))を入力します。 - ファシリティ: syslog ファシリティ(
local0やuserなど)を選択します。 - 重大度:
infoを選択します。情報重大度では、情報イベント レベル以上の重大度のすべてのイベント メッセージが収集されます。
- 宛先: Bindplane エージェント ホストの IP アドレス(例:
- [保存] をクリックします。
[Configuration Commit] をクリックして、構成の変更を適用します。
グローバル通知設定を構成する
Netscout Arbor Sightline のグローバル通知は、特定のアラートルールに関連付けられていないシステム通知を提供します。
- Netscout Arbor Sightline ウェブ インターフェースで、[Administration] > [Notification] > [Global Settings] に移動します。
- [デフォルトの通知グループ] フィールドで、Google SecOps 用に作成した通知グループを選択します。
- [保存] をクリックします。
- [Configuration Commit] をクリックして、構成の変更を適用します。
システム アラート通知を有効にする
システム アラートには、コマンドライン インターフェース(CLI)による追加の構成が必要です。
- 管理者として Netscout Arbor Sightline コマンドライン インターフェースにログインします。
現在のシステム アラート構成を一覧表示します。
services sp alerts system_errors show構成可能なシステム アラートのフィールド名の一覧を表示するには、次のコマンドを実行します。
services sp alerts system_errors ?システム アラートの通知を有効にします。有効にするアラートタイプごとに、次のコマンドを実行します。
services sp alerts system_errors <alert_name> notifications enable<alert_name>は、特定のシステム アラート フィールド名(disk_full、flow_collector_down、license_expiringなど)に置き換えます。構成の変更を commit します。
config write
アラート通知ルールを構成する
アラート通知ルールは、Google SecOps への syslog 通知をトリガーするアラートを決定します。
- Netscout Arbor Sightline ウェブ インターフェースで、[Administration] > [Notification] > [Rules] に移動します。
- 次のいずれかのオプションを選択します。
- 既存のルールをクリックして編集します。
- [ルールを追加] をクリックして、新しい通知ルールを作成します。
- 次の値を構成します。
- 名前: ルールのわかりやすい名前を入力します(例:
Chronicle-DDoS-Alerts)。 - リソース: CIDR アドレスを入力するか、Sightline リソースのリストからマネージド オブジェクトを選択します。ルールをすべてのリソースに適用するには、このフィールドを空白のままにするか、[すべて] を選択します。
- 重要度: アラートの最小重要度レベル(
Low、Medium、High、Criticalなど)を選択します。このレベル以上のアラートが通知をトリガーします。 - 通知グループ: Google SecOps 用に作成した通知グループを選択します。
- 名前: ルールのわかりやすい名前を入力します(例:
- 必要に応じて、この手順を繰り返して、異なるリソースまたは重要度レベルの追加ルールを構成します。
- [保存] をクリックします。
[Configuration Commit] をクリックして、構成の変更を適用します。
syslog 接続をテストする
通知グループとルールを構成したら、syslog メッセージが Bindplane エージェントに送信されていることを確認します。
Netscout Arbor Sightline CLI で、syslog 接続をテストします。
services sp notification test syslog group <notification_group_name><notification_group_name>は、作成した通知グループの名前に置き換えます。コマンドによって返される結果は次のとおりです。
Server returned: SuccessBindplane エージェント ログを調べて、テスト メッセージが受信されていることを確認します。
Linux:
sudo journalctl -u observiq-otel-collector -fWindows:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"Google SecOps コンソールで [検索] に移動し、Netscout Arbor Sightline ログが取り込みラベル
ARBOR_SIGHTLINEで表示されていることを確認します。
Google SecOps に転送されるイベントタイプ
Netscout Arbor Sightline は、次のイベント カテゴリを syslog 経由で転送します。
- サービス拒否攻撃(DoS)イベント: DDoS 攻撃検出アラート(ボリューム攻撃、プロトコル攻撃、アプリケーション レイヤ攻撃など)
- 認証イベント: ユーザーのログインの成功と失敗、認証の試行
- エクスプロイト イベント: 検出されたエクスプロイトの試みと疑わしいトラフィック パターン
- 不審なアクティビティ イベント: 異常なトラフィック動作と潜在的なセキュリティ脅威
- システム イベント: アプライアンスの健全性、サービス ステータス、構成の変更、運用アラート
- 軽減イベント: DDoS 攻撃の軽減の開始、停止、ステータスの更新
UDM マッピング テーブル
| ログフィールド | UDM マッピング | ロジック |
|---|---|---|
| msg1 | additional.fields | 空でない場合は、各フィールドのラベルとマージされます。msg1 には「message_description」、config_version には「config_version」などの特定のキーが使用されます。 |
| config_version | additional.fields | |
| prin_user | additional.fields | |
| old_bgp_attributes | additional.fields | |
| new_bgp_attributes | additional.fields | |
| reason | additional.fields | |
| サンプルレート | additional.fields | |
| proto | additional.fields | |
| 作成可能 | additional.fields | |
| identifier | additional.fields | |
| expected_bps | additional.fields | |
| actual_bps | additional.fields | |
| サーバー | additional.fields | |
| ステータス | additional.fields | |
| パーセント | additional.fields | |
| 率 | additional.fields | |
| rateunit | additional.fields | |
| flags | additional.fields | |
| ルーター | additional.fields | |
| インターフェース | additional.fields | |
| ip_ver | additional.fields | |
| protocol_id | additional.fields | |
| router_name | additional.fields | |
| interface_id | additional.fields | |
| interface_name | additional.fields | |
| priority | additional.fields | |
| log_level | additional.fields | |
| プール | additional.fields | |
| thread_id | additional.fields | |
| timeout | additional.fields | |
| 試行 | additional.fields | |
| vulns | extensions.vulns.vulnerabilities | 脆弱性が空でない場合にマージ |
| 降順 | metadata.description | desc と desc2 の両方が空でない場合は「%{desc}: %{desc2}」に設定します。それ以外の場合は desc に設定します。空でない場合は message_desc によって上書きされます。 |
| desc2 | metadata.description | |
| message_desc | metadata.description | |
| event_time | metadata.event_timestamp | 形式 MMM dd HH:mm:ss または MMM d HH:mm:ss、タイムゾーン Europe/London の日付フィルタを使用して変換されます。 |
| desc2 | metadata.event_type | desc2 が「(DNS Amplification |
| メッセージ | metadata.event_type | |
| src_ip | metadata.event_type | |
| has_target_ip | metadata.event_type | |
| has_network_protocol | metadata.event_type | |
| host_name | metadata.event_type | |
| メッセージ | metadata.product_event_type | メッセージが「Host Detection」と一致する場合は「Host Detection」に設定。メッセージが「 started」と一致する場合は「TMS Mitigation started」に設定。メッセージが「 stopped」と一致する場合は「TMS Mitigation stopped」に設定。 |
| metadata.product_name | metadata.product_name | 「ARBOR_SIGHTLINE」に設定します。 |
| metadata.vendor_name | metadata.vendor_name | 「NETSCOUT」に設定します。 |
| direction | network.direction | 方向が「incoming」の場合は「INBOUND」に設定 |
| proto | network.ip_protocol | proto が「6」の場合は「TCP」に設定します。それ以外の場合は、「(?i)(TCP |
| network_protocol | network.ip_protocol | |
| バイト | network.sent_bytes | 値が直接コピーされ、uinteger に変換されます。 |
| packets | network.sent_packets | 値が直接コピーされ、整数に変換されます |
| 期間 | network.session_duration.seconds | 空でなく「0」でない場合、値は直接コピーされ、整数に変換されます。 |
| host_name | principal.hostname | 値が直接コピーされる |
| src_ip | principal.ip | src_ip と nameserver_ip から統合 |
| nameserver_ip | principal.ip | |
| 名前空間 | principal.namespace | 値を直接コピーする |
| filename | principal.process.file.full_path | 値が直接コピーされる |
| alert_id | principal.process.pid | 値が直接コピーされる |
| prin_url | principal.url | 値を直接コピーする |
| prin_user | principal.user.userid | 値を直接コピーする |
| 効果 | security_result.detection_fields | 影響の「Impact」、重要度の「Importance」、シグネチャの「Signature」、リーダーの「Leader」、parent_managed_object の「parent_managed_object」、alert_id の「Alert ID」のキーと統合 |
| 重要度 | security_result.detection_fields | |
| signature | security_result.detection_fields | |
| リーダー | security_result.detection_fields | |
| parent_managed_object | security_result.detection_fields | |
| alert_id | security_result.detection_fields | |
| 重要度 | security_result.severity | 重大度が ["10","9"] の場合は「INFORMATIONAL」、["8","7"] の場合は「LOW」、"6" の場合は「MEDIUM」、["5","4"] の場合は「HIGH」、["3","2","1"] の場合は「CRITICAL」に設定します。 |
| desc2 | security_result.threat_status | desc が「Host Detection alert」と一致し、メッセージが「start」で「stop」でない場合は「ACTIVE」に設定します。desc が「Host Detection alert」と一致し、メッセージが「stop」の場合は「CLEARED」に設定します。 |
| メッセージ | security_result.threat_status | |
| intem_host | target.group.product_object_id | 値が直接コピーされる |
| dst_ip | target.ip | 値を直接コピーする |
| dst_port | target.port | 値が直接コピーされ、整数に変換されます |
| file_path | target.process.file.full_path | 値が直接コピーされる |
| stop_time | vulns.vulnerabilities.scan_end_time | yyyy-MM-dd HH:mm:ss 形式の日付フィルタを使用して変換 |
| start_time | vulns.vulnerabilities.scan_start_time | yyyy-MM-dd HH:mm:ss または yyyy-MM-dd 形式の日付フィルタを使用して変換 |
msg1 |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
prin_user |
event.idm.read_only_udm.principal.user.userid |
変更履歴からマッピング |
config_version |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
old_bgp_attributes |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
new_bgp_attributes |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
reason |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
sample_rate |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
proto |
event.idm.read_only_udm.network.ip_protocol |
変更履歴からマッピング |
proto |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
bytes |
event.idm.read_only_udm.network.sent_bytes |
変更履歴からマッピング |
packets |
event.idm.read_only_udm.network.sent_packets |
変更履歴からマッピング |
flows |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
identifier |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
expected_bps |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
actual_bps |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
server |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
status |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
percent |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
rate |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
rateunit |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
flags |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
router |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
interface |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
ip_ver |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
protocol_id |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
router_name |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
interface_id |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
interface_name |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
network_protocol |
event.idm.read_only_udm.network.ip_protocol |
変更履歴からマッピング |
prin_url |
event.idm.read_only_udm.principal.url |
変更履歴からマッピング |
src_port |
event.idm.read_only_udm.principal.port |
変更履歴からマッピング |
dst_port |
event.idm.read_only_udm.target.port |
変更履歴からマッピング |
dst_ip |
event.idm.read_only_udm.target.ip |
変更履歴からマッピング |
severity |
event.idm.read_only_udm.security_result.severity |
変更履歴からマッピング |
Active/Cleared |
security_result.threat_status |
変更履歴からマッピング |
alert_id","parent_managed_object |
security_result.detection_fields |
変更履歴からマッピング |
変更ログ
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。