收集 Versa Networks Secure Access Service Edge (SASE) 記錄

支援的國家/地區:

本文說明如何收集 Versa Networks Secure Access Service Edge (SASE) 記錄。剖析器會在初始 grok 篩選器後擷取鍵/值組合。接著,這些值會對應至統一資料模型 (UDM),處理各種記錄格式 (例如防火牆事件、應用程式記錄和警報記錄),並針對特定欄位 (例如 IP 通訊協定和風險評分) 執行轉換和擴充作業。

事前準備

  • 確認您有 Google Security Operations 執行個體。
  • 確認您使用的是 Windows 2016 以上版本,或是搭載 systemd 的 Linux 主機。
  • 如果透過 Proxy 執行,請確認防火牆通訊埠已開啟。
  • 確認您具備 Versa SASE 的特殊權限。

取得 Google SecOps 擷取驗證檔案

  1. 登入 Google SecOps 控制台。
  2. 依序前往「SIEM 設定」>「收集代理程式」
  3. 下載擷取驗證檔案。將檔案安全地儲存在要安裝 Bindplane 代理程式的系統上。

取得 Google SecOps 客戶 ID

  1. 登入 Google SecOps 控制台。
  2. 依序前往「SIEM 設定」>「設定檔」
  3. 複製並儲存「機構詳細資料」專區中的客戶 ID

安裝 Bindplane 代理程式

Windows 安裝

  1. 以系統管理員身分開啟「命令提示字元」或「PowerShell」
  2. 執行下列指令:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Linux 安裝

  1. 開啟具有根層級或 sudo 權限的終端機。
  2. 執行下列指令:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

其他安裝資源

設定 Bindplane 代理程式,擷取系統記錄檔並傳送至 Google SecOps

  1. 存取設定檔:

    • 找出 config.yaml 檔案。通常位於 Linux 的 /etc/bindplane-agent/ 目錄,或 Windows 的安裝目錄。
    • 使用文字編輯器 (例如 nanovi 或記事本) 開啟檔案。
  2. 按照下列方式編輯 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
    
    
  3. 視基礎架構需求,替換通訊埠和 IP 位址。

  4. <customer_id> 替換為實際的客戶 ID。

  5. /path/to/ingestion-authentication-file.json 更新為「取得 Google SecOps 擷取驗證檔案」一節中儲存驗證檔案的路徑。

重新啟動 Bindplane 代理程式,以套用變更

  • 在 Linux 中,如要重新啟動 Bindplane 代理程式,請執行下列指令:

    sudo systemctl restart bindplane-agent
    
  • 在 Windows 中,如要重新啟動 Bindplane 代理程式,可以使用「服務」主控台,也可以輸入下列指令:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

設定 Versa Networks SASE

管理員必須在每個 Versa Analytics 節點上設定遠端收集器,才能將記錄轉送至第三方系統。

如要設定 Versa Analytics 節點,請按照下列步驟操作:

  • 啟用記錄轉送功能
  • 啟用工作階段 ID 記錄功能

啟用記錄轉送功能

  1. 登入 Versa Analytics 伺服器
  2. 執行 cli 指令,前往 CLI
  3. 執行 configure 指令,切換至「設定模式」,然後輸入 load merge terminal
  4. 複製並貼上下列指令,設定記錄轉送:

    • <collector_ip><collector_port> 替換為系統記錄收集器 (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
    
  5. 儲存設定:

    save
    

啟用工作階段 ID 記錄功能

如要記錄 IP 相關資訊,請啟用工作階段 ID 記錄功能。

  1. 登入 Versa Director
  2. 切換至「導演模式」
  3. 依序前往「Configuration」>「Devices」>「Tenant」>「Device」,存取「Appliance View」
  4. 依序選取「Configuration」>「Others」>「System」>「Configuration」>「Configuration」
  5. 在「參數」窗格中,按一下「編輯」
  6. 在「編輯參數」視窗中,選取「LEF」
  7. 在「Firewall」(防火牆) 專區中,選取「Include session ID logging」(包含工作階段 ID 記錄) 核取方塊。

  8. 按一下 [確定]

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.actionaction 如果 actiontypeidpActionavActionurlAction 為「允許」,則為 ALLOW。如果 actiontypeidpActionavActionurlAction 為「拒絕」、「捨棄」、「封鎖」或「拒絕」,則為 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[].valuealarmClass
直接從 alarmClass 欄位取得的值。
alarmClearable security_result.detection_fields[].key: "alarmClearable"
security_result.detection_fields[].value: alarmClearable
直接從 alarmClearable 欄位取得的值。
alarmEventType metadata.product_event_typealarmEventType 直接從 alarmEventType 欄位取得的值。
alarmKey security_result.detection_fields[].key:「alarmKey」
security_result.detection_fields[].valuealarmKey
直接從 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_detailsalarmSeverity 直接從 alarmSeverity 欄位取得的值。
alarmText security_result.summaryalarmText 直接從 alarmText 欄位取得的值,並移除雙引號。
alarmType security_result.descriptionalarmType 直接從 alarmType 欄位取得的值。
appFamily metadata.product_event_typeappFamily
security_result.detection_fields[].key:「appFamily」
security_result.detection_fields[].valueappFamily
直接從 appFamily 欄位取得的值。
appId security_result.detection_fields[].key: "Application ID"
security_result.detection_fields[].value: appId
直接從 appId 欄位取得的值。
appIdStr security_result.detection_fields[].key: "appIdStr"
security_result.detection_fields[].value: appIdStr
直接從 appIdStr 欄位取得的值。
applianceName principal.hostnameapplianceName 直接取自 applianceNamesiteNamesite 欄位的值。
appProductivity security_result.detection_fields[].key: "appProductivity"
security_result.detection_fields[].value: appProductivity
直接從 appProductivity 欄位取得的值。
appRisk security_result.severity_detailsappRisk 直接從 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.actionavAction 如需邏輯,請參閱 action
avMalwareName security_result.threat_nameavMalwareName 直接從 avMalwareName 欄位取得的值。
avMalwareType security_result.category_detailsavMalwareType 直接從 avMalwareType 欄位取得的值。
classMsg security_result.descriptionclassMsg 直接從 classMsg 欄位取得的值,並移除雙引號。
clientIPv4Address target.ipclientIPv4Address 直接從 clientIPv4Address 欄位取得的值。
destIp target.ipdestIp
destinationIPv4AddressdestIp
直接從 destIp 欄位取得的值。
destinationIPv4Address target.ipdestinationIPv4Address 直接取自 destinationIPv4Address 的值,或從 networkPrefix 欄位衍生而來。
destinationIPv6Address target.ipdestinationIPv6Address 直接從 destinationIPv6Address 欄位取得的值。
destinationPort target.portdestinationPort 直接從 destinationPort 欄位取得值,並轉換為整數。
destinationTransportPort target.portdestinationTransportPort 直接從 destinationTransportPort 欄位取得值,並轉換為整數。
deviceKey about.resource.attribute.labels[].key: "deviceKey"
about.resource.attribute.labels[].value: deviceKey
如果不是「Unknown」,則直接從 deviceKey 欄位取得值。
deviceName about.resource.attribute.labels[].key:「deviceName」
about.resource.attribute.labels[].valuedeviceName
如果不是「Unknown」,則直接從 deviceName 欄位取得值。
duration network.session_duration.secondsduration 直接從 duration 欄位取得值,並轉換為整數。
egressInterfaceName additional.fields[].key:「egressInterfaceName」
additional.fields[].value.string_valueegressInterfaceName
直接從 egressInterfaceName 欄位取得的值。
event.type metadata.event_typeevent.type 如果同時存在 applianceName (或 sourceIPv4AddressusersourceIPv6Address) 和 destinationIPv4Address (或 remoteSitedestinationIPv6AddressclientIPv4Addresshostname),則為 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[].valuefamily
直接從 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.namesfilename 直接從 filename 欄位取得的值。
flowCookie metadata.collected_timestampflowCookie 直接從 flowCookie 欄位取得值,並使用 UNIX 格式轉換為時間戳記。
flowId principal.resource.product_object_idflowId 直接從 flowId 欄位取得的值。
forwardForwardingClass security_result.detection_fields[].key: "forwardForwardingClass"
security_result.detection_fields[].value: forwardForwardingClass
直接從 forwardForwardingClass 欄位取得的值。
fromCountry principal.location.country_or_regionfromCountry
target.location.country_or_regionfromCountry
直接從 fromCountry 欄位取得的值。
fromUser principal.user.useridfromUser 如果「fromUser」欄位不為空、不是「unknown」或「Unknown」,則值會直接取自該欄位。
fromZone additional.fields[].key: "fromZone"
additional.fields[].value.string_value: fromZone
直接從 fromZone 欄位取得的值。
generateTime metadata.collected_timestampgenerateTime 直接從 generateTime 欄位取得值,並使用 UNIX 格式轉換為時間戳記。
hostname target.hostnamehostname 直接從 hostname 欄位取得的值。
httpUrl target.urlhttpUrl 直接從 httpUrl 欄位取得的值。
icmpTypeIPv4 additional.fields[].key: "icmpTypeIPv4"
additional.fields[].value.string_value: icmpTypeIPv4
直接從 icmpTypeIPv4 欄位取得的值。
idpAction security_result.actionidpAction 如需邏輯,請參閱 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_nameipsProfileRule 直接從 ipsProfileRule 欄位取得的值。
ipsProtocol network.ip_protocolipsProtocol 直接從 ipsProtocol 欄位取得的值。
log_type metadata.descriptionlog_type
metadata.log_typelog_type
直接從 log_type 欄位取得的值。
mstatsTimeBlock metadata.collected_timestampmstatsTimeBlock 直接從 mstatsTimeBlock 欄位取得值,並使用 UNIX 格式轉換為時間戳記。
mstatsTotRecvdOctets network.received_bytesmstatsTotRecvdOctets 直接從 mstatsTotRecvdOctets 欄位取得值,並轉換為無正負號整數。
mstatsTotSentOctets network.sent_bytesmstatsTotSentOctets 直接從 mstatsTotSentOctets 欄位取得值,並轉換為無正負號整數。
mstatsTotSessCount additional.fields[].key: "mstatsTotSessCount"
additional.fields[].value.string_value: mstatsTotSessCount
直接從 mstatsTotSessCount 欄位取得的值。
mstatsTotSessDuration network.session_duration.secondsmstatsTotSessDuration 直接從 mstatsTotSessDuration 欄位取得值,並轉換為整數。
mstatsType security_result.category_detailsmstatsType 直接從 mstatsType 欄位取得的值。
networkPrefix target.ipnetworkPrefix
target.portnetworkPrefix
networkPrefix 欄位擷取的 IP 位址。從 networkPrefix 欄位擷取並轉換為整數的連接埠。
protocolIdentifier network.ip_protocolprotocolIdentifier 直接從 protocolIdentifier 欄位取得值,轉換為整數,然後使用查閱功能對應至 IP 通訊協定名稱。
recvdOctets network.received_bytesrecvdOctets 直接從 recvdOctets 欄位取得值,並轉換為無正負號整數。
recvdPackets network.received_packetsrecvdPackets 直接從 recvdPackets 欄位取得值,並轉換為整數。
remoteSite target.hostnameremoteSite 直接從 remoteSite 欄位取得的值。
reverseForwardingClass security_result.detection_fields[].key: "reverseForwardingClass"
security_result.detection_fields[].value: reverseForwardingClass
直接從 reverseForwardingClass 欄位取得的值。
risk security_result.risk_scorerisk 直接從 risk 欄位取得值,並轉換為浮點數。
rule security_result.rule_namerule 直接從 rule 欄位取得的值。
sentOctets network.sent_bytessentOctets 直接從 sentOctets 欄位取得值,並轉換為無正負號整數。
sentPackets network.sent_packetssentPackets 直接從 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.severitysignaturePriority 如果 signaturePriority 為「low」(不區分大小寫),則為 LOW。如果 signaturePriority 為「medium」(不區分大小寫),則 MEDIUM。如果 signaturePriority 為「high」(不區分大小寫),則為 HIGH
site principal.hostnamesite
applianceNamesite
直接從 site 欄位取得的值。
siteId additional.fields[].key: "siteId"
additional.fields[].value.string_value: siteId
直接從 siteId 欄位取得的值。
siteName principal.hostnamesiteName
applianceNamesiteName
直接從 siteName 欄位取得的值。
sourceIPv4Address principal.ipsourceIPv4Address 直接從 sourceIPv4Address 欄位取得的值。
sourceIPv6Address principal.ipsourceIPv6Address 直接從 sourceIPv6Address 欄位取得的值。
sourcePort principal.portsourcePort 直接從 sourcePort 欄位取得值,並轉換為整數。
sourceTransportPort principal.portsourceTransportPort 直接從 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
如果 tcpConnAborted 欄位不為空白或「0」,則直接從該欄位取得值。
tcpConnRefused additional.fields[].key: "tcpConnRefused"
additional.fields[].value.string_value: tcpConnRefused
如果 tcpConnRefused 欄位不為空白或「0」,則直接從該欄位取得值。
tcpPktsFwd network.sent_packetstcpPktsFwd 直接從 tcpPktsFwd 欄位取得值,並轉換為整數。
tcpPktsRev network.received_packetstcpPktsRev 直接從 tcpPktsRev 欄位取得值,並轉換為整數。
tcpReXmitFwd additional.fields[].key: "tcpReXmitFwd"
additional.fields[].value.string_value: tcpReXmitFwd
如果 tcpReXmitFwd 欄位不為空白或「0」,則直接從該欄位取得值。
tcpReXmitRev additional.fields[].key: "tcpReXmitRev"
additional.fields[].value.string_value: tcpReXmitRev
如果 tcpReXmitRev 欄位不為空白或「0」,則直接從該欄位取得值。
tcpSAA additional.fields[].key: "tcpSAA"
additional.fields[].value.string_value: tcpSAA
如果 tcpSAA 欄位不為空白或「0」,則直接從該欄位取得值。
tcpSSA additional.fields[].key: "tcpSSA"
additional.fields[].value.string_value: tcpSSA
如果 tcpSSA 欄位不為空白或「0」,則直接從該欄位取得值。
tcpSessCnt additional.fields[].key: "tcpSessCnt"
additional.fields[].value.string_value: tcpSessCnt
直接從 tcpSessCnt 欄位取得的值。
tcpSessDur network.session_duration.secondstcpSessDur 直接從 tcpSessDur 欄位取得值,並轉換為整數。
tcpSynAckReXmit additional.fields[].key: "tcpSynAckReXmit"
additional.fields[].value.string_value: tcpSynAckReXmit
如果 tcpSynAckReXmit 欄位不為空白或「0」,則直接從該欄位取得值。
tcpSynReXmit additional.fields[].key: "tcpSynReXmit"
additional.fields[].value.string_value: tcpSynReXmit
如果 tcpSynReXmit 欄位不為空白或「0」,則直接從該欄位取得值。
tcpTWHS additional.fields[].key: "tcpTWHS"
additional.fields[].value.string_value: tcpTWHS
如果 tcpTWHS 欄位不為空白或「0」,則直接從該欄位取得值。
tenantId principal.resource.attribute.labels[].key: "tenantId"
principal.resource.attribute.labels[].value: tenantId
直接從 tenantId 欄位取得的值。
tenantName observer.hostnametenantName 直接從 tenantName 欄位取得的值。
threatType security_result.detection_fields[].key: "threatType"
security_result.detection_fields[].value: threatType
直接從 threatType 欄位取得的值。
toCountry target.location.country_or_regiontoCountry 直接從 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_timestampts 直接從 ts 欄位取得值,並轉換為時間戳記。
type security_result.actiontype 如需邏輯,請參閱 action
urlAction security_result.actionurlAction 如需邏輯,請參閱 action
urlActionMessage security_result.summaryurlActionMessage 直接從 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_detailsurlReputation 直接從 urlReputation 欄位取得的值。
user principal.ipuser 直接從 user 欄位取得的值。
vsnId principal.resource.attribute.labels[].key: "vsnId"
principal.resource.attribute.labels[].value: vsnId
直接從 vsnId 欄位取得的值。硬式編碼值。硬式編碼值。

還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。