Sử dụng Amazon GuardDuty ECS runtime monitoring với Fargate và Amazon EC2

bởi Luke Notley và Arran Peterson | ngày 28 tháng 12 năm 2023 |

Công nghệ containerization như Docker và các giải pháp orchestration như Amazon Elastic Container Service (Amazon ECS) được khách hàng ưa chuộng vì những lợi ích về tính di động và tính mở rộng của chúng. Quá trình theo dõi runtime của container là thiết yếu để khách hàng có thể giám sát sức khỏe, hiệu suất và an ninh của các container. Các dịch vụ AWS như Amazon GuardDuty, Amazon Inspector và AWS Security Hub đóng một vai trò quan trọng trong việc tăng cường an ninh container bằng cách cung cấp phát hiện mối đe dọa, đánh giá lỗ hổng, quản lý an ninh tập trung và theo dõi runtime container của Amazon Web Services (AWS).

GuardDuty là một dịch vụ phát hiện mối đe dọa liên tục giám sát tài khoản AWS và công việc của bạn để phát hiện các hoạt động độc hại và cung cấp các thông tin chi tiết về an ninh để theo dõi và khắc phục. GuardDuty phân tích hàng chục tỷ sự kiện mỗi phút trên nhiều nguồn dữ liệu AWS và cung cấp theo dõi runtime bằng cách sử dụng một agent bảo mật GuardDuty cho Amazon Elastic Kubernetes Service (Amazon EKS), Amazon ECS và Amazon Elastic Compute Cloud (Amazon EC2). Các kết quả có sẵn trong bảng điều khiển GuardDuty, và bằng cách sử dụng API, một bản sao của mọi kết quả GuardDuty được gửi đến Amazon EventBridge để bạn có thể tích hợp những kết quả này vào quy trình làm việc hoạt động của mình. Các kết quả của GuardDuty cũng được gửi đến Security Hub giúp bạn tổng hợp và liên kết kết quả GuardDuty trên các tài khoản và khu vực AWS cũng như kết quả từ các dịch vụ bảo mật khác.

Chúng tôi gần đây thông báo về sự có sẵn chung của GuardDuty Runtime Monitoring cho Amazon ECS và sự xem xét công cộng của GuardDuty Runtime Monitoring cho Amazon EC2 để phát hiện mối đe dọa runtime từ hơn 30 kết quả bảo mật để bảo vệ các cụm AWS Fargate hoặc Amazon EC2 ECS của bạn.

Trong bài đăng trên blog này, chúng tôi cung cấp một tổng quan về AWS Shared Responsibility Model và cách nó liên quan đến việc bảo mật công việc container của bạn chạy trên AWS. Chúng tôi xem xét các bước để cấu hình và sử dụng các tính năng mới GuardDuty Runtime Monitoring cho ECS, EC2 và EKS. Nếu bạn đã sử dụng GuardDuty EKS Runtime Monitoring, bài viết này cung cấp các bước để chuyển đổi sang GuardDuty Runtime Monitoring.

AWS Shared Responsibility Model and containers

Hiểu rõ AWS Shared Responsibility Model là quan trọng đặc biệt khi liên quan đến các công việc trên Amazon ECS. Đối với Amazon ECS, AWS chịu trách nhiệm cho bảng điều khiển ECS và lớp dữ liệu cơ sở hạ tầng ở phía dưới. Khi sử dụng Amazon ECS trên một trường hợp EC2, bạn có một phần trách nhiệm bảo mật lớn hơn so với việc sử dụng ECS trên Fargate. Cụ thể, bạn phải chịu trách nhiệm giám sát cấu hình của đại lý ECS và nút làm việc trên các trường hợp EC2.

Hình 1: AWS Shared Responsibility Model  – Amazon ECS trên EC2

Trong Fargate, mỗi nhiệm vụ hoạt động trong máy ảo ảo (VM) được dành riêng, và không có sự chia sẻ giữa hệ điều hành hoặc nguồn lực nhân kernel giữa các nhiệm vụ. Với Fargate, AWS chịu trách nhiệm về an ninh của trường hợp cơ sở đám mây cơ bản và runtime được sử dụng để chạy các nhiệm vụ của bạn.

Hình 2: Mô hình Trách nhiệm Chia sẻ của AWS – Amazon ECS trên Fargate

Khi triển khai hình ảnh runtime container, trách nhiệm của bạn bao gồm cấu hình ứng dụng, đảm bảo an ninh container và áp dụng các phương pháp tốt nhất cho an ninh runtime của nhiệm vụ. Những phương pháp tốt nhất này giúp hạn chế kẻ đối đầu từ việc mở rộng ảnh hưởng của họ ra khỏi phạm vi của quy trình container cục bộ.

Tích hợp theo dõi thời gian chạy của Amazon GuardDuty

Với tính năng mới được ra mắt, EKS Runtime Monitoring hiện đã được tích hợp vào GuardDuty Runtime Monitoring. Với sự tích hợp này, bạn có thể quản lý cấu hình cho tài khoản AWS của mình một lần thay vì phải quản lý cấu hình theo dõi runtime riêng biệt cho mỗi loại tài nguyên (thành phần EC2, cụm ECS hoặc cụm EKS). Một chế độ xem cho từng Khu vực được cung cấp để bạn có thể kích hoạt theo dõi thời gian chạy và quản lý các đại lý bảo mật GuardDuty trên mỗi loại tài nguyên vì chúng hiện tại chia sẻ một giá trị chung là đã kích hoạt hoặc đã vô hiệu hóa.

Lưu ý: Đại lý bảo mật GuardDuty vẫn phải được cấu hình cho mỗi loại tài nguyên được hỗ trợ.

Hình 3: Tổng quan về GuardDuty Runtime Monitoring

Trong các phần tiếp theo, chúng tôi sẽ hướng dẫn bạn cách kích hoạt theo dõi thời gian chạy của GuardDuty và cách bạn có thể cấu hình lại triển khai theo dõi thời gian chạy EKS hiện tại của bạn. Chúng tôi cũng bao gồm cách bạn có thể kích hoạt theo dõi cho các loại tài nguyên ECS Fargate và EC2.

Nếu bạn đã sử dụng EKS Runtime Monitoring trước khi tính năng này được ra mắt, bạn sẽ thấy một số tùy chọn cấu hình trong Bảng điều khiển Quản lý AWS cập nhật của GuardDuty. Đề xuất bạn kích hoạt theo dõi thời gian chạy cho mỗi tài khoản AWS; để làm điều này, làm theo các bước sau:

  1. Trong GuardDuty console, trong Protection plans chọn Runtime Monitoring.
  2. Chọn Configuration tab và sau đó chọn Edit.
  3. Dưới Runtime Monitoring chọn Enable for all accounts.
  4. Dưới Automated agent configuration – Amazon EKS, hãy chắc chắn đã chọn  Enable for all accounts

Hình 4: Chỉnh sửa cấu hình GuardDuty Runtime Monitoring

Nếu bạn muốn tiếp tục sử dụng EKS Runtime Monitoring mà không kích hoạt theo dõi thời gian chạy của GuardDuty ECS hoặc nếu kế hoạch bảo vệ theo dõi thời gian chạy vẫn chưa có sẵn ở Khu vực của bạn, bạn có thể cấu hình theo dõi thời gian chạy EKS bằng Cổng lệnh giao diện người dùng AWS (AWS CLI) hoặc API. Để biết thêm thông tin về quá trình chuyển đổi này, xem Chuyển đổi từ EKS Runtime Monitoring sang GuardDuty Runtime Monitoring.

Amazon GuardDuty ECS Runtime Monitoring cho Fargate

Đối với ECS sử dụng nhà cung cấp dung lượng Fargate, GuardDuty triển khai đại lý bảo mật như một container sidecar cùng với container nhiệm vụ quan trọng. Điều này không đòi hỏi bạn phải thay đổi triển khai của các nhiệm vụ Fargate và đảm bảo rằng các nhiệm vụ mới sẽ có theo dõi thời gian chạy của GuardDuty. Nếu container đại lý bảo mật của GuardDuty không thể khởi chạy ở trạng thái khỏe mạnh, nhiệm vụ Fargate ECS sẽ không bị ngăn chặn khỏi việc chạy.

Khi sử dụng GuardDuty ECS Runtime Monitoring cho Fargate, bạn có thể cài đặt đại lý trên các cụm Fargate ECS trong một tài khoản AWS hoặc chỉ trên các cụm được chọn. Trong các phần sau, chúng tôi sẽ hướng dẫn bạn cách kích hoạt dịch vụ và cấp phát các đại lý.

Điều kiện tiên quyết

Nếu bạn chưa kích hoạt GuardDuty, tìm hiểu thêm về phiên dùng thử miễn phí và giá cả và thực hiện các bước trong Bắt đầu với GuardDuty để thiết lập dịch vụ và bắt đầu giám sát tài khoản của bạn. Hoặc bạn có thể kích hoạt GuardDuty bằng cách sử dụng AWS CLI. Phiên bản môi trường Fargate tối thiểu và hệ điều hành container được hỗ trợ có thể được tìm thấy trong Các điều kiện tiên quyết cho hỗ trợ AWS Fargate (Chỉ Amazon ECS). Vai trò IAM (AWS Identity and Access Management) được sử dụng để chạy một nhiệm vụ Amazon ECS phải được cung cấp quyền truy cập vào Amazon ECR với các quyền phù hợp để tải xuống container sidecar của GuardDuty. Để biết thêm thông tin về kho Amazon ECR chứa đại lý GuardDuty cho AWS Fargate, xem Kho cho đại lý GuardDuty trên AWS Fargate (Chỉ Amazon ECS).

Kích hoạt theo dõi thời gian chạy cho Fargate

Để kích hoạt GuardDuty Runtime Monitoring cho ECS Fargate, làm theo các bước sau:

  1. Trong bảng điều khiển GuardDuty, trong Protection plans, chọn Runtime Monitoring.
  2. Chọn Configuration tab và sau đó ở phần AWS Fargate (chỉ Amazon ECS), chọn Enable.

Hình 5: Cấu hình GuardDuty Runtime Monitoring

Nếu tài khoản AWS của bạn được quản lý trong Tổ chức AWS và bạn đang chạy các cụm ECS Fargate trong nhiều tài khoản AWS, chỉ tài khoản quản trị được ủy quyền của GuardDuty mới có thể kích hoạt hoặc vô hiệu hóa GuardDuty ECS Runtime Monitoring cho các tài khoản thành viên. GuardDuty là một dịch vụ cấp khu vực và phải được kích hoạt trong mỗi Khu vực mong muốn. Nếu bạn đang sử dụng nhiều tài khoản và muốn quản lý GuardDuty tập trung, hãy xem Quản lý nhiều tài khoản trong Amazon GuardDuty.

Bạn có thể sử dụng quy trình tương tự để kích hoạt GuardDuty ECS Runtime Monitoring và quản lý đại lý bảo mật GuardDuty. Đề xuất kích hoạt GuardDuty ECS Runtime Monitoring tự động cho các tài khoản thành viên trong tổ chức của bạn.

Để tự động kích hoạt GuardDuty Runtime Monitoring cho các tài khoản ECS Fargate mới:

  1. Trong bảng điều khiển GuardDuty, trong thanh điều hướng dưới Protection plans chọn Runtime Monitoring.
  2. Chọn Configuration tab, sau đó chọn Edit.
  3. Dưới Runtime Monitoring, chắc chắn rằng đã chọn Enable for all accounts
  4. Dưới Automated agent configuration – AWS Fargate (ECS only), chọn Enable for all accounts chọn Save.

Hình 6: Kích hoạt ECS GuardDuty Runtime Monitoring cho các tài khoản AWS

Sau khi bạn kích hoạt GuardDuty ECS Runtime Monitoring cho Fargate, GuardDuty có thể bắt đầu giám sát và phân tích các sự kiện hoạt động thời gian chạy cho các nhiệm vụ ECS trong tài khoản của bạn. GuardDuty tự động tạo một điểm kết nối mạng riêng tư ảo (VPC) trong tài khoản AWS của bạn trong các VPC nơi bạn triển khai các nhiệm vụ Fargate của mình. Điểm kết nối VPC được sử dụng bởi đại lý bảo mật GuardDuty để gửi dữ liệu giám sát và cấu hình trở lại dịch vụ API GuardDuty. Để GuardDuty nhận các sự kiện thời gian chạy cho các cụm ECS Fargate của bạn, bạn có thể chọn một trong ba phương pháp triển khai đại lý bảo mật quản lý đầy đủ:

  • Giám sát các cụm ECS Fargate hiện tại và mới
  • Giám sát các cụm ECS Fargate hiện tại và mới và loại bỏ các cụm ECS Fargate lựa chọn
  • Giám sát các cụm ECS Fargate lựa chọn

Đề xuất giám sát từng cụm ECS Fargate và sau đó loại trừ các cụm khi cần thiết. Để biết thêm thông tin, xem Cấu hình GuardDuty ECS Runtime Monitoring.

Giám sát tất cả các cụm ECS Fargate

Sử dụng phương pháp này khi bạn muốn GuardDuty tự động triển khai và quản lý đại lý bảo mật trên mỗi cụm ECS Fargate trong tài khoản của bạn. GuardDuty sẽ tự động cài đặt đại lý bảo mật khi có các cụm ECS Fargate mới được tạo.

Để kích hoạt GuardDuty Runtime Monitoring cho ECS Fargate trên mỗi cụm ECS:

  1. Trong bảng điều khiển GuardDuty, trong thanh điều hướng dưới Protection plans chọn Runtime Monitoring.
  2. Chọn Configuration tab.
  3. Dưới Automated agent configuration for AWS Fargate (ECS only), chọn Enable.

Hình 7: Kích hoạt GuardDuty Runtime Monitoring cho các cụm ECS

Giám sát tất cả các cụm ECS Fargate và loại trừ một số cụm ECS Fargate được chọn

GuardDuty tự động cài đặt đại lý bảo mật trên mỗi cụm ECS Fargate. Để loại trừ một cụm ECS Fargate khỏi theo dõi thời gian chạy của GuardDuty, bạn có thể sử dụng cặp khóa-giá trị GuardDutyManaged:false như là một tag. Thêm tag loại trừ này vào cụm ECS Fargate của bạn trước khi kích hoạt theo dõi thời gian chạy hoặc trong quá trình tạo cụm để ngăn chặn việc giám sát tự động của GuardDuty.

Để thêm tag loại trừ vào một cụm ECS:

  1. Trong bảng điều khiển Amazon ECS, trong thanh điều hướng dưới Clusters, chọn cluster name.
  2. Chọn tab Tags.
  3. Chọn Manage Tags và nhập key GuardDutyManaged và value false, sau đó chọn Save.

Hình 8: Các tag loại trừ cụm ECS cho GuardDuty Runtime Monitoring

Để đảm bảo rằng những tag này không bị sửa đổi, bạn có thể ngăn chặn việc sửa đổi tag ngoại trừ các chủ thể được ủy quyền.

Giám sát một số cụm ECS Fargate được chọn

Bạn có thể giám sát một số cụm ECS Fargate được chọn khi bạn muốn GuardDuty xử lý triển khai và cập nhật đại lý bảo mật độc quyền cho các cụm ECS Fargate cụ thể trong tài khoản của bạn. Điều này có thể là một trường hợp sử dụng khi bạn muốn đánh giá GuardDuty ECS Runtime Monitoring cho Fargate. Bằng cách sử dụng tag inclusion, GuardDuty tự động triển khai và quản lý đại lý bảo mật chỉ cho các cụm ECS Fargate được đánh dấu với cặp khóa-giá trị GuardDutyManaged:true. Để sử dụng tag inclusion, đảm bảo rằng cấu hình đại lý tự động cho AWS Fargate (ECS) chưa được kích hoạt.

Để thêm tag inclusion vào một cụm ECS:

  1. Trong bảng điều khiển Amazon ECS, trong thanh điều hướng dưới Clusters, chọn cluster name.
  2. Chọn tab Tags.
  3. Chọn Manage Tags và nhập key GuardDutyManaged và value true, sau đó chọn Save.

Hình 9: Các tag inclusion của GuardDuty

Để đảm bảo rằng những tag này không bị sửa đổi, bạn có thể ngăn chặn việc sửa đổi tag ngoại trừ các chủ thể được ủy quyền.

Triển khai cấp độ nhiệm vụ Fargate

Sau khi bạn đã kích hoạt GuardDuty ECS Runtime Monitoring cho Fargate, các nhiệm vụ mới được triển khai sẽ bao gồm đại lý bảo mật sidecar của GuardDuty. Đối với các nhiệm vụ đã tồn tại chạy lâu, bạn có thể muốn xem xét một triển khai có mục tiêu cho việc làm mới nhiệm vụ để kích hoạt đại lý bảo mật sidecar của GuardDuty. Điều này có thể được thực hiện bằng cách sử dụng cập nhật cuộn (loại triển khai ECS) hoặc triển khai xanh/làm mới với AWS CodeDeploy.

Để xác nhận đại lý bảo mật GuardDuty đang chạy cho một nhiệm vụ, bạn có thể kiểm tra xem có một container bổ sung có tiền tố aws-guardduty-agent-. Việc triển khai thành công sẽ thay đổi trạng thái của container thành Running.

Để xem container đại lý bảo mật GuardDuty đang chạy như một phần của nhiệm vụ ECS của bạn:

  1. Trong bảng điều khiển Amazon ECS, trong thanh điều hướng dưới Clusters, chọn cluster name.
  2. Chọn tab Tasks.
  3. Chọn Task GUID mà bạn muốn xem xét.
  4. Dưới phần Containers, bạn có thể xem container đại lý bảo mật GuardDuty.

Hình 10: Xem trạng thái của container đại lý bảo mật GuardDuty

Giám sát phủ sóng của GuardDuty ECS trên Fargate

Trạng thái phủ sóng của các cụm ECS Fargate của bạn được đánh giá đều đặn và có thể được phân loại là lành mạnh hoặc không lành mạnh. Một cụm không lành mạnh báo hiệu về một vấn đề cấu hình, và bạn có thể tìm thêm chi tiết trong phần Thông báo về Giám sát Runtime của GuardDuty. Khi bạn kích hoạt GuardDuty ECS Runtime Monitoring và triển khai đại lý bảo mật trong các cụm của bạn, bạn có thể xem trạng thái phủ sóng của các cụm và nhiệm vụ ECS Fargate mới trong bảng điều khiển GuardDuty.

Để xem trạng thái phủ sóng:

  1. Trong bảng điều khiển GuardDuty, trong thanh điều hướng dưới Protection plans chọn Runtime Monitoring.
  2. Chọn tab Runtime coverage, sau đó chọn ECS clusters runtime coverage.

Hình 11: Tổng quan trạng thái phủ sóng ECS của GuardDuty Runtime

Bước giải quyết sự cố cho các vấn đề về phủ sóng cụm như báo cáo cụm không lành mạnh và một mẫu hình thông báo có sẵn tại Tài nguyên Phủ sóng cho Fargate (chỉ Amazon ECS). Thêm thông tin về giám sát có sẵn trong phần tiếp theo.

Giám sát Thời gian chạy của Amazon GuardDuty cho EC2

Giám sát Thời gian chạy trên EC2 của Amazon GuardDuty giúp bạn cung cấp phát hiện mối đe dọa cho các máy ảo Amazon EC2 và hỗ trợ cho các máy ảo EC2 được quản lý bởi Amazon ECS. Để thực hiện điều này, đại lý bảo mật của GuardDuty, được sử dụng để gửi dữ liệu telemetri và cấu hình trở lại API dịch vụ GuardDuty, cần phải được cài đặt trên mỗi máy ảo EC2.

Điều kiện tiên quyết

Nếu bạn chưa kích hoạt Amazon GuardDuty, tìm hiểu thêm về phiên bản dùng thử miễn phí và giá cả, và làm theo các bước trong Bắt đầu với GuardDuty để thiết lập dịch vụ và bắt đầu theo dõi tài khoản của bạn. Hoặc bạn có thể kích hoạt GuardDuty bằng cách sử dụng AWS CLI.

Để sử dụng Giám sát Thời gian chạy của Amazon EC2 để theo dõi các trường hợp của bạn, môi trường hoạt động của bạn phải đáp ứng các điều kiện tiên quyết cho sự hỗ trợ của EC2 và đại lý bảo mật GuardDuty phải được cài đặt thủ công lên các máy ảo EC2 mà bạn muốn theo dõi. Giám sát Thời gian chạy của GuardDuty cho EC2 yêu cầu bạn phải tạo điểm kết nối VPC Amazon thủ công. Nếu VPC đã có điểm kết nối VPC GuardDuty được tạo từ một triển khai trước đó, bạn không cần phải tạo điểm kết nối VPC lại.

Nếu bạn kế hoạch triển khai đại lý lên các máy ảo Amazon EC2 bằng AWS Systems Manager, có sẵn một tài liệu của Amazon quản lý có tên AmazonGuardDuty-ConfigureRuntimeMonitoringSsmPlugin có thể sử dụng. Hoặc, bạn có thể sử dụng tập lệnh cài đặt RPM dù có hay không máy ảo Amazon ECS của bạn được quản lý bởi AWS Systems Manager.

Bật Giám sát Thời gian chạy của GuardDuty cho EC2

Giám sát Thời gian chạy của GuardDuty cho EC2 sẽ tự động được kích hoạt khi bạn bật Giám sát Thời gian chạy của GuardDuty.

Để bật Giám sát Thời gian chạy của GuardDuty:

  1. Trong bảng điều khiển GuardDuty, trong thanh điều hướng dưới Protection plans chọn Runtime Monitoring.
  2. Chọn tab Configuration, và sau đó trong phần Runtime Monitoring chọn Enable.

Hình 12: Bật giám sát thời gian chạy của GuardDuty

Sau khi các điều kiện tiên quyết đã được đáp ứng và bạn đã bật Giám sát Thời gian chạy của GuardDuty, GuardDuty sẽ bắt đầu theo dõi và phân tích các sự kiện hoạt động thời gian chạy cho các máy ảo EC2.

Nếu tài khoản AWS của bạn được quản lý trong Tổ chức AWS và bạn đang chạy các cụm ECS trên các cụm EC2 trong nhiều tài khoản AWS, chỉ có quản trị viên được ủy nhiệm GuardDuty mới có thể bật hoặc tắt Giám sát Thời gian chạy của GuardDuty cho các tài khoản thành viên. Nếu bạn đang sử dụng nhiều tài khoản và muốn quản lý GuardDuty tập trung, hãy xem Quản lý nhiều tài khoản trong Amazon GuardDuty.

Giám sát phủ sóng của GuardDuty cho EC2

Khi bạn bật Giám sát Thời gian chạy của GuardDuty và triển khai đại lý bảo mật trên các máy ảo Amazon EC2 của mình, bạn có thể xem trạng thái phủ sóng của các máy ảo.

Để xem trạng thái phủ sóng của máy ảo EC2:

  1. Trong bảng điều khiển GuardDuty, trong thanh điều hướng dưới Protection plans chọn Runtime Monitoring.
  2. Chọn tab Runtime coverage, sau đó chọn EC2 instance runtime coverage.

Hình 13: Tổng quan về phủ sóng của GuardDuty cho EC2

Thông báo về trạng thái phủ sóng của cụm có thể được cấu hình bằng cách sử dụng mô hình thông báo có sẵn trong phần Cấu hình thông báo thay đổi trạng thái phủ sóng. Thêm thông tin về giám sát có sẵn trong phần tiếp theo.

Thông báo Giám sát Thời gian chạy của GuardDuty

Nếu trạng thái phủ sóng của cụm ECS hoặc máy ảo EC2 trở nên không ổn định, có một số bước kiểm tra gỡ lỗi được đề xuất mà bạn có thể thực hiện.

Để được thông báo về các thay đổi trong trạng thái phủ sóng của một cụm ECS hoặc máy ảo EC2, nên thiết lập thông báo thay đổi trạng thái. Bởi vì GuardDuty xuất bản những thay đổi trạng thái này trên bus EventBridge liên quan đến tài khoản AWS của bạn, bạn có thể thực hiện điều này bằng cách thiết lập một quy tắc Amazon EventBridge để nhận thông báo.

Trong mẫu mẫu AWS CloudFormation dưới đây là một ví dụ, bạn có thể sử dụng một quy tắc EventBridge để gửi thông báo đến Amazon Simple Notification Service (Amazon SNS) và đăng ký theo dõi chủ đề SNS bằng email.

AWSTemplateFormatVersion: “2010-09-09”

Description: CloudFormation template for Amazon EventBridge rules to monitor Healthy/Unhealthy status of GuardDuty Runtime Monitoring coverage status. This template creates the EventBridge and Amazon SNS topics to be notified via email on state change of security agents

Parameters:

  namePrefix:

    Description: a simple naming convention for the SNS & EventBridge rules

    Type: String

    Default: GuardDuty-Runtime-Agent-Status

    MinLength: 1

    MaxLength: 50

    AllowedPattern: ^[a-zA-Z0-9\-_]*$

    ConstraintDescription: Maximum 50 characters of numbers, lower/upper case letters, -,_.

  operatorEmail:

    Type: String

    Description: Email address to notify if there are security agent status state changes

    AllowedPattern: “([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)”

    ConstraintDescription: must be a valid email address.

Resources:

  eventRuleUnhealthy:

    Type: AWS::Events::Rule

    Properties:

      EventBusName: default

      EventPattern:

        source:

          – aws.guardduty

        detail-type:

          – GuardDuty Runtime Protection Unhealthy

      Name: !Join [ ‘-‘, [ ‘Rule’, !Ref namePrefix, ‘Unhealthy’ ] ]

      State: ENABLED

      Targets:

        – Id: “GDUnhealthyTopic”

          Arn: !Ref notificationTopicUnhealthy

  eventRuleHealthy:

    Type: AWS::Events::Rule

    Properties:

      EventBusName: default

      EventPattern:

        source:

          – aws.guardduty

        detail-type:

          – GuardDuty Runtime Protection Healthy

      Name: !Join [ ‘-‘, [ ‘Rule’, !Ref namePrefix, ‘Healthy’ ] ]

      State: ENABLED

      Targets:

        – Id: “GDHealthyTopic”

          Arn: !Ref notificationTopicHealthy

  eventTopicPolicy:

    Type: ‘AWS::SNS::TopicPolicy’

    Properties:

      PolicyDocument:

        Statement:

          – Effect: Allow

            Principal:

              Service: events.amazonaws.com

            Action: ‘sns:Publish’

            Resource: ‘*’

      Topics:

        – !Ref notificationTopicHealthy

        – !Ref notificationTopicUnhealthy

  notificationTopicHealthy:

    Type: AWS::SNS::Topic

    Properties:

      TopicName: !Join [ ‘-‘, [ ‘Topic’, !Ref namePrefix, ‘Healthy’ ] ]

      DisplayName: GD-Healthy-State

      Subscription:

      – Endpoint:

          Ref: operatorEmail

        Protocol: email

  notificationTopicUnhealthy:

    Type: AWS::SNS::Topic

    Properties:

      TopicName: !Join [ ‘-‘, [ ‘Topic’, !Ref namePrefix, ‘Unhealthy’ ] ]

      DisplayName: GD-Unhealthy-State

      Subscription:

      – Endpoint:

          Ref: operatorEmail

        Protocol: email

Các kết luận của GuardDuty

Khi GuardDuty phát hiện một mối đe dọa tiềm ẩn và tạo ra một kết quả bảo mật, bạn có thể xem chi tiết của kết quả tương ứng. Đại lý GuardDuty thu thập các sự kiện không gian kernel và không gian người dùng từ các máy chủ và các container. Xem Loại kết quả để biết thông tin chi tiết và các hoạt động khắc phục được đề xuất liên quan đến từng loại kết quả. Bạn có thể tạo ra các kết quả Giám sát Thời chạy GuardDuty bằng cách sử dụng bảng điều khiển GuardDuty hoặc bạn có thể sử dụng tập lệnh GitHub này để tạo ra một số phát hiện cơ bản trong GuardDuty.

Ví dụ về kết quả ECS

Các kết quả bảo mật của GuardDuty có thể chỉ ra một khối lượng công việc container bị đe dọa hoặc cụm ECS hoặc một bộ thông tin chứng chỉ bị đe dọa trong môi trường AWS của bạn.

Để xem mô tả đầy đủ và gợi ý khắc phục về một kết quả:

  1. Trong bảng điều khiển GuardDuty, trong thanh điều hướng, chọn Findings.
  2. Chọn một kết quả trong thanh điều hướng và sau đó chọn siêu liên kết Info.

Hình 14: Ví dụ về kết quả GuardDuty

Loại tài nguyên cho một kết quả Fargate ECS có thể là một cụm ECS hoặc container. Nếu loại tài nguyên trong chi tiết kết quả là ECSCluster, nó chỉ ra rằng một nhiệm vụ hoặc một container bên trong một cụm ECS Fargate có khả năng bị đe dọa. Bạn có thể xác định Tên và Amazon Resource Name (ARN) của cụm ECS được ghép nối với các chi tiết ARN nhiệm vụ và ARN định nghĩa nhiệm vụ trong cụm.

Để xem các tài nguyên bị ảnh hưởng, chi tiết cụm ECS, chi tiết nhiệm vụ và chi tiết máy ảo liên quan đến một kết quả:

  1. Trong bảng điều khiển GuardDuty, trong thanh điều hướng, chọn Findings.
  2. Chọn một kết quả liên quan đến một cụm ECS trong thanh điều hướng, sau đó cuộn xuống trong cửa sổ bên phải để xem các tiêu đề phần khác nhau.

Hình 15: Chi tiết kết quả GuardDuty cho Fargate

Các chi tiết Hành động và Thời gian chạy cung cấp thông tin về hoạt động có thể gây nghi ngờ. Ví dụ kết quả trong Hình 16 cho bạn biết rằng container ECS được liệt kê trong môi trường của bạn đang truy vấn một miền được liên kết với hoạt động Bitcoin hoặc các hoạt động liên quan đến tiền điện tử khác. Điều này có thể dẫn đến những đối tượng đe dọa cố gắng kiểm soát tài nguyên tính toán để tái chủ yếu cho việc đào tiền điện tử trái phép.

Hình 16: Ví dụ kết quả ECS của GuardDuty với chi tiết hành động và quá trình

Ví dụ về kết quả ECS trên EC2

Khi một kết quả được tạo ra từ EC2, thông tin bổ sung được hiển thị bao gồm chi tiết về máy ảo, chi tiết hồ sơ IAM và các nhãn của máy ảo (như được thể hiện trong Hình 17), có thể được sử dụng để giúp xác định máy ảo EC2 bị ảnh hưởng.

Hình 17: Chi tiết máy ảo EC2 của GuardDuty cho một kết quả

Thông tin chi tiết cấp độ máy ảo này có thể giúp bạn tập trung nỗ lực khắc phục của mình.

Khắc phục kết quả của GuardDuty

Khi bạn đang theo dõi tính cách chạy của container trong nhiệm vụ của mình và GuardDuty xác định các vấn đề bảo mật tiềm ẩn trong môi trường AWS của bạn, bạn nên xem xét việc thực hiện các hành động khắc phục đề xuất sau đây. Điều này giúp giải quyết các vấn đề bảo mật tiềm ẩn và hạn chế mối đe dọa tiềm ẩn trong tài khoản AWS của bạn.

  1. Xác định Cụm ECS Amazon có thể bị ảnh hưởng – Kết quả giám sát thời chạy cung cấp chi tiết về cụm ECS Amazon có thể bị ảnh hưởng trong bảng chi tiết kết quả.
  2. Đánh giá nguồn tiềm ẩn của mối đe dọa – Đánh giá xem kết quả phát hiện có ở trong hình ảnh container không. Nếu nguồn lực nằm trong hình ảnh container, xác định tất cả các nhiệm vụ khác đang sử dụng hình ảnh này và đánh giá nguồn gốc của hình ảnh.
  3. Cách ly các nhiệm vụ bị ảnh hưởng – Để cách ly các nhiệm vụ bị ảnh hưởng, hạn chế cả lưu lượng vào lẫn ra khỏi các nhiệm vụ bằng cách triển khai các quy tắc mạng VPC từ chối tất cả lưu lượng. Phương pháp này có thể hiệu quả trong việc ngừng một cuộc tấn công đang diễn ra bằng cách cắt đứt tất cả các kết nối đến các nhiệm vụ bị ảnh hưởng. Hãy nhớ rằng việc chấm dứt các nhiệm vụ có thể loại bỏ bằng chứng quan trọng liên quan đến kết quả mà bạn có thể cần để phân tích thêm. Nếu container của nhiệm vụ đã truy cập máy chủ Amazon EC2 cơ sở, thông tin đăng nhập của nhiệm vụ có thể đã bị đe dọa. Để biết thêm thông tin, hãy xem Cách khắc phục vấn đề về chứng chỉ AWS đã bị đe dọa.

Mỗi kết quả Giám sát Thời chạy của GuardDuty cung cấp hướng dẫn cụ thể về khắc phục vấn đề. Trong mỗi kết quả, bạn có thể chọn Remediating Runtime Monitoring findings để biết thêm thông tin.

Để xem các hành động khắc phục đề xuất:

  1. Trong bảng điều khiển GuardDuty, trong thanh điều hướng, chọn Findings.
  2. Chọn một kết quả trong thanh điều hướng và sau đó chọn siêu liên kết Info và cuộn xuống trong cửa sổ bên phải để xem phần đề xuất khắc phục.

Hình 18: Khắc phục kết quả Giám sát Thời chạy của GuardDuty

Tóm tắt

Bây giờ bạn có thể sử dụng Amazon GuardDuty cho Giám sát Thời chạy ECS để theo dõi các khối công việc Fargate và EC2 của bạn. Để biết danh sách đầy đủ các khu vực nơi Giám sát Thời chạy ECS có sẵn, hãy xem Tính năng cụ thể của khu vực.

Đề xuất bạn đánh giá ứng dụng container của mình bằng Công cụ AWS Well-Architected để đảm bảo tuân thủ các best practices. AWS Well-Architected Amazon ECS Lens, vừa được ra mắt, cung cấp một đánh giá chuyên sâu cho các hoạt động và sửa lỗi dựa trên container của các ứng dụng Amazon ECS, tương thích với hướng dẫn thực hành tốt nhất ECS. Bạn có thể tích hợp ống kính này vào Công cụ AWS Well-Architected có sẵn trong bảng điều khiển.

Đối với thông tin chi tiết về giám sát bảo mật và phát hiện mối đe dọa, hãy truy cập Các cuộc họp trực tuyến AWS. Để có trải nghiệm thực tế và tìm hiểu thêm về các dịch vụ bảo mật AWS, hãy truy cập trang web Ngày Kích hoạt AWS của chúng tôi để tìm một workshop trong khu vực của bạn.

Nếu bạn có ý kiến phản hồi về bài đăng này, hãy gửi ý kiến trong phần Bình luận ở dưới. Nếu bạn có câu hỏi về bài đăng này, liên hệ Hỗ trợ AWS.

Về tác giả

Luke Notley

Luke là Kiến trúc sư giải pháp cấp cao của Amazon Web Services và có trụ sở tại Tây Úc. Luke có niềm đam mê giúp khách hàng kết nối kết quả kinh doanh với công nghệ và hỗ trợ khách hàng trong suốt hành trình đám mây của họ, giúp họ thiết kế các kiến trúc có thể mở rộng, linh hoạt và linh hoạt. Trong thời gian rảnh rỗi, anh ấy thích đi du lịch, huấn luyện các đội bóng rổ và làm DJ.

Arran Peterson

Arran, Kiến trúc sư Giải pháp có trụ sở tại Adelaide, Nam Úc, cộng tác chặt chẽ với khách hàng để hiểu sâu sắc các nhu cầu và mục tiêu kinh doanh riêng biệt của họ. Vai trò của anh mở rộng đến việc hỗ trợ khách hàng nhận ra cả cơ hội và rủi ro liên quan đến các quyết định của họ liên quan đến giải pháp đám mây.