Bảo mật Zero Trust là một mô hình trong đó các thành phần ứng dụng hoặc microservices được coi là rời rạc với nhau và không có thành phần hoặc microservice nào tin cậy bất kỳ thành phần nào khác. Mô hình này được thiết kế để coi đầu vào từ bất kỳ nguồn nào đều là có khả năng độc hại. Nó bắt đầu với việc không tin tưởng vào cấu trúc mạng nội bộ cơ bản và mở rộng sang những thứ như xác nhận đầu vào và đầu ra ở mọi microservices.
An ninh mạng truyền thống dựa trên một vành đai an toàn - mọi thứ bên trong vành đai đều được tin cậy và mọi thứ bên ngoài vành đai thì không. Mạng Zero Trust đánh giá tất cả các hành động và tài nguyên trong thời gian thực để giảm nguy cơ truy cập ngoài ý muốn vào dữ liệu kinh doanh và các tài nguyên nhạy cảm. Thay vì tin rằng mọi thứ đằng sau bức tường lửa (firewall) của công ty là an toàn, mô hình Zero Trust giả định vi phạm và xác minh từng yêu cầu như thể nó bắt nguồn từ một mạng không được kiểm soát.
Bất kể yêu cầu bắt nguồn từ đâu hay truy cập vào tài nguyên nào, mô hình Zero Trust dạy chúng ta “đừng bao giờ tin tưởng, hãy luôn xác minh”.
Trong mô hình Zero Trust, mọi yêu cầu truy cập đều được xác thực mạnh mẽ, được ủy quyền trong các ràng buộc chính sách và kiểm tra các điểm bất thường trước khi cấp quyền truy cập.
Để hiểu rõ hơn về kiến trúc Zero Trust, có thể sử dụng mô hình mối đe dọa (threat modeling) để so sánh kiến trúc này với các kiến trúc truyền thống và cloud-native.
Đây là một kiến trúc được thể hiện là một thiết kế được kiến trúc tốt và an toàn cho ứng dụng web của bạn. Hệ thống được bảo vệ chống lại các tấn công thông thường sử dụng các dịch vụ sau:
Trong mô hình mối đe dọa, người dùng cố gắng xác định tất cả các khả năng tấn công tiềm ẩn để xác định rủi ro và các biện pháp giảm thiểu. Một mô hình mối đe dọa có thể được sử dụng cho các mục đích minh họa, STRIDE, xác định các mối đe dọa trong các danh mục sau:
Hãy đánh giá lại kiến trúc và bảo vệ từng thành phần dưới dạng một microservice thay vì là một phần của hệ thống đáng tin cậy lớn hơn. Ví dụ: hãy đánh giá cách chúng tôi bảo vệ chống giả mạo và lộ thông tin bởi cuộc tấn công SQL Injection bằng cách sử dụng dịch vụ AWS WAF. Theo thiết kế, khách hàng sử dụng trang web sẽ đi qua Amazon CloudFront để truy cập cả nội dung tĩnh và động. Mặc dù việc áp dụng các quy tắc AWS WAF cho CloudFront Distribution là hợp lý, ELB/ALB sẽ sử dụng địa chỉ IP public mà người khác có thể phát hiện được. Một cách giảm thiểu sẽ là áp dụng các quy tắc WAF tương tự trực tiếp chống lại ELB.
Còn giữa các tầng máy chủ web và máy chủ ứng dụng thì sao? Theo truyền thống, chúng được coi là các thành phần “nội bộ” và dữ liệu luân chuyển giữa chúng không phải chịu sự giám sát giống nhau. Tuy nhiên, mô hình Zero Trust yêu cầu tất cả các thành phần và thông tin liên lạc được coi là không đáng tin cậy. AWS WAF có thể không phải là giải pháp phù hợp tùy thuộc vào các phương thức giao tiếp, nhưng một lớp lọc khác - dựa trên máy chủ hoặc dựa trên mạng - sẽ được triển khai để xác thực đầu vào trước khi đầu vào được cấp ứng dụng nhập. Ngoài ra, xác thực và ủy quyền các lệnh giữa hai cấp này sẽ liên tục tương tự như cách AWS sử dụng AWS Signature Version 4 đối với API.
Các quy tắc AWS WAF và xác thực đầu vào cục bộ có hiệu quả trong việc bảo vệ chống lại một số cuộc tấn công - nhưng còn DDoS thì sao? AWS Shield bảo vệ chống lại các cuộc tấn công DDoS phổ biến nhất, nhưng bạn nên đánh giá các mối đe dọa tiềm ẩn đến từ các yếu tố khác của hệ thống. Kiến trúc thực tiễn tốt nhất không giải quyết khả năng xảy ra trường hợp máy chủ web làm flooding máy chủ ứng dụng với công việc hợp lệ nhưng vô nghĩa hoặc giải quyết nhóm bảo mật vô tình bị định cấu hình sai. Trong mô hình Zero Trust:
Để bảo vệ hơn nữa chống lại việc lộ thông tin, giả mạo và đủ khả năng ở một số mức độ hoặc sự từ chối, hãy tận dụng mã hóa và đặc quyền ít nhất . Ví dụ: khi cấp web tạo bản sao lưu, hãy sử dụng khóa AWS Key Management Service (AWS KMS) mà chỉ instance role đó mới có quyền KMS: Encrypt. Vì tầng web không cần phải giải mã các bản sao lưu của chính nó, hãy từ chối hoặc bỏ qua KMS: Decrypt cho role đó. Vì instance role đó là thực thể duy nhất có khả năng sử dụng khóa KMS để mã hóa dữ liệu và được kết hợp với nhật ký CloudTrail để kiểm tra, bạn có thể xác thực rằng các bản sao lưu được viết bởi các phiên bản đó và không bị giả mạo. Nếu những trường hợp đó được truy cập bởi người dùng trái phép, họ không thể đọc từ các bản sao lưu trước đây.
Đây chỉ là một số bước bạn có thể thực hiện. Bạn cũng có thể thêm user authentication between tiers on the Application Load Balancer hoặc sử dụng API Gateway between your App Tier and the databases để thực hiện xác thực các truy vấn. Lấy kiến trúc trước đó và áp dụng mô hình Zero Trust cho nó có thể dẫn đến một kiến trúc tương tự như sau:
Bảo mật Zero Trust là một mô hình trong đó các thành phần ứng dụng hoặc microservices được coi là rời rạc với nhau và không có thành phần hoặc microservice nào tin cậy bất kỳ thành phần nào khác. Mô hình này được thiết kế để coi đầu vào từ bất kỳ nguồn nào đều là có khả năng độc hại. Nó bắt đầu với việc không tin tưởng vào cấu trúc mạng nội bộ cơ bản và mở rộng sang những thứ như xác nhận đầu vào và đầu ra ở mọi microservices.
An ninh mạng truyền thống dựa trên một vành đai an toàn - mọi thứ bên trong vành đai đều được tin cậy và mọi thứ bên ngoài vành đai thì không. Mạng Zero Trust đánh giá tất cả các hành động và tài nguyên trong thời gian thực để giảm nguy cơ truy cập ngoài ý muốn vào dữ liệu kinh doanh và các tài nguyên nhạy cảm. Thay vì tin rằng mọi thứ đằng sau bức tường lửa (firewall) của công ty là an toàn, mô hình Zero Trust giả định vi phạm và xác minh từng yêu cầu như thể nó bắt nguồn từ một mạng không được kiểm soát.
Bất kể yêu cầu bắt nguồn từ đâu hay truy cập vào tài nguyên nào, mô hình Zero Trust dạy chúng ta “đừng bao giờ tin tưởng, hãy luôn xác minh”.
Trong mô hình Zero Trust, mọi yêu cầu truy cập đều được xác thực mạnh mẽ, được ủy quyền trong các ràng buộc chính sách và kiểm tra các điểm bất thường trước khi cấp quyền truy cập.
Để hiểu rõ hơn về kiến trúc Zero Trust, có thể sử dụng mô hình mối đe dọa (threat modeling) để so sánh kiến trúc này với các kiến trúc truyền thống và cloud-native.
Đây là một kiến trúc được thể hiện là một thiết kế được kiến trúc tốt và an toàn cho ứng dụng web của bạn. Hệ thống được bảo vệ chống lại các tấn công thông thường sử dụng các dịch vụ sau:
Trong mô hình mối đe dọa, người dùng cố gắng xác định tất cả các khả năng tấn công tiềm ẩn để xác định rủi ro và các biện pháp giảm thiểu. Một mô hình mối đe dọa có thể được sử dụng cho các mục đích minh họa, STRIDE, xác định các mối đe dọa trong các danh mục sau:
Hãy đánh giá lại kiến trúc và bảo vệ từng thành phần dưới dạng một microservice thay vì là một phần của hệ thống đáng tin cậy lớn hơn. Ví dụ: hãy đánh giá cách chúng tôi bảo vệ chống giả mạo và lộ thông tin bởi cuộc tấn công SQL Injection bằng cách sử dụng dịch vụ AWS WAF. Theo thiết kế, khách hàng sử dụng trang web sẽ đi qua Amazon CloudFront để truy cập cả nội dung tĩnh và động. Mặc dù việc áp dụng các quy tắc AWS WAF cho CloudFront Distribution là hợp lý, ELB/ALB sẽ sử dụng địa chỉ IP public mà người khác có thể phát hiện được. Một cách giảm thiểu sẽ là áp dụng các quy tắc WAF tương tự trực tiếp chống lại ELB.
Còn giữa các tầng máy chủ web và máy chủ ứng dụng thì sao? Theo truyền thống, chúng được coi là các thành phần “nội bộ” và dữ liệu luân chuyển giữa chúng không phải chịu sự giám sát giống nhau. Tuy nhiên, mô hình Zero Trust yêu cầu tất cả các thành phần và thông tin liên lạc được coi là không đáng tin cậy. AWS WAF có thể không phải là giải pháp phù hợp tùy thuộc vào các phương thức giao tiếp, nhưng một lớp lọc khác - dựa trên máy chủ hoặc dựa trên mạng - sẽ được triển khai để xác thực đầu vào trước khi đầu vào được cấp ứng dụng nhập. Ngoài ra, xác thực và ủy quyền các lệnh giữa hai cấp này sẽ liên tục tương tự như cách AWS sử dụng AWS Signature Version 4 đối với API.
Các quy tắc AWS WAF và xác thực đầu vào cục bộ có hiệu quả trong việc bảo vệ chống lại một số cuộc tấn công - nhưng còn DDoS thì sao? AWS Shield bảo vệ chống lại các cuộc tấn công DDoS phổ biến nhất, nhưng bạn nên đánh giá các mối đe dọa tiềm ẩn đến từ các yếu tố khác của hệ thống. Kiến trúc thực tiễn tốt nhất không giải quyết khả năng xảy ra trường hợp máy chủ web làm flooding máy chủ ứng dụng với công việc hợp lệ nhưng vô nghĩa hoặc giải quyết nhóm bảo mật vô tình bị định cấu hình sai. Trong mô hình Zero Trust:
Để bảo vệ hơn nữa chống lại việc lộ thông tin, giả mạo và đủ khả năng ở một số mức độ hoặc sự từ chối, hãy tận dụng mã hóa và đặc quyền ít nhất . Ví dụ: khi cấp web tạo bản sao lưu, hãy sử dụng khóa AWS Key Management Service (AWS KMS) mà chỉ instance role đó mới có quyền KMS: Encrypt. Vì tầng web không cần phải giải mã các bản sao lưu của chính nó, hãy từ chối hoặc bỏ qua KMS: Decrypt cho role đó. Vì instance role đó là thực thể duy nhất có khả năng sử dụng khóa KMS để mã hóa dữ liệu và được kết hợp với nhật ký CloudTrail để kiểm tra, bạn có thể xác thực rằng các bản sao lưu được viết bởi các phiên bản đó và không bị giả mạo. Nếu những trường hợp đó được truy cập bởi người dùng trái phép, họ không thể đọc từ các bản sao lưu trước đây.
Đây chỉ là một số bước bạn có thể thực hiện. Bạn cũng có thể thêm user authentication between tiers on the Application Load Balancer hoặc sử dụng API Gateway between your App Tier and the databases để thực hiện xác thực các truy vấn. Lấy kiến trúc trước đó và áp dụng mô hình Zero Trust cho nó có thể dẫn đến một kiến trúc tương tự như sau:
Quick Links
Social Media