1. Sử dụng các dịch vụ bảo mật trên AWS
1.1. Hệ thống mô phỏng bao gồm các tài nguyên
- AWS Console
- EC2
- S3
- ECS
- AWS CloudTrail
- VPC Flow Logs
- AWS Config
Trên máy chủ đều lưu trữ đa dạng các mẫu virus
1.2. Các services được sử dụng trong bài viết
-
GuardDuty
-
AWS Inspector
-
AWS Security Hub
-
Amazon Detective
-
Amazon Macie
1. 3. Triển khai
3.1. GuardDuty
GuardDuty hoạt động hiệu quả hơn khi hệ thống sử dụng AWS CloudTrail , VPC Flow Logs
Cài Đặt
Bước 1. Đăng nhập vào AWS Management Console https://console.aws.amazon.com.
Bước 2. Tìm kiếm và chọn dịch vụ "Amazon GuardDuty" trong danh sách các dịch vụ AWS.
Bước 3. Trên homepage của GuardDuty, nhấp vào nút "Get Started".
Bước 4. Chọn khu vực muốn sử dụng và nhấp vào nút "Enable GuardDuty".
Bước 5 Sau khi bật , GuardDuty sẽ bắt đầu tạo ra một "master GuardDuty detector" cho tài khoản AWS.
Detector này sẽ ngay lập tức thu thập và phân tích thông tin bảo mật từ các nguồn dữ liệu khác nhau trong tài khoản AWS. Đợi một vài phút cho quá trình triển khai hoàn tất.
Bước 6. Sau khi quá trình triển khai hoàn tất, chúng ta sẽ thấy các thông tin về detector như trạng thái, kích hoạt các chức năng, và các nguồn dữ liệu đang được giám sát.
Tab "Findings" hiển thị các sự cố bảo mật đã được phát hiện bởi GuardDuty.Có thể xem chi tiết về mỗi sự cố và thực hiện các biện pháp khắc phục
Cấu hình scan malware định kì với chức năng Malware Scan
Bước 7. Có thể tùy chỉnh cấu hình của GuardDuty bằng cách nhấp vào nút "Settings". Trên trang cấu hình, bạn có thể điều chỉnh các thiết lập như cấu hình báo động, chính sách IP bị cấm, và quản lý IP bị cấm.
Bước 8. Tắt hoặc xóa dịch vụ
3.2. AWS Inspector
AWS Inspector không thực hiện quét malware trực tiếp trong các instances EC2. Inspector tập trung vào phát hiện các lỗ hổng bảo mật và xác định các vấn đề liên quan đến việc tuân thủ các tiêu chuẩn bảo mật nhất định..
Cài đặt
Bước 1. Đăng nhập vào AWS Management Console
Bước 2. Tìm kiếm và chọn dịch vụ "Amazon Inspector"
Bước 3. Kích hoạt
Bước 4. Ngay sau khi được kích hoạt, hệ thống sẽ tìm kiếm các rủi ro hệ thống trên các tài nguyên EC2, ECS , Lambda (thiên về audit dịch vụ)
3.3. AWS Security Hub
Bước 1. Cấu hình AWS Config (bắt buộc trước khi sử dụng AWS Security Hub)
Bước 2 Tùy chọn tiêu chuẩn đánh giá
Bước 3. Sau khi cấu hình thành công, hệ thống tự động thu thập các lỗ hổng trong hệ thống AWS Console, đồng thời nhận các cảnh báo từ GuardDuty và AWS Inspector gửi về (mất 2h để hoàn thành quá trình này)
2. Audit hệ thống AWS với tiêu chuẩn bảo mật CIS
1. Root Account
- Đăng ký tài khoản root AWS bằng email Công ty
- Không sử dụng tài khoản root cho hoạt động bình thường (normal operation)
- Đảm bảo MFA được bật cho user root
- Không tạo access keys cho tài khoản root
- Chỉ để người có kinh nghiệm làm việc với AWS quản lý tài khoản admin (Với nhiều công ty lớn, AWS Certified Security – Specialty là chứng chỉ bắt buộc cho người sở hữu tài khoản admin)
- Đảm bảo rằng có nhân sự trực tiếp xử lý sự cố liên quan tới AWS trong trường hợp bị tấn công
- Đảm bảo rằng hệ thống đã đăng ký câu hỏi bảo mật nâng cao
2. Developer account
- Đảm bảo access key được thay đổi sau 90 ngày hoặc ít hơn
- Xác định Developer Roles trong Project (Administrator, Developer, Deployer, Read-only Supervisor..)
- Tạo một nhóm IAM với đặc quyền tối thiểu cho mỗi Developer Role (Không cấp thừa tài nguyên)
- Đối với mỗi Developer, tạo một IAM user cho Developer đó trong IAM group
- Xóa users, keys và credentials khi họ đã hoàn thành công việc
- Chỉ cung cấp cho IAM group những đặc quyền tối thiểu đủ để họ làm việc.
- Khuyến cáo rằng ngoại trừ Administrator Role, các vai trò khác không được phép truy cập dịch vụ IAM.
- Nên tạo nhóm và gán người dùng vào nhóm đó, thay vì đặt quyền truy cập cho từng người dùng.
- Xóa người dùng sau 45 ngày không sử dụng
- Hệ thống có chính sách mật khẩu đủ mạnh (chữ Hoa, chữ Thường, Ký tự đặc biệt...)
3. No sharing
- Không bao giờ chia sẻ bất kỳ keys hoặc passwords nào với người khác.
- Nếu ai đó (ví dụ: khách hàng) cần có quyền truy cập vào một số dịch vụ cụ thể, hãy tạo IAM user cho người đó.
- Nếu một ứng dụng hoặc IAM user từ AWS khác hoặc người dùng từ Active Directory của bạn cần truy cập vào một số dịch vụ cụ thể, hãy tạo IAM role cho trường hợp đó
4. Use MFA
- Enable MFA cho tất cả các tài khoản Console
- MFA được hỏi trong tất cả các tác vụ quan trọng của hệ thống (thêm/sửa/xóa) tài nguyên
5. Restrict access using policy
- Mặc đinh từ chối tất cả quyền truy cập ngoại trừ một nhóm Resources và AWS Products cụ thể
- Chỉ cho phép truy cập từ dải IP được chỉ định ( dải IP công cty hoặc dải IP khách hàng)
- Chỉ cho phép truy cập từ người dùng sử dụng MFA ( Tất cả người dùng không sử dụng MFA cho tài khoản của họ mặc định bị từ chối)
- Chỉ cho phép truy cập vào các tài nguyên đã được gắn thẻ (Các tài nguyên bắt buộc phải được gắn thẻ cụ thể, tránh gây nhầm lẫn và tạo hiệu quả trong quá trình điều tra xử lý sự cổ)
- Chỉ cho phép truy cập trong một khoảng thời gian nhất định
- Chỉ cho phép người dùng khởi chạy một loại instance cụ thể
6. IAM Password policty
Đặt chính sách password cho tất cả các IAM users trong account của bạn
- Ít nhất 8 ký tự
- Ít nhất 1 chữ hoa, chữ thường, số và ký hiệu
- Thời gian hết hạn mật khẩu tối đa 30 ngày
- Không sử dụng lặp lại mật khẩu (tối thiểu 3 lần trước đó )
7. Logging
- Đảm bảo CloudTrail được bật cho tất cả các khu vực
- Đảm bảo CloudTrail được tích hợp với CloudWatch
- Bật AWS Config để ghi lại (record) các cấu hình tài nguyên
- Bật CloudTrail trên all regions để theo dõi hành động của người dùng
- Đảm bảo log CloudTraid được encrypt bằng KMS CMKs
- S3 sử dụng để lưu trữ log CloudTrail thì không thể truy cập public
- Đảm bảo tồn tại cơ chế cảnh báo khi :
Đăng nhập Console mà không có MFA
- Sử dụng tài khoản root
- Thay đổi chính sách IAM
- Thay đổi cấu hình CloudTrail
- Lỗi xác thực quản lí Console AWS
- Thay đổi chính sách nhóm S3
- Thay đổi cấu hình AWS config
- Thay đổi của security group
- Thay đổi danh sách kiểm soát truy cập mạng (NACL)
- Thay đổi network gateways
- Thay đổi route table
- Thay đổi VPC
- Thay đổi của AWS Organization
8. Create billing alarm
- Sử dụng CloudWatch để thiết lập cảnh báo thanh toán khi mức sử dụng của bạn vượt quá ngưỡng cụ thể
(Việc sử dụng CloudWatch có thể sẽ tiêu tốn một chút ít tiền của bạn. Nhưng nó sẽ là rất rất nhỏ với số tiền mà bạn sẽ mất nếu Hacker kiểm soát được Cloud của bạn)
9. Secure Logging and Monitoring Service
-
Không cho phép người dùng không phải quản trị viên (non-admin user) sửa đổi Monitoring Services (CloudWatch, CloudTrail, Config) - Trong trường hợp xâm nhập, Hacker sẽ tìm mọi cách tắt các dịch vụ này để tránh truy vết và xuất hiện cảnh báo bảo mật.
-
Không cho phép người dùng không phải quản trị viên sửa đổi vị trí storage & output location (S3 buckets) cho các dịch vụ giám sát.
10. Sandard AMI
-
Khi khởi chạy một Instance Machine mới, phải sử dụng AMI tiêu chuẩn mặc định do AWS cung cấp.
-
Bất kỳ Image nào khác phải được kiểm tra và phê duyệt bởi chuyên gia bảo mật (IT / TQA) trước khi triển khai trong môi trường Production.
(Các images bên thứ 3 luôn tồn tại các lỗ hổng bảo mật và thời gian khắc phục các vấn đề bảo mật cũng lâu hơn so với các AMI tiêu chuẩn)
12. Limit network access
- Giới hạn truy cập vào Instance bằng cách sử dụng Security Group và Network ACL để chỉ cho phép lưu lượng truy cập cho các cổng và dải IP nhất định
Trong trường hợp cụ thể, có thể cấu hình Security Group :
- Cho phép RDP (port 3389) gửi đến từ dải IP của khách hàng
- Cho phép SSH (port 22) gửi đến từ dải IP của khách hàng
- Từ chối tất cả các inbound traffics khác (all other inbound traffics)
(Việc sử dụng 0.0.0.0/0 cho các dịch vụ "nhạy cảm" luôn là vấn đề đau đầu trong các dự án. Đã rất nhiều lần mình chứng kiến cơn thịnh nộ của khách hàng liên quan đến việc này. Tin mình đi, bạn sẽ không muốn trải qua điều này đâu ^^.!)
13.Use HTTPS and SSL/TLS
Nên sử dụng HTTPS và TLS / SSL khi kết nối với các dịch vụ đám mây (EC2, RDS, S3, DynamoDB...) qua Internet
Nó là giải pháp thay thế cho phương pháp truyền thông tin văn bản dạng plain text, văn bản loại này khi truyền trên internet sẽ không được mã hóa, nên việc áp dụng mã hóa vào sẽ khiến cho các bên thứ 3 không xâm nhập được bào thông tin của bạn, không đánh cắp hay chỉnh sửa được các thông tin đó. Hầu hết mọi người đều quen thuộc với các chứng chỉ SSL/TLS, đang được dùng bởi các website lớn và các webmaster nghiêm túc trong việc bảo vệ các giao dịch người dùng.
14.Encrypt RDS
- Đối với RDS database instance quan trọng, bạn nên bật mã hóa phía máy chủ RDS (RDS server side encryption)
15.Backup RDS
- Sử dụng RDS snapshot hoặc automated backup (sao lưu tự động) để sao lưu RDS databases quan trọng