WAF – Web Application Firewall

AWS WAF – Web Application Firewall

  • Bảo vệ ứng dụng web của bạn khỏi các lỗ hổng web phổ biến (Layer 7)
  • Layer 7 là HTTP (so với Layer 4 là TCP/UDP)
  • Triển khai trên:
    • Application Load Balancer
    • API Gateway
    • CloudFront
    • AppSync GraphQL API
    • Cognito User Pool
  • Web ACL trong AWS WAF là tập hợp các rule để kiểm soát traffic đến ứng dụng. ACL này có thể gắn vào các entry point như ALB, API Gateway, CloudFront…
    • IP Set: hỗ trợ tối đa 10.000 địa chỉ IP – có thể sử dụng nhiều Rule để tăng số lượng IP.
    • Dựa vào HTTP headers, HTTP body, URI strings để bảo vệ khỏi các cuộc tấn công phổ biến như:
      ➤ SQL injection
      ➤ Cross-Site Scripting (XSS)
    • Ràng buộc kích thước (size constraints), định vị địa lý (geo-match) – ví dụ: chặn theo quốc gia.
    • Rate-based rules (rule theo tốc độ) – đếm số lần xảy ra một sự kiện, dùng để bảo vệ chống DDoS.
  • Web ACL mang tính khu vực (Regional) ngoại trừ khi gắn với CloudFront (global).
    • Ví dụ: bạn deploy ALB ở ap-southeast-1, thì Web ACL đó chỉ áp dụng cho traffic ở khu vực đó.
    • Khi bạn gắn Web ACL vào CloudFront, thì rule đó sẽ được áp dụng ở tất cả các edge location toàn cầu (ngay tại lớp CDN – càng gần người dùng càng tốt)
  • Rule group là tập hợp các rule có thể tái sử dụng và có thể thêm vào Web ACL.

WAF – Fixed IP khi dùng WAF với Load Balancer

  • WAF không hỗ trợ Network Load Balancer (NLB – Layer 4)
  • NẾU bạn dùng ALB → bạn không có fixed IP (vì DNS-based) . 
    • Có thể sử dụng AWS Global Accelerator để vừa có Fixed IP vừa dùng WAF trên ALB
  • ✅ Vấn đề cần giải quyết:
    • Bạn cần một địa chỉ IP cố định (Fixed IP) để client truy cập — ví dụ cho whitelist firewall bên ngoài.
    • Đồng thời, bạn cần áp dụng WAF để bảo vệ ứng dụng khỏi SQLi, XSS...
  • ❌ Hạn chế:
    • WAF không hoạt động với NLB vì NLB ở tầng Layer 4 (TCP/UDP), trong khi WAF hoạt động ở Layer 7 (HTTP).
    • NLB mới là loại load balancer hỗ trợ IP cố định, nhưng lại không thể dùng WAF.
  • ✅ Giải pháp thay thế:
    • Dùng AWS Global Accelerator – đây là service Global, cung cấp:
      • 1 địa chỉ IP tĩnh (static) trên toàn cầu.
      • Tự động route traffic về vùng gần nhất.
    • Global Accelerator sẽ route traffic đến Application Load Balancer (ALB) nằm trong 1 region (ví dụ us-east-1).
    • Gắn WAF WebACL vào ALB (WebACL phải nằm cùng Region với ALB).
    • ALB route tiếp về các EC2 phía sau.
Bạn thấy bài này thế nào?