實驗室概觀
歡迎使用 AWS Web Application Firewall Challenge Lab!AWS WAF 是一種 Web 應用程式防火牆,可協助保護 Web 應用程式或 API 不受常見的 Web 入侵程式和機器人侵擾,使可用性和安全不受影響,且不耗用過多資源。AWS WAF 使您能夠建立控制機器人流量和封鎖常見攻擊模式 (如 SQL Injections (SQLi) 和跨網站指令碼 (XSS)) 的安全規則,從而控制流量到達應用程式的方式。您還可以自訂規則,以篩選出特定的流量模式。
在此實驗室中,您是一名安全工程師,為一家剛推出線上果汁店的公司工作。您已被要求在其 Web 應用程式中找出並緩解 SQLi 和 XSS 漏洞。
不同於包含了詳細逐步指示的傳統實驗室,此 Challenge Lab 為您提供目標和最低限度的指導。您將需要應用您的安全知識和常見的 Web 開採來完成任務。
在第一組任務中,為您呈現一個不安全的 Web 應用程式,並提示您使用 SQL Injections 和跨網站指令碼攻擊來開採該應用程式。如果您遇到困難,請展開 Hint (提示) 和 Solution (解決方案) 選單,以協助進行攻擊。
在第二組任務中,您部署並設定 AWS WAF,其中具有一系列受管和自訂規則,旨在緩解您先前發動的攻擊。
目標
此實驗室結束後,您將能夠執行下列動作:
- 部署簡單的 SQLi 和 XSS 攻擊來危害 Web 應用程式。
- 在 AWS WAF 中建立 Web 存取控制清單 (Web ACL),並使其與 Application Load Balancer 建立關聯。
- 將 AWS 受管規則群組套用到 Web ACL。
- 將自訂規則套用到 Web ACL。
技術知識先決條件
此實驗需要您具備 SQL 的進階知識,以及深刻了解網路安全、常用的 Web 通訊協定,以及 RESTful 架構。您應該也能使用遠端桌面,在 Windows Server 環境中自在地工作。
系統需求
此實驗室的基本需求:
- Google Chrome
持續時間
此實驗室需要大約 60 分鐘的時間來完成。
圖示圖例
此實驗室使用各種圖示提醒您注意不同類型的指示和注意事項。下列清單說明各圖示的用途:
- 命令:您必須執行的命令。
- 預期輸出:您可使用的範例輸出,以驗證命令的輸出內容或經過編輯的檔案。
- 注意:提示、秘訣或重要指引。
- 了解詳情:具體指明可取得更多資訊的位置。
- 提醒:有特殊影響或重要性的資訊 (如果您錯過此資訊,不會對設備或資料造成太大的問題,但可能會導致需要重複特定步驟)。
- 警告:不可逆且可能造成命令或程序失敗的動作 (包含設定後無法變更的警告)。
- 考慮:暫停一下,思考如何將某概念應用在自有環境,或與他人討論目前這個主題。
- 安全:納入安全最佳實務的機會。
- 提示:問題或挑戰的提示。
- 答案:問題或挑戰的答案。
實驗室環境
下圖顯示實驗室環境的基本架構:
影像描述:上圖描述一個資料流程。流量從稱為 Pen Testing Host 的 EC2 執行個體通過 AWS WAF,然後到達位於 Application Load Balancer 前面的 Cloudfront 分佈。ALB 會將請求轉送到自動擴展群組。
下列清單詳細描述圖表中最重要的資源:
- 具有兩個私有子網路和一個公有子網路的 VPC 會分散在兩個可用區域。
- 與內部連結的 Application Load Balancer,位於具有兩個節點的自動擴展群組前面。
- 面向 Application Load Balancer 的 Cloudfront 分佈。
- 流量會先通過 AWS WAF,再到達 Cloudfront 分佈。
- 位於公有子網路的 EC2 執行個體,稱為 PenTestingHost。