Versa Networks Secure Access Service Edge(SASE)のログを収集する
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
このドキュメントでは、Versa Networks Secure Access Service Edge(SASE)のログを収集する方法について説明します。パーサーは、最初の grok フィルタの後に Key-Value ペアを抽出します。次に、これらの値を統合データモデル(UDM)にマッピングし、ファイアウォール イベント、アプリケーション ログ、アラームログなどのさまざまなログ形式を処理し、IP プロトコルやリスクスコアなどの特定のフィールドの変換と拡充を行います。
始める前に
- Google Security Operations インスタンスがあることを確認します。
- Windows 2016 以降、または
systemd
を使用する Linux ホストを使用していることを確認します。 - プロキシの背後で実行している場合は、ファイアウォールのポートが開いていることを確認します。
- Versa SASE への特権アクセス権があることを確認します。
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 Agent を構成する
構成ファイルにアクセスします。
config.yaml
ファイルを見つけます。通常、Linux では/etc/bindplane-agent/
ディレクトリ、Windows ではインストール ディレクトリにあります。- テキスト エディタ(
nano
、vi
、メモ帳など)を使用してファイルを開きます。
config.yaml
ファイルを次のように編集します。receivers: tcplog: # Replace the port and IP address as required listen_address: "0.0.0.0:54525" 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: SYSLOG namespace: versa_networks_sase raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog exporters: - chronicle/chronicle_w_labels
自社のインフラストラクチャでの必要性に応じて、ポートと IP アドレスを置き換えます。
<customer_id>
は、実際のお客様 ID に置き換えます。/path/to/ingestion-authentication-file.json
の値を、Google SecOps の取り込み認証ファイルを取得するで認証ファイルを保存したパスに更新します。
Bindplane Agent を再起動して変更を適用する
Linux で Bindplane Agent を再起動するには、次のコマンドを実行します。
sudo systemctl restart bindplane-agent
Windows で Bindplane Agent を再起動するには、Services コンソールを使用するか、次のコマンドを入力します。
net stop BindPlaneAgent && net start BindPlaneAgent
Versa Networks SASE を構成する
管理者は、サードパーティ システムにログを転送するように、各 Versa Analytics ノードでリモート コレクタを構成する必要があります。
Versa アナリティクス ノードを構成する手順は次のとおりです。
- ログ転送を有効にする
- セッション ID のロギングを有効にする
ログ転送を有効にする
- Versa アナリティクス サーバーにログインします。
cli
コマンドを実行して CLI に移動します。configure
コマンドを実行して構成モードに切り替え、load merge terminal
を入力します。次のコマンドをコピーして貼り付け、ログ転送を設定します。
<collector_ip>
と<collector_port>
は、Syslog コレクタ(Bindplane)の IP アドレスとポートに置き換えます。
set system analytics log-collector-exporter destination-address <collector_ip> set system analytics log-collector-exporter destination-port <collector_port> set system analytics log-collector-exporter transport tcp set system analytics log-collector-exporter log-types firewall-log set system analytics log-collector-exporter log-types threat-log commit
構成を保存します。
save
セッション ID のロギングを有効にする
IP 関連情報をロギングするには、セッション ID のロギングを有効にします。
- Versa Director にログインします。
- [Director View] に切り替えます。
- [構成] > [デバイス] > [テナント] > [デバイス] に移動して、アプライアンス ビューにアクセスします。
- [Configuration] > [Others] > [System] > [Configuration] > [Configuration] を選択します。
- [パラメータ] ペインで、[編集] をクリックします。
- [パラメータを編集] ウィンドウで、[LEF] を選択します。
[ファイアウォール] セクションで、[セッション ID のロギングを含める] チェックボックスをオンにします。
[OK] をクリックします。
UDM マッピング テーブル
ログフィールド | UDM マッピング | ロジック |
---|---|---|
accCkt |
additional.fields[].key : "accCkt"additional.fields[].value.string_value : accCkt |
accCkt フィールドから直接取得された値。 |
accCktId |
additional.fields[].key : "accCktId"additional.fields[].value.string_value : accCktId |
accCktId フィールドから直接取得された値。 |
accCktName |
additional.fields[].key : "accCktName"additional.fields[].value.string_value : accCktName |
accCktName フィールドから直接取得された値。 |
accessType |
additional.fields[].key : "accessType"additional.fields[].value.string_value : accessType |
accessType フィールドから直接取得された値。 |
action |
security_result.action : action |
action 、type 、idpAction 、avAction 、urlAction が「許可」の場合は ALLOW 。action 、type 、idpAction 、avAction 、urlAction が「reject」、「drop」、「block」、「deny」の場合は BLOCK 。idpAction が UNKNOWN_ACTION 以外の場合。 |
alarmCause |
security_result.detection_fields[].key : "alarmCause"security_result.detection_fields[].value : alarmCause |
alarmCause フィールドから直接取得された値。 |
alarmClass |
security_result.detection_fields[].key : "alarmClass"security_result.detection_fields[].value : alarmClass |
alarmClass フィールドから直接取得された値。 |
alarmClearable |
security_result.detection_fields[].key : "alarmClearable"security_result.detection_fields[].value : alarmClearable |
alarmClearable フィールドから直接取得された値。 |
alarmEventType |
metadata.product_event_type : alarmEventType |
alarmEventType フィールドから直接取得された値。 |
alarmKey |
security_result.detection_fields[].key : "alarmKey"security_result.detection_fields[].value : alarmKey |
alarmKey フィールドから直接取得された値。 |
alarmKind |
security_result.detection_fields[].key : "alarmKind"security_result.detection_fields[].value : alarmKind |
alarmKind フィールドから直接取得された値。 |
alarmOwner |
security_result.detection_fields[].key : "alarmOwner"security_result.detection_fields[].value : alarmOwner |
alarmOwner フィールドから直接取得された値。 |
alarmSeqNo |
security_result.detection_fields[].key : "alarmSeqNo"security_result.detection_fields[].value : alarmSeqNo |
alarmSeqNo フィールドから直接取得された値。 |
alarmSeverity |
security_result.severity_details : alarmSeverity |
alarmSeverity フィールドから直接取得された値。 |
alarmText |
security_result.summary : alarmText |
alarmText フィールドから直接取得された値(二重引用符を削除)。 |
alarmType |
security_result.description : alarmType |
alarmType フィールドから直接取得された値。 |
appFamily |
metadata.product_event_type : appFamily security_result.detection_fields[].key : "appFamily"security_result.detection_fields[].value : appFamily |
appFamily フィールドから直接取得された値。 |
appId |
security_result.detection_fields[].key : 「アプリケーション ID」security_result.detection_fields[].value : appId |
appId フィールドから直接取得された値。 |
appIdStr |
security_result.detection_fields[].key : "appIdStr"security_result.detection_fields[].value : appIdStr |
appIdStr フィールドから直接取得された値。 |
applianceName |
principal.hostname : applianceName |
applianceName 、siteName 、site フィールドから直接取得された値。 |
appProductivity |
security_result.detection_fields[].key : "appProductivity"security_result.detection_fields[].value : appProductivity |
appProductivity フィールドから直接取得された値。 |
appRisk |
security_result.severity_details : appRisk |
appRisk フィールドから直接取得された値。 |
appSubFamily |
security_result.detection_fields[].key : "appSubFamily"security_result.detection_fields[].value : appSubFamily |
appSubFamily フィールドから直接取得された値。 |
avAccuracy |
additional.fields[].key : "avAccuracy"additional.fields[].value.string_value : avAccuracy |
avAccuracy フィールドから直接取得された値。 |
avAction |
security_result.action : avAction |
ロジックについては、action をご覧ください。 |
avMalwareName |
security_result.threat_name : avMalwareName |
avMalwareName フィールドから直接取得された値。 |
avMalwareType |
security_result.category_details : avMalwareType |
avMalwareType フィールドから直接取得された値。 |
classMsg |
security_result.description : classMsg |
classMsg フィールドから直接取得された値(二重引用符を削除)。 |
clientIPv4Address |
target.ip : clientIPv4Address |
clientIPv4Address フィールドから直接取得された値。 |
destIp |
target.ip : destIp destinationIPv4Address : destIp |
destIp フィールドから直接取得された値。 |
destinationIPv4Address |
target.ip : destinationIPv4Address |
destinationIPv4Address から直接取得された値、または networkPrefix フィールドから派生した値。 |
destinationIPv6Address |
target.ip : destinationIPv6Address |
destinationIPv6Address フィールドから直接取得された値。 |
destinationPort |
target.port : destinationPort |
destinationPort フィールドから直接取得され、整数に変換された値。 |
destinationTransportPort |
target.port : destinationTransportPort |
destinationTransportPort フィールドから直接取得され、整数に変換された値。 |
deviceKey |
about.resource.attribute.labels[].key : "deviceKey"about.resource.attribute.labels[].value : deviceKey |
「不明」でない場合、deviceKey フィールドから直接取得される値。 |
deviceName |
about.resource.attribute.labels[].key : "deviceName"about.resource.attribute.labels[].value : deviceName |
「不明」でない場合、deviceName フィールドから直接取得された値。 |
duration |
network.session_duration.seconds : duration |
duration フィールドから直接取得され、整数に変換された値。 |
egressInterfaceName |
additional.fields[].key : "egressInterfaceName"additional.fields[].value.string_value : egressInterfaceName |
egressInterfaceName フィールドから直接取得された値。 |
event.type |
metadata.event_type : event.type |
applianceName (または sourceIPv4Address 、user 、sourceIPv6Address )と destinationIPv4Address (または remoteSite 、destinationIPv6Address 、clientIPv4Address 、hostname )の両方が存在する場合は、NETWORK_CONNECTION です。そうでない場合は STATUS_UPDATE 。applianceName が空の場合、GENERIC_EVENT です。 |
eventType |
principal.resource.attribute.labels[].key : "eventType"principal.resource.attribute.labels[].value : eventType |
eventType フィールドから直接取得された値。 |
family |
security_result.detection_fields[].key : "family"security_result.detection_fields[].value : family |
family フィールドから直接取得された値。 |
fc |
security_result.detection_fields[].key : "ForwardingClass"security_result.detection_fields[].value : fc |
fc フィールドから直接取得された値。 |
fileTransDir |
additional.fields[].key : "fileTransDir"additional.fields[].value.string_value : fileTransDir |
fileTransDir フィールドから直接取得された値。 |
filename |
target.file.names : filename |
filename フィールドから直接取得された値。 |
flowCookie |
metadata.collected_timestamp : flowCookie |
flowCookie フィールドから直接取得され、UNIX 形式を使用してタイムスタンプに変換された値。 |
flowId |
principal.resource.product_object_id : flowId |
flowId フィールドから直接取得された値。 |
forwardForwardingClass |
security_result.detection_fields[].key : "forwardForwardingClass"security_result.detection_fields[].value : forwardForwardingClass |
forwardForwardingClass フィールドから直接取得された値。 |
fromCountry |
principal.location.country_or_region : fromCountry target.location.country_or_region : fromCountry |
fromCountry フィールドから直接取得された値。 |
fromUser |
principal.user.userid : fromUser |
空でないか「unknown」または「Unknown」でない場合、fromUser フィールドから直接取得される値。 |
fromZone |
additional.fields[].key : "fromZone"additional.fields[].value.string_value : fromZone |
fromZone フィールドから直接取得された値。 |
generateTime |
metadata.collected_timestamp : generateTime |
generateTime フィールドから直接取得された値で、UNIX 形式を使用してタイムスタンプに変換されます。 |
hostname |
target.hostname : hostname |
hostname フィールドから直接取得された値。 |
httpUrl |
target.url : httpUrl |
httpUrl フィールドから直接取得された値。 |
icmpTypeIPv4 |
additional.fields[].key : "icmpTypeIPv4"additional.fields[].value.string_value : icmpTypeIPv4 |
icmpTypeIPv4 フィールドから直接取得された値。 |
idpAction |
security_result.action : idpAction |
ロジックについては、action をご覧ください。 |
ingressInterfaceName |
additional.fields[].key : "ingressInterfaceName"additional.fields[].value.string_value : ingressInterfaceName |
ingressInterfaceName フィールドから直接取得された値。 |
ipsApplication |
additional.fields[].key : "ipsApplication"additional.fields[].value.string_value : ipsApplication |
ipsApplication フィールドから直接取得された値。 |
ipsDirection |
security_result.detection_fields[].key : "ipsDirection"security_result.detection_fields[].value : ipsDirection |
ipsDirection フィールドから直接取得された値。 |
ipsProfile |
security_result.detection_fields[].key : "ipsProfile"security_result.detection_fields[].value : ipsProfile |
ipsProfile フィールドから直接取得された値。 |
ipsProfileRule |
security_result.rule_name : ipsProfileRule |
ipsProfileRule フィールドから直接取得された値。 |
ipsProtocol |
network.ip_protocol : ipsProtocol |
ipsProtocol フィールドから直接取得された値。 |
log_type |
metadata.description : log_type metadata.log_type : log_type |
log_type フィールドから直接取得された値。 |
mstatsTimeBlock |
metadata.collected_timestamp : mstatsTimeBlock |
mstatsTimeBlock フィールドから直接取得され、UNIX 形式を使用してタイムスタンプに変換された値。 |
mstatsTotRecvdOctets |
network.received_bytes : mstatsTotRecvdOctets |
mstatsTotRecvdOctets フィールドから直接取得され、符号なし整数に変換された値。 |
mstatsTotSentOctets |
network.sent_bytes : mstatsTotSentOctets |
mstatsTotSentOctets フィールドから直接取得され、符号なし整数に変換された値。 |
mstatsTotSessCount |
additional.fields[].key : "mstatsTotSessCount"additional.fields[].value.string_value : mstatsTotSessCount |
mstatsTotSessCount フィールドから直接取得された値。 |
mstatsTotSessDuration |
network.session_duration.seconds : mstatsTotSessDuration |
mstatsTotSessDuration フィールドから直接取得され、整数に変換された値。 |
mstatsType |
security_result.category_details : mstatsType |
mstatsType フィールドから直接取得された値。 |
networkPrefix |
target.ip : networkPrefix target.port : networkPrefix |
networkPrefix フィールドから抽出された IP アドレス。networkPrefix フィールドから抽出されたポートを整数に変換したもの。 |
protocolIdentifier |
network.ip_protocol : protocolIdentifier |
protocolIdentifier フィールドから直接取得された値が整数に変換され、ルックアップを使用して IP プロトコル名にマッピングされます。 |
recvdOctets |
network.received_bytes : recvdOctets |
recvdOctets フィールドから直接取得され、符号なし整数に変換された値。 |
recvdPackets |
network.received_packets : recvdPackets |
recvdPackets フィールドから直接取得され、整数に変換された値。 |
remoteSite |
target.hostname : remoteSite |
remoteSite フィールドから直接取得された値。 |
reverseForwardingClass |
security_result.detection_fields[].key : "reverseForwardingClass"security_result.detection_fields[].value : reverseForwardingClass |
reverseForwardingClass フィールドから直接取得された値。 |
risk |
security_result.risk_score : risk |
risk フィールドから直接取得され、浮動小数点数に変換された値。 |
rule |
security_result.rule_name : rule |
rule フィールドから直接取得された値。 |
sentOctets |
network.sent_bytes : sentOctets |
sentOctets フィールドから直接取得され、符号なし整数に変換された値。 |
sentPackets |
network.sent_packets : sentPackets |
sentPackets フィールドから直接取得され、整数に変換された値。 |
serialNum |
security_result.detection_fields[].key : "serialNum"security_result.detection_fields[].value : serialNum |
serialNum フィールドから直接取得された値。 |
signatureId |
security_result.detection_fields[].key : "signatureID"security_result.detection_fields[].value : signatureId |
signatureId フィールドから直接取得された値。 |
signatureMsg |
security_result.detection_fields[].key : "signatureMsg"security_result.detection_fields[].value : signatureMsg |
signatureMsg フィールドから直接取得された値。 |
signaturePriority |
security_result.severity : signaturePriority |
signaturePriority が「low」の場合(大文字と小文字を区別しない)、LOW です。signaturePriority が「medium」の場合(大文字と小文字を区別しない)、MEDIUM です。signaturePriority が「high」の場合(大文字と小文字を区別しない)、HIGH 。 |
site |
principal.hostname : site applianceName : site |
site フィールドから直接取得された値。 |
siteId |
additional.fields[].key : "siteId"additional.fields[].value.string_value : siteId |
siteId フィールドから直接取得された値。 |
siteName |
principal.hostname : siteName applianceName : siteName |
siteName フィールドから直接取得された値。 |
sourceIPv4Address |
principal.ip : sourceIPv4Address |
sourceIPv4Address フィールドから直接取得された値。 |
sourceIPv6Address |
principal.ip : sourceIPv6Address |
sourceIPv6Address フィールドから直接取得された値。 |
sourcePort |
principal.port : sourcePort |
sourcePort フィールドから直接取得され、整数に変換された値。 |
sourceTransportPort |
principal.port : sourceTransportPort |
sourceTransportPort フィールドから直接取得され、整数に変換された値。 |
subFamily |
security_result.detection_fields[].key : "subFamily"security_result.detection_fields[].value : subFamily |
subFamily フィールドから直接取得された値。 |
tcpConnAborted |
additional.fields[].key : "tcpConnAborted"additional.fields[].value.string_value : tcpConnAborted |
空でないか「0」でない場合、tcpConnAborted フィールドから直接取得される値。 |
tcpConnRefused |
additional.fields[].key : "tcpConnRefused"additional.fields[].value.string_value : tcpConnRefused |
空でないか「0」でない場合、tcpConnRefused フィールドから直接取得される値。 |
tcpPktsFwd |
network.sent_packets : tcpPktsFwd |
tcpPktsFwd フィールドから直接取得され、整数に変換された値。 |
tcpPktsRev |
network.received_packets : tcpPktsRev |
tcpPktsRev フィールドから直接取得され、整数に変換された値。 |
tcpReXmitFwd |
additional.fields[].key : "tcpReXmitFwd"additional.fields[].value.string_value : tcpReXmitFwd |
空でないか「0」でない場合、tcpReXmitFwd フィールドから直接取得される値。 |
tcpReXmitRev |
additional.fields[].key : "tcpReXmitRev"additional.fields[].value.string_value : tcpReXmitRev |
空でないか「0」でない場合、tcpReXmitRev フィールドから直接取得される値。 |
tcpSAA |
additional.fields[].key : "tcpSAA"additional.fields[].value.string_value : tcpSAA |
空でないか「0」でない場合、tcpSAA フィールドから直接取得される値。 |
tcpSSA |
additional.fields[].key : "tcpSSA"additional.fields[].value.string_value : tcpSSA |
空でないか「0」でない場合、tcpSSA フィールドから直接取得される値。 |
tcpSessCnt |
additional.fields[].key : "tcpSessCnt"additional.fields[].value.string_value : tcpSessCnt |
tcpSessCnt フィールドから直接取得された値。 |
tcpSessDur |
network.session_duration.seconds : tcpSessDur |
tcpSessDur フィールドから直接取得され、整数に変換された値。 |
tcpSynAckReXmit |
additional.fields[].key : "tcpSynAckReXmit"additional.fields[].value.string_value : tcpSynAckReXmit |
空でないか「0」でない場合、tcpSynAckReXmit フィールドから直接取得される値。 |
tcpSynReXmit |
additional.fields[].key : "tcpSynReXmit"additional.fields[].value.string_value : tcpSynReXmit |
空でないか「0」でない場合、tcpSynReXmit フィールドから直接取得される値。 |
tcpTWHS |
additional.fields[].key : "tcpTWHS"additional.fields[].value.string_value : tcpTWHS |
空でないか「0」でない場合、tcpTWHS フィールドから直接取得される値。 |
tenantId |
principal.resource.attribute.labels[].key : "tenantId"principal.resource.attribute.labels[].value : tenantId |
tenantId フィールドから直接取得された値。 |
tenantName |
observer.hostname : tenantName |
tenantName フィールドから直接取得された値。 |
threatType |
security_result.detection_fields[].key : "threatType"security_result.detection_fields[].value : threatType |
threatType フィールドから直接取得された値。 |
toCountry |
target.location.country_or_region : toCountry |
toCountry フィールドから直接取得された値。 |
toZone |
additional.fields[].key : "toZone"additional.fields[].value.string_value : toZone |
toZone フィールドから直接取得された値。 |
traffType |
additional.fields[].key : "traffType"additional.fields[].value.string_value : traffType |
traffType フィールドから直接取得された値。 |
ts |
metadata.event_timestamp : ts |
ts フィールドから直接取得され、タイムスタンプに変換された値。 |
type |
security_result.action : type |
ロジックについては、action をご覧ください。 |
urlAction |
security_result.action : urlAction |
ロジックについては、action をご覧ください。 |
urlActionMessage |
security_result.summary : urlActionMessage |
urlActionMessage フィールドから直接取得された値。 |
urlCategory |
principal.resource.attribute.labels[].key : "urlCategory"principal.resource.attribute.labels[].value : urlCategory |
urlCategory フィールドから直接取得された値。 |
urlProfile |
additional.fields[].key : "urlProfile"additional.fields[].value.string_value : urlProfile |
urlProfile フィールドから直接取得された値。 |
urlReputation |
security_result.severity_details : urlReputation |
urlReputation フィールドから直接取得された値。 |
user |
principal.ip : user |
user フィールドから直接取得された値。 |
vsnId |
principal.resource.attribute.labels[].key : "vsnId"principal.resource.attribute.labels[].value : vsnId |
vsnId フィールドから直接取得された値。ハードコードされた値。ハードコードされた値。 |
変更点
2024-06-03
- 「idpAction」を「security_result.action」にマッピングしました。
- 「threatType」を「security_result.detection_fields」にマッピングしました。
- 「ipsDirection」を「security_result.detection_fields」にマッピングしました。
- 「ipsProfile」を「security_result.detection_fields」にマッピングしました。
- 「signaturePriority」を「security_result.severity」にマッピングしました。
- 「signatureMsg」を「security_result.detection_fields」にマッピングしました。
- 「signatureId」を「security_result.detection_fields」にマッピングしました。
- 「ipsApplication」を「security_result.detection_fields」にマッピングしました。
- 「classMsg」を「security_result.description」にマッピングしました。
- 「ipsProfileRule」を「security_result.rule_name」にマッピングしました。
- 「ipsProtocol」を「network.ip_protocol」にマッピングしました。
2023-07-03
- 「entitlementlog」、「monstatslog」、「tcpappmonlog」のサポートを追加しました。
2022-11-04
- 新しく作成されたパーサー。
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。