Saturday, January 18, 2025

[AWS] WAF & Shield – Hands On

-

AWS WAF Protect your web applications from common web exploits hands on

AWS WAF là một dịch vụ tường lửa ứng dụng web cho phép bạn giám sát các yêu cầu web được chuyển tiếp đến một API Gateway của Amazon, một phân phối CloudFront của Amazon hoặc một Application Load Balancer. Bạn có thể bảo vệ những tài nguyên đó dựa trên các điều kiện mà bạn chỉ định, chẳng hạn như địa chỉ IP mà các yêu cầu được gửi đi từ đó. Bằng cách thiết lập các quy tắc bảo vệ trong AWS WAF, bạn có thể chống lại các cuộc tấn công mạng thông thường, bao gồm cả tấn công SQL injection và Cross-Site Scripting (XSS), và giúp bảo vệ ứng dụng web của bạn khỏi các lỗ hổng bảo mật.

Trong AWS WAF, có hai loại tài nguyên mà bạn có thể áp dụng các quy tắc bảo vệ, đó là:

  1. CloudFront distributions: Là dịch vụ phân phối nội dung tĩnh và động trên đám mây của Amazon. CloudFront cho phép bạn phân phối nội dung trên toàn cầu và cung cấp các tính năng bảo mật như mã hóa SSL và giới hạn truy cập dựa trên địa lý. Với AWS WAF, bạn có thể thiết lập các quy tắc bảo vệ để giám sát các yêu cầu HTTP/HTTPS đến CloudFront distribution và chặn các yêu cầu đến các địa chỉ IP hay phương thức truy cập bị cấm.
  2. Regional resources (tài nguyên khu vực): Đây là các tài nguyên nằm trong một khu vực như Application Load Balancer, API Gateway, AWS AppSync và Amazon Cognito User Pools. Trong AWS WAF, bạn có thể sử dụng các quy tắc bảo vệ để giám sát và bảo vệ các yêu cầu HTTP/HTTPS đến các tài nguyên này. Các quy tắc này có thể được thiết lập để giới hạn truy cập dựa trên địa chỉ IP, header HTTP hoặc body, chuỗi URI và các tiêu chí khác để bảo vệ các tài nguyên khỏi các cuộc tấn công phổ biến như SQL Injection và Cross-Site Scripting.

rong quá trình tạo một Web ACL (Web Access Control List) trên AWS WAF, bạn có thể tùy chọn chỉ định khu vực (region) và các tài nguyên AWS liên quan (associated AWS resources) cho Web ACL đó. Khu vực xác định vị trí địa lý cho Web ACL, đồng thời cũng sẽ quyết định việc phân bổ các tài nguyên AWS để hỗ trợ Web ACL đó.

Bạn có thể bấm vào Add AWS resources để xem các tài nguyên, các tài nguyên AWS này có thể bao gồm các tài nguyên như Amazon API Gateway, Amazon CloudFront, Application Load Balancer, AWS AppSync, Amazon Cognito User Pools, và AWS Lambda.

Tuy nhiên, tùy chọn chỉ định khu vực và các tài nguyên AWS liên quan là tùy chọn tùy ý, có thể bỏ qua khi tạo Web ACL. Nếu không chỉ định khu vực và các tài nguyên AWS liên quan, Web ACL sẽ được tạo mặc định cho tất cả các khu vực và tài nguyên AWS liên quan trên toàn bộ tài khoản AWS của bạn. Tuy nhiên, nếu bạn muốn tối ưu hóa quản lý tài nguyên và quản lý chi phí, bạn nên chỉ định khu vực và các tài nguyên AWS liên quan cho từng Web ACL một cách cụ thể.

Các bạn cứ giữ nguyên mặc định, kéo xuống dưới và bấm Next. Tại phần Add rules and rule groups bạn sẽ thấy có 2 thành phần của rule đó là Add managed rule groups và Add my own rules and rule groups là hai tùy chọn để tạo các rule trong AWS WAF.

Add managed rule groups: Đây là các rule group được quản lý bởi AWS, được cung cấp sẵn và được thiết kế để bảo vệ khỏi các loại tấn công web phổ biến. Bạn có thể chọn các rule group này và áp dụng chúng vào Web ACL của mình. AWS cung cấp nhiều rule group khác nhau để bảo vệ khỏi các loại tấn công khác nhau, chẳng hạn như SQL injection hay cross-site scripting (XSS).

Add my own rules and rule groups: Đây là tùy chọn để bạn tạo ra các rule và rule group của riêng mình. Bạn có thể sử dụng cú pháp của ngôn ngữ Regular Expression (regex) để tạo ra các rule của mình, cho phép bạn tùy chỉnh và tạo ra các rule phù hợp với nhu cầu bảo mật của ứng dụng web của bạn. Bạn cũng có thể tạo ra các rule group của riêng mình bằng cách kết hợp các rule mà bạn đã tạo để đáp ứng các yêu cầu bảo mật cụ thể của ứng dụng web của bạn.

Giả sử mình chọn Add managed rule groups, bạn sẽ nhìn thấy 1 số quy tắc như dưới. AWS WAF cung cấp cho người dùng các nhóm quy tắc quản lý được gọi là các nhóm quản lý quy tắc được quản lý bởi các nhà cung cấp dịch vụ bảo mật khác nhau. Trong trường hợp này, AWS WAF hỗ trợ 5 nhà cung cấp dịch vụ bảo mật khác nhau với các nhóm quản lý quy tắc sau:

  • Cloudbric Corp. managed rule groups: Cung cấp quy tắc bảo mật chủ yếu như quy tắc chặn các tấn công XSS và SQL injection.
  • Cyber Security Cloud Inc. managed rule groups: Cung cấp các quy tắc chặn tấn công web chủ yếu như các cuộc tấn công DDoS và tấn công ứng dụng web.
  • F5 managed rule groups: Cung cấp các quy tắc để bảo vệ các ứng dụng web trước các cuộc tấn công phức tạp hơn, bao gồm các tấn công tràn bộ đệm và tấn công truy cập từ xa.
  • Fortinet managed rule groups: Cung cấp các quy tắc để chặn các cuộc tấn công web phổ biến, bao gồm các tấn công XSS và SQL injection.
  • Geo Guard managed rule groups: Cung cấp các quy tắc để chặn truy cập từ các quốc gia hoặc khu vực được chỉ định và bảo vệ các ứng dụng web khỏi các tấn công được phát hiện từ các quốc gia hoặc khu vực đó.

Giả sử mình bấm chọn AWS managed rule groups và mình sẽ lựa chọn 2 rule như sau:

  • Anonymous IP list (Danh sách địa chỉ IP ẩn danh) là một tập hợp các địa chỉ IP được liệt kê và được xác định là địa chỉ IP không thể xác định được vị trí chính xác của nó. Các địa chỉ IP này thường được sử dụng bởi các kẻ tấn công để giấu danh tính của họ và thực hiện các cuộc tấn công vào các hệ thống hoặc ứng dụng web.
  • Known bad inputs (Các đầu vào xấu đã biết) là các chuỗi hoặc các ký tự cụ thể được xác định trước và được xem là đầu vào độc hại hoặc có khả năng gây lỗi trong các ứng dụng web. Các quy tắc bảo mật và quản lý rủi ro có thể sử dụng các danh sách các đầu vào xấu đã biết này để bảo vệ các ứng dụng của họ khỏi các cuộc tấn công liên quan đến đầu vào. Ví dụ, một chuỗi SQL injection phổ biến được biết đến là “‘ OR 1=1”, và nó có thể được thêm vào danh sách các đầu vào xấu đã biết để bảo vệ khỏi cuộc tấn công SQL injection.

Kéo xuống dưới cùng và bấm Add rules.

Như vậy là mình đã có 2 rule như dưới. Web ACL rule capacity units used là số lượng đơn vị dung lượng mà một Web ACL (Web Access Control List) đã sử dụng. Mỗi rule (quy tắc) sử dụng một số lượng đơn vị dung lượng nhất định, được gọi là Web ACL rule capacity units (WCU). Ví dụ, một rule sử dụng 1 WCU, một số rule khác có thể sử dụng nhiều hơn.

Tổng số lượng WCU được sử dụng bởi một Web ACL không được vượt quá giới hạn tối đa là 1500. Nếu vượt quá giới hạn này, các rule sẽ không được kích hoạt và các request sẽ không được xử lý đúng cách.

Trong trường hợp “250/1500 WCUs”, số 250 đại diện cho số lượng WCU đã sử dụng, và số 1500 đại diện cho giới hạn tối đa cho phép sử dụng WCU. Điều này có nghĩa là Web ACL đã sử dụng 250 WCU và còn lại 1250 WCU có thể sử dụng cho các rule khác.

Trong AWS WAF, khi một request không phù hợp với bất kỳ rule nào được định nghĩa trong Web ACL, hành động mặc định của Web ACL sẽ được thực hiện. Có hai lựa chọn cho hành động mặc định này, bao gồm “Allow” (Cho phép) hoặc “Block” (Chặn).

Nếu lựa chọn “Allow” được chọn, request không phù hợp với bất kỳ rule nào sẽ được phép truy cập vào tài nguyên mà bạn đang bảo vệ.

Nếu lựa chọn “Block” được chọn, request không phù hợp với bất kỳ rule nào sẽ bị chặn và không được phép truy cập vào tài nguyên được bảo vệ.

“Set rule priority” là tính năng của AWS WAF, cho phép người dùng thiết lập thứ tự ưu tiên của các luật trong Web ACL của họ. Các luật có thứ tự ưu tiên cao sẽ được xử lý trước các luật có thứ tự ưu tiên thấp hơn.

Với tính năng này, người dùng có thể kiểm soát rõ ràng thứ tự xử lý các luật và đảm bảo rằng các luật quan trọng được xử lý trước. Nó cũng giúp tránh xảy ra tình huống không mong muốn do các luật ưu tiên thấp được xử lý trước các luật ưu tiên cao, dẫn đến các request không được xử lý đúng cách hoặc bị phản hồi sai.

Khi tạo luật trong Web ACL, người dùng có thể thiết lập thứ tự ưu tiên bằng cách gán một số nguyên dương cho mỗi luật. Các luật sẽ được xử lý theo thứ tự tăng dần của số nguyên ưu tiên.

Trong AWS WAF, bạn có thể cấu hình các thông số đo lường (metrics) để giám sát và theo dõi các hoạt động của các web ACL và các rule trong đó. Bạn có thể chọn các thông số như số lượng yêu cầu đã chặn hoặc đã được phê duyệt bởi các rule, số lượng IP đã được chặn hoặc đã được phê duyệt, thời gian phản hồi trung bình và nhiều hơn nữa.

Sau khi bạn đã chọn các thông số đo lường, bạn có thể tạo ra các biểu đồ hoặc bảng điều khiển để hiển thị thông tin đó. Bạn cũng có thể đặt cảnh báo để được thông báo khi một sự kiện cụ thể xảy ra, chẳng hạn như khi một lượng lớn các yêu cầu bị chặn bởi một rule cụ thể.

Thông qua việc cấu hình các thông số đo lường và đặt cảnh báo, bạn có thể giám sát và phát hiện các hành vi đáng ngờ trên các tài nguyên của bạn và đưa ra các hành động phù hợp để bảo vệ chúng.

Phần cuối cho phép bạn review lại hệ thống, nếu không có gì thay đổi bạn hãy bấm Create web ACL để tạo ACL.

Thông báo You successfully created the web ACL: Demo WebACL. cho biết bạn đã tạo thành công ACL.

Trong AWS WAF, IP sets là một tập hợp các địa chỉ IP hoặc phạm vi địa chỉ IP được định nghĩa bởi người dùng. IP sets được sử dụng để xác định và chặn các yêu cầu từ các địa chỉ IP không mong muốn hoặc độc hại.

Người dùng có thể tạo IP sets tùy chỉnh và thêm các địa chỉ IP hoặc phạm vi địa chỉ IP vào IP sets này. Các IP sets này sau đó có thể được sử dụng trong các rule hoặc các managed rule groups trong web ACL để áp dụng chính sách bảo mật. Các IP sets cũng có thể được cập nhật tự động thông qua việc sử dụng AWS Firewall Manager hoặc AWS Organizations.

Sử dụng IP sets trong AWS WAF là một phương tiện hiệu quả để xác định và chặn các địa chỉ IP độc hại hoặc các phạm vi địa chỉ IP không mong muốn, giúp tăng cường bảo mật cho các ứng dụng web.

Mình sẽ không config thêm IP Set nên mình sẽ Cancel nó nhé.

AWS Shield Managed DDoS protection service hands on

AWS Shield Managed DDoS (Distributed Denial of Service) protection service là dịch vụ của AWS nhằm bảo vệ các ứng dụng của khách hàng trước các cuộc tấn công DDoS. Dịch vụ này cung cấp cho khách hàng khả năng phát hiện, chẩn đoán và ngăn chặn các cuộc tấn công DDoS tự động.

AWS Shield Managed DDoS được cung cấp theo hai cấp độ khác nhau:

  • AWS Shield Standard: Là một dịch vụ miễn phí được kích hoạt tự động trên tất cả các tài khoản AWS. Nó cung cấp bảo vệ cho các ứng dụng trước các cuộc tấn công DDoS thông thường, bao gồm các cuộc tấn công SYN/ACK, UDP và ICMP.
  • AWS Shield Advanced: Là một dịch vụ có phí, cung cấp khả năng phát hiện và bảo vệ khỏi các cuộc tấn công DDoS phức tạp hơn bao gồm các cuộc tấn công tầng 7 như HTTP flood và các cuộc tấn công tầng 3 và tầng 4 lớn hơn. AWS Shield Advanced cung cấp khả năng tùy chỉnh và báo cáo chi tiết hơn về các cuộc tấn công và có sẵn sự hỗ trợ từ đội ngũ chuyên môn của AWS (Shield Response Team) để giúp khách hàng đối phó với các cuộc tấn công phức tạp. Ngoài ra, AWS Shield Advanced còn bao gồm một số tính năng nâng cao khác như IP reputation và khả năng tùy chỉnh ngưỡng bảo vệ.

Bạn sẽ phải trả khoảng 3000$ cho mỗi tháng để có được tính năng này nên tôi sẽ chỉ giới thiệu nhưng không demo nó.

AWS Firewall Manager Centralized security management

AWS Firewall Manager là dịch vụ quản lý bảo mật tập trung cho phép người dùng quản lý các luật bảo mật cho tất cả các tài khoản trong tổ chức AWS của họ. Nó cho phép người dùng quản lý các chính sách bảo mật, áp dụng các luật bảo mật cho các tài nguyên khác nhau như WAF, AWS Shield Advanced, Security Groups và Network Firewall. Các chính sách bảo mật được tạo tại cấp khu vực và được áp dụng cho các tài nguyên mới khi chúng được tạo ra, đảm bảo tuân thủ tiêu chuẩn bảo mật và đồng bộ hóa bảo mật cho toàn bộ tổ chức AWS.

Tại phần Choose policy type and Region bạn sẽ có 1 số policy như sau:

AWS WAF là dịch vụ tường lửa ứng dụng web, cho phép quản lý bảo vệ trước các lỗ hổng bảo mật thông thường trên các tài nguyên như API Gateway, CloudFront distribution hay Application Load Balancer.

AWS WAF Classic cũng là dịch vụ tường lửa ứng dụng web, nhưng sử dụng phiên bản cũ hơn của WAF và được hỗ trợ cho các khách hàng đã sử dụng từ trước đến nay.

AWS Shield Advanced là dịch vụ quản lý bảo vệ trước tấn công DDoS (phân tán từ chối dịch vụ) cho các ứng dụng của bạn, bao gồm các tính năng như hỗ trợ từ đội ngũ Shield Response Team, báo cáo nâng cao, …

Security Group là dịch vụ quản lý các nhóm bảo mật trên AWS, cho phép kiểm soát truy cập đến các tài nguyên AWS.

AWS Network Firewall là dịch vụ quản lý việc lọc lưu lượng mạng vào và ra khỏi các mạng riêng ảo (VPCs) trên AWS.

Amazon Route 53 Resolver DNS Firewall là dịch vụ quản lý việc lọc lưu lượng DNS trên AWS Organizations, cho phép kiểm soát quyền truy cập đến các tên miền.

Do phần này sẽ tiêu tốn khoảng 100$ mỗi tháng nên mình chỉ giới thiệu và xin phép dừng tại đây nhé.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories