收集 VMware Avi Load Balancer WAF 記錄
本文說明如何使用 Bindplane 代理程式,將 VMware Avi Load Balancer WAF 記錄擷取至 Google Security Operations。
VMware Avi Load Balancer (前身為 Avi Networks) 是一種應用程式傳遞控制器,可為 WAF 事件、用戶端連線記錄和虛擬服務活動產生 Syslog 訊息。剖析器會從 Syslog 格式的記錄檔中擷取欄位,並對應至統合式資料模型 (UDM)。
事前準備
請確認您已完成下列事前準備事項:
- Google SecOps 執行個體
- Windows Server 2016 以上版本,或搭載
systemd的 Linux 主機 - Bindplane 代理程式與 AVI 控制器之間的網路連線
- 如果透過 Proxy 執行,請確保防火牆通訊埠已根據 Bindplane 代理程式需求開啟
- VMware AVI 負載平衡器的特殊存取權
取得 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等待安裝完成。
執行下列指令,確認安裝成功:
sc query observiq-otel-collector服務應顯示為RUNNING。
Linux 安裝
- 開啟具有根層級或 sudo 權限的終端機。
執行下列指令:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh等待安裝完成。
執行下列指令,確認安裝成功:
sudo systemctl status observiq-otel-collector服務應顯示為有效 (執行中)。
其他安裝資源
如需其他安裝選項和疑難排解資訊,請參閱 Bindplane 代理程式安裝指南。
設定 Bindplane 代理程式,擷取系統記錄檔並傳送至 Google SecOps
找出設定檔
Linux:
sudo nano /opt/observiq-otel-collector/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
編輯設定檔
將
config.yaml的所有內容替換為下列設定:receivers: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/vmware_avinetworks_iwaf: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: VMWARE_AVINETWORKS_IWAF raw_log_field: body service: pipelines: logs/vmware_avinetworks_iwaf_to_chronicle: receivers: - udplog exporters: - chronicle/vmware_avinetworks_iwaf
設定參數
替換下列預留位置:
接收器設定:
listen_address:要接聽的 IP 位址和通訊埠:0.0.0.0,監聽所有介面 (建議)- 通訊埠
514是標準的系統記錄通訊埠 (在 Linux 上需要根層級權限;非根層級權限請使用1514)
匯出工具設定:
creds_file_path:擷取驗證檔案的完整路徑:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
customer_id:從 Google SecOps 控制台複製的客戶 IDendpoint:區域端點網址:- 美國:
malachiteingestion-pa.googleapis.com - 歐洲:
europe-malachiteingestion-pa.googleapis.com - 亞洲:
asia-southeast1-malachiteingestion-pa.googleapis.com - 如需完整清單,請參閱「區域端點」
- 美國:
儲存設定檔
- 編輯完成後,請儲存檔案:
- Linux:依序按下
Ctrl+O、Enter和Ctrl+X - Windows:依序點選「檔案」>「儲存」
- Linux:依序按下
重新啟動 Bindplane 代理程式,以套用變更
如要在 Linux 中重新啟動 Bindplane 代理程式,請執行下列指令:
sudo systemctl restart observiq-otel-collector確認服務正在執行:
sudo systemctl status observiq-otel-collector檢查記錄中是否有錯誤:
sudo journalctl -u observiq-otel-collector -f
如要在 Windows 中重新啟動 Bindplane 代理程式,請選擇下列任一做法:
以管理員身分開啟命令提示字元或 PowerShell:
net stop observiq-otel-collector && net start observiq-otel-collector服務控制台:
- 按下
Win+R,輸入services.msc,然後按下 Enter 鍵。 - 找出 observIQ OpenTelemetry Collector。
- 按一下滑鼠右鍵,然後選取「重新啟動」。
確認服務正在執行:
sc query observiq-otel-collector檢查記錄中是否有錯誤:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
- 按下
設定 VMware AVI WAF 的外部記錄
- 登入 AVI 控制器網頁版 UI。
- 依序前往「範本」>「設定檔」>「數據分析」。
- 建立新的分析設定檔,或選取現有設定檔進行編輯。
- 在「編輯 Analytics 設定檔」畫面中,選取「用戶端記錄」分頁標籤。
- 捲動至「外部記錄」部分,然後選取「將記錄串流至外部伺服器」核取方塊。
- 請提供下列設定詳細資料:
- 記錄串流通訊協定:選取「UDP」。
- 預設通訊埠:輸入 514。
- 要串流的記錄類型:選取「所有記錄」。
- 按一下「伺服器」下方的「新增」按鈕。
- IP 位址:輸入 Bindplane 代理程式 IP 位址。
- 「Port」(通訊埠):輸入 Bindplane 代理程式通訊埠編號 (例如
514)。
- 按一下 [儲存]。
- 將設定套用至要串流記錄資料的虛擬服務。
UDM 對應表
| 記錄欄位 | UDM 對應 | 邏輯 |
|---|---|---|
server_name |
about.hostname |
直接對應 |
_field |
additional.fields |
已合併 |
additional_field_label |
additional.fields |
已合併 |
cacheable_label |
additional.fields |
已合併 |
compression_label |
additional.fields |
已合併 |
host_label |
additional.fields |
已合併 |
http_version_label |
additional.fields |
已合併 |
is_internal_label |
additional.fields |
已合併 |
key |
additional.fields |
對應:`"all_request_headers_pragma", "all_request_headers_accept", "all_request_headers_co... |
match_element_label |
additional.fields |
已合併 |
match_value_label |
additional.fields |
已合併 |
persistent_session_id_label |
additional.fields |
已合併 |
request_headers_label |
additional.fields |
已合併 |
request_id_label |
additional.fields |
已合併 |
response_content_type_label |
additional.fields |
已合併 |
response_headers_label |
additional.fields |
已合併 |
response_time_first_byte_label |
additional.fields |
已合併 |
response_time_last_byte_label |
additional.fields |
已合併 |
rule_log_msg_label |
additional.fields |
已合併 |
rule_log_phase_label |
additional.fields |
已合併 |
rule_log_rule_group_label |
additional.fields |
已合併 |
rule_log_rule_id_label |
additional.fields |
已合併 |
rule_log_rule_name_label |
additional.fields |
已合併 |
server_connection_reused_label |
additional.fields |
已合併 |
server_response_code_label |
additional.fields |
已合併 |
server_response_length_label |
additional.fields |
已合併 |
server_response_time_first_byte_label |
additional.fields |
已合併 |
server_response_time_last_byte_label |
additional.fields |
已合併 |
server_rtt_label |
additional.fields |
已合併 |
server_side_redirect_uri_label |
additional.fields |
已合併 |
server_ssl_session_id_label |
additional.fields |
已合併 |
servers_tried_label |
additional.fields |
已合併 |
ssl_cipher_label |
additional.fields |
已合併 |
ssl_session_id_label |
additional.fields |
已合併 |
ssl_version_label |
additional.fields |
已合併 |
tag_label |
additional.fields |
已合併 |
value_label |
additional.fields |
已合併 |
waf_log.latency_request_header_phase_label |
additional.fields |
已合併 |
waf_log_latency_request_body_phase_label |
additional.fields |
已合併 |
waf_log_latency_response_body_phase_label |
additional.fields |
已合併 |
waf_log_latency_response_header_phase_label |
additional.fields |
已合併 |
waf_log_rules_configured_label |
additional.fields |
已合併 |
waf_log_rules_executed_label |
additional.fields |
已合併 |
service_engine |
intermediary.hostname |
直接對應 |
intermediary_ip |
intermediary.ip |
已合併 |
server_src_port |
intermediary.port |
直接對應 |
report_timestamp |
metadata.event_timestamp |
已剖析為 ISO8601 |
timestamp |
metadata.event_timestamp |
已剖析為 ISO8601 |
has_principal |
metadata.event_type |
對應:true → NETWORK_HTTP、true → NETWORK_CONNECTION、true → STATUS_UPDATE |
log_id |
metadata.product_log_id |
直接對應 |
log_id_syslog |
metadata.product_log_id |
直接對應 |
http_method |
network.http.method |
直接對應 |
method |
network.http.method |
直接對應 |
http_user_agent |
network.http.parsed_user_agent |
直接對應 |
http_referer |
network.http.referral_url |
直接對應 |
referer |
network.http.referral_url |
直接對應 |
http_status |
network.http.response_code |
直接對應 |
response_code |
network.http.response_code |
直接對應 |
http_user_agent |
network.http.user_agent |
直接對應 |
user_agent |
network.http.user_agent |
直接對應 |
http_bytes_received |
network.received_bytes |
直接對應 |
response_length |
network.received_bytes |
直接對應 |
http_bytes_sent |
network.sent_bytes |
直接對應 |
request_length |
network.sent_bytes |
直接對應 |
client_rtt |
network.session_duration.seconds |
直接對應 |
duration |
network.session_duration.seconds |
直接對應 |
server_conn_src_ip |
observer.ip |
已合併 |
client_ip |
principal.asset.ip |
已合併 |
source_ip |
principal.asset.ip |
已對應:client_ip → source_ip |
src_ip |
principal.asset.ip |
已合併 |
client_ip |
principal.ip |
已合併 |
source_ip |
principal.ip |
已對應:client_ip → source_ip |
src_ip |
principal.ip |
已合併 |
client_src_port |
principal.port |
直接對應 |
user |
principal.user.userid |
直接對應 |
request_state |
security_result.description |
直接對應 |
_field |
security_result.detection_fields |
已合併 |
waf_status_label |
security_result.detection_fields |
已合併 |
dest_ip |
target.asset.ip |
已合併 |
server_ip |
target.asset.ip |
已合併 |
vs_ip |
target.asset.ip |
已合併 |
vs_name_syslog |
target.hostname |
直接對應 |
dest_ip |
target.ip |
已合併 |
server_ip |
target.ip |
已合併 |
vs_ip |
target.ip |
已合併 |
client_dest_port |
target.port |
已重新命名/對應 |
port |
target.port |
直接對應 |
server_dest_port |
target.port |
已重新命名/對應 |
pool_label |
target.resource.attribute.labels |
已合併 |
pool_name_label |
target.resource.attribute.labels |
已合併 |
virtualservice_label |
target.resource.attribute.labels |
已合併 |
redirected_uri |
target.url |
直接對應 |
uri_query |
target.url |
直接對應 |
url |
target.url |
直接對應 |
| 不適用 | metadata.event_type |
常數:NETWORK_HTTP |
| 不適用 | metadata.product_name |
常數:AVI Load Balancer |
| 不適用 | metadata.vendor_name |
常數:Vmware |
| 不適用 | network.direction |
常數:INBOUND |
| 不適用 | network.http.parsed_user_agent |
常數:parseduseragent |
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。