Làm thế nào để bảo mật các ứng dụng web với AWS WAF?



Bài viết này sẽ cho bạn biết cách bạn có thể Bảo mật Ứng dụng Web Với AWS WAF và theo dõi nó bằng một minh chứng thực tế.

Bài viết này sẽ cho bạn biết cách bạn có thể Bảo mật Ứng dụng Web với WAF và theo dõi nó với một minh chứng thực tế. Các gợi ý sau sẽ được đề cập trong bài viết này,

Vì vậy, hãy để chúng tôi bắt đầu,





Tiếp tục với bài viết này về 'Cách bảo mật ứng dụng web với AWS WAF?'

Bắt đầu với một số nguyên tắc cơ bản

AWS cung cấp các dịch vụ như EC2, ELB (Elastic Load Balancer), S3 (Simple Storage Service), EBS (Elastic Block Storage) để tạo các ứng dụng hữu ích và ưa thích một cách nhanh chóng và tốn ít CAPEX (CAPital EXpenditure). Trong khi tạo các ứng dụng này, điều quan trọng không kém là bảo mật ứng dụng và bảo vệ dữ liệu. Nếu không được bảo mật đúng cách, dữ liệu ứng dụng có thể lọt vào tay kẻ xấu như trong trường hợp gần đây Sự cố Capital One .



Capital One đã lưu trữ một Ứng dụng Web trên EC2 và nó không được bảo mật đúng cách. Một nhân viên cũ của AWS đã có thể khai thác lỗ hổng này và tải xuống hàng loạt dữ liệu khách hàng từ S3. Sau đó, người ta thấy rằng dữ liệu từ 30 tổ chức khác cũng được tải xuống từ AWS. Vì vậy, cần nhấn mạnh lại điều này không chỉ đủ để kiến ​​trúc và thiết kế một ứng dụng mà còn quan trọng không kém là bảo mật một ứng dụng.

Capital One được sử dụng AWS WAF (Tường lửa ứng dụng web) để bảo vệ Ứng dụng Web, nhưng nó không được định cấu hình đúng cách do đó tin tặc có thể truy cập vào dữ liệu trong S3 và tải xuống. Trong bài viết này, chúng ta sẽ khám phá cách sử dụng và cấu hình AWS WAF để bảo vệ khỏi các cuộc tấn công web phổ biến như SQL Injection, XSS (Cross Site Scripting), v.v. AWS WAF phải được cấu hình cùng với Cân bằng tải ứng dụng , CloudFront hoặc API Gateway. Trong trường hợp này, chúng tôi sẽ sử dụng Trình cân bằng tải ứng dụng. Mọi yêu cầu từ khách hàng thông qua trình duyệt sẽ đi qua AWS WAF, sau đó đến Bộ cân bằng tải ứng dụng và cuối cùng là Ứng dụng web trên EC2. AWS WAF có thể được sử dụng để chặn yêu cầu độc hại khỏi tin tặc bằng cách sử dụng một bộ quy tắc và điều kiện.

Hình ảnh - Ứng dụng web an toàn với AWS WAF - Edureka

Tiếp tục với bài viết này về 'Cách bảo mật ứng dụng web với AWS WAF?'



Trình tự các bước để bắt đầu với AWS WAF

Bước 1: Tạo một ứng dụng web dễ bị tấn công,

Bước đầu tiên là tạo một ứng dụng web dễ bị tấn công SSRF (Server Side Request Forgery) như đã đề cập trong phần này Blog về cách cuộc tấn công Capital One xảy ra. Blog này có trình tự các bước để:

  1. Tạo EC2
  2. Cài đặt phần mềm cần thiết để tạo ứng dụng web có lỗ hổng SSRF
  3. Tạo và vai trò IAM với quyền Chỉ đọc S3
  4. Gắn vai trò IAM vào EC2
  5. Cuối cùng, khai thác lỗ hổng SSRF để lấy Thông tin đăng nhập bảo mật liên quan đến vai trò IAM.

Sau khi hoàn thành trình tự các bước trong blog được đề cập, hãy thay thế 5.6.7.8 bằng địa chỉ IP Công cộng của EC2 trong URL bên dưới và mở nó trong trình duyệt. Thông tin đăng nhập bảo mật được liên kết với Vai trò IAM sẽ được hiển thị trong trình duyệt như hình dưới đây. Về cơ bản đây là cách Capital One bị tấn công. Với Thông tin đăng nhập bảo mật trong tay, hacker đã có thể truy cập các dịch vụ AWS khác như S3 để tải xuống dữ liệu.

http://5.6.7.8:80?url=http://169.254.169.254/latest/meta-data/iam/security-credentials/Role4EC2-S3RO

Bước 2: Tạo bộ cân bằng tải ứng dụng

AWS WAF không thể được liên kết trực tiếp với Ứng dụng web. Tuy nhiên, chỉ có thể được liên kết với Cân bằng tải ứng dụng, CloudFront và API Gateway. Trong hướng dẫn này, chúng tôi sẽ tạo Bộ cân bằng tải ứng dụng và liên kết AWS WAF với cùng một.

Bước 2a: Nhóm mục tiêu là một tập hợp các cá thể EC2 và phải được tạo trước khi tạo Bộ cân bằng tải ứng dụng. Trong Bảng điều khiển quản lý EC2, nhấp vào Nhóm mục tiêu trong ngăn bên trái và nhấp vào “Tạo nhóm mục tiêu”.

Bước 2b: Nhập tên Nhóm mục tiêu và nhấp vào “Tạo”. Nhóm Mục tiêu sẽ được tạo thành công.

đặt đường dẫn java trong windows

Bước 2c: Đảm bảo rằng Nhóm mục tiêu được chọn và nhấp vào tab Mục tiêu và nhấp vào chỉnh sửa để đăng ký các phiên bản EC2 với Nhóm mục tiêu.

Bước 2d: Chọn phiên bản EC2 và nhấp vào “Thêm vào đã đăng ký” và nhấp vào “Lưu”.

Các trường hợp phải được đăng ký như được hiển thị bên dưới cho Nhóm mục tiêu.

Bước 2e: Đã đến lúc tạo Bộ cân bằng tải ứng dụng. Nhấp vào Load Balancer trong ngăn bên trái của EC2 Management Console và nhấp vào “Create Load Balancer”.

Nhấp vào “Tạo” cho “Bộ cân bằng tải ứng dụng”.

Tiếp tục với bài viết này về 'Cách bảo mật ứng dụng web với AWS WAF?'

Bước 2f: Nhập tên của Trình cân bằng tải ứng dụng. Và đảm bảo rằng tất cả các Vùng sẵn sàng được chọn và nhấp vào Tiếp theo.

Bước 2g: Trong “Định cấu hình cài đặt bảo mật”, nhấp vào Tiếp theo.

Trong “Định cấu hình Nhóm bảo mật”, hãy tạo Nhóm bảo mật mới hoặc chọn một trong các Nhóm bảo mật hiện có. Đảm bảo rằng cổng 80 đang mở để truy cập trang web trên EC2. Nhấp vào Tiếp theo.

Bước 2 giờ: Trong “Định cấu hình định tuyến”, chọn “Nhóm mục tiêu hiện có” và chọn nhóm đã được tạo ở bước trước đó. Nhấp vào Tiếp theo.

Bước 2i: Các cá thể EC2 mục tiêu đã được đăng ký như một phần của Nhóm mục tiêu. Vì vậy, trong tab “Đăng ký mục tiêu”, nếu không có bất kỳ thay đổi nào, hãy nhấp vào Tiếp theo.

Bước 2j: Cuối cùng, xem lại tất cả các chi tiết của Trình cân bằng tải ứng dụng và nhấp vào Tạo. Bộ cân bằng tải ứng dụng sẽ được tạo như hình dưới đây.

nguyên tử có tốt cho trăn không

Bước 2k: Lấy tên miền của Trình cân bằng tải ứng dụng và thay thế văn bản được đánh dấu bằng tên miền đó trong URL bên dưới và mở như vậy trong trình duyệt. Lưu ý rằng chúng tôi đang truy cập Ứng dụng web thông qua Bộ cân bằng tải ứng dụng và Thông tin đăng nhập bảo mật được hiển thị như hình dưới đây. URL dưới đây có thể bị chặn bằng cách sử dụng AWS WAF như được hiển thị trong các bước tiếp theo để ngăn rò rỉ Thông tin đăng nhập bảo mật.

MyALB-1929899948.us-east-1.elb.amazonaws.com ? url = http: //169.254.169.254/latest/meta-data/iam/security-credentials/Role4EC2-S3RO

Bước 3: Tạo AWS WAF (Tường lửa ứng dụng web)

Bước 3a: Truy cập Bảng điều khiển quản lý AWS WAF và nhấp vào “Định cấu hình ACL web”. Tổng quan AWS WAF được hiển thị. Đây là hệ thống phân cấp của AWS WAF. Web ACL có một loạt các Quy tắc và Quy tắc có một loạt các Điều kiện mà chúng tôi sẽ tạo trong các bước tiếp theo. Nhấp vào Tiếp theo.

Bước 3b: Nhập tên Web ACL, Khu vực là Bắc Virginia (hoặc nơi EC2 được tạo), loại tài nguyên là “Bộ cân bằng tải ứng dụng” và cuối cùng chọn Bộ cân bằng tải ứng dụng đã được tạo ở bước trước đó. Nhấp vào Tiếp theo.

Bước 3c: Đây a điều kiện để chặn một yêu cầu ứng dụng web cụ thể phải được tạo. Cuộn xuống và nhấp vào “Tạo điều kiện” cho “Điều kiện đối sánh chuỗi và regex”.

Bước 3d: Nhập tên của điều kiện, Loại là 'Đối sánh chuỗi', lọc trên 'Tất cả các tham số truy vấn' và phần còn lại của các tham số chính xác như được hiển thị bên dưới. Và nhấp vào “Thêm bộ lọc” và sau đó nhấp vào Tạo. Ở đây chúng tôi đang cố gắng tạo điều kiện khớp với URL chứa giá trị của tham số truy vấn là 169.254.169.254. Địa chỉ IP này liên quan đến Siêu dữ liệu EC2 .

Bước 3e: Bây giờ là lúc tạo một quy tắc là một tập hợp các điều kiện. Nhấp vào “Tạo quy tắc” và chỉ định các thông số chính xác như hình dưới đây. Nhấp vào “Thêm điều kiện”, Tạo và “Xem lại và tạo”.

Tiếp tục với bài viết này về 'Cách bảo mật ứng dụng web với AWS WAF?'

Bước 3f: Cuối cùng xem lại tất cả các chi tiết và nhấp vào “Xác nhận và tạo”. Web ACL (Access Control List) sẽ được tạo và liên kết với Trình cân bằng tải ứng dụng như hình dưới đây.

phương thức lớp quét nào đọc một chuỗi

Bước 3g: Bây giờ, hãy thử truy cập URL của Trình cân bằng tải ứng dụng thông qua trình duyệt như được thực hiện trong Bước 2k . Lần này, chúng tôi sẽ nhận được '403 Forbidden' vì URL của chúng tôi phù hợp với điều kiện Web ACL và chúng tôi đang chặn nó. Yêu cầu không bao giờ đến được Bộ cân bằng tải ứng dụng hoặc Ứng dụng web trên EC2. Ở đây, chúng tôi nhận thấy rằng mặc dù ứng dụng đang cho phép truy cập vào Thông tin đăng nhập bảo mật, nhưng WAF cũng đang chặn.

Bước 4: Dọn dẹp tài nguyên AWS được tạo trong hướng dẫn này. Việc dọn dẹp phải được thực hiện theo đúng thứ tự như đã đề cập bên dưới. Điều này là để đảm bảo rằng AWS dừng thanh toán cho các tài nguyên liên quan được tạo như một phần của hướng dẫn này.

  • Xóa điều kiện trong quy tắc
  • Xóa quy tắc trong WebACL
  • Ngắt liên kết ALB trong WebACL
  • Xóa WebACL
  • Xóa quy tắc
  • Xóa bộ lọc trong Điều kiện
  • Xóa điều kiện
  • Xóa ALB và Nhóm mục tiêu
  • Chấm dứt EC2
  • Xóa vai trò IAM

Phần kết luận

Như đã đề cập trước đó, việc tạo Ứng dụng Web bằng AWS rất dễ dàng và thú vị. Nhưng chúng tôi cũng phải đảm bảo rằng ứng dụng được bảo mật và dữ liệu không bị rò rỉ vào tay kẻ xấu. Bảo mật có thể được áp dụng ở nhiều lớp. Trong hướng dẫn này, chúng ta đã biết cách sử dụng AWS WAF (Tường lửa ứng dụng web) để bảo vệ Ứng dụng web khỏi các cuộc tấn công như khớp với địa chỉ IP của Siêu dữ liệu EC2. Chúng tôi cũng có thể sử dụng WAF để bảo vệ khỏi các cuộc tấn công phổ biến như SQL Injection và XSS (Cross Site Scripting).

Sử dụng AWS WAF hoặc trên thực tế là bất kỳ sản phẩm bảo mật nào khác không làm cho ứng dụng trở nên an toàn, nhưng sản phẩm phải được định cấu hình đúng cách. Nếu không được định cấu hình đúng cách, dữ liệu có thể lọt vào tay kẻ xấu như đã xảy ra với Capital One và các Tổ chức khác. Ngoài ra, điều quan trọng khác cần xem xét là Bảo mật phải được suy nghĩ ngay từ ngày đầu tiên và không được cắm vào ứng dụng ở giai đoạn sau.

Chúng ta đến phần cuối của bài viết này về Cách bảo mật các ứng dụng web với AWS WAF. Chúng tôi cũng đã đưa ra một chương trình giảng dạy bao gồm chính xác những gì bạn cần để vượt qua Kỳ thi Kiến trúc sư Giải pháp! Bạn có thể xem chi tiết khóa học cho đào tạo.

Có một câu hỏi cho chúng tôi? Vui lòng đề cập đến nó trong phần nhận xét của blog AWS là gì và chúng tôi sẽ liên hệ lại với bạn.