這些題目為學習目的而獨立製作,並非 AWS 官方考題、實際考題、外流題或考題庫。
SAA-031
希望對於在 Application Load Balancer 後方運作的 Web 應用程式,將鎖定 SQL 注入或跨站腳本攻擊的請求於到達應用程式之前予以阻擋。作為可在不自行維護規則的情況下持續跟上已知攻擊模式的架構,下列哪項最為合適?
選項
解析與正確答案
閱讀解析與正確答案(劇透:建議先自行作答)
正確答案:B. 將 AWS WAF 的 Web ACL 關聯至 ALB,並套用 AWS 受管規則(Core rule set / SQL database)
解析
SQL 注入與 XSS 若不檢查 HTTP 請求的內容(第 7 層)便無法判定。將 AWS WAF 的 Web ACL 關聯至 ALB,並套用由 AWS 持續更新的受管規則群組,即可在不自行維護特徵碼的情況下阻擋已知的攻擊模式。
各選項解析
A. 在子網路的網路 ACL 中,新增拒絕含有攻擊字串之請求的傳入規則
網路 ACL 為於子網路邊界評估 IP 位址、通訊協定、連接埠的無狀態篩選器,無法檢視 HTTP 請求的內容。
B. 將 AWS WAF 的 Web ACL 關聯至 ALB,並套用 AWS 受管規則(Core rule set / SQL database)
正解。將 Web ACL 關聯至 ALB 並套用 AWS 受管規則群組,即可將第 7 層的攻擊模式於到達應用程式之前阻擋。
C. 在 ALB 的安全群組中,持續新增拒絕攻擊來源 IP 位址的傳入規則
安全群組僅檢視來源 IP 或連接埠等第 3/4 層的資訊,因此無法判定請求內容中的攻擊字串。此外,安全群組本身並不存在拒絕規則,僅由允許規則構成。
D. 簽訂 AWS Shield Advanced,以 DDoS 緩解功能阻擋含有攻擊的請求
AWS Shield 的目的為緩解以第 3/4 層為主的 DDoS 攻擊,並不進行 SQL 注入或 XSS 這類酬載檢查。AWS Shield Advanced 的合約雖包含 AWS WAF 的使用費,但實際檢查並封鎖請求的仍是 WAF 的規則。
實際使用情境
AWS WAF 為於第 7 層檢查 HTTP / HTTPS 請求的 Web 應用程式防火牆,以 Web ACL 為單位彙整規則,並關聯至 CloudFront 分發、Application Load Balancer、API Gateway、AppSync、Cognito 使用者集區等加以運用。規則包含來源 IP 集合、速率型(依一定時間內的請求數封鎖)、字串比對與正規表示式比對,以及由 AWS 或 Marketplace 供應商提供的受管規則群組。受管規則群組由 AWS 端持續更新,因此不再需要自行維護特徵碼的營運作業。 設計時的注意事項為,首先「關聯於何處」會改變防禦位置。若關聯至 CloudFront,可於邊緣站點攔下攻擊;若關聯至 ALB,則請求會抵達區域後才進行評估。此外,將受管規則套用至正式環境時,若一開始就採用 Block 動作,可能連正常請求也一併攔下,因此慣例做法是先以 Count 模式運作一段期間,透過 CloudWatch 指標與取樣請求確認誤判後再切換為 Block。WAF 的計費由 Web ACL 單位與規則單位的月費,以及依請求數的用量計費構成。 SAA-C03 中,若出現「SQL 注入」「跨站腳本攻擊」「OWASP Top 10」「來自特定 IP 的大量請求」等字眼,AWS WAF 即為正解。誤答則排列出安全群組(第 3/4 層、無拒絕規則)、網路 ACL(無狀態的 IP / 連接埠篩選)、AWS Shield(DDoS 緩解)等。Shield 與 WAF 的職責分工,以及要將 WAF 掛在 CloudFront 或 ALB 的判斷,也很容易出題。