Giả sử bạn là một lập trình viên đơn độc đang bắt đầu với cửa hàng Juice Shop (Nước Trái Cây). Website của bạn là một ứng dụng web đơn giản chạy với cơ sở dữ liệu SQL. Vì một số lý do nào đó, nhóm tin tặc Milkshake (nhóm Sữa Lắc) đang bắt đầu tấn công vào trang web của bạn.
Rất may là ngay lúc này bạn đang tiếp cận tới AWS WAF. Vậy là bạn quyết định sẽ triển khai WAF để bảo vệ trang web của bạn.
Ngoài ra thì ngay lúc này, bạn đang không có nhiều thời gian nên bạn sẽ quyết định sẽ sử dụng Nhóm các rule dựng sẵn bởi AWS cho Web ACL của bạn. Với các rule này, website của bạn sẽ được bảo vệ khỏi các tấn công thông thường từ phía nhóm Sữa Lắc.
Web ACLs (Web Access Control List) là cốt lõi của việc triển khai AWS WAF. Nó bao gồm các rule được sử dụng để đánh giá các yêu cầu được gửi tới WAF của bạn. Web ACL được áp dụng lên ứng dụng web của bạn thông qua Amazon CloudFront distribution, AWS API Gateway API hay một AWS Application Load Balancer.
Managed rule groups là một bộ các rule được tạo và cập nhật bởi đội ngũ AWS hoặc các bên thứ 3 trên AWS Marketplace. Những rule này cung cấp khả năng bảo vệ ứng dụng của bạn khỏi các tấn công thông dụng hoặc đặc thù cho từng loại ứng dụng.

Bài thực hành này sử dụng phiên bản mới nhất của AWS WAF. Hãy đảm bảo bạn không sử dụng WAF Classic.



Chọn mục You build in, sau đó chọn AWS-managed rule group, tiếp tục chọn Next

Chọn Core rule set, sau đó tiến hành Add rule

Xác nhận rule đã được khởi tạo. Chúng ta tiếp tục chọn Add rule để thêm rule mới.

Chọn AWS-managed rule group, click Next.
Chọn SQL database.
Chọn Add rule để thêm rule.

Xác nhận đã tạo 2 rule mới.

Tại mục name, điền waf-workshop-juice-shop.
Điền mô tả Web ACL for the aws-waf-workshop.
Tại Logging destination type, chọn S3 Bucket.
Chọn S3 bucket vừa tạo.
Cuối cùng, chọn Create protection pack (web ACL)

Xác nhận đã tạo thành công.

# This imitates a Cross Site Scripting attack
# This request should be blocked.
curl -X POST <Your Juice Shop URL> -F "user='<script><alert>Hello></alert></script>'"
Chúng ta sẽ thấy kết quả là Request blocked.

# This imitates a SQL Injection attack
# This request should be blocked.
curl -X POST <Your Juice Shop URL> -F "user='AND 1=1;"
Chúng ta sẽ thấy kết quả là Request blocked.