Create the VPC network

Check my progress

/ 20

Set up the test application

Check my progress

/ 10

Set up the Cloud load balancer component- instance group

Check my progress

/ 20

Set up the Cloud load balancer component- health check

Check my progress

/ 30

Create the Cloud Armor security policy

Check my progress

/ 20

This lab may incorporate AI tools to support your learning.

GSP879

Google Cloud 自學實驗室

總覽

Google Cloud Armor 是 Google 的企業級邊緣網路安全解決方案,可提供 DDoS 防護、強制執行 WAF 規則,並實現大規模的自動調整管理功能。

Cloud Armor 擴充了預先設定的 WAF 規則集,可防範 OWASP 前 10 大網頁應用程式安全漏洞。這些規則集以 OWASP Modsecurity 核心規則集 3.0.2 版為基礎,可防範最常見的部分網頁應用程式安全風險,包括本機檔案包含 (LFI)、遠端檔案包含 (RFI)、遠端程式碼執行 (RCE) 等。

在本實驗室中,您將瞭解如何使用 Google Cloud Armor WAF 規則,防範一些常見的安全漏洞。

課程內容

本實驗室的內容包括:

  • 設定執行個體群組和全域負載平衡器,為服務提供支援
  • 設定 Cloud Armor 安全性政策,並使用預先設定的 WAF 規則,防範 LFI、RCE、掃描工具、通訊協定攻擊和工作階段固定攻擊
  • 透過觀察記錄,驗證 Cloud Armor 是否成功防範攻擊

Cloud Armor WAF 規則拓撲

OWASP Juice Shop 應用程式在設計上內含 OWASP 前 10 大安全漏洞的實例,非常適合用於安全訓練和提升意識。攻擊者可能會利用這點進行測試。在本實驗室中,您會使用該應用程式模擬幾種攻擊,再透過 Cloud Armor WAF 規則進行防護。應用程式前端的 Google Cloud 負載平衡器會套用 Cloud Armor 安全性政策和規則。這項服務在公開網際網路上提供,因此幾乎隨時隨地都能存取,並透過 Cloud Armor 和虛擬私有雲防火牆規則確保安全性。

設定和需求

瞭解以下事項後,再點選「Start Lab」按鈕

請詳閱以下操作說明。實驗室活動會計時,且中途無法暫停。點選「Start Lab」後就會開始計時,顯示可使用 Google Cloud 資源的時間。

您將在真正的雲端環境完成實作實驗室活動,而不是模擬或示範環境。為此,我們會提供新的暫時憑證,供您在實驗室活動期間登入及存取 Google Cloud。

為了順利完成這個實驗室,請先確認:

  • 可以使用標準的網際網路瀏覽器 (Chrome 瀏覽器為佳)。
注意事項:請使用無痕模式 (建議選項) 或私密瀏覽視窗執行此實驗室,這可以防止個人帳戶和學員帳戶之間的衝突,避免個人帳戶產生額外費用。
  • 是時候完成實驗室活動了!別忘了,活動一旦開始將無法暫停。
注意事項:務必使用實驗室專用的學員帳戶。如果使用其他 Google Cloud 帳戶,可能會產生額外費用。

如何開始研究室及登入 Google Cloud 控制台

  1. 點選「Start Lab」按鈕。如果實驗室會產生費用,畫面上會出現選擇付款方式的對話方塊。左側的「Lab Details」窗格會顯示下列項目:

    • 「Open Google Cloud console」按鈕
    • 剩餘時間
    • 必須在這個研究室中使用的臨時憑證
    • 完成這個實驗室所需的其他資訊 (如有)
  2. 點選「Open Google Cloud console」;如果使用 Chrome 瀏覽器,也能按一下滑鼠右鍵,選取「在無痕視窗中開啟連結」

    接著,實驗室會啟動相關資源,並開啟另一個分頁,顯示「登入」頁面。

    提示:您可以在不同的視窗中並排開啟分頁。

    注意:如果頁面中顯示「選擇帳戶」對話方塊,請點選「使用其他帳戶」
  3. 如有必要,請將下方的 Username 貼到「登入」對話方塊。

    {{{user_0.username | "Username"}}}

    您也可以在「Lab Details」窗格找到 Username。

  4. 點選「下一步」

  5. 複製下方的 Password,並貼到「歡迎使用」對話方塊。

    {{{user_0.password | "Password"}}}

    您也可以在「Lab Details」窗格找到 Password。

  6. 點選「下一步」

    重要事項:請務必使用實驗室提供的憑證,而非自己的 Google Cloud 帳戶憑證。 注意:如果使用自己的 Google Cloud 帳戶來進行這個實驗室,可能會產生額外費用。
  7. 按過後續的所有頁面:

    • 接受條款及細則。
    • 由於這是臨時帳戶,請勿新增救援選項或雙重驗證機制。
    • 請勿申請免費試用。

Google Cloud 控制台稍後會在這個分頁開啟。

注意:如要使用 Google Cloud 產品和服務,請點選「導覽選單」,或在「搜尋」欄位輸入服務或產品名稱。「導覽選單」圖示和搜尋欄位

啟動 Cloud Shell

Cloud Shell 是搭載多項開發工具的虛擬機器,提供永久的 5 GB 主目錄,而且在 Google Cloud 中運作。Cloud Shell 提供指令列存取權,方便您使用 Google Cloud 資源。

  1. 點按 Google Cloud 控制台頂端的「啟用 Cloud Shell」圖示 「啟動 Cloud Shell」圖示

  2. 系統顯示視窗時,請按照下列步驟操作:

    • 繼續操作 Cloud Shell 視窗。
    • 授權 Cloud Shell 使用您的憑證發出 Google Cloud API 呼叫。

連線建立完成即代表已通過驗證,而且專案已設為您的 Project_ID。輸出內容中有一行文字,宣告本工作階段的 Project_ID

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

gcloud 是 Google Cloud 的指令列工具,已預先安裝於 Cloud Shell,並支援 Tab 鍵自動完成功能。

  1. (選用) 您可以執行下列指令來列出使用中的帳戶:
gcloud auth list
  1. 點按「授權」

輸出內容:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (選用) 您可以使用下列指令來列出專案 ID:
gcloud config list project

輸出內容:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} 注意:如需 gcloud 的完整說明,請前往 Google Cloud 參閱 gcloud CLI 總覽指南

事前準備

  • 在 Cloud Shell 設定專案 ID:
gcloud config list project export PROJECT_ID=$(gcloud config get-value project) echo $PROJECT_ID gcloud config set project $PROJECT_ID

工作 1:建立虛擬私有雲網路

  • 在 Cloud Shell 輸入下列指令,建立虛擬私有雲網路:
gcloud compute networks create {{{project_0.startup_script.network_name| Network Name}}} --subnet-mode custom Created NAME SUBNET_MODE BGP_ROUTING_MODE {{{project_0.startup_script.network_name| Network Name}}} CUSTOM REGIONAL

建立子網路

  • 在 Cloud Shell 輸入下列指令,建立子網路:
gcloud compute networks subnets create {{{project_0.startup_script.subnet_name| Subnet Name}}} \ --network {{{project_0.startup_script.network_name| Network Name}}} --range 10.0.0.0/24 --region {{{project_0.startup_script.region_1| Region}}} Created NAME REGION NETWORK RANGE {{{project_0.startup_script.subnet_name| Subnet Name}}} {{{project_0.startup_script.region_1| Region}}} {{{project_0.startup_script.network_name| Network Name}}} 10.0.0.0/24

建立虛擬私有雲防火牆規則

建立虛擬私有雲和子網路後,請設定幾項防火牆規則。

  • 第一項防火牆規則取名為 allow-js-site,允許所有 IP 位址透過通訊埠 3000 存取測試應用程式網站的外部 IP。
  • 第二項防火牆規則取名為 allow-health-check 允許負載平衡器來源 IP 進行健康狀態檢查。
  1. 在 Cloud Shell 輸入下列指令來建立防火牆規則,允許所有 IP 位址存取應用程式:
gcloud compute firewall-rules create {{{project_0.startup_script.firewall_rule| Firewall Name}}} --allow tcp:3000 --network {{{project_0.startup_script.network_name| Network Name}}}

輸出內容:

Creating firewall...done. NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED {{{project_0.startup_script.firewall_rule| Firewall Name}}} {{{project_0.startup_script.network_name| Network Name}}} INGRESS 1000 tcp:3000 False
  1. 在 Cloud Shell 輸入下列指令來建立防火牆規則,允許來自 Google 健康狀態檢查位址範圍的流量:
gcloud compute firewall-rules create {{{project_0.startup_script.firewall_rule1| Firewall Name1}}} \ --network={{{project_0.startup_script.network_name| Network Name}}} \ --action=allow \ --direction=ingress \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --target-tags=allow-healthcheck \ --rules=tcp

輸出內容:

Creating firewall...done. NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED {{{project_0.startup_script.firewall_rule1| Firewall_Name1}}} {{{project_0.startup_script.network_name| Network Name}}} INGRESS 1000 tcp False

點選「Check my progress」,確認目標已達成。 建立虛擬私有雲網路

工作 2:設定測試應用程式

建立測試應用程式,在本例中為 OWASP Juice Shop 網路伺服器。建立運算執行個體時,您會使用容器映像檔,確保伺服器具備適當的服務。這個伺服器會部署在 ,並加上允許健康狀態檢查的網路標記。

建立 OWASP Juice Shop 應用程式

  • 使用知名的開放原始碼 OWASP Juice Shop 應用程式來模擬具備安全漏洞的環境。您也能在 OWASP 網站上,透過此應用程式進行 OWASP 安全性挑戰。
gcloud compute instances create-with-container {{{project_0.startup_script.vm_instance| vm_instance}}} --container-image bkimminich/juice-shop \ --network {{{project_0.startup_script.network_name| Network Name}}} \ --subnet {{{project_0.startup_script.subnet_name| Subnet Name}}} \ --private-network-ip=10.0.0.3 \ --machine-type n1-standard-2 \ --zone {{{project_0.startup_script.zone| Zone}}} \ --tags allow-healthcheck

輸出內容:

NAME ZONE MACHINE_TYPE PREEMPTIBLE {{{project_0.startup_script.vm_instance| vm_instance}}} {{{project_0.startup_script.zone| Zone}}} n1-standard-2 INTERNAL_IP EXTERNAL_IP STATUS 10.0.0.3 RUNNING

點選「Check my progress」,確認目標已達成。 設定測試應用程式

設定 Cloud 負載平衡器元件:執行個體群組

  1. 在 Cloud Shell 輸入下列指令,建立非代管執行個體群組:
gcloud compute instance-groups unmanaged create {{{project_0.startup_script.vm_instance_group| Instance Group}}} \ --zone={{{project_0.startup_script.zone| Zone}}}

輸出內容:

NAME LOCATION SCOPE NETWORK MANAGED INSTANCES {{{project_0.startup_script.vm_instance_group| Instance Group}}} {{{project_0.startup_script.zone| Zone}}} zone 0
  1. 將 Juice Shop Google Compute Engine (GCE) 執行個體新增至非代管執行個體群組:
gcloud compute instance-groups unmanaged add-instances {{{project_0.startup_script.vm_instance_group| Instance Group}}} \ --zone={{{project_0.startup_script.zone| Zone}}} \ --instances={{{project_0.startup_script.vm_instance| VM Instance}}}

輸出內容:

Updated [https://www.googleapis.com/compute/v1/projects//zones/{{{project_0.startup_script.zone| Zone}}}/instanceGroups/{{{project_0.startup_script.vm_instance_group| Instance_Group}}}].
  1. 將已命名通訊埠設為 Juice Shop 應用程式的通訊埠:
gcloud compute instance-groups unmanaged set-named-ports \ {{{project_0.startup_script.vm_instance_group| Instance Group}}} \ --named-ports=http:3000 \ --zone={{{project_0.startup_script.zone| Zone}}}

輸出內容:

Updated [https://www.googleapis.com/compute/v1/projects//zones/{{{project_0.startup_script.zone| Zone}}}/instanceGroups/{{{project_0.startup_script.vm_instance_group| Instance Group}}}].

點選「Check my progress」,確認目標已達成。 設定 Cloud 負載平衡器元件:執行個體群組

設定 Cloud 負載平衡器元件:健康狀態檢查

建立非代管執行個體群組後,接著來設定健康狀態檢查、後端服務、網址對應、目標 Proxy 和轉送規則。

  • 在 Cloud Shell 輸入下列指令,為 Juice Shop 服務的通訊埠建立健康狀態檢查:
gcloud compute health-checks create tcp tcp-port-3000 \ --port 3000

輸出內容:

Created NAME PROTOCOL tcp-port-3000 TCP

設定 Cloud 負載平衡器元件:後端服務

  1. 在 Cloud Shell 輸入下列指令,建立後端服務參數:
gcloud compute backend-services create juice-shop-backend \ --protocol HTTP \ --port-name http \ --health-checks tcp-port-3000 \ --enable-logging \ --global

輸出內容:

NAME BACKENDS PROTOCOL juice-shop-backend HTTP
  1. 將 Juice Shop 執行個體群組新增至後端服務:
gcloud compute backend-services add-backend juice-shop-backend \ --instance-group={{{project_0.startup_script.vm_instance_group| Instance Group}}} \ --instance-group-zone={{{project_0.startup_script.zone| Zone}}} \ --global

輸出內容:

Updated [https://www.googleapis.com/compute/v1/projects/cythom-host1/global/backendServices/juice-shop-backend].

設定 Cloud 負載平衡器元件:網址對應

  • 在 Cloud Shell 輸入下列指令來建立網址對應,將傳入要求傳送至後端:
gcloud compute url-maps create juice-shop-loadbalancer \ --default-service juice-shop-backend

輸出內容:

NAME DEFAULT_SERVICE juice-shop-loadbalancer backendServices/juice-shop-backend

設定 Cloud 負載平衡器元件:目標 Proxy

  • 在 Cloud Shell 輸入下列指令來建立目標 Proxy,將傳入要求轉送至網址對應:
gcloud compute target-http-proxies create juice-shop-proxy \ --url-map juice-shop-loadbalancer

輸出內容:

NAME URL_MAP juice-shop-proxy juice-shop-loadbalancer

設定 Cloud 負載平衡器元件:轉送規則

  • 在 Cloud Shell 輸入下列指令,為負載平衡器建立轉送規則:
gcloud compute forwarding-rules create juice-shop-rule \ --global \ --target-http-proxy=juice-shop-proxy \ --ports=80

輸出內容:

Created [https://www.googleapis.com/compute/v1/projects/cythom-host1/global/forwardingRules/juice-shop-rule].

確認 Juice Shop 服務已上線

  1. 在 Cloud Shell 執行下列指令:
PUBLIC_SVC_IP="$(gcloud compute forwarding-rules describe juice-shop-rule --global --format="value(IPAddress)")" echo $PUBLIC_SVC_IP

輸出內容:

<public VIP of service>

請稍候幾分鐘再繼續,否則可能會收到「HTTP/1.1 404 Not Found」回應。

  1. 在 Cloud Shell 執行下列指令:
curl -Ii http://$PUBLIC_SVC_IP

輸出內容:

HTTP/1.1 200 OK <...>

您也能前往瀏覽器查看 Juice Shop!

「Welcome to OWASP Juice Shop!」頁面

現在,您可以開始挖掘 Juice Shop 的安全漏洞,並使用 Cloud Armor WAF 規則集加以防範。

點選「Check my progress」,確認目標已達成。 設定 Cloud 負載平衡器元件 - 健康狀態檢查

工作 3:模擬已知的安全漏洞攻擊

在本實驗室中,您會以簡單幾步驟,比對 Cloud Armor WAF 規則生效前後的差異。

觀察 LFI 安全漏洞:路徑遍歷

「本機檔案包含」是指利用要求中缺乏輸入驗證機制的漏洞,查看伺服器上的檔案,進而可能洩漏機密資料。以下會顯示路徑遍歷攻擊確實可行。使用瀏覽器或 curl,確認應用程式提供的現有路徑。

  1. 在 Cloud Shell 執行下列指令:
curl -Ii http://$PUBLIC_SVC_IP/ftp

輸出內容:

HTTP/1.1 200 OK <...>

可以看到路徑遍歷也行得通。

  1. 在 Cloud Shell 執行下列指令:
curl -Ii http://$PUBLIC_SVC_IP/ftp/../

輸出內容:

HTTP/1.1 200 OK <...>

觀察 RCE 安全漏洞

「遠端程式碼執行」包括各種 UNIX 和 Windows 指令注入情境,讓攻擊者能執行通常限特權使用者下達的 OS 指令。以下示範傳入並執行簡單的 ls 指令。

  • 在 Cloud Shell 執行下列指令:
curl -Ii http://$PUBLIC_SVC_IP/ftp?doc=/bin/ls

輸出內容:

HTTP/1.1 200 OK <...>

移除 curl 旗標即可查看完整輸出內容。

觀察知名掃描工具的存取行為

商業和開放原始碼掃描應用程式的用途各異,包括找出安全漏洞。這些工具會使用眾所皆知的 User-Agent 和其他標頭。看看 curl 如何搭配知名的 User-Agent 標頭運作。

  • 在 Cloud Shell 中:
curl -Ii http://$PUBLIC_SVC_IP -H "User-Agent: blackwidow"

輸出內容:

HTTP/1.1 200 OK <...>

觀察通訊協定攻擊:HTTP 分割

部分網路應用程式會運用使用者輸入內容,在回應中生成標頭。如果應用程式未正確過濾輸入內容,攻擊者可能會利用 %0d%0a 序列 (用來斷行的 CRLF 序列) 來汙染輸入參數。

因此,任何恰巧剖析該回應的經手節點 (例如中介 Proxy 伺服器) 都可能將其解讀為兩個回應,並可能在後續要求中提供不實內容。在輸入參數中插入 %0d%0a 序列,可能會導致系統提供誤導性網頁。

  • 在 Cloud Shell 執行下列指令:
curl -Ii "http://$PUBLIC_SVC_IP/index.html?foo=advanced%0d%0aContent-Length:%200%0d%0a%0d%0aHTTP/1.1%20200%20OK%0d%0aContent-Type:%20text/html%0d%0aContent-Length:%2035%0d%0a%0d%0a<html>Sorry,%20System%20Down</html>"

輸出內容:

HTTP/1.1 200 OK <...>

觀察工作階段固定攻擊

  • 在 Cloud Shell 中:
curl -Ii http://$PUBLIC_SVC_IP -H session_id=X

輸出內容:

HTTP/1.1 200 OK <...>

工作 4:定義 Cloud Armor WAF 規則

  1. 在 Cloud Shell 執行下列指令,列出預先設定的 WAF 規則:
gcloud compute security-policies list-preconfigured-expression-sets EXPRESSION_SET Sqli-canary RULE_ID owasp-crs-v030001-id942110-sqli owasp-crs-v030001-id942120-sqli <...>
  1. 在 Cloud Shell 執行下列指令,建立 Cloud Armor 安全性政策:
gcloud compute security-policies create {{{project_0.startup_script.policy_name| Policy Name}}} \ --description "Block with OWASP ModSecurity CRS"
  1. 在 Cloud Shell 中,更新安全性政策預設規則。
注意:預設規則的優先順序值為 2147483647。 gcloud compute security-policies rules update 2147483647 \ --security-policy {{{project_0.startup_script.policy_name| Policy Name}}} \ --action "deny-403"
  1. 由於預設規則設為拒絕動作,您必須允許來自您 IP 的存取行為。請找出您的公開 IP (可利用 curl、ipmonkey、whatismyip 等工具查出):
MY_IP=$(curl ifconfig.me)
  1. 新增第一項規則,允許您 IP 的存取行為 (請在下方插入您的 IP):
gcloud compute security-policies rules create 10000 \ --security-policy {{{project_0.startup_script.policy_name| Policy Name}}} \ --description "allow traffic from my IP" \ --src-ip-ranges "$MY_IP/32" \ --action "allow"
  1. 在 Cloud Shell 更新安全性政策,封鎖 LFI 攻擊。

套用 OWASP ModSecurity 核心規則集,防止本機檔案包含的路徑遍歷攻擊。

gcloud compute security-policies rules create 9000 \ --security-policy {{{project_0.startup_script.policy_name| Policy Name}}} \ --description "block local file inclusion" \ --expression "evaluatePreconfiguredExpr('lfi-stable')" \ --action deny-403
  1. 在 Cloud Shell 更新安全性政策,封鎖遠端程式碼執行 (RCE)。

根據 OWASP ModSecurity 核心規則集,套用可尋找 RCE (包括指令注入) 的規則。系統會偵測並封鎖常見的 OS 指令。

gcloud compute security-policies rules create 9001 \ --security-policy {{{project_0.startup_script.policy_name| Policy Name}}} \ --description "block rce attacks" \ --expression "evaluatePreconfiguredExpr('rce-stable')" \ --action deny-403
  1. 更新安全性政策,封鎖安全性掃描工具。

套用 OWASP ModSecurity 核心規則集,封鎖知名的安全性掃描工具、指令碼 HTTP 用戶端和網路檢索器。

gcloud compute security-policies rules create 9002 \ --security-policy {{{project_0.startup_script.policy_name| Policy Name}}} \ --description "block scanners" \ --expression "evaluatePreconfiguredExpr('scannerdetection-stable')" \ --action deny-403
  1. 在 Cloud Shell 更新安全性政策,封鎖通訊協定攻擊。

根據 OWASP ModSecurity 核心規則集,套用規則來尋找回車字元 (CR) %0d 和換行字元 (LF) %0a,以及 HTTP 要求走私等其他類型的通訊協定攻擊。

gcloud compute security-policies rules create 9003 \ --security-policy {{{project_0.startup_script.policy_name| Policy Name}}} \ --description "block protocol attacks" \ --expression "evaluatePreconfiguredExpr('protocolattack-stable')" \ --action deny-403
  1. 更新安全性政策,封鎖工作階段固定攻擊。

根據 OWASP ModSecurity 核心規則集,使用 Cloud Shell 套用下列規則:

gcloud compute security-policies rules create 9004 \ --security-policy {{{project_0.startup_script.policy_name| Policy Name}}} \ --description "block session fixation attacks" \ --expression "evaluatePreconfiguredExpr('sessionfixation-stable')" \ --action deny-403
  1. 將安全性政策附加至後端服務:
gcloud compute backend-services update juice-shop-backend \ --security-policy {{{project_0.startup_script.policy_name| Policy Name}}} \ --global

規則可能需要一些時間才能生效 (但不超過 10 分鐘)。

  1. 經過足夠的時間後,請測試先前模擬的安全漏洞攻擊,以便在下一步確認 Cloud Armor WAF 規則的強制執行狀況。

點選「Check my progress」,確認目標已達成。 建立 Cloud Armor 安全性政策

使用 OWASP ModSecurity 核心規則集觀察 Cloud Armor 保護機制

  1. 在 Cloud Shell 確認 LFI 安全漏洞已受到防範:
curl -Ii http://$PUBLIC_SVC_IP/?a=../

輸出內容:

HTTP/1.1 403 Forbidden <...>
  1. 在 Cloud Shell 確認 RCE 攻擊已緩解:
curl -Ii http://$PUBLIC_SVC_IP/ftp?doc=/bin/ls

輸出內容:

HTTP/1.1 403 Forbidden <..>
  1. 在 Cloud Shell 中,確認知名掃描工具偵測結果。
curl -Ii http://$PUBLIC_SVC_IP -H "User-Agent: blackwidow"

輸出內容:

HTTP/1.1 403 Forbidden <..>
  1. 在 Cloud Shell 確認通訊協定攻擊已緩解。

根據 OWASP ModSecurity 核心規則集 3.0.2 版,通訊協定攻擊的防範方式如下:

curl -Ii "http://$PUBLIC_SVC_IP/index.html?foo=advanced%0d%0aContent-Length:%200%0d%0a%0d%0aHTTP/1.1%20200%20OK%0d%0aContent-Type:%20text/html%0d%0aContent-Length:%2035%0d%0a%0d%0a<html>Sorry,%20System%20Down</html>"

輸出內容:

HTTP/1.1 403 Forbidden <..>
  1. 在 Cloud Shell 中,確認已抵擋工作階段固定攻擊:
curl -Ii http://$PUBLIC_SVC_IP/?session_id=a

輸出內容:

HTTP/1.1 403 Forbidden <..>

工作 5:查看 Cloud Armor 安全性規則

建立安全性政策後,請查看已設定的規則。

「規則」分頁,列出多項規則和說明

系統會依優先順序評估規則:編號越小,優先順序越高。一旦觸發規則,系統就不會繼續處理編號較大的規則。

  • 優先順序 9000:封鎖 LFI (本機檔案包含)
  • 優先順序 9001:封鎖 RCE (遠端程式碼執行/指令注入)
  • 優先順序 9002:封鎖偵測到的掃描工具
  • 優先順序 9003:封鎖通訊協定攻擊,例如 HTTP 分割和 HTTP 走私
  • 優先順序 9004:封鎖工作階段固定攻擊
  • 優先順序 10000:允許您的 IP 存取網站
  • 優先順序 Default:拒絕。
注意:「允許您的 IP」規則的優先順序編號最大,這可讓您存取網站,同時確保系統仍能攔截攻擊行為。

工作 6:觀察 Cloud Armor 安全性政策記錄

在 Cloud Armor 控制台頁面,查看安全性政策的詳細資料,然後依序點選「記錄」分頁標籤和「查看政策記錄檔」連結,即可前往 Cloud Logging 頁面。系統會根據您感興趣的安全性政策自動進行過濾,例如:resource.type:(http_load_balancer) AND jsonPayload.enforcedSecurityPolicy.name:。觀察 403 錯誤回應代碼,展開記錄詳細資料,查看強制執行的安全性政策名稱、相符的欄位值,以及預先設定的運算式 ID (或簽章 ID)。

系統會根據您感興趣的安全性政策自動進行過濾,例如:resource.type:(http_load_balancer) AND jsonPayload.enforcedSecurityPolicy.name:()。

  • 觀察 403 錯誤回應代碼,展開記錄詳細資料,查看強制執行的安全性政策名稱、相符的欄位值,以及預先設定的運算式 ID (或簽章 ID)。

下圖顯示本實驗室所設定的強制執行安全性政策記錄範例。

LFI 記錄 LFI 記錄

RCE 記錄 RCE 記錄

掃描工具偵測記錄 掃描工具偵測記錄

通訊協定攻擊記錄 通訊協定攻擊記錄

工作階段固定攻擊記錄 工作階段固定攻擊記錄

恭喜!

您已成功使用 Google Cloud Armor WAF 規則,防範部分常見的安全漏洞。

使用手冊上次更新日期:2025 年 5 月 12 日

實驗室上次測試日期:2025 年 5 月 12 日

Copyright 2026 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。

Before you begin

  1. Labs create a Google Cloud project and resources for a fixed time
  2. Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
  3. On the top left of your screen, click Start lab to begin

Use private browsing

  1. Copy the provided Username and Password for the lab
  2. Click Open console in private mode

Sign in to the Console

  1. Sign in using your lab credentials. Using other credentials might cause errors or incur charges.
  2. Accept the terms, and skip the recovery resource page
  3. Don't click End lab unless you've finished the lab or want to restart it, as it will clear your work and remove the project

This content is not currently available

We will notify you via email when it becomes available

Great!

We will contact you via email if it becomes available

One lab at a time

Confirm to end all existing labs and start this one

Use private browsing to run the lab

Using an Incognito or private browser window is the best way to run this lab. This prevents any conflicts between your personal account and the Student account, which may cause extra charges incurred to your personal account.

Complete this quick step to start your lab.