本文件可協助您找出 Google Cloud 產品和因應策略,以防範 OWASP 十大資安風險中列出的常見應用程式層級攻擊。OWASP Top 10 是 Open Web Application Security (OWASP) Foundation 列出的清單,列出每位應用程式擁有者都應注意的前 10 大安全性風險。雖然沒有任何安全產品能保證完全防範這些風險,但在架構中適當應用這些產品和服務,有助於打造強大的多層安全解決方案。
Google 基礎架構的設計目的,是協助您以安全的方式建構、部署及運作服務。Google 會管理實體和作業安全性、靜態和傳輸中的資料加密作業,以及安全基礎架構的許多其他重要面向。將應用程式部署至Google Cloud後,您就能享有這些優點,但可能需要採取額外措施,才能保護應用程式免於遭受特定攻擊。
本文所列的因應策略會依應用程式安全性風險和 Google Cloud 產品排序。許多產品都會在建立防範網路安全風險的深度防禦策略中扮演重要角色。本文件提供其他產品如何減輕 OWASP 十大風險的資訊,但也進一步說明 Google Cloud Armor 和 Apigee 如何減輕各種風險。Google Cloud Armor 可做為網頁應用程式防火牆 (WAF) 使用,而 Apigee 可做為 API 閘道使用,兩者在封鎖各種攻擊時都非常實用。這些產品位於來自網際網路的流量路徑中,可在外部流量抵達 Google Cloud中的應用程式前封鎖。
來減輕 Juice Shop 內建的部分安全漏洞。產品總覽
下表列出的 Google Cloud 產品可協助防範前 10 大安全性風險:
產品 | 摘要 | A01 | A02 | A03 | A04 | A05 | A06 | A07 | A08 | A09 | A10 |
---|---|---|---|---|---|---|---|---|---|---|---|
資料存取透明化控管機制 | 透過管理員存取活動記錄檔和核准控管機制,讓您更全面地瞭解及管理雲端服務供應商的資料存取活動 | ✓ | ✓ | ||||||||
Apigee | 設計、保護及擴充應用程式設計介面 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
Artifact Registry | 集中儲存構件和建構依附元件 | ✓ | |||||||||
二進位授權 | 確保只有受信任的容器映像檔能部署至 Google Kubernetes Engine | ✓ | ✓ | ||||||||
Cloud Asset Inventory | 查看、監控及分析不同專案和服務中所有 Google Cloud 和 Google Distributed Cloud 或多雲資產 | ✓ | ✓ | ✓ | ✓ | ||||||
Cloud Build | 在 Google Cloud中建構、測試及部署 | ✓ | |||||||||
Cloud Key Management Service | 管理 Google Cloud中的加密金鑰 | ✓ | ✓ | ||||||||
Cloud Load Balancing | 控管 SSL Proxy 或 HTTPS 負載平衡器交涉的加密法 | ✓ | ✓ | ✓ | ✓ | ||||||
Cloud Logging | 即時管理及分析記錄檔,靈活調整作業規模 | ✓ | |||||||||
Cloud Monitoring | 收集並分析來自 Google Cloud 服務、多種應用程式和第三方服務的指標、事件和中繼資料 | ✓ | |||||||||
Cloud Source Repositories | 讓團隊集中儲存、管理及追蹤程式碼 | ✓ | |||||||||
Google Cloud Armor | 在 Google 網路邊緣部署網頁應用程式防火牆 (WAF),以防範常見的攻擊媒介 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
Google Security Operations | 運用 Google 的基礎架構、偵測技術和信號,自動即時偵測大量威脅 | ✓ | |||||||||
Identity Platform | 在應用程式中加入身分與存取權管理功能、保護使用者帳戶,並擴大身分管理功能 | ✓ | ✓ | ||||||||
Identity-Aware Proxy (IAP) | 利用身分識別和背景資訊把關,控管使用者對應用程式和 VM 的存取權 | ✓ | ✓ | ✓ | |||||||
reCAPTCHA | 協助網站防範詐欺活動、垃圾內容和濫用行為 | ✓ | |||||||||
Secret Manager | 儲存 API 金鑰、密碼、憑證和其他機密資料 | ✓ | ✓ | ||||||||
Security Command Center | 集中顯示安全分析和威脅情報,協助您找出應用程式中的安全漏洞 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Sensitive Data Protection | 探索、分類及保護高度機密資料 | ✓ | ✓ | ✓ | |||||||
Titan 安全金鑰 | 使用防範網路釣魚的雙重驗證 (2FA) 裝置,協助保護高價值使用者。這類裝置內建的硬體晶片 (內含 Google 打造的韌體) 可驗證金鑰的完整性 | ✓ | |||||||||
虛擬私有雲防火牆 | 允許或拒絕虛擬機器 (VM) 執行個體的傳入和傳出連線 | ✓ | |||||||||
VirusTotal | 分析可疑檔案和網址,藉此偵測惡意軟體類型,並自動將相關資訊提供給安全性社群 | ✓ | ✓ | ||||||||
VPC Service Controls | 隔離多用戶群服務的資源,降低資料竊取風險 Google Cloud | ✓ | ✓ | ||||||||
Google Cloud 安全性公告 | 與 Google Cloud 產品相關的最新安全性公告 | ✓ |
A01:存取權控管機制有誤
「Broken access control」是指只有在用戶端部分實施存取權控管,或實施方式不夠嚴謹。為了降低這些控管措施的影響,通常需要在應用程式端重寫程式碼,才能確保只有授權使用者才能存取資源。
Apigee
用途:
- 強制執行存取權控管
- 限制資料操弄
Apigee 支援分層式方法,可實作存取權控管機制,防止惡意人士未經授權變更或存取系統。
設定角色式存取權控管 (RBAC),只允許使用者存取所需的資源和設定。建立加密的鍵/值對應,用於儲存機密的鍵/值組合,這些組合會在 Edge UI 和管理 API 呼叫中以遮罩顯示。請使用貴公司的識別資訊提供者設定單一登入機制。
設定開發人員入口網站,根據使用者角色顯示特定 API 產品。設定入口網站,根據使用者角色顯示或隱藏內容。
Cloud Asset Inventory
用途:
- 監控未經授權的 IT 資源 (又稱為「影子 IT」)
- 過時的運算執行個體
資料外洩最常見的媒介之一,就是孤立或未經授權的 IT 基礎架構。設定即時通知,以便在非預期的資源執行時發出警示,這些資源可能未妥善防護,或使用過時的軟體。
Cloud Load Balancing
用途:
- 精細的 SSL 和 TLS 密碼控制
指派 Cloud Load Balancing 可使用的預先定義群組或自訂密碼表,避免使用弱式 SSL 或 TLS 密碼。
Google Cloud Armor
用途:
- 篩選跨來源要求
- 篩除本機或遠端檔案納入攻擊
- 篩除 HTTP 參數污染攻擊
許多存取控制失效的情況無法透過使用網路應用程式防火牆來緩解,因為應用程式不要求或未正確檢查每個要求的存取權存取權,而且資料可能會遭到用戶端操控。多項Juice Shop 挑戰與存取權控管機制異常相關。舉例來說,以其他使用者名義發布意見會利用某些要求未經伺服器端驗證的事實。如您在挑戰解決方案中所見,這個漏洞的攻擊方式完全在用戶端,因此無法使用 Google Cloud Armor 緩解。
如果應用程式無法立即修補,部分挑戰可透過伺服器端部分緩解。
舉例來說,如果您的網路伺服器實作跨來源資源共用 (CORS) 不佳,可能會導致跨網站要求偽造 (CSRF) 攻擊,如CSRF Juice Shop 挑戰所示,您可以使用自訂規則,一併封鎖來自不明來源的要求,以減輕這項問題。以下規則會比對所有來源,除了 example.com 和 google.com 以外:
has(request.headers['origin']) &&
!((request.headers['origin'] == 'https://example.com')||
(request.headers['origin'] == 'https://google.com') )
當系統拒絕符合這類規則的流量時,CSRF 挑戰解決方案就會停止運作。
購物車操控挑戰使用HTTP 參數污染 (HPP),讓您可以按照挑戰解決方案瞭解如何攻擊商店。系統會在通訊協定攻擊規則集的一部分中偵測到 HPP。如要封鎖這類攻擊,請使用下列規則:evaluatePreconfiguredExpr('protocolattack-stable')
。
Identity-Aware Proxy 和情境感知存取權
用途:
- 集中控管存取權
- 支援雲端和內部部署
- 保護 HTTP 和 TCP 連線
- 情境感知存取權
IAP 可讓您使用身分和背景資訊,為應用程式建立安全的驗證和授權防護牆。使用以 Cloud Identity 和 IAM 為基礎建構的集中管理驗證和授權系統,避免對外公開應用程式發生授權或存取權控管問題。
依據使用者的身分和要求內容,在網頁應用程式、VM、 Google Cloud API 和 Google Workspace 應用程式中強制實行精細的存取權控管機制,而不需要傳統的 VPN。將雲端和內部部署應用程式和基礎架構資源都集中於單一平台。
Security Command Center
Security Command Center 包含兩項服務,可協助您解決存取控制機制異常的問題:安全性狀態分析和 Web Security Scanner。
Security Health Analytics 支援下列用途:
- 強制執行 MFA 或 2FA
- API 金鑰防護
- SSL 政策監控
安全性健康分析可監控多重驗證相容性、SSL 政策和 API 金鑰的健康狀況,協助您避免存取控制機制發生錯誤。
Web Security Scanner 支援下列用途:
- 對外公開的存放區
- 不安全的要求標頭驗證
Web Security Scanner 會掃描網頁應用程式,找出公開可見的程式碼存放區和錯誤設定的請求標頭驗證等安全漏洞。
A02:密碼編譯失敗
加密失敗可能發生在傳輸過程中,可能是因為缺乏加密或加密強度不足,或是不小心洩漏機密資料。針對這些安全漏洞的攻擊通常是針對特定應用程式,因此需要採取多層防護的做法來減輕攻擊。
Apigee
用途:
- 保護機密資料
使用單向和雙向 TLS,在通訊協定層級保護機密資訊。
使用指派訊息政策和JavaScript 政策等政策,在機密資料傳回用戶端前移除。
使用標準的 OAuth 技術,並考慮加入 HMAC、雜湊、狀態、Nonce、PKCE 或其他技術,以提高每個要求的驗證層級。
在 Edge Trace 工具中遮蓋機密資料。
加密鍵/值對應中的靜態機密資料。
Cloud Asset Inventory
用途:
- 搜尋服務
- 存取分析工具
資料外洩最常見的媒介之一,就是孤立或未經授權的 IT 基礎架構。您可以分析雲端資產時間序列資料,找出沒有人維護的伺服器,以及具有過於廣泛共用規則的資料集。
設定即時通知,以便在發生未預期的資源佈建作業時發出警示,因為這些資源可能未經適當安全防護或未經授權。
Cloud Data Loss Prevention API (屬於機密資料保護服務)
用途:
- 探索及分類機密資料
- 自動遮蓋資料
您可以使用 Cloud Data Loss Prevention API (DLP API) 掃描儲存空間或資料庫中任何可能的機密資料,以免發生非預期的資訊外洩。如果系統偵測到禁止使用的資料,就會自動標記或遮蓋。
Cloud Key Management Service
用途:
- 安全的加密編譯金鑰管理
(Cloud KMS) 有助於避免加密編譯金鑰遭到外洩。您可以透過這項雲端託管金鑰管理服務,以內部部署的方式管理雲端服務的對稱式及非對稱加密編譯金鑰。您可以產生、使用、輪替及銷毀 AES256、RSA 2048、RSA 3072、RSA 4096、EC P256 和 EC P384 加密編譯金鑰。
Cloud Load Balancing
用途:
- 精細的 SSL 和 TLS 密碼控制
SSL 政策可讓您控管負載平衡器中允許的 SSL 和 TLS 功能和密碼,進而防止機密資料外洩。視需要封鎖未核准或不安全的加密法。
Google Cloud Armor
用途:
- 篩除已知的攻擊網址
- 限制機密端點存取權
一般來說,應在來源處阻止機密資料外洩,但由於每項攻擊都會針對特定應用程式,因此網站應用程式防火牆只能以有限的方式廣泛阻止資料外洩。不過,如果應用程式無法立即修補,您可以使用 Google Cloud Armor 自訂規則,限制存取有安全漏洞的端點或要求模式。
舉例來說,幾個Juice Shop 挑戰都可能因不安全的目錄檢索和空值字元注入攻擊而遭到利用,導致機密資料外洩。您可以使用下列自訂運算式,檢查網址中的字串,以減輕這些注入問題:
request.path.contains("%00") || request.path.contains("%2500")
您可以解決公開指標問題,方法是存取 Prometheus 使用的 /metrics
子目錄。如果您有暴露的敏感端點,且無法立即移除存取權,您可以限制存取權,只允許特定 IP 位址範圍存取該端點。使用類似下列自訂運算式的規則:
request.path.contains("/metrics") && !(inIpRange(origin.ip, '1.2.3.4/32')
將 1.2.3.4/32
替換為應可存取指標介面的 IP 位址範圍。
意外公開記錄檔是 Juice Shop 挑戰之一,為避免洩漏記錄,請設定一項規則,完全禁止存取記錄檔:request.path.endsWith(".log")
。
Identity-Aware Proxy 和情境感知存取權
用途:
- 安全存取機密服務
- 集中控管存取權
- 情境感知存取權
利用身分和背景資訊,為應用程式建立安全的驗證和授權邊界。部署工具 (例如內部錯誤回報、公司知識庫或電子郵件) 在 IAP 後方,以便讓情境感知存取權僅開放給網路上任何地方的授權使用者。
有了情境感知存取權,您就能依據使用者的身分和要求內容,在網頁應用程式、虛擬機器 (VM)、 Google Cloud API 和 Google Workspace 應用程式中強制實行精細的存取權控管機制,而不需要傳統的 VPN。情境感知存取權採用零信任安全性模式以及 Google 的 BeyondCorp 導入作業,可讓您為使用者提供存取權、實施精細的控管機制,並透過單一雲端平台管理雲端環境和內部部署系統中的應用程式與基礎架構資源。
Secret Manager
用途:
- 加密編譯金鑰
- API 金鑰
- 其他系統憑證
Secret Manager 是安全的儲存服務,可用於儲存 API 金鑰、服務帳戶密碼和加密資產等重要資料。集中儲存這些機密資料可讓您依賴 Google Cloud的驗證和授權系統 (包括 IAM),判斷任何特定存取要求是否有效。
Secret Manager 並非設計用於大規模作業,例如信用卡符記或個別使用者密碼儲存作業。這類應用程式應仰賴 Identity Platform 的客戶身分與存取權管理 (CIAM)、Cloud Identity 的機構成員,或專用代幣化軟體。
Security Command Center
Security Command Center 提供兩項服務,可協助您解決密碼編譯失敗問題:安全性狀態分析和 Web Security Scanner。
Security Health Analytics 支援下列用途:
- 強制執行 MFA/2FA
- API 金鑰防護
- 強制執行 API 金鑰輪替
- Compute 映像檔隱私權
- 強制執行 SSH 金鑰規則
- 安全啟動監控
- API 存取安全性
- SSL 政策監控
- 已停用記錄功能
- 公開值區 ACL 警示
安全性狀態分析可監控多重驗證法規遵循和API 鍵的運作情況,協助您避免機密資料外洩。針對容器映像檔儲存空間、Cloud Storage、SSL 政策、SSH 金鑰政策、記錄、API 存取權等中的不安全設定,接收警示。
Web Security Scanner 支援下列用途:
- 透過網路傳輸未加密的密碼
Web Security Scanner 會掃描您的網頁應用程式,並回報錯誤和安全漏洞。如果應用程式以純文字格式傳輸密碼,Web Security Scanner 就會產生 CLEAR_TEXT_PASSWORD
檢測結果。
VirusTotal
用途:
- 防範網路詐騙
使用 VirusTotal 時,您可以掃描網址是否含有惡意內容,然後再將網址提供給使用者或員工,無論這些網址是在使用者輸入內容、電子郵件、即時通訊、記錄或其他位置中發現皆可。
VPC Service Controls
用途:
- 代管服務的防火牆
將重要管理服務納入防火牆,以便控管可呼叫服務的使用者,以及服務可回應的使用者。在 Cloud Run 函式等服務上設定外送邊界規則,封鎖未經授權的輸出和資料外洩。防止未經授權的使用者和位置提出要求,存取受管理的資料儲存庫和資料庫。為功能強大或可能造成高成本的 API 建立安全範圍。
網路應用程式掃描工具
用途:
- 網頁應用程式安全性風險掃描工具
- 原始碼存放區可用性掃描工具
為避免網頁應用程式洩漏機密資料,請確保密碼不會以純文字格式傳送。檢查是否有公開的 Git 和 Apache Subversion 原始碼存放區,避免洩漏可能造成嚴重損害的原始碼。這些掃描作業旨在涵蓋特定的 OWASP 前 10 大控制項。
A03:注入
當不受信任的資料以指令或查詢的一部分傳送至解譯器時,就會發生插入錯誤 (例如 SQL、NoSQL、OS 和 LDAP 插入)。攻擊者的惡意資料可能會欺騙解譯器,讓其執行非預期的指令,或在未經適當授權的情況下存取資料。建議您在將使用者資料傳送至轉譯器前,先由應用程式進行清理或篩選。
下列各節將討論可協助降低此風險的 Google Cloud 產品。
Apigee
用途:
- SQL 注入封鎖
- NoSQL 注入封鎖
- LDAP 注入封鎖
- 封鎖 JavaScript 插入
Apigee 提供多項輸入驗證政策,可驗證用戶端提供的值是否符合您設定的預期值,然後再允許進一步處理政策或規則。Apigee 會做為傳入 API 要求的閘道,執行限制檢查,確保酬載結構落在可接受的範圍內。您可以設定 API Proxy,讓輸入驗證例行程式轉換輸入內容,以移除有風險的字元序列,然後用安全的值取代。
您可以透過下列幾種方式,使用 Apigee 平台驗證輸入內容:
- JSONThreatProtection 會檢查 JSON 酬載是否有威脅。
- XMLThreatProtection 會檢查 XML 酬載是否有威脅。
- JavaScript 會驗證參數和標頭。
- RegularExpressionProtection 政策可處理 SQL 程式碼注入問題。
OASValidation
政策會根據 OpenAPI 規格 (JSON 或 YAML) 驗證傳入要求或回應訊息。SOAPMessageValidation
政策會根據 XSD 結構定義驗證任何 XML 訊息,也可以根據 WSDL 定義驗證 SOAP 訊息。
Google Cloud Armor
用途:
- SQL 注入篩選
- PHP 注入篩選
Google Cloud Armor 可在常見的注入攻擊抵達應用程式前加以封鎖。針對 SQL Inject (SQLi),Google Cloud Armor 提供預先定義的規則集,以 OWASP Modsecurity 核心規則集為基礎。您可以建立安全性政策,阻擋常見的 SQLi 攻擊,方法是使用 evaluatePreconfiguredExpr('sqli-stable')
規則單獨使用或與其他自訂規則搭配使用,以便在核心規則集中定義。舉例來說,您可以使用網址路徑篩選器,將 SQLi 封鎖功能限制在特定應用程式。
針對 PHP 注入,我們也提供另一組預先設定的規則。您可以使用 evaluatePreconfiguredExpr('php-stable')
規則來封鎖常見的 PHP 注入攻擊。
視應用程式而定,啟用預先設定的運算式可能會導致部分誤報,因為規則集合中的部分規則相當敏感。詳情請參閱排解誤判為垃圾內容的問題,以及如何將規則集調整為不同的敏感度等級。
針對 SQL 或 PHP 以外的注入攻擊,您可以建立自訂規則,在要求路徑或查詢中使用這些通訊協定中的特定關鍵字或轉義模式時,封鎖要求。請確認這些模式不會出現在有效要求中。您也可以限制這些規則,只用於可能會解讀傳送至這些端點或路徑的資料。
此外,您也可以使用預先設定的遠端程式碼執行和遠端檔案注入規則,減輕某些注入攻擊。
Security Command Center
Security Command Center 提供兩項服務,可協助您解決注入漏洞:Container Threat Detection 和 Web Security Scanner。
Container Threat Detection 支援下列用途:
- 惡意指令碼偵測
- 反向殼層偵測
- 偵測惡意軟體安裝行為
Container Threat Detection 的 Malicious Script
Executed
偵測器會分析系統上執行的每個 Shell 指令碼,並回報疑似惡意行為的項目。這個偵測器可讓您偵測殼層指令注入攻擊。成功執行殼層指令後,攻擊者可以產生反向殼層,進而觸發 Reverse
Shell
偵測器。或者,他們也可以安裝惡意軟體,觸發 Added
Binary
Executed
和 Added Library
Loaded
偵測器。
Web Security Scanner 支援下列用途:
- 監控跨網站指令碼攻擊
- 監控 SQL 注入
Web Security Scanner 會掃描您的網站應用程式是否有安全漏洞,並提供監控跨網站指令碼和 SQL 植入攻擊的偵測器。
A04:不安全的設計
當機構未在開發生命週期中導入評估及處理威脅的手段,就會發生不安全設計。威脅模型在設計和精修階段初期完成,並持續進行至開發和測試階段,有助於組織分析假設和失敗缺陷。建立「不責怪他人」的文化,從錯誤中學習,是安全設計的關鍵。
Apigee
用途:
- 輸入驗證
- 存取權控管
- 錯誤處理
- 內容保護政策
- 密碼管理
Apigee 可讓您使用 OASValidation 政策,驗證應用程式收到的傳入要求和回應。此外,您可以設定單一登入 (SSO)、以角色為基礎的存取控制 (RBAC)、限制 API 存取權 (例如使用 Auth0),以及限制哪些 IP 位址可存取環境。您可以使用錯誤處理規則,自訂 API Proxy 對錯誤的反應方式。
為保護 Apigee 全球使用者的安全,Apigee 提供密碼到期、鎖定和重設密碼的選項。此外,您也可以啟用雙重驗證 (2FA)。
Cloud Data Loss Prevention API (屬於機密資料保護服務)
用途:
- 找出並遮蓋機密資料
您可以使用 Cloud Data Loss Prevention API 找出機密資料並將其轉換為符記。在將資料轉換為符記並儲存後,您可以設定存取控制項,限制哪些人可以查看資料,藉此限制機密資料的曝光程度。如需更多資訊,請參閱「自動分類上傳至 Cloud Storage 的資料」和「使用機密資料保護功能,在大規模資料集中去識別化和重新識別個人識別資訊」。
Secret Manager
用途:
- 保護憑證儲存空間
Secret Manager 可讓應用程式和管道根據透過 IAM 授予的權限,存取已命名密鑰的值。它還提供程式輔助存取密鑰的功能,讓自動化程序可以存取密鑰值。啟用後,與 Secret Manager 之間的每項互動都會提供稽核記錄。您可以使用這些稽核記錄來協助進行法醫鑑定和遵循法規。
Security Command Center
Security Command Center 提供的 Web Security Scanner 服務支援下列用途:
- 找出應用程式中的安全漏洞。
Web Security Scanner 會掃描網頁應用程式,找出安全漏洞。這項服務會追蹤連結,並嘗試盡可能執行大量的使用者輸入內容和事件處理常式。如果在網路應用程式中輸入的密碼可在一般瀏覽器快取中快取,而非安全的密碼儲存空間,其 CACHEABLE_PASSWORD_INPUT
偵測器就會產生這項檢測結果。
A05:安全性設定錯誤
安全性設定錯誤是指未修補的應用程式缺陷、開放的預設帳戶,以及未受保護的檔案和目錄,這些問題通常可透過應用程式強化功能加以防範。安全性設定錯誤可能發生在許多情況下,例如信任預設設定、部分設定可能不安全、錯誤訊息包含敏感詳細資料、未使用適當的安全性控管機制在雲端儲存資料,或是 HTTP 標頭設定錯誤。
Apigee
用途:
- 管理安全性設定
- 監控安全性設定
共用流程可讓 API 開發人員將政策和資源組合成可重複使用的群組。共用流程可擷取可重複使用的政策和資源,有助於確保一致性、縮短開發時間,以及管理程式碼。您可以使用 FlowCallout 政策在個別 API Proxy 中加入共用流程,也可以將共用流程放入 流程掛鉤,為在相同環境中部署的每個 API Proxy 自動執行共用流程邏輯。
Cloud Asset Inventory
用途:
- 即時通知服務
即時通知可提醒您,資源可能未經授權或未正確設定安全性,因此無法正常提供。
Cloud Load Balancing
用途:
- 精細的 SSL 和 TLS 密碼控制
指派預先定義的組或自訂的密碼表,讓負載平衡器可使用,藉此避免使用已知有漏洞的 SSL 或 TLS 密碼。
Google Cloud Armor
用途:
- 篩除不安全的端點
- 篩除本機或遠端檔案納入攻擊
- 篩除通訊協定攻擊
由於安全性設定錯誤可能發生在應用程式層級,OWASP 基金會建議您直接強化及修補應用程式,並移除所有不必要的功能。
雖然 Google Cloud Armor 等網路應用程式防火牆 (WAF) 無法協助您修正底層設定錯誤,但您可以完全封鎖應用程式部分存取權,或是封鎖特定 IP 位址或國家/地區以外的所有使用者存取權。限制存取權可降低這些錯誤設定遭到濫用的風險。
舉例來說,如果應用程式使用 /admin
等常見網址公開管理介面,即使該介面已通過驗證,您仍可限制存取權。您可以使用拒絕規則執行這項操作,例如:
request.path.contains("/admin") && !(inIpRange(origin.ip, '1.2.3.4/32')
將 1.2.3.4/32
替換為應具備管理員介面存取權的 IP 位址範圍。
您可以使用預先定義的本機檔案包含 (LFI) 或遠端檔案包含 (RFI) 規則集,部分錯誤設定可因此獲得緩解。舉例來說,在套用 LFI 規則時,利用 Juice Shop 跨網站成像攻擊挑戰不會成功。使用 evaluatePreconfiguredExpr('lfi-stable') ||
evaluatePreconfiguredExpr('rfi-stable')
規則封鎖使用 LFI 和 RFI 規則集的請求,並視需要調整規則。您可以確認挑戰解決方案不再成功。
您也可以使用預先設定的規則集來減輕某些 HTTP 攻擊:
- 為避免HTTP 動詞竄改,請使用方法強制執行規則集。使用
evaluatePreconfiguredExpr('methodenforcement-stable')
規則禁止使用GET
、HEAD
、POST
和OPTIONS
以外的 HTTP 要求方法 - 如要封鎖針對 HTTP 剖析和 Proxy 的常見攻擊,例如 HTTP 要求走私、HTTP 回應分割和 HTTP 標頭注入,請使用
evaluatePreconfiguredExpr('protocolattack-stable')
規則設定的通訊協定攻擊規則。
Security Command Center
Security Command Center 提供兩項服務,可協助您解決安全性設定錯誤的問題:安全性狀態分析和 Web Security Scanner。
安全狀態分析支援下列用途:
- 安全控制項監控和警示
安全性狀態分析會透過單一介面監控許多信號,確保應用程式遵循安全性最佳做法。
Web Security Scanner 支援下列用途:
- 專為 OWASP Top 10 設計的網頁應用程式掃描器
- HTTP 伺服器設定錯誤
- 混合型 HTTP/HTTPS 內容
- XML 外部實體 (XXE)
網路安全掃描工具會監控常見的安全性錯誤,例如內容類型不相符、安全性標頭無效,以及混合式內容服務。Web Security Scanner 也會監控 XXE 等安全漏洞。這些掃描作業旨在涵蓋 OWASP 前 10 大控制項。以下偵測工具會掃描安全性設定錯誤:
INVALID_CONTENT_TYPE
INVALID_HEADER
MISMATCHING_SECURITY_HEADER_VALUES
MISSPELLED_SECURITY_HEADER_NAME
MIXED_CONTENT
XXE_REFLECTED_FILE_LEAKAGE
如要進一步瞭解這些和其他偵測器,請參閱「Web Security Scanner 總覽」。
A06:有安全漏洞和過時的元件
「含有已知安全漏洞的元件」是一般攻擊向量的類別,建議您監控並快速升級所有應用程式元件,以便妥善因應這類安全漏洞。
二進位授權
用途:
- 將 GKE 叢集限制為信任的容器
二進位授權是一種部署作業期間的安全性控管機制,可確保只有受信任的容器映像檔才會部署至 Google Kubernetes Engine (GKE)。使用二進位授權之後,您就能要求映像檔在開發過程中必須由受信任的單位簽署,並在部署時強制執行簽名驗證程序。透過強制執行驗證程序,您可以確保建構與發布的程序只會使用已驗證的映像檔。
Cloud Load Balancing
用途:
- 精細的 SSL 和 TLS 密碼控制
指派 Cloud Load Balancing 可使用的預先定義群組或自訂密碼清單,避免使用已知有漏洞的 SSL 或 TLS 密碼。
Google Cloud Armor
用途:
- 封鎖未使用的應用程式端點存取權
- 封鎖常見的攻擊媒介
您不應使用 Google Cloud Armor 等網路應用程式防火牆 (WAF) 做為單一緩解策略,以封鎖這類攻擊,因為攻擊通常是針對特定程式庫發動,因此無法透過預先設定的規則組封鎖,也無法在伺服器端修補。定期監控及升級應用程式的所有元件,是減輕這類安全漏洞的唯一方法。
不過,Google Cloud Armor 可透過預先設定的規則,針對遠端程式碼執行、本機檔案加入或遠端檔案加入,協助緩解針對漏洞應用程式的常見攻擊。
如果您知道應用程式中有安全漏洞的元件,但無法立即修補應用程式,可以封鎖應用程式中這些部分的存取權,暫時降低這些元件遭到濫用的風險。請建立自訂規則,比對存取這些有安全漏洞元件的網址路徑或查詢,並拒絕存取權。如果您需要透過特定使用者或位置存取這些元件,仍可允許特定信任來源 IP 位址存取這些元件。使用網址路徑的規則如下所示:
`request.path.contains("/component") && !(inIpRange(origin.ip, '1.2.3.4/32')
更改下列內容:
/component
:含有已知漏洞的元件路徑1.2.3.4/32
:應保留介面存取權的 IP 位址範圍。
如果應用程式有部分內容 (例如使用者永遠不需要存取的特定目錄或檔案類型),您也可以使用自訂規則封鎖或限制存取這些資源,主動降低這些元件日後可能遭到入侵的風險。
Google Cloud 安全性公告
用途:
- 安全性公告監控
- Google Cloud 產品的 CVE
Google Cloud 安全性公告是影響Google Cloud的安全性公告的權威來源。文章中會提供背景資訊、CVE 連結,以及後續行動的建議。
Security Command Center
Security Command Center 提供三項服務,可協助您解決有安全漏洞和過時的元件問題:Container Threat Detection、Event Threat Detection 和 Web Security Scanner。
Container Threat Detection 支援下列用途:
- 惡意指令碼偵測
- 反向殼層偵測
- 偵測惡意軟體安裝行為
如果攻擊者利用有安全漏洞的元件並執行惡意指令碼,Malicious Script
Executed
Container Threat Detection 偵測器會產生發現項目。如果攻擊者產生反向殼層,Reverse
Shell
偵測器就會產生這項發現。如果攻擊者安裝惡意軟體,Added
Binary
Executed
和 Added Library
Loaded
偵測器就會產生相關發現。
Event Threat Detection 支援下列用途:
- 加密貨幣挖礦偵測
- 惡意軟體偵測功能
- 資料竊取
- 連出的 DoS
Event Threat Detection 會監控 Cloud Logging 串流,並在細微層級套用偵測邏輯和威脅情報。Event Threat Detection 偵測到威脅時,會將發現項目寫入 Security Command Center 和 Cloud Logging 專案。下列偵測規則可用於偵測使用具有已知安全漏洞的元件所產生的影響:
- 加密貨幣挖礦。根據 DNS 要求或已知挖礦位址的連線,偵測加密貨幣挖礦活動。
- 惡意軟體。偵測惡意軟體 DNS 要求或連線至已知的壞位址。
- 將資料外洩至外部資料表。偵測儲存在組織外部的資源,包括複製或轉移作業。
- 連出的 DoS。偵測遭到利用的漏洞,以防範阻斷服務攻擊。
Web Security Scanner 支援下列用途:
- 舊版程式庫
- 安全漏洞和發現事項資訊主頁
Web Security Scanner 會監控網頁應用程式中的過時程式庫。您可以在 Security Command Center 資訊主頁中監控這些發現項目。
A07:身分識別和驗證失敗
身分和驗證失敗是常見的風險,因為應用程式驗證和工作階段管理功能經常會導入錯誤。攻擊者可以利用實作缺陷 (例如遭到入侵的密碼、金鑰和工作階段權杖),暫時或永久假冒其他使用者的身分。
資料存取透明化控管機制
用途:
- 服務供應商監控
- 存取事由
通常,如果您需要外部供應商提供自訂支援服務,就必須授予及共用臨時憑證,這可能會導致憑證遺失或外洩。存取權核准是一項整合服務,可讓您核准或拒絕為您的帳戶提供支援的 Google 員工提出的存取要求。每項存取要求都包含存取理由,方便您查看每項存取活動的原因,包括支援票證參考資料。
Apigee
用途:
- 金鑰驗證
- 符記驗證
- OAuth 政策
Apigee 提供 VerifyApiKey、OAuth 和 JSON Web Token (JWT) 政策,有助於防範這類風險。
API 金鑰驗證是可為 API 設定的應用程式安全性最簡單的形式。用戶端應用程式會在要求中提供 API 金鑰。Apigee Edge 會透過附加至 API Proxy 的政策,檢查 API 金鑰是否處於所要求資源的核准狀態。
OAuth 2.0 授權架構可讓第三方應用程式取得 HTTP 服務的有限存取權,方法是代表資源擁有者在資源擁有者和 HTTP 服務之間協調核准互動,或是讓第三方應用程式取得存取權,代表自身取得存取權。
JSON Web Token (或 JWT) 通常用於在已連結的應用程式之間共用宣告或斷言。Apigee 提供三種政策來支援 JWT。
Google Cloud Armor
用途:
- 限制驗證端點存取權
- 限制未經授權的權杖使用情形
針對歸類為「驗證機制失效」風險的安全漏洞,最好是在應用程式層級或透過其他控制項來緩解。不過,Google Cloud Armor 可協助限制攻擊面,或封鎖已知的攻擊途徑。
舉例來說,如果您的應用程式使用者群體有限,且這些使用者來自已知的 IP 位址或國家/地區,您可以建立安全性政策,將應用程式存取權限制在這些 IP 位址區塊或國家/地區的使用者。這項政策有助於減少來自這些地區以外端點的自動掃描。
如果其他安全機制偵測到密碼、金鑰或工作階段權杖遭到入侵,您可以使用自訂規則,封鎖含有這些參數的查詢字串要求。您可以使用 securityPolicy.patchRule
方法更新先前定義的規則。您可以使用 HTTP 負載平衡記錄的異常偵測機制,找出可能遭竊的權杖。您也可以在這些記錄中掃描常見的密碼,藉此偵測潛在的攻擊者。
您可以使用預先設定的 ModSecurity 規則集來防範常見的工作階段固定攻擊。如要使用規則集,請將預先定義的 evaluatePreconfiguredExpr('sessionfixation-stable')
規則加入安全性政策。
如果應用程式在查詢字串中包含密碼變更,您也可以使用與 request.query
屬性相符的自訂規則,禁止使用常見密碼。不過,如果可能,最好是在應用程式端實作這類檢查。
Identity-Aware Proxy (IAP)
用途:
- 集中控管存取權
- 支援雲端和內部部署
- 保護 HTTP 和 TCP 連線
- 情境感知存取權
IAP 與 HTTP(S) 負載平衡整合,因此您可以使用身分和情境,為應用程式建立安全的驗證和授權防火牆。在 Identity Platform 中佈建外部使用者,避免對外公開應用程式的驗證失敗 (詳情請參閱下一個章節)。
您也可以使用 Identity-Aware Proxy 保護管理介面,並透過 Identity and Access Management 或 Cloud Identity 驗證使用者,防止管理介面驗證失敗。任何嘗試存取工具的動作都會記錄驗證嘗試,接著進行授權檢查,確保已驗證的使用者可以存取要求的資源。
Identity Platform
用途:
- 驗證即服務
- 多重驗證
- 企業服務水準協議
- 支援多種通訊協定
- Google 帳戶保護機制資訊
Identity Platform 是 Google Cloud 客戶的 CIAM 平台。Identity Platform 可透過 SDK 和 API 提供多通訊協定支援,以便以服務形式提供安全的驗證機制。這項服務提供多重驗證、與第三方驗證服務整合,以及可稽核的活動追蹤功能。
reCAPTCHA
用途:
- 自動登入嘗試
- 內容刮除
- 憑證填充行為
- 詐欺交易
- 帳戶接管
- 假帳戶
- 洗錢
reCAPTCHA 會根據存取嘗試的風險等級,有效過濾機器人和其他形式的自動化流量和大量流量。您可以透過自動回饋微調網站專用模型。reCAPTCHA 會根據您的網站調整日後的分數。
Security Command Center
Security Command Center 提供三項服務,可協助您解決身分和驗證失敗問題:Event Threat Detection、Security Health Analytics 和 Web Security Scanner。
Event Threat Detection 支援下列用途:
- 暴力攻擊偵測
- IAM 濫用行為偵測
Event Threat Detection 會監控 Cloud Logging 串流,並在細微層級套用偵測邏輯和專屬威脅情報。Event Threat Detection 偵測到威脅時,會將發現項目寫入 Security Command Center 和所選專案的 Cloud Logging。下列事件類型可用於找出驗證失敗的情況:
- 安全殼層 (SSH) 暴力攻擊。偵測主機上成功的 SSH 暴力攻擊。
- 異常授權。偵測授予身分與存取權管理 (IAM) 使用者 (不在 Google Cloud 機構內) 的權限。
Security Health Analytics 支援下列用途:
- 強制執行 MFA/2FA
- API 金鑰防護
- 強制執行 API 金鑰輪替
Security Command Center 會監控多重驗證相容性和 API 金鑰的運作情況,協助您避免驗證機制中斷。您可以找出可疑要求,並封鎖或標記這些要求以便特別處理。
Web Security Scanner 支援下列用途:
- 工作階段 ID 外洩
Web Security Scanner 會掃描網路應用程式,找出工作階段 ID 外洩等安全漏洞,這類漏洞會讓其他人冒用或明確識別使用者。
Titan 安全金鑰
用途:
- 可防範網路詐騙的雙重驗證機制
- 行動裝置和電腦驗證
Titan 安全金鑰採用公開金鑰密碼編譯技術來驗證使用者的身分和登入頁面網址,即便您因受騙上當而提供使用者名稱和密碼,攻擊者也無法存取您的帳戶。
A08:軟體和資料完整性失敗
在軟體更新、處理機密資料,或 CI/CD 管道中的任何程序中,如果沒有進行完整性檢查,就可能發生軟體和資料完整性錯誤。
Artifact Registry
用途:
- 將構件集中在單一可信的位置
- 使用版本管理、安全漏洞掃描和核准工作流程
Artifact Registry 可讓貴機構集中管理容器映像檔和語言套件 (例如 Maven 和 npm)。這項工具可與現有的開發工具整合,並使用Artifact Analysis 為容器提供安全漏洞掃描服務。
二進位授權
用途:
- 確保只部署受信任的容器
二進位授權會驗證容器的完整性,確保系統只會部署受信任的容器映像檔。您可以建立政策,根據認證的存在或不存在來允許或拒絕部署。二進位授權會在叢集層級套用政策,因此您可以為不同環境設定不同的政策。這項區別可讓環境隨著接近正式作業環境,逐步滿足認證要求。
Cloud Asset Inventory
用途:
搜尋服務
存取分析工具
資料外洩最常見的媒介之一,就是孤立或未經授權的 IT 基礎架構。您可以分析雲端資產時間序列資料,找出沒有人維護的伺服器,以及具有過於廣泛共用規則的資料集。
設定即時通知,在發生非預期的資源佈建作業時發出警報,以便您採取適當的安全措施或授權。
Cloud Build
用途:
審查程式碼變更
執行測試
標準化建構部署作業
Cloud Build 可讓您建立建構設定,提供建構部署作業的操作說明,包括執行靜態分析和整合測試。
Google Cloud Armor
用途:
- 封鎖遠端程式碼執行
由於針對軟體和資料完整性的攻擊大多是針對特定應用程式,因此只有少數方法可用來減輕這類攻擊,例如使用 Google Cloud Armor 等網頁應用程式防火牆 (WAF)。OWASP 建議您不要接受來自不受信任來源的序列化物件。盡可能將接受這些物件的端點限制為一組可信任的 IP 位址,並使用類似下列的拒絕規則:
request.path.contains("/endpoint") && !(inIpRange(origin.ip, '1.2.3.4/32')
更改下列內容:
/endpoint
:接受序列化物件的端點路徑1.2.3.4/32
:應保留介面存取權的 IP 位址範圍。
如要降低針對使用遠端程式碼執行 (RCE) 的軟體和資料完整性所發動的典型攻擊,請使用預先定義的 RCE 攻擊防禦規則集。您可以使用 evaluatePreconfiguredExpr('rce-stable')
規則,封鎖針對 UNIX 和 Windows Shell 的常見 RCE 攻擊。
Juice Shop 針對不安全的反序動作提出挑戰中所述的 RCE 攻擊會在伺服器上執行 Node.js 中的函式和規則運算式。這類攻擊並不會遭到預先定義的 RCE 規則集和對應的 OWASP Modsecurity 規則封鎖,因此必須透過伺服器端的修補程式或自訂規則來減輕攻擊。
VirusTotal
用途:
- 掃描不受信任的資料
VirusTotal API 可讓您上傳檔案並掃描是否含有惡意軟體。您可以掃描圖片、文件、二進位檔和其他不受信任的資料,然後再進行處理,藉此排除特定類型的惡意輸入內容。
Security Command Center
Security Command Center 中的 Web Security Scanner 服務支援下列用途:
- 不安全的反序列化
Web Security Scanner 會掃描網頁應用程式,找出安全漏洞。舉例來說,如果您使用的是 Apache Struts 版本,而該版本會使應用程式容易遭受遠端指令插入攻擊,網路安全掃描器就會產生 STRUTS_INSECURE_DESERIALIZATION
檢測結果。
A09:安全性記錄和監控失敗
如果您未妥善記錄、監控或管理系統中的事件,攻擊者就可能對資料和軟體進行更深入、更持久的攻擊。
資料存取透明化控管機制
用途:
- 服務供應商存取權監控和稽核
- 存取事由
- 資源與方法識別
無法稽核雲端服務供應商的資料存取活動,可能會成為從內部部署系統遷移至雲端的阻礙。資料存取透明化控管機制可讓您驗證雲端服務供應商的資料存取活動,使得稽核控管機制更近似於內部部署系統具備的功能。您可以記錄每項存取要求的原因,包括相關支援票證的參照資料。資源與方法識別名稱會指出哪些管理員存取了哪些資源,以及執行哪些方法。當支援您服務的 Google 員工提出存取要求,您可以利用 Access Approval 予以核准或拒絕。
Apigee
用途:
- 將 Apigee 記錄匯出至 SIEM
- 使用 Apigee 監控 UI
- 遵循監控最佳做法
Apigee 提供多種方式執行記錄、監控、錯誤處理和稽核記錄:
- 記錄
- 您可以使用MessageLogging 政策,將記錄訊息傳送至 Splunk 或其他 syslog 端點。
- 您可以透過 Analytics API 擷取 API 分析資料,並將資料匯入或匯出至其他系統。
- 在 Private Cloud 專用 Edge 中,您可以使用「MessageLogging」政策寫入本機記錄檔案。您也可以取得每個執行中元件的記錄檔案。
- JavaScript 政策可用於同步或非同步傳送記錄訊息至 REST 記錄端點。
- 監控
- 處理錯誤
- Apigee 為 API Proxy 提供強大且多功能的錯誤處理機制。與 Java 程式擷取例外狀況的方式類似,API Proxy 可以擷取錯誤,並決定如何傳回適當的回應給用戶端。
- Apigee 的自訂錯誤處理機制可讓您新增功能,例如在發生錯誤時記錄訊息。
- 稽核記錄
Google Security Operations
用途:
- 威脅偵測
- 預警
資安團隊可以將安全遙測資料傳送至 Google Security Operations,讓您將強大的偵測規則套用至統一資料集。
Sensitive Data Protection
用途:
- 自動遮蓋機密資料
請在記錄串流中找出與法規遵循相關的敏感資訊,並在記錄中封存前,適當遮蓋或轉換這些資訊。舉例來說,錯誤訊息或核心傾印可能含有需要遮蔽的機密資訊,例如信用卡號碼或個人識別資訊。
Cloud Key Management Service
用途:
- 加密編譯金鑰要求事件記錄
- 存取事由
金鑰存取依據會記錄已說明的理由,以及核准或拒絕該要求的記錄,讓您瞭解每一項對加密金鑰提出的要求。
Cloud Logging
用途:
- 記錄檔匯總
- 記錄儲存空間
- 記錄搜尋
- 記錄檔分析
Cloud Logging 可讓您儲存、搜尋、分析、監控 Google Cloud 和 Amazon Web Services 的記錄資料與事件,並接收相關快訊。這項服務包含 BindPlane 服務的存取權,可用於從超過 150 個常見應用程式元件、內部部署系統和混合雲端系統收集記錄資料。
Cloud Monitoring
用途:
- 記錄監控
- 事件快訊
Cloud Monitoring 可讓您掌握雲端應用程式的效能、運作時間和整體健康狀態。提供監控資訊主頁、事件監控功能,以及透過多個管道發出快訊。
Cloud Source Repositories
用途:
- 程式碼變更歸屬
- 存取稽核記錄
運用 Cloud Source Repositories 產生的 Cloud 稽核記錄,深入瞭解在存放區中執行的動作,以及動作執行位置和時間。
Error Reporting
用途:
- 在 Cloud Logging 中擷取內部應用程式錯誤
- 在當機的運算執行個體外收集當機報告
應用程式內部錯誤可能代表安全性問題、功能故障或試圖規避安全防護機制。Error Reporting 可以針對運作中的雲端服務計算、分析及匯總當機事件資料。所有結果都集中顯示於單一的錯誤管理介面中,方便您進行排序或套用篩選條件。專屬頁面會顯示錯誤詳細資料,例如時序圖、發生次數、受影響的使用者人數、初次與最後一次發現錯誤的日期,以及經過整理的例外狀況堆疊追蹤。您可以選擇接收電子郵件和手機快訊,系統就會在發生新錯誤時立即傳送通知。
Google Cloud Armor
用途:
- 安全性政策記錄
- Monitoring 資訊主頁
- 針對流量異常狀況發出快訊
Google Cloud Armor 要求記錄是外部應用程式負載平衡器的 Cloud Logging 的一部分。如要存取記錄資訊 (例如哪個安全性政策規則與流量相符),請為已附加安全性政策的所有後端服務啟用記錄功能。在預覽模式中使用規則,即可測試規則並記錄結果,而不必強制執行效果。
Google Cloud Armor 也提供安全性政策的監控資訊主頁,讓您一覽所有安全性政策允許或拒絕的流量數量。Google Cloud Armor 會在 Security Command Center 中發布流量異常發現項目,例如允許流量激增或拒絕流量增加。
Google Cloud Armor 會自動寫入管理員活動稽核記錄,其中記錄修改資源設定或中繼資料的作業。這項服務也可以設定為寫入資料存取稽核記錄,其中包含讀取資源設定或中繼資料的 API 呼叫,以及建立、修改或讀取使用者所提供資源資料的使用者驅動 API 呼叫。
Identity Platform
用途:
- 管理員活動稽核記錄
- 資料存取稽核記錄
- 系統事件稽核記錄
- 政策遭拒的稽核記錄
- 驗證活動記錄
Identity Platform 是 Google Cloud 的 CIAM 平台,預設會記錄驗證活動。
啟用多項功能強大的稽核記錄,包括管理員活動、資料存取、系統事件和拒絕的驗證嘗試。
Security Command Center
用途:
- 警示監控
- 威脅管理
- 安全漏洞掃描報表
- 法規遵循監控
- 資產監控
- 安全性掃描發現項目
您可以透過法規遵循資訊主頁,持續監控法規遵循情況,並運用 PCI-DSS、CIS Google Cloud Computing Foundations Benchmark 等控制項。「資產」頁面會詳細顯示貴機構中的所有Google Cloud 資源 (稱為「資產」)。這個頁面可讓您查看整個機構的資產,或是篩選特定專案中的資產,依據資產類型或變更類型進行篩選。最後,您可以查看所有機構資產的詳細發現項目清單,瞭解潛在的安全性風險。
此外,Security Command Center 的 Event Threat Detection 服務支援下列用途:
- 暴力
- 加密貨幣挖礦
- IAM 濫用
- 惡意軟體
- 網路詐騙
Event Threat Detection 會監控 Cloud Logging 串流,並在細微層級套用偵測邏輯和專屬威脅情報。Event Threat Detection 會找出記錄中的重大項目,並將這些項目提報給審查人員。Event Threat Detection 偵測到威脅時,會將發現項目寫入 Security Command Center 和 Cloud Logging 專案。
A10:伺服器端偽造要求 (SSRF)
SSRF 攻擊發生在攻擊者強制讓有安全漏洞的伺服器觸發對第三方伺服器或內部資源的不當惡意要求。如果網路應用程式擷取遠端資源時未驗證使用者提供的網址,就可能發生 SSRF 缺失。
Apigee
用途:
- 使用 LFI 或 RFI 封鎖 SSRF 攻擊
Apigee 內建 XML 和 JSON 剖析器,可使用 XPath 或 JSONPath 擷取資料。這項政策包含 XMLThreatProtection 政策,可防範惡意 XML 酬載,以及 JSONThreatProtection 政策,可防範惡意 JSON 酬載。
Apigee 的ExtractVariables 政策可讓您從要求或回應中擷取內容,並將該內容指派給變數。您可以擷取訊息的任何部分,包括標頭、URI 路徑、JSON 和 XML 酬載、表單參數和查詢參數。這項政策會將文字模式套用至郵件內容,並在找到相符項目時,設定含有指定郵件內容的變數。
Google Cloud Armor
用途:
- 使用 LFI 或 RFI 篩除 SSRF 攻擊
由於 SSRF 攻擊可能相當複雜,且會以不同形式出現,因此網頁應用程式防火牆的緩解措施相當有限。您可以透過修補 XML 或 JSON 剖析器、禁止外部實體,以及將公開網站伺服器上的 XML 或 JSON 資料傳輸量降至最低,進一步降低攻擊風險。不過,Google Cloud Armor 仍可根據應用程式和攻擊類型,防範資料外洩和其他影響。
雖然 OWASP ModeSecurity 核心規則集中沒有任何規則專門防範 SSRF 攻擊,但本機檔案包含 (LFI) 和遠端檔案包含 (RFI) 規則可協助防範部分這類攻擊。如要防止攻擊者擷取伺服器上的本機檔案,請使用 Google Cloud Armor 安全性政策中的 evaluatePreconfiguredExpr('lfi-stable')
規則。
SSRF Juice Shop 挑戰賽使用預先設定的遠端檔案置入 (RFI) 或本機檔案置入 (LFI) 規則組合,藉此封鎖網址或路徑周遊的置入行為,進而減輕這類攻擊的影響。例如,下列規則會啟用兩組規則:
evaluatePreconfiguredExpr('lfi-stable') ||
evaluatePreconfiguredExpr('rfi-stable')
實作這類規則後,SSRF 挑戰的解決方案也會停止運作。
VPC Service Controls
用途:
- 用於區隔伺服器的網路範圍
為降低 SSRF 攻擊的影響,您可以使用 VPC Service Controls 建立邊界,將伺服器與機構中的其他資源區隔開來。這些範圍可防止資料外洩。在強制模式下執行時,除非滿足邊界所需的進入和離開規則條件,否則 API 對受限制服務的請求不會跨越邊界。
虛擬私有雲 (VPC) 防火牆
用途:
- 強制執行「預設拒絕」防火牆政策或網路存取控制規則,封鎖所有非必要的內部網路流量。
虛擬私人雲端防火牆適用於專案和虛擬私人雲端網路的傳入和傳出流量。您可以建立防火牆規則,封鎖所有流量,只允許您要允許的流量。詳情請參閱虛擬私有雲防火牆規則總覽。
Security Command Center
Security Command Center 中的 Web Security Scanner 服務支援下列用途:
- 網頁應用程式監控
Web Security Scanner 會掃描網頁應用程式,找出安全漏洞。舉例來說,如果應用程式容易遭到伺服器端要求偽造攻擊,Web Security Scanner 就會產生 SERVER_SIDE_REQUEST_FORGERY
檢測結果。
後續步驟
- 在 Google Cloud上提供網頁應用程式和 API 防護
- OWASP Top 10
- Google Cloud 安全性公告
- Google Cloud 安全性最佳做法中心
- 法規遵循服務
- Google Cloud的 CIS 基準
- Security Command Center
- Apigee
- Google Cloud Armor
- 所有 Google Cloud 安全性產品
- 探索 Google Cloud 的參考架構、圖表和最佳做法。歡迎瀏覽我們的雲端架構中心。