收集 F5 AFM 記錄
支援的國家/地區:
Google SecOps
SIEM
本文說明如何使用 Bindplane,將 F5 Advanced Firewall Management 記錄擷取至 Google Security Operations。剖析器會將 SYSLOG 和 CSV 或 CSV 格式的記錄檔轉換為統一資料模型 (UDM)。系統會先嘗試使用 SYSLOG 格式專屬的 grok 模式剖析記錄訊息,如果失敗,則會將其視為 CSV 檔案處理,並擷取欄位對應至 UDM 結構。
事前準備
請確認您已完成下列事前準備事項:
- Google SecOps 執行個體
- Windows 2016 以上版本,或搭載
systemd
的 Linux 主機 - 如果透過 Proxy 執行,防火牆通訊埠已開啟
- F5 BIG-IP 和 F5 Advanced Firewall Management 的特殊存取權
取得 Google SecOps 擷取驗證檔案
- 登入 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
Linux 安裝
- 開啟具有根層級或 sudo 權限的終端機。
執行下列指令:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
其他安裝資源
如需其他安裝選項,請參閱安裝指南。
設定 Bindplane 代理程式,擷取系統記錄檔並傳送至 Google SecOps
- 存取設定檔:
- 找出
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:5145" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds_file_path: '/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: 'F5_AFM' 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 代理程式,以套用變更
如要在 Linux 中重新啟動 Bindplane 代理程式,請執行下列指令:
sudo systemctl restart bindplane-agent
如要在 Windows 中重新啟動 Bindplane 代理程式,可以使用「服務」控制台,或輸入下列指令:
net stop BindPlaneAgent && net start BindPlaneAgent
啟用 F5 BIG-IP Advanced Firewall Manager
- 登入 BIG-IP 裝置管理控制台。
- 依序前往「系統」>「授權」。
- 確認「進階防火牆管理員」已授權並啟用。
- 如要啟用進階防火牆管理工具,請依序前往「系統」>「資源」>「佈建」。
- 選取「Provisioning」(佈建) 欄中的核取方塊,然後從清單中選取「Nominal」(名義)。
- 按一下「提交」。
在 F5 AFM 中設定記錄集區
- 依序前往「Local Traffic」> Pools。
- 點選「建立」。
- 提供下列設定詳細資料:
- 名稱:輸入記錄集區的名稱 (例如 logging_pool)。
- 健康狀態監控器:在「Available」(可用) 清單中選取「TCP」,然後按一下「<<」。
- 在「Resource」(資源) 分頁中,從「Node Name」(節點名稱) 清單選取先前建立的「Logging Pool」(記錄集區)。
- 在「地址」欄位中,輸入 Bindplane 代理程式 IP 位址。
- 在「Service Port」(服務通訊埠) 欄位中,輸入
5145
或您在 Bindplane 代理程式中定義的其他通訊埠。 - 按一下「新增」。
- 按一下「完成」。
在 F5 AFM 中設定格式化記錄目的地
- 依序前往「系統」>「記錄」>「設定」>「記錄目的地」。
- 點選「建立」。
- 提供下列設定詳細資料:
- 名稱:輸入記錄格式目的地的名稱 (例如
Logging_Format_Destination
)。 - 說明:輸入說明。
- 類型:選取「遠端系統記錄檔」。
- 系統記錄檔格式:選取「系統記錄檔」。
- 高速記錄目的地:選取高速記錄目的地 (例如
Logging_HSL_Destination
)。
- 名稱:輸入記錄格式目的地的名稱 (例如
- 按一下「完成」。
在 F5 AFM 中設定記錄發布者
- 依序前往「系統」>「記錄」>「設定」>「記錄發布者」。
- 點選「建立」。
- 提供下列設定詳細資料:
- 名稱:輸入發布者的名稱 (例如
Log_Publisher
)。 - 說明:輸入說明。
- 目的地:選取您在「在 F5 AFM 中設定記錄集區」步驟中建立的記錄目的地名稱,然後按一下「<<」,將項目新增至「已選取」清單。
- 名稱:輸入發布者的名稱 (例如
在 F5 AFM 中設定記錄設定檔
- 依序前往「安全性」>「事件記錄」>「記錄設定檔」。
- 點選「建立」。
- 提供下列設定詳細資料:
- 名稱:輸入記錄設定檔的名稱 (例如「Logging_Profile」)。
- 網路防火牆:勾選「已啟用」核取方塊。
- 「發布者」:選取您先前設定的「記錄發布者」 (例如
Log_Publisher
)。 - 記錄規則相符項目:選取「接受」、「捨棄」和「拒絕」核取方塊。
- 記錄 IP 錯誤:選取「已啟用」核取方塊。
- 記錄 TCP 錯誤:勾選「已啟用」核取方塊。
- 記錄 TCP 事件:勾選「已啟用」核取方塊。
- 儲存格式:選取「欄位清單」。
- 分隔符號:輸入
,
(逗號) 做為事件的分隔符號。 - 儲存空間選項:在「可用項目」清單中選取所有選項,然後按一下「<<」。
- 在「IP Intelligence」分頁中,選取您設定的「記錄檔發布者」 (例如
Log_Publisher
)。
- 按一下「完成」。
在 F5 AFM 中設定虛擬伺服器設定檔關聯
- 依序前往「Local Traffic」>「Virtual Servers」。
- 選取要修改的虛擬伺服器。
- 依序前往「安全性」分頁 >「政策」。
- 在「記錄設定檔」清單中選取「已啟用」。
- 在「Profile」(設定檔) 欄位中,選取「Logging_Profile」,然後按一下「<<」。
- 按一下「更新」。
UDM 對應表
記錄欄位 | UDM 對應 | 邏輯 |
---|---|---|
acl_policy_name | security_result.detection_fields.acl_policy_name | 如果記錄格式為 SYSLOG,則為 column22 的值,否則為 column13 的值 |
acl_policy_type | security_result.detection_fields.acl_policy_type | 如果記錄格式為 SYSLOG,則為 column21 的值,否則為 column18 的值 |
acl_rule_name | security_result.rule_name | 如果記錄格式為 SYSLOG,則為 column23 的值,否則為 column11 的值 |
acl_rule_uuid | security_result.rule_id | grok 模式中的 acl_rule_uuid 欄位值 |
動作 | security_result.action | 如果 column25 的值為 Drop 、Reject 或 Block ,則為 BLOCK;如果 column25 的值為 Accept 、Accept decisively 、Established 或 Allow ,則為 ALLOW |
attackID | security_result.detection_fields.attackID | 如果記錄格式為 CSV 且沒有 src_ip,則為 column12 的值 |
bigip_hostname | intermediary.hostname | 如果記錄格式為 SYSLOG,則為 column2 的值,否則為 column3 的值 |
bigip_ip | intermediary.ip | 如果記錄格式為 SYSLOG,則為 column2 的值,否則為 column1 的值 |
context_name | additional.fields.context_name.string_value | 如果記錄格式為 SYSLOG,則為 column4 的值;如果存在 src_ip,則為 column10 的值;否則為 column5 的值 |
context_type | additional.fields.context_type.string_value | 如果記錄格式為 SYSLOG,則為 column3 的值;如果存在 src_ip,則為 column4 的值;否則為 column4 的值 |
dest_fqdn | additional.fields.dest_fqdn.string_value | 如果記錄格式為 SYSLOG,則為 column7 的值,否則為 column13 的值 |
dest_geo | additional.fields.dest_geo.string_value | 第 14 欄的值 |
dest_ip | target.asset.ip、target.ip | 如果記錄格式為 SYSLOG,則為 column8 的值;如果存在 src_ip,則為 column6 的值;否則為 column6 的值 |
dest_port | target.port | 如果記錄格式為 SYSLOG,則為 column10 的值;如果存在 src_ip,則為 column8 的值;否則為 column8 的值 |
drop_reason | security_result.summary | 如果記錄格式為 SYSLOG,則為 column26 的值,否則為 column19 的值 |
eventId | additional.fields.eventId.string_value | 在 grok 模式中擷取的值 |
flow_id | additional.fields.flow_id.string_value | 如果記錄格式為 SYSLOG,則為 column29 的值,否則為 column17 的值 |
loglevel | security_result.severity | 如果 grok 模式中的 loglevel 欄位值為 warning 、debug 或 notice ,則為「中」,否則如果值為 info 或 informational ,則為「資訊」,否則如果值為 err 或 error ,則為「高」,否則如果值為 alert 、crit 或 emer ,則為「重大」 |
packetsReceived | network.received_packets | 如果記錄格式為 CSV 且沒有 src_ip,則為 column15 的值 |
反向擴散程序 | target.application | grok 模式中的程序欄位值 |
protocol_number_src | network.ip_protocol | 如果記錄檔格式為 SYSLOG,則為 column12 的值;否則為從 ip_protocol_out 變數擷取的值 |
route_domain | additional.fields.route_domain.string_value | 如果記錄格式為 SYSLOG,則為第 13 欄的值,否則為第 9 欄的值 |
source_fqdn | additional.fields.source_fqdn.string_value | 如果記錄格式為 SYSLOG,則為 column5 的值,否則為 column7 的值 |
src_geo | additional.fields.src_geo.string_value | 第 8 欄的值 |
src_ip | principal.asset.ip、principal.ip | 如果記錄格式為 SYSLOG,則為 column6 的值;如果記錄格式為 CSV 且沒有 src_ip,則為 column9 的值;否則為 column5 的值 |
src_port | principal.port | 如果記錄格式為 SYSLOG,則為 column9 的值;如果記錄格式為 CSV 且沒有 src_ip,則為 column7 的值;否則為 column7 的值 |
ts | metadata.event_timestamp | grok 模式中 ts 欄位的值 |
vlan | additional.fields.vlan.string_value | 如果記錄格式為 SYSLOG,則為 column11 的值,否則為 column21 的值 |
metadata.event_type | 如果 src_ip 和 dest_ip 都存在,則為 NETWORK_CONNECTION;如果只有 src_ip 存在,則為 STATUS_UPDATE;否則為 GENERIC_EVENT | |
metadata.log_type | F5_AFM | |
metadata.product_name | 進階防火牆管理 | |
metadata.vendor_name | F5 |
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。