top of page
作家相片Elite Cloud

使用 AWS WAF 保護您的網站應用程式

隨著現代網路的發展,網站應用程式已成為互聯網的重要基石。幾乎所有類型的企業都擁有網站,使其在數位世界中無處不在。然而,隨著網站的廣泛增長,其安全性也成為一項重大問題。在此情況下,AWS WAF 成為應對這些安全挑戰的關鍵解決方案,提供強大且客製化的保護,滿足企業越來越依賴基於網路的平台來進行營運與服務的需求。


什麼是 AWS WAF?

AWS WAF

AWS WAF(Web Application Firewall,網路應用防火牆) 是 AWS 提供的一項安全服務,專為保護網站應用程式免受常見的網路漏洞與攻擊而設計。它提供強大的工具來監控和控制進入網站應用程式的流量。


主要功能與優勢

以下是 AWS WAF 的一些主要功能與優勢:


  1. 客製化安全規則

    AWS WAF 允許您建立自訂規則來辨識並封鎖惡意網路流量。這些規則可以針對特定的攻擊模式,例如 SQL 注入攻擊、跨站腳本攻擊(XSS)等。

  2. 即時監控 AWS WAF 提供即時的流量可見性,使您能夠在威脅發生時進行監控與應對。此功能對於識別與減輕複雜攻擊特別有用。

  3. 自動化回應

    AWS WAF 支援自動化操作,根據指定條件採取行動,有助於即時緩解潛在威脅。這種自動化功能在預防或最小化攻擊影響時尤為關鍵。

  4. 與 AWS 服務的整合

    AWS WAF 能與其他 AWS 服務無縫整合,例如 Amazon CloudFront 和 Application Load Balancer。這種整合允許用戶在多個 AWS 資源上部署 AWS WAF,為其雲端基礎架構提供一致的安全防護。


AWS WAF 的定價

AWS WAF 的定價涵蓋「AWS WAF」、「Bot Control」和「Fraud Control」三種服務,各自的費率有所不同。以下是主要的定價結構:

Web ACL:每個月 $5(按小時計算比例收費)。

規則(Rule):每個月 $1。

請求(Request):每百萬次請求收費 $0.60,受限於 1500 WCUs 和預設的請求主體大小。


有關更詳細的定價資訊,請參閱 AWS WAF 官方定價頁面


設定 AWS WAF

在搜尋欄中搜尋「WAF & Shield」,然後選擇它。


Setting Up AWS WAF

這將帶您進入 AWS WAF 的主頁。在這裡,您可以找到所有關於 AWS WAF 的必要資訊和定價。點擊「Create web ACL」按鈕。


Create web ACL

步驟 1

在「Web ACL」部分,您可以選擇兩種類型的資源:「Amazon CloudFront distributions」和「Regional resources(Application Load Balancers、Amazon API Gateway REST APIs,以及 AWS AppSync GraphQL APIs)」。


Create web ACL

由於我們已經介紹過 CloudFront 的設置,因此本示範將使用它。不用擔心,我們很快會推出有關 AWS VPC、APL 和 APIs 的文章,並示範如何將 WAF 用於 Regional resources。


現在選擇一個名稱,同時遵循命名規則,您也可以添加描述來說明 WAF 的用途或活動。「CloudWatch metric name」會自動指定為您的 WAF 名稱。


CloudWatch 是一項 AWS 服務,用於監控和觀察 AWS 中的服務。CloudWatch Metrics 特別用於收集和跟踪各種指標,這些指標是代表您 AWS 資源性能的變數。


接著在「Web request body inspection」部分,保持預設的主體大小限制。增加主體大小限制可以讓 AWS WAF 對發送到您應用程式的網路請求內容進行更深入的檢查。預設大小為 16kb,如果增加大小,價格會有所變動。有關詳細資訊,請參閱 AWS WAF 的定價頁面


Web request body inspection

在「Associated AWS resources」部分,點擊「Add AWS resources」。這將允許您添加 AWS WAF 將保護免受攻擊的資源。您可以在創建 ACL 後選擇此選項。但由於我們已經創建了 CloudFront distribution,我們將直接從這裡選擇它。


Associated AWS resources

從那裡選擇您想要添加到 WAF 的 CloudFront distribution,然後點擊「Add」。


Associated AWS resources

現在點擊「下一步」


Associated AWS resources

步驟 2

接下來在步驟 2,您需要添加實際的 WAF 規則。您可以建立自訂規則,或者從 AWS 和其他安全供應商創建的受管規則中選擇。


select from managed rules

選擇「Add managed rule groups」以從受管規則中進行選擇。


select from managed rules

在那裡,您會看到規則按創建這些規則的供應商進行分類。現在選擇「AWS managed rule groups」,您將會找到免費和付費的規則群組。


select from managed rules

規則名稱定義了規則將執行的任務,而容量(Capacity)是 AWS WAF 中用於測量的單位數值。額外費用則定義了該規則的成本。


AWS WAF 規則群組中的「Capacity」是一種測量單位,用於管理和分配處理和執行 WEB ACL 或規則群組所需的資源。


由第三方供應商管理的規則群組(非 AWS 管理的規則群組)需要您訂閱 AWS Marketplace。現在向下滾動 AWS 規則群組,您將看到免費的規則群組。


select from managed rules

要添加規則,請點擊「Add to web ACL」,完成選擇後點擊「Add rules」。


我們選擇「Amazon IP reputation list」規則群組。此規則群組包含 AWS 網絡威脅情報收集的龐大 IP 名單,用於阻止已知的惡意攻擊者和機器人經常使用的惡意 IP。該規則群組佔用 25 單位的容量,且 Web ACL 的總 WCUs 不得超過 5000。超過 1500 WCUs 會影響定價。


 The rule group takes 25 units capacity

請查看 AWS WAF 定價頁面 以了解更多資訊。


「Default web ACL action for requests that don’t match any rules」允許您為未匹配任何規則的請求定義操作(允許/封鎖)。例如,當請求的 IP 與 AWS 提供的 IP 名單不匹配時該如何處理。如果您選擇「Allow」,該 IP 將被允許;如果選擇「Block」,該 IP 將被封鎖。此範例是針對我們所選的規則群組進行的說明。


Default web ACL action for requests that don’t match any rules

將「Default action」設置為「Allow」。完成後,點擊「Next」進入「步驟 3」。


步驟 3

在此,您可以選擇規則的優先順序,這使您能夠定義哪些規則將優先被應用。


在 AWS WAF 中,「Rule Priority」決定了 Web ACL(Web 訪問控制列表)中規則對網路請求的應用順序。例如,假設您有兩個規則:一個用於封鎖來自已知惡意 IP 地址的請求,另一個用於檢測 SQL 注入攻擊。如果您將 SQL 注入規則的優先級設置高於惡意 IP 封鎖規則,系統將會對所有請求進行 SQL 注入檢查,即使這些請求來自惡意 IP,導致資源浪費。


相反地,若將惡意 IP 封鎖規則設置為更高的優先級,AWS WAF 將首先排除來自這些不需要的來源的所有流量,然後再對剩餘流量應用 SQL 注入規則。這種方法更高效,因為它減少了需要進行資源密集型 SQL 注入檢查的流量量。


由於我們只有一個規則,只需選擇該規則並點擊「Next」。


Rule Priority

步驟 4

在此步驟中,您需要配置 CloudWatch。只需保持所有設置為預設值,然後點擊「Next」。


configure the CloudWatch

步驟 5

在「步驟 5」中,您將能夠檢查到目前為止所做的所有配置。確認所有設定是否符合您的需求。確認後,點擊「Create web ACL」。


這將需要一些時間,並完成 Web ACL 的創建。


review all the configuration

現在 Web ACL 規則已啟用,是時候檢查它是否正常運作。


review all the configuration

驗證 Web ACL 規則

首先,您可以檢查流量概覽,並查看只有在 Web ACL 正常運作時才會生成的請求。


Validation of Web ACL Rules

另一種測試方法是暫時將不符合 AWS 惡意 IP 名單的請求設置為「Block」,這樣將阻止合法的 IP,只有惡意 IP 能夠訪問網站。由於我們不在 AWS 的惡意 IP 名單中,因此將無法訪問網站。要進行此操作,您需要進入「Rules」部分。


Validation of Web ACL Rules

現在在「Default web ACL action for requests that do not match any rules」部分,點擊「Edit」。然後在「Default action」中選擇「Block」。


Validation of Web ACL Rules

現在再次嘗試瀏覽 CloudFront 發佈地址,您將看到您的請求被阻止。這表示 Web ACL 正在有效運作。


Validation of Web ACL Rules

完成檢查後,將「Default action」改回「Allow」,以便 Web ACL 按照既定的方式運作。


結論

AWS WAF 是網站應用程式安全中的重要資產。成功部署和維護此服務可以保護您的公共網站應用程式免受各種惡意攻擊。此外,透過其受管規則,您可以輕鬆防禦大部分這些攻擊。

bottom of page