收集 Skyhigh Secure Web Gateway (On-Premises) 記錄
本文說明如何使用 Google Cloud Storage,將 Skyhigh Secure Web Gateway (內部部署) 記錄檔擷取至 Google SecOps。
Skyhigh Secure Web Gateway (前身為 McAfee Web Gateway) 是地端部署的網路安全解決方案,可提供惡意軟體偵測、網址篩選、應用程式控管、資料遺失防護和 HTTPS 檢查功能,協助機構防範網路威脅,並強制執行合理使用政策。
事前準備
請確認您已完成下列事前準備事項:
- Google SecOps 執行個體
- Skyhigh Secure Web Gateway 管理控制台的特殊存取權
- 已啟用 Cloud Storage API 的 GCP 專案
- 以 Linux 為基礎的收集伺服器,可透過網路存取 Skyhigh Secure Web Gateway 設備,並可連出至 Google Cloud Storage
- Skyhigh Secure Web Gateway 7.x 以上版本
設定 Skyhigh Secure Web Gateway 存取記錄格式
設定記錄處理常式規則集,以 JSON 格式產生存取記錄項目。
- 登入 Skyhigh Secure Web Gateway 管理控制台。
- 前往「政策」>「規則集」。
- 按一下左側導覽列中的「記錄處理常式」。
- 展開「預設」規則集。
- 選取巢狀的「Access Log」規則集。
- 按一下「新增」>「規則」,即可建立新規則。
- 使用下列設定配置規則:
- 「Name」(名稱):輸入
Write access log data for collection - 條件:選取「一律」
- 操作:選取「繼續」
- 活動:依序點選「新增」>「活動」
- 「Name」(名稱):輸入
- 在「新增活動」對話方塊中:
- 選取「Set User-Defined.logLine」(設定使用者定義的 logLine)。
- 按一下「參數」。
- 結合必要屬性,建構記錄行值。使用 User-Defined.logLine 屬性,將欄位串連成所需格式。
- 按一下 [確定]。
- 新增第二個事件,將記錄行寫入存取記錄檔:
- 依序點選「新增」>「事件」。
- 選取「檔案系統記錄」。
- 按一下「參數」。
- 針對「message」參數,選取「User-Defined.logLine」。
- 按一下 [確定]。
- 按一下「完成」即可儲存規則。
按一下頁面頂端的「儲存變更」。
設定自動推送檔案系統記錄
設定 Skyhigh Secure Web Gateway,自動將存取記錄檔推送至收集伺服器。
- 在 Skyhigh Secure Web Gateway 控制台中,依序前往「Policy」>「Settings」>「Engines」>「File System Logging」。
- 選取「存取記錄設定」。
- 展開「輪替、推送和刪除設定」。
- 在「Auto Pushing」(自動推送) 部分:
- 勾選「Enable auto pushing」(啟用自動推送) 核取方塊。
- 在「目的地」欄位中,輸入集合伺服器的 FTP 或 HTTP 網址:
- FTP 範例:
ftp://COLLECTION_SERVER_IP:21/swg-logs/ - HTTP 範例:
http://COLLECTION_SERVER_IP:9111/logloader/
- FTP 範例:
- 在「User name」(使用者名稱) 欄位中,輸入集合伺服器的使用者名稱。
- 在「Password」(密碼) 欄位中,輸入集合伺服器的密碼。
- 在「輪替」部分,根據記錄量設定輪替間隔:
- 在高流量環境中,請將輪播頻率設為每 5 到 15 分鐘一次
- 如果是標準環境,請將輪替頻率設為每 30 到 60 分鐘一次
按一下 [儲存變更]。
驗證記錄前置字串
- 在 Skyhigh Secure Web Gateway 控制台中,依序前往「Configuration」>「Appliances」>「Syslog」>「Log Prefix」。
- 確認前置字元已設為 mwg。
如果前置字串不同,請變更為 mwg,然後按一下「儲存變更」。
建立 Google Cloud Storage bucket
- 前往 Google Cloud 控制台。
- 選取專案或建立新專案。
- 在導覽選單中,依序前往「Cloud Storage」>「Bucket」。
- 按一下「建立值區」。
請提供下列設定詳細資料:
設定 值 為 bucket 命名 輸入全域不重複的名稱 (例如 skyhigh-swg-logs)位置類型 根據需求選擇 (區域、雙區域、多區域) 位置 選取位置 (例如 us-central1)儲存空間級別 標準 (建議用於經常存取的記錄) 存取控管 統一 (建議) 保護工具 選用:啟用物件版本管理或資料保留政策 點選「建立」。
設定收集伺服器,將記錄檔上傳至 GCS
設定收集伺服器,接收 Skyhigh Secure Web Gateway 推送的記錄檔,並將這些記錄檔上傳至 GCS 值區。
安裝 gcloud CLI
在收集伺服器上安裝 gcloud CLI:
curl https://sdk.cloud.google.com | bash exec -l $SHELL初始化 gcloud CLI:
gcloud init使用服務帳戶或使用者帳戶進行驗證:
gcloud auth login設定預設專案:
gcloud config set project PROJECT_ID
設定 FTP 伺服器,接收推送的記錄檔
在收集伺服器上安裝 FTP 伺服器 (例如 vsftpd):
sudo apt-get install vsftpd -y為推送的記錄檔建立專用目錄:
sudo mkdir -p /var/log/swg-logs sudo chown ftp:ftp /var/log/swg-logs設定 FTP 伺服器,允許寫入記錄目錄。
啟動 FTP 服務:
sudo systemctl enable vsftpd sudo systemctl start vsftpd
建立 GCS 上傳指令碼
建立上傳指令碼:
sudo mkdir -p /opt/swg-gcs-uploader建立
/opt/swg-gcs-uploader/upload_to_gcs.sh檔案,並加入以下內容:#!/bin/bash LOG_DIR="/var/log/swg-logs" GCS_BUCKET="gs://skyhigh-swg-logs/swg-access-logs/" ARCHIVE_DIR="/var/log/swg-logs/archived" mkdir -p "$ARCHIVE_DIR" # Upload new log files to GCS for log_file in "$LOG_DIR"/*.log; do if [ -f "$log_file" ]; then gsutil cp "$log_file" "$GCS_BUCKET" if [ $? -eq 0 ]; then mv "$log_file" "$ARCHIVE_DIR/" echo "$(date): Uploaded and archived $(basename "$log_file")" else echo "$(date): Failed to upload $(basename "$log_file")" fi fi done # Clean up archived files older than 7 days find "$ARCHIVE_DIR" -type f -mtime +7 -delete將指令碼設定為可執行檔:
sudo chmod +x /opt/swg-gcs-uploader/upload_to_gcs.sh請將
skyhigh-swg-logs替換為 GCS 值區的實際名稱。
排定上傳指令碼
開啟 crontab 編輯器:
sudo crontab -e新增下列項目,每 10 分鐘執行一次上傳作業:
*/10 * * * * /opt/swg-gcs-uploader/upload_to_gcs.sh >> /var/log/swg-gcs-uploader.log 2>&1儲存並結束。
驗證上傳作業
- 等待 Skyhigh Secure Web Gateway 將記錄檔推送至收集伺服器。
確認記錄檔位於記錄目錄中:
ls -la /var/log/swg-logs/手動執行上傳指令碼進行測試:
sudo /opt/swg-gcs-uploader/upload_to_gcs.sh確認檔案已上傳至 GCS:
gsutil ls gs://skyhigh-swg-logs/swg-access-logs/
將設定套用至 Central Management 叢集
如果您在中央管理叢集中執行多個 Skyhigh Secure Web Gateway 設備:
- 在叢集中的每個設備上,重複執行檔案系統記錄自動推送設定。
記錄處理常式規則集設定會自動在叢集間同步。
擷取 Google SecOps 服務帳戶
- 依序前往「SIEM 設定」>「動態饋給」。
- 按一下「新增動態消息」。
- 按一下「設定單一動態饋給」。
- 在「動態饋給名稱」欄位中輸入動態饋給名稱 (例如
Skyhigh SWG Logs)。 - 選取「Google Cloud Storage V2」做為「來源類型」。
- 選取「McAfee Web Protection」做為「記錄類型」。
按一下「取得服務帳戶」,系統會顯示專屬服務帳戶電子郵件地址,例如:
chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com複製這個電子郵件地址,以便在下一步中使用。
點選「下一步」。
指定下列輸入參數的值:
儲存空間 bucket URL:輸入 GCS bucket URI,並加上前置路徑:
gs://skyhigh-swg-logs/swg-access-logs/來源刪除選項:根據偏好設定選取刪除選項:
- 永不:移轉後一律不刪除任何檔案 (建議用於測試)。
- 刪除已轉移的檔案:成功轉移檔案後刪除檔案。
刪除已轉移的檔案和空白目錄:成功轉移後刪除檔案和空白目錄。
檔案存在時間上限:包含在過去天數內修改的檔案 (預設為 180 天)
資產命名空間:資產命名空間
擷取標籤:要套用至這個動態饋給事件的標籤
點選「下一步」。
在「Finalize」(完成) 畫面中檢查新的動態饋給設定,然後按一下「Submit」(提交)。
將 IAM 權限授予 Google SecOps 服務帳戶
- 依序前往「Cloud Storage」>「Buckets」。
- 按一下
skyhigh-swg-logs。 - 前往「權限」分頁標籤。
- 按一下「授予存取權」。
- 請提供下列設定詳細資料:
- 新增主體:貼上 Google SecOps 服務帳戶電子郵件地址
- 指派角色:選取「Storage 物件檢視者」
- 按一下 [儲存]。
UDM 對應表
| 記錄欄位 | UDM 對應 | 邏輯 |
|---|---|---|
| mediaType | additional.fields | 與來自 mediaType、reputation、Ssl_scanned、av_scanned_up、av_scanned_down、rbi、dlp 的標籤合併 |
| 信譽 | additional.fields | |
| Ssl_scanned | additional.fields | |
| av_scanned_up | additional.fields | |
| av_scanned_down | additional.fields | |
| rbi | additional.fields | |
| dlp | additional.fields | |
| intermediary_ip1 | intermediary.ip | 從 intermediary_ip1、intermediary_ip2、client_ip 合併 |
| intermediary_ip2 | intermediary.ip | |
| client_ip | intermediary.ip | |
| intermediary_port | intermediary.port | 已轉換為整數 |
| uriScheme | metadata.event_type | 設為「GENERIC_EVENT」,如果 uriScheme 位於 ["http", "https"] 中,則會覆寫為「NETWORK_HTTP」 |
| uriScheme | network.application_protocol | 如果 uriScheme 符合「https」,則設為「HTTPS」;如果符合「http」,則設為「HTTP」 |
| http_action | network.http.method | 直接複製值 |
| user_agent_comment | network.http.parsed_user_agent | 已轉換為剖析的使用者代理程式 |
| httpStatusCode | network.http.response_code | 已轉換為整數 |
| user_agent_comment | network.http.user_agent | 直接複製值 |
| serverToClientBytes | network.received_bytes | 已轉換為 uinteger |
| clientToServerBytes | network.sent_bytes | 已轉換為 uinteger |
| 檔案名稱 | principal.file.full_path | 直接複製值 |
| source_ip | principal.ip | 直接複製值 |
| 國家/地區 | principal.location.country_or_region | 直接複製值 |
| process_name | principal.process.command_line | 直接複製值 |
| Ssl_client_prot | principal.resource.attribute.labels | 與 Ssl_client_prot、Ssl_server_prot 的標籤合併 |
| Ssl_server_prot | principal.resource.attribute.labels | |
| 網址 | principal.url | 直接複製值 |
| 使用者名稱 | principal.user.userid | 直接複製值 |
| blockReason | security_result.action | 設為「ALLOW」,如果 blockReason 不為空白,則會覆寫為「BLOCK」 |
| result | security_result.action_details | 直接複製值 |
| category | security_result.category_details | 直接複製值 |
| 病毒 | security_result.detection_fields | 與病毒、位置、lastRule、applicationType、Mw_probablility、Discarded_host、domain_fronting_url 的標籤合併 |
| 位置 | security_result.detection_fields | |
| lastRule | security_result.detection_fields | |
| applicationType | security_result.detection_fields | |
| Mw_probablility | security_result.detection_fields | |
| Discarded_host | security_result.detection_fields | |
| domain_fronting_url | security_result.detection_fields | |
| blockReason | security_result.summary | 直接複製值 |
| requested_path | target.file.full_path | 直接複製值 |
| requested_host | target.hostname | 直接複製值 |
| destination_ip | target.ip | 直接複製值 |
| userID | target.user.userid | 直接複製值 |
變更記錄
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。