收集 Netgate pfSense 記錄
支援以下發布途徑:
Google secops
Siem
本文說明如何使用 Google 安全作業轉送器收集 Netgate pfSense 記錄。
詳情請參閱「將資料匯入 Google SecOps」。
擷取標籤可識別剖析器,將原始記錄資料正規化為結構化 UDM 格式。本文中的資訊適用於使用 PFSENSE
攝入標籤的剖析器。
設定 Netgate pfSense
- 使用管理員憑證登入 pfSense 介面。
- 在「Global log」設定中,執行下列操作:
- 依序選取「狀態」>「系統記錄」>「設定」。
- 在「Settings」分頁中,選取「General logging options」,然後執行下列操作:
- 在「記錄訊息格式」欄位中,選取「syslog (RFC 5424, with RFC 3339 microsecond-precision timestamps)」。
- 在「記錄防火牆預設封鎖」欄位中,勾選下列核取方塊:
- 根據規則集合中的預設封鎖規則比對的記錄封包
- 根據規則集中的預設通過規則比對的記錄封包
- 記錄遭到「Block bogon networks」規則封鎖的封包
- 記錄遭「封鎖私人網路」規則封鎖的封包
- 如要儲存新設定,請按一下「儲存」。
將防火牆記錄傳送至 Google SecOps
- 在「全域記錄」設定中,依序選取「狀態」>「系統記錄」>「設定」。
- 在「Settings」分頁中,選取「Remote logging options」,然後執行下列操作:
- 在「Enable remote logging」欄位中,選取「Send log messages to remote syslog server」核取方塊。
- 將「Source address」欄位中的預設值保留為「Any」。
- 如果「IP 通訊協定」欄位中的預設值是來源位址,您就不需要指定 IP 位址。否則請輸入 IP 位址。
- 在「Remote log servers」(遠端記錄伺服器) 中,指定 Google SecOps 轉寄站 IP 位址。
- 在「遠端 syslog 內容」中,勾選「防火牆事件」核取方塊。
- 如要儲存變更,請按一下「儲存」。
設定 Google SecOps 轉送器,以便擷取 Netgate pfSense 記錄
- 依序選取「SIEM 設定」>「轉送器」。
- 按一下「新增轉寄者」。
- 在「轉介器名稱」欄位中,輸入轉介器的專屬名稱。
- 依序點選「提交」和「確認」。系統會新增轉送器,並顯示「Add collector configuration」視窗。
- 在「收集器名稱」欄位中,輸入收集器的專屬名稱。
- 選取「記錄類型」,然後選取「pfSense」。
- 在「收集器類型」欄位中,選取「Syslog」。
- 設定下列必要輸入參數:
- Protocol:指定收集器用來監聽 syslog 資料的連線通訊協定。
- Address:指定收集器所在位置和收聽 syslog 資料的目標 IP 位址或主機名稱。
- Port:指定收集器所在位置,以及用於監聽 syslog 資料的目標通訊埠。
- 點選「提交」。
如要進一步瞭解 Google SecOps 轉送器,請參閱「透過 Google SecOps UI 管理轉送器設定」。
如果在建立轉送器時遇到問題,請與 Google SecOps 支援團隊聯絡。
欄位對應參考資料
這個 pfSense 防火牆剖析器會使用 grok 模式從 syslog 訊息中擷取欄位,處理各種記錄格式,包括 DHCP 和防火牆事件。接著,系統會將這些擷取的欄位對應至 UDM,並透過 IP 位址、MAC 位址、使用者名稱和網路詳細資料等背景資訊,豐富資料內容。
UDM 對應表
記錄欄位 | UDM 對應 | 邏輯 |
---|---|---|
調度應用程式資源 | principal.application |
系統會使用 grok 模式從記錄訊息中擷取值。對於 syslog 訊息,應用程式名稱通常會出現在主機名稱和時間戳記之後。 |
指令 | principal.process.command_line |
當記錄指出指令執行時,從說明欄位擷取。 |
說明 | metadata.description |
說明欄位會對應至 UDM 中繼資料說明,但 syslog-ng 應用程式記錄會對應至 metadata.description 。對於 DHCP 事件,說明會加上 dhcp_type 。 |
dhcp_type | metadata.product_event_type |
DHCP 訊息類型 (例如DHCPDISCOVER、DHCPOFFER) 已擷取並對應。 |
主機 | intermediary.hostname 或 intermediary.ip |
如果主機值是有效的 IP 位址,則會對應至 intermediary.ip 。否則會對應至 intermediary.hostname 。 |
主機 | principal.hostname 、principal.asset.hostname |
如未提供主要 IP,主機會視為主要主機名稱。 |
mac | principal.mac 、network.dhcp.chaddr |
系統會擷取與 DHCP 要求相關聯的 MAC 位址,並進行對應。 |
src_ip | principal.ip 、principal.asset.ip |
使用 grok 模式從特定記錄格式擷取。 |
src_mac | principal.mac |
使用 grok 模式從特定記錄格式擷取。 |
dst_mac | target.mac |
使用 grok 模式從特定記錄格式擷取。 |
時間戳記 | metadata.event_timestamp |
系統會從記錄訊息中擷取時間戳記,並轉換為 UDM 時間戳記格式。如果可用,系統會在轉換前將時區資訊 (tz) 附加至時間戳記。 |
timestamp_no_year | metadata.event_timestamp |
如果有未附帶年份的時間戳記,系統會在剖析過程中剖析該戳記,並在剖析過程中新增目前的年份。 |
使用者 | principal.user.userid |
系統會擷取與事件相關聯的使用者名稱,並進行對應。 |
第 1 欄 | security_result.rule_id |
如果說明為 CSV 格式,則會從第一個 CSV 欄對應。 |
column6 | security_result.rule_type |
如果說明為 CSV 格式,則會從第六個 CSV 欄對應。 |
column7 | security_result.action |
如果說明為 CSV 格式,則會從第七欄對應。已轉換為「BLOCK」或「ALLOW」。 |
column8 | network.direction |
如果說明為 CSV 格式,則會從第八個 CSV 欄對應。已轉換為「INBOUND」或「OUTBOUND」。 |
column13 | network.ip_protocol (如果是 UDP 或 ICMP) |
如果說明為 CSV 格式,且通訊協定為 UDP 或 ICMP,則會從第十三個 CSV 欄進行對應。針對 TCP/UDP 事件,這項屬性會用來建立具有「Id」鍵的額外欄位。 |
column16 | principal.ip 、principal.asset.ip (如果 IPv6 和第 9 欄為 6) |
如果說明為 CSV 格式,且第 9 欄為 6,則會從第 16 欄的 CSV 資料進行對應。針對 TCP/UDP 事件,如果第 9 欄為 4,則會用於通訊協定識別。 |
column17 | target.ip 、target.asset.ip (如果是 IPv6 且非 ip_failure) |
如果說明為 CSV 格式,則會從第 17 欄對應,第 9 欄為 6,且值為有效 IP。針對 TCP/UDP 事件,這項屬性用於識別通訊協定。 |
column18 | principal.port (如果是 UDP) |
如果說明為 CSV 格式且通訊協定為 UDP,則會從第十八個 CSV 欄對應。對於 TCP/UDP 事件,會對應至 network.received_bytes 。 |
column19 | target.port (如果是 UDP) |
如果說明為 CSV 格式,且通訊協定為 UDP,則會從第十九個 CSV 欄位對應。對於 DHCP 事件,則會對應至 network.dhcp.yiaddr 。對於其他事件,則會對應至 principal.ip 、principal.asset.ip 。 |
column20 | additional.fields (鍵:"data_length") (如果是 UDP) |
如果說明為 CSV 格式,且通訊協定為 UDP,則會從第 20 欄的 CSV 資料對應。對於其他事件,則會對應至 target.ip 、target.asset.ip 。 |
column21 | principal.port (如果是 TCP/UDP) |
如果說明為 CSV 格式,且通訊協定為 TCP 或 UDP,則會從 CSV 的第二十一欄對應。 |
column22 | target.port (如果是 TCP/UDP) |
如果說明為 CSV 格式,且通訊協定為 TCP 或 UDP,則會從 CSV 的第二十二欄進行對應。 |
column23 | additional.fields (鍵:"data_length") (如果是 TCP/UDP) |
如果說明為 CSV 格式,且通訊協定為 TCP 或 UDP,則會從第 23 欄的值對應而來。 |
column24 | additional.fields (鍵:"tcp_flags") (如果是 TCP) |
如果說明為 CSV 格式且通訊協定為 TCP,則會從第 24 欄的值對應。 |
column25 | additional.fields (鍵:"sequence_number") (如果是 TCP/UDP) |
如果說明為 CSV 格式,且通訊協定為 TCP 或 UDP,則會從第 25 欄的值對應而來。 |
column29 | additional.fields (鍵值:「tcp_options」) (如果是 TCP) |
如果說明為 CSV 格式且通訊協定為 TCP,則會從第 29 欄的 CSV 對應。 |
compression_algo | additional.fields (鍵值:「Compression Algorithm」) |
從說明欄位擷取,並新增為額外欄位。 |
遞減 | metadata.description |
從訊息欄位擷取,用於說明。 |
principal_ip | principal.ip 、principal.asset.ip |
從說明欄位擷取,代表主要 IP 位址。 |
principal_username | principal.user.userid |
從說明欄位擷取,代表主要使用者名稱。 |
狀態 | security_result.detection_fields (鍵:"status") |
從說明欄位擷取,並新增為安全性結果中的偵測欄位。 |
target_host | target.hostname 、target.asset.hostname |
從說明欄位擷取,代表目標主機名稱。 |
src_port | principal.port |
從說明欄位擷取,代表來源埠。根據各種記錄檔欄位和剖析器邏輯決定。可以是 NETWORK_CONNECTION、NETWORK_DHCP、STATUS_UPDATE 或 GENERIC_EVENT。已硬式編碼為「PFSENSE」。已硬式編碼為「PFSENSE」。已硬式編碼為「PFSENSE」。針對 DHCP 事件,將這個欄位設為「DHCP」。將 DHCPDISCOVER 和 DHCPREQUEST 設為「BOOTREQUEST」,將 DHCPOFFER 和 DHCPACK 設為「BOOTREPLY」。根據 dhcp_type 欄位將其設為「DISCOVER」、「REQUEST」、「OFFER」或「ACK」。 |
異動
2024-05-08
- 新增 Grok 模式,用於剖析「description」欄位。
- 將「principal_ip」對應至「principal.ip」和「principal.asset.ip」。
- 將「src_port」對應至「principal.port」。
- 將「compression_algo」對應至「additional.fields」。
- 將「status」對應至「security_result.detection_fields」。
- 將「principal_username」對應至「principal.user.userid」。
- 將「target_host」對應至「target.hostname」和「target.asset.hostname」。
2023-05-05
- 在對應「network.ip_protocol」之前,新增轉換為大寫的功能。
- 當「column13」中含有通訊協定時,系統會將「column18」對應至「principal.port」。
- 當「column13」中含有通訊協定時,系統會將「column19」對應至「target.port」。
- 當「column13」中出現通訊協定時,將「column20」對應至「additional.fields」做為「data-length」。
2023-02-20
- 新增 Grok 模式,支援新的篩選器記錄格式和 syslog-ng 格式。
2022-10-04
- 針對 event_types 為「NETWORK_CONNECTION」的記錄,將防火牆裝置名稱重新對應為 intermediary.hostname,而非 principal.hostname。
2022-09-05
- Enhancement-
- 針對 CSV 格式記錄檔,系統會對應下列欄位。
- 新增 grok 模式,用於擷取「IP」和「MAC」。
- 將「column19」(「source-address」) 對應至「network.dhcp.yiaddr」。
- 當「column7」等於「pass」時,將「security_result.action」對應至「ALLOW」。
- 如果「column9」等於「6」,代表「IPV6」,系統會將下列欄位對應如下:
- 將「column17」(「destination-address」) 對應至「target.ip」。
- 將「column16」(「source-address」) 對應至「principal.ip」。
- 當「column16」和「column17」不為空值時,會將「event_type」對應至「NETWORK_CONNECTION」。
- 將「column12」(即「hop_limit」) 對應至「additional.fields」。
- 將「column13」(「ip_protocol」) 對應至「network.ip_protocol」。
- 將自訂剖析器遷移至預設剖析器。
- 新增條件式檢查,將「event_type」設為「STATUS_UPDATE」
2022-06-30
- 已將「ttl」對應至「additional.fields」。
- 已將「Id」對應至「additional.fields」。
- 已將「Offset」對應至「additional.fields」。
- 已將「資料長度」對應至「additional.fields」。
- 已將「Length」對應至「additional.fields」。
- 已將「序號」對應至「additional.fields」。
2022-04-11
- 新建立的剖析器
還有其他問題嗎?向社群成員和 Google SecOps 專家尋求解答。