Cisco Stealthwatch のログを収集する
このドキュメントでは、Bindplane を使用して Cisco Secure Network Analytics(以前の Stealthwatch)ログを Google Security Operations に収集する方法について説明します。パーサーは、クライアント/サーバーの IP とパケット情報を含む形式と、デバイス ID とバイト数を含む形式の 2 つの形式の Cisco Stealthwatch ログを処理します。フィールドを抽出し、適切なデータ型に変換して UDM にマッピングし、ログの内容と形式に基づいてベンダー、プロダクト、イベントタイプなどのメタデータ フィールドを設定します。
始める前に
- Google Security Operations インスタンスがあることを確認します。
- Windows 2016 以降、または
systemd
を使用する Linux ホストを使用していることを確認します。 - プロキシの背後で実行している場合は、ファイアウォール ポートが開いていることを確認します。
- Cisco Stealthwatch への特権アクセス権があることを確認します。
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: CISCO_STEALTHWATCH 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
Cisco Secure Network Analytics(旧称 Stealthwatch)の Syslog を構成する
- 管理コンソールのウェブ UI にログインします。
- [Configuration] > [Response Management] に移動します。
Syslog 形式の編集:
- 名前: syslog 形式の名前を入力します。
- 説明: 形式の説明を入力します。
- Facility:
Local 0
に設定 - 重大度:
Informational
に設定します。 - [メッセージ] フィールドに次の形式を貼り付けます。
Lancope|StealthWatch|time|{time}|target_hostname|{target_hostname}|alarm_severity_id|{alarm_severity_id}|alarm_type_id|{alarm_type_id}|alarm_type_description|{alarm_type_description}|port|{port}|target_ip|{target_ip}|target_mac_address|{target_mac_address}|target_label|{target_label}|alarm_type_name|{alarm_type_name}|source_hostname|{source_hostname}|source_ip|{source_ip}|source_mac_address|{source_mac_address}|source_username|{source_username}|device_ip|{device_ip}|device_name|{device_name}|details|{details}|protocol|{protocol}|alarm_id|{alarm_id}|alarm_category_name|{alarm_category_name}|start_active_time|{start_active_time}| end_active_time|{end_active_time}
[OK] をクリックします。
[Response Management] > [Actions] > [Add Syslog Message] に移動します。
Syslog Forwarder を構成します。
- 名前: Google SecOps Bindplane フォワーダーの名前を入力します。
- 説明: Google SecOps Bindplane フォワーダーの説明を入力します。
- IP アドレス: Bindplane エージェントの IP アドレスを入力します。
- ポート: Bindplane エージェントのポート番号(例:
514
)を入力します。 - 形式: 手順 3 で作成した形式を選択します。
[OK] をクリックします。
Cisco Secure Network Analytics(以前の Stealthwatch)のルール名を構成する
- [Configuration] > [Response Management] に移動します。
- [ルール> 追加> SMC システム アラート] を選択します。
- [OK] をクリックします。
- [ルールの種類] ダイアログで、ルールを選択します。
- [OK] をクリックします。
- [ルール] ダイアログで、次の操作を行います。
- 名前: ルールの名前を入力します。
- このルールがトリガーされる条件: 各リストで [Any]、[Severity]、[Informational] を選択します。
- [OK] をクリックします。
- [アクション> 追加] を選択します。
- 以前に作成したアクションを選択します。
- [OK]、[OK] の順にクリックします。
- 前の手順を繰り返して、[ルール] セクションの次の 3 つのオプションの名前を変更します。
- サポートされているログ収集メカニズム - Syslog
- 推奨されるログ収集メカニズム - Syslog
- イベント フローの論理図 - SMC リモート Syslog サーバー
UDM マッピング テーブル
ログフィールド | UDM マッピング | ロジック |
---|---|---|
Alarm_ID |
additional.fields[?key=='Alarm_ID'].value.string_value |
未加工ログの Alarm_ID の値は、キー Alarm_ID の下のネストされた additional.fields 構造体に配置されます。 |
ClientBytes |
network.sent_bytes |
未加工ログの ClientBytes は符号なし整数に変換され、マッピングされます。 |
ClientIP |
principal.ip |
未加工ログの ClientIP がマッピングされます。 |
ClientPort |
principal.port |
未加工ログの ClientPort は整数に変換され、マッピングされます。 |
CPayload |
マッピングされません | このフィールドは最終的な UDM では使用されません。 |
DestIPv4Address |
target.ip |
未加工ログの DestIPv4Address がマッピングされます。 |
DestPort |
target.port |
未加工ログの DestPort は整数に変換され、マッピングされます。 |
details |
security_result.summary |
未加工ログの details の値(二重引用符が削除されたもの)がマッピングされます。 |
FC |
intermediary.ip |
未加工ログの FC がマッピングされます。 |
host.country |
principal.location.country_or_region |
未加工ログの host.country がマッピングされます。 |
host.hostGroupNames |
about.group.group_display_name |
未加工ログの host.hostGroupNames 配列の各要素には host: が付加され、個別の about オブジェクトとしてマッピングされます。 |
host.ipAddress |
principal.ip |
未加工ログの host.ipAddress がマッピングされます。 |
hostBytes |
network.sent_bytes |
未加工ログの hostBytes は符号なし整数に変換され、マッピングされます。 |
InPackets |
additional.fields[?key=='InPackets'].value.string_value |
未加工ログの InPackets の値は、キー InPackets の下のネストされた additional.fields 構造体に配置されます。 |
inputSNMPIface |
additional.fields[?key=='inputSNMPIface'].value.string_value |
未加工ログの inputSNMPIface の値は、キー inputSNMPIface の下のネストされた additional.fields 構造体に配置されます。 |
LastTime |
マッピングされません | このフィールドは、イベント タイムスタンプとして解析される場合もありますが、UDM に直接マッピングされることはありません。 |
MessageSourceAddress |
principal.ip |
未加工ログの MessageSourceAddress がマッピングされます。 |
method |
network.http.method |
未加工ログの method がマッピングされます。 |
outputSNMPIface |
additional.fields[?key=='outputSNMPIface'].value.string_value |
未加工ログの outputSNMPIface の値は、キー outputSNMPIface の下のネストされた additional.fields 構造体に配置されます。 |
PAAppID |
マッピングされません | このフィールドは最終的な UDM では使用されません。 |
peer.country |
target.location.country_or_region |
未加工ログの peer.country がマッピングされます。 |
peer.hostGroupNames |
about.group.group_display_name |
未加工ログの peer.hostGroupNames 配列の各要素には peer: が付加され、個別の about オブジェクトとしてマッピングされます。 |
peer.ipAddress |
target.ip |
未加工ログの peer.ipAddress がマッピングされます。 |
peerBytes |
network.received_bytes |
未加工ログの peerBytes は符号なし整数に変換され、マッピングされます。 |
peerPackets |
マッピングされません | このフィールドは最終的な UDM では使用されません。 |
Protocol |
マッピングされません | このフィールドは network.ip_protocol を特定するために解析されますが、直接マッピングされません。 |
ProtocolIdentifier |
マッピングされません | このフィールドは network.ip_protocol を導出するために使用されますが、直接マッピングされません。 |
reportName |
metadata.product_event_type |
未加工ログの reportName がマッピングされます。 |
ServerBytes |
network.received_bytes |
未加工ログの ServerBytes は符号なし整数に変換され、マッピングされます。 |
ServerIP |
target.ip |
未加工ログの ServerIP がマッピングされます。 |
ServerPort |
target.port |
未加工ログの ServerPort は整数に変換され、マッピングされます。 |
Service |
マッピングされません | このフィールドは最終的な UDM では使用されません。 |
sid |
target.user.windows_sid |
未加工ログの sid がマッピングされます。 |
SourceModuleName |
target.resource.name |
未加工ログの SourceModuleName がマッピングされます。 |
SourceModuleType |
observer.application |
未加工ログの SourceModuleType がマッピングされます。 |
SourcePort |
principal.port |
未加工ログの SourcePort は整数に変換され、マッピングされます。 |
sourceIPv4Address |
principal.ip |
未加工ログの sourceIPv4Address がマッピングされます。 |
SPayload |
マッピングされません | このフィールドは最終的な UDM では使用されません。 |
src_ip |
principal.ip |
未加工ログの src_ip がマッピングされます。 |
StartTime |
マッピングされません | このフィールドは、イベント タイムスタンプとして解析される場合もありますが、UDM に直接マッピングされることはありません。 |
time |
マッピングされません | このフィールドは、イベント タイムスタンプとして解析される場合もありますが、UDM に直接マッピングされることはありません。 |
timestamp |
マッピングされません | このフィールドはイベントのタイムスタンプ用に解析されますが、UDM に直接マッピングされません。 |
UserName |
principal.user.user_display_name |
未加工ログの UserName がマッピングされます。 |
Version |
metadata.product_version |
未加工ログの Version は文字列に変換され、マッピングされます。 |
なし | metadata.event_timestamp |
イベントのタイムスタンプは、ログ形式に応じてさまざまなフィールド(LastTime 、time 、timestamp 、StartTime )から取得されます。他のタイムスタンプがない場合は、create_time フィールドから取得されます。 |
なし | metadata.log_type |
常に CISCO_STEALTHWATCH に設定。 |
なし | metadata.vendor_name |
常に Cisco に設定。 |
なし | metadata.event_type |
ログの内容に基づいてパーサー ロジックによって決定されます。NETWORK_CONNECTION 、USER_STATS 、USER_UNCATEGORIZED 、FILE_OPEN 、FILE_DELETION 、FILE_UNCATEGORIZED のいずれかです。 |
なし | network.ip_protocol |
Protocol フィールドまたは ProtocolIdentifier フィールドに基づいてパーサー ロジックによって決定されます。TCP 、UDP 、または ICMP のいずれかです。 |
action |
security_result.action_details |
未加工ログの action の値がマッピングされます。 |
action |
security_result.action |
action フィールドから取得されます。action が SUCCESS の場合、このフィールドは ALLOW に設定されます。それ以外の場合は、BLOCK に設定されます。 |
category |
security_result.category_details |
未加工ログの category の値がマッピングされます。 |
description |
security_result.description |
未加工ログに description と file_type の両方が存在する場合、それらは連結されてマッピングされます。 |
desc |
metadata.description |
未加工ログの desc の値(二重引用符が削除されたもの)がマッピングされます。 |
failuer_reason |
security_result.summary |
未加工ログに failuer_reason と file_type の両方が存在する場合、それらは連結されてマッピングされます。 |
file_path |
target.file.full_path |
未加工ログの file_path がマッピングされます。 |
file_type |
target.file.mime_type |
未加工ログの file_type がマッピングされます。 |
hostname |
principal.hostname |
未加工ログの hostname がマッピングされます。 |
ip |
principal.ip |
未加工ログの ip がマッピングされます。 |
ipf |
intermediary.ip |
未加工ログの ipf がマッピングされます。 |
ipt |
target.ip |
未加工ログの ipt がマッピングされます。 |
process_id |
target.process.pid |
未加工ログの process_id がマッピングされます。 |
protocol |
network.application_protocol |
未加工ログの protocol がマッピングされます。 |
security_res.severity |
security_result.severity |
severity が Minor の場合、このフィールドは INFORMATIONAL に設定されます。severity が Major の場合、ERROR に設定されます。 |
session_id |
network.session_id |
未加工ログの session_id がマッピングされます。 |
severity |
マッピングされません | このフィールドは security_result.severity を導出するために使用されますが、直接マッピングされません。 |
Source_HG |
principal.location.country_or_region |
未加工ログの Source_HG がマッピングされます。 |
Source_HostSnapshot |
principal.url |
未加工ログの Source_HostSnapshot がマッピングされます。 |
Target_HostSnapshot |
target.url |
未加工ログの Target_HostSnapshot がマッピングされます。 |
user_name |
principal.user.userid |
未加工ログの user_name がマッピングされます。 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。