Security Checklist hệ thống chạy trên Amazon Web Services
Bảo mật luôn là mối quan tâm của doanh nghiệp khi di chuyển lên đám mây, đặc biệt là đối với các doanh nghiệp lưu trữ dữ liệu người dùng như ngân hàng, tài chính, bất động sản và bảo hiểm.
Mô hình chia sẻ trách nhiệm – Shared Responsibility Model
Bảo mật và tuân thủ là trách nhiệm chung giữa AWS và khách hàng. Mô hình chia sẻ này có thể giúp giảm bớt gánh nặng vận hành cho khách hàng vì AWS sẽ vận hành, quản lý và kiểm soát các thành phần từ hệ điều hành máy chủ và lớp ảo hóa cho tới bảo mật vật lý của các cơ sở đang vận hành dịch vụ.
Khách hàng sẽ phụ trách và quản lý hệ điều hành máy khách (bao gồm bản cập nhật và bản vá bảo mật), các phần mềm ứng dụng liên kết khác cũng như việc cấu hình tường lửa, Security Groups do AWS cung cấp.
Khách hàng cần phải cẩn trọng cân nhắc các dịch vụ mà mình chọn vì trách nhiệm của khách hàng sẽ thay đổi tùy theo dịch vụ sử dụng, tùy theo việc tích hợp các dịch vụ đó vào môi trường CNTT của khách hàng cũng như pháp luật và quy định hiện hành.
Bản chất của trách nhiệm chung này cũng tạo ra sự linh hoạt và cung cấp quyền kiểm soát cho khách hàng để cho phép triển khai.
Chia sẻ trách nhiệm liên quan tới bảo mật
Mô hình chia sẻ trách nhiệm của AWS chỉ rõ rằng một số khía cạnh nhất định của bảo mật AWS nằm trong tay doanh nghiệp; và doanh nghiệp phải hoàn toàn chịu trách nhiệm với những sự cố bảo mật xảy ra trong phần quản lý của doanh nghiệp.
Công việc liên quan tới Bảo mật trong Mô hình chia sẻ trách nhiệm
Trách nhiệm của Khách hàng
Trách nhiệm của AWS
Ngăn chặn hoặc phát hiện khi tài khoản AWS bị xâm phạm
o
Ngăn chặn hoặc phát hiện người dùng AWS đặc quyền hoặc thông thường đang hoạt động theo cách không an toàn
o
Ngăn dữ liệu nhạy cảm được tải lên hoặc chia sẻ từ các ứng dụng theo cách không phù hợp
o
Cấu hình dịch vụ AWS (ngoại trừ AWS Managed Services) theo cách an toàn
o
Chỉ giới hạn quyền truy cập vào các dịch vụ AWS hoặc các ứng dụng tùy chỉnh cho những người dùng yêu cầu
o
Cập nhật guest OS và áp dụng các bản vá bảo mật
o
Đảm bảo AWS và các ứng dụng tùy chỉnh đang được sử dụng theo cách tuân thủ các chính sách bên trong và bên ngoài
o
o
Đảm bảo về phần network security (DoS, man-in-the-middle (MITM), port scanning)
o
o
Cấu hình AWS Managed Services theo cách an toàn.
o
Cung cấp kiểm soát truy cập vật lý vào phần cứng / phần mềm
o
Cung cấp bảo đảm an ninh về môi trường chống lại những thứ như mất điện hàng loạt, động đất, lũ lụt và các thảm họa thiên nhiên khác
o
Vá lỗi database
o
Bảo vệ chống lại việc khai thác AWS zero-day và các lỗ hổng bảo mật khác
o
Quản lý tính liên tục của doanh nghiệp (tính khả dụng, ứng phó sự cố)
Checklist này cung cấp các đề xuất của khách hàng phù hợp với Security Pillar trong AWS Well-Architected Framework.
Security Checklist của AWS Identity & Access Management (IAM)
Nội dung công việc
Hoàn thành
Tránh sử dụng Access Keys của tài khoản root trong AWS vì những key này cho phép truy cập đầy đủ vào tất cả các tài nguyên
Xác thực đa lớp (Multi Factor Authentication) phải được kích hoạt cho tài khoản root để cung cấp xác thực hai yếu tố
Tập trung danh tính bằng AWS Single Sign-On hoặc giải pháp của bên thứ 3 để tránh tạo nhiều tài khoản IAM phát sinh thường xuyên hoặc sử dụng Access Keys dài hạn (long-term)
Gán cho IAM user các quyền cần thiết để cho phép đăng nhập các dịch vụ hoặc quyền truy cập (permission) tài nguyên thông qua IAM Policies hoặc IAM Roles nếu sử dụng cross-account
Đảm bảo tài khoản người dùng cũng có xác thực MFA
IAM Access Keys phải được cấp lại theo chu kỳ
Đảm bảo chính sách mật khẩu mạnh cho người dùng và thiết lập vòng đời 90 ngày cho mật khẩu
Gán quyền cho người dùng dựa trên User Groups, thay vì gán trên từng người dùng riêng lẻ
Cấp quyền truy cập tối thiểu trong khi tạo IAM Policies, các chính sách này là cần thiết để thực hiện các hành động nhất định
Đính kèm IAM Policies vào Groups hoặc Roles khi tạo
Nên sử dụng các điều kiện (conditions) phù hợp nhằm giới hạn việc từ chối hoặc cho phép hành động với các tài nguyên
Loại bỏ các IAM user không cần thiết, là những người không hoạt động hoặc không sử dụng
Sử dụng IAM Roles để cấp quyền truy cập vào các ứng dụng trên EC2 Instance
Sử dụng nhiều tài khoản AWS để tách biệt dữ liệu và tài nguyên trên AWS, đồng thời cho phép sử dụng Service Control Policies để tích hợp guardrails trong AWS Control Tower. AWS Control Tower sẽ giúp bạn dễ dàng thiết lập và quản lý môi trường AWS có nhiều tài khoản
Security Checklist của Amazon S3
Nội dung công việc
Hoàn thành
Đảm bảo S3 buckets không thể truy cập công khai (quyền đọc hoặc ghi công khai) – người dùng có thể bật ‘Amazon S3 block public access’ để ngăn chặn truy cập từ Public
Sử dụng quyền cấp đối tượng (object-level) hoặc cấp bộ chứa (bucket-level) bên cạnh IAM Policies để cấp quyền truy cập vào tài nguyên
Kích hoạt MFA Delete để ngăn chặn việc tình cờ xóa các buckets
Xem xét mã hóa dữ liệu được lưu trữ, có thể được thực hiện theo hai cách — mã hóa phía máy chủ và phía máy khách
Cho phép mã hóa lưu lượng dữ liệu đến và đi, thông qua các điểm cuối SSL (SSL endpopints)
Cấu hình quản lý vòng đời S3 (S3 lifecycle) thông qua các hành động dựa trên quy tắc (rule-based actions) và sử dụng (chức năng) Bucket Versioning, để đối phó với việc xóa ngẫu nhiên
Đảm bảo ghi nhật ký truy cập S3 (S3 access logging) được bật
Liên tục kiểm tra và giám sát các S3 buckets bằng cách sử dụng các metric của Amazon CloudWatch
Security Checklist của Amazon EC2, Amazon VPC và Amazon EBS
Nội dung công việc
Hoàn thành
Đảm bảo dữ liệu và ổ đĩa (disk volume) trong EBS được mã hóa bằng AES-256
Hạn chế quyền truy cập vào các instance từ dải IP hạn chế bằng cách sử dụng Security Groups
Giới hạn phạm vi của các port được mở trên các EC2 Security Groups, để ngăn chặn tấn công qua các lỗ hổng
Sử dụng IAM Policies kèm giới hạn cho các IAM user, role được phép thay đổi, chỉnh sửa AMI gốc (Amazon Machine Images)
Đảm bảo Elastic Load Balancers có một Security Group hợp lệ gắn với nó và kích hoạt access logging
Giám sát và tối ưu hóa các Security Groups mặc định, vì chúng cho phép truy cập không hạn chế cho lưu lượng truy cập đến và đi
Sử dụng AWS Firewall Manager để tự động áp dụng các rule của Security Groups và AWS WAF
Đảm bảo hạn chế truy cập vào SSH, FTP, SMTP, MySQL, PostgreSQL, MongoDB, MSSQL, CIFS…, giới hạn vào các IP cố định nếu được
Sử dụng IAM Roles để cấp quyền truy cập vào EC2, thay vì Access Keys cho các yêu cầu tạm thời
Nếu đang sử dụng IAM user Access Keys để có quyền dài hạn, hãy đảm bảo rằng không nhúng các key này trực tiếp vào code
Tạo các key khác nhau cho các ứng dụng khác nhau, xoay chuyển các Access Keys, sử dụng xác thực MFA và ngừng hoạt động các Key pairs chưa sử dụng
Bật và kích hoạt VPC flow logs để ghi lại lưu lượng đến và đi trong VPC để theo dõi tốt hơn và chẩn đoán sớm các sự cố tiềm ẩn
Xóa các Virtual Private Gateway và VPC Internet Gateway không sử dụng
Đảm bảo rằng không có điểm cuối VPC (VPC endpoints) nào bị lộ ra public, bằng cách kiểm tra giá trị chính trong policy
Đảm bảo không có Network ACL nào cho phép truy cập vào hoặc ra không hạn chế
Security Checklist của AWS CloudTrail
Nội dung công việc
Hoàn thành
Đảm bảo CloudTrail được kích hoạt tính năng Multi-region
Nên đăng nhập vào một S3 bucket trung tâm (centralized S3 bucket) và sử dụng access logging và hạn chế truy cập vào CloudTrail S3 bucket
Đảm bảo cả CloudTrail và CloudTrail logging đều được kích hoạt Multi-Region logging
Đảm bảo xác thực tính toàn vẹn của file CloudTrail log được bật
Đảm bảo các CloudTrail log được mã hóa
Sử dụng kết hợp với Amazon CloudWatch để gắn các metric, với Amazon GuardDuty để giám sát liên tục và AWS Security Hub để có cái nhìn toàn diện về bảo mật trên AWS
Security Checklist của Amazon CloudFront, AWS WAF và AWS Shield
Nội dung công việc
Hoàn thành
Sử dụng Amazon CloudFront, AWS WAF và AWS Shield để cung cấp khả năng bảo vệ tấn công DDoS ở các Layer 3 (Network), Layer 4 (Transport) và Layer 7 (Application)
Đảm bảo các RDS Security Groups không cho phép truy cập không hạn chế
Đảm bảo mã hóa các instance RDS và snapshot, sử dụng mã hóa mức AES-256
Bảo vệ dữ liệu khi truyền sang RDS thông qua các điểm cuối SSL
Giám sát kiểm soát RDS bằng AWS Key Management Service (KMS) và Customer Managed Keys
Cấu hình AWS Secrets Manager để tự động xoay vòng các secret (một tập hợp các thông tin, tên người dùng và mật khẩu, và các chi tiết kết nối dùng để truy cập vào một dịch vụ bảo đảm) cho Amazon RDS
Đảm bảo các instance cơ sở dữ liệu RDS và snapshot không thể truy cập công khai
Bật tính năng tự động nâng cấp nhỏ (automatic minor upgrade) cho RDS
Security Checklist của Amazon Redshift
Nội dung công việc
Hoàn thành
Bật require_ssl số trong tất cả các cluster của Redshift để giảm thiểu rủi ro mã hóa dữ liệu đang chuyển tiếp cho Redshift và kết nối SQL Client với cluster của doanh nghiệp
Cho phép mã hóa Redshift Cluster
Kích hoạt require_ssl parameter cho các RedShift Cluster
Đảm bảo tính năng ghi nhật ký (logging) hoạt động của người dùng Redshift được bật
Đảm bảo mã hóa Redshift với KMS Customer Managed Keys
Chúng tôi khuyên doanh nghiệp nên khởi chạy các Redshift cluster trong VPC để kiểm soát tốt hơn
Đảm bảo rằng các Redshift cluster không thể truy cập công khai
Security Checklist của AWS Systems Manager
Nội dung công việc
Hoàn thành
Sử dụng AWS Systems Manager Patch Manager để tự động quá trình vá các hệ thống và code, bao gồm OS, ứng dụng và code dependencies
Sử dụng AWS Systems Manager Automation runbook hoặc sử dụng Command để truy cập gián tiếp vào cơ sở dữ liệu hoặc hệ thống
Security Checklist của Monitoring và Alerts
Nội dung công việc
Hoàn thành
Kích hoạt AWS Config để giám sát dữ liệu lịch sử của các tài nguyên, và sử dụng Config Managed Rules để tự động cảnh báo hoặc ngay lập tức cảnh báo những thay đổi không mong muốn
Thiết lập cảnh báo (Alerts) trên tạo cả các logs và events từ AWS CloudTrail, tới Amazon GuardDuty và log của các ứng dụng, giúp xác định các event được cảnh báo ưu tiên cao để điều tra sự cố bảo mật