Điện toán đám mây đã và đang tạo ra một khả năng xem như vô hạn và sự phát triển mạnh mẽ của nó đã biến điện toán đám mây thành tiện ích công cộng.
Điện toán đám mây OpenStack
Hiện nay, các nhà cung cấp đám mây cung cấp các loại dịch vụ điện toán đám mây dưới nhiều dạng khác nhau. Nhìn chung, mô hình kiến trúc dịch vụ điện toán đám mây thường được chia thành ba loại dịch vụ cơ bản là: dịch vụ cơ sở hạ tầng (Infrastructure as a Service – IaaS), dịch vụ nền tảng (Platform as a Service – PaaS) và dịch vụ phần mềm (Software as a Service – SaaS) (Hình 1).
Theo mô hình triển khai, điện toán đám mây được phân thành ba mô hình chính là điện toán đám mây riêng (Private Cloud), điện đám mây công cộng (Public Cloud) và điện đám mây lai (Hybrid Cloud) (Hình 2).
Điện toán đám mây có thể được xây dựng dựa trên nhiều công cụ phần mềm khác nhau, trong đó có những công cụ có bản quyền như Hyper-V của Microsoft hay VMWare… và các công cụ mã nguồn mở (open source) được ứng dụng rộng rãi và được cộng đồng phát triển mã nguồn quan tâm như: Eucalyptus, OpenNebula, Nimbus, OpenQRM, OpenStack,… Bài báo giới thiệu về vấn đề an toàn trong OpenStack, một bộ phần mềm điện toán đám mây mã nguồn mở được sử dụng phổ biến nhất hiện nay.
OpenStack là một bộ phần mềm mã nguồn mở trong đó bao gồm tập hợp các phương pháp, công nghệ mã nguồn mở để xây dựng cả đám mây riêng và đám mây công cộng. Rackspace và NASA là những tổ chức đầu tiên khởi xướng OpenStack vào năm 2010 và hiện nay, OpenStack đang tiếp tục được hỗ trợ bởi một số các tổ chức khác như: Citrix, Dell, IBM, Cisco, HP, Redhat, Intel,... Openstack cho phép triển khai dịch vụ IaaS (Infrastructure as a Service), nghĩa là có thể dùng OpenStack để tiến hành ảo hóa phần cứng, cung cấp dịch vụ phần cứng cho người sử dụng.
Cộng đồng phát triển mã nguồn OpenStack không ngừng mở rộng và được đánh giá là cộng đồng mã nguồn mở phát triển nhanh nhất thế giới trong những năm gần đây. Các hội thảo toàn cầu, thường niên luôn thu hút đông đảo các nhà khoa học, các nhà đầu tư và những người quan tâm.
Bên cạnh việc phát triển các ứng dụng và các chức năng của hệ thống thì vấn đề an toàn cũng được cộng đồng phát triển OpenStack quan tâm. Một trong những hướng đảm bảo an toàn cho công cụ OpenStack được đưa ra đó là phân chia hệ thống thành các khu vực an toàn. Các khu vực khác nhau sẽ có yêu cầu an toàn khác nhau, mức độ quan tâm và đầu tư để đảm bảo an toàn khác nhau.
Phân vùng an toàn (security domains)
Một phân vùng an toàn bao gồm vùng sử dụng của người dùng, các ứng dụng, các máy chủ hay các mạng cùng chung yêu cầu về độ tin cậy và kỳ vọng trong phạm vi một khu vực. Đặc biệt là chúng có cùng các yêu cầu xác thực (authentication) và cấp phép (authorization) (AuthN/Z).
Thông thường, kiến trúc OpenStack được chia thành bốn phân vùng an toàn cơ bản trong triển khai các đám mây an toàn, bao gồm: Phân vùng công cộng – Public; Phân vùng khách – Guest; Phân vùng quản lý – Management; Phân vùng dữ liệu – Data (Hình 3).
- - Phân vùng an toàn công cộng – Public: Bao gồm toàn bộ các khu vực mạng không tin cậy (untrusted) của hạ tầng đám mây. Nó thường là khu vực Internet, có thể là toàn bộ hệ thống hoặc cũng có thể là một mạng mà người dùng không có căn cứ tin cậy. Tất cả các dữ liệu được truyền trong phân vùng này mà có các yêu cầu về bảo mật hoặc toàn vẹn cần được bảo vệ theo kiểm soát cân bằng bù trừ (compensating controls). Phân vùng này luôn được coi là không tin cậy.
- - Phân vùng khách - Guest: Đặc trưng cho các tính toán giao dịch giữa các Instances (Instance-to-Instance), phân vùng khách quản lý dữ liệu tính toán được tạo ra bởi các Instance trên đám mây, nhưng không phải là các dịch vụ hỗ trợ cho việc quản lý của đám mây, như là các lệnh gọi API.
- Các nhà cung cấp đám mây riêng và đám mây công cộng không có sự kiểm soát chặt chẽ đối với việc sử dụng Instance hoặc là không giới hạn truy cập Internet đến các VMs nên cho rằng phân vùng này là không tin cậy. Các nhà cung cấp đám mây riêng muốn coi phân vùng này như là một khu vực nội bộ và tin cậy chỉ khi có các kiểm soát phù hợp được thực thi để khẳng định rằng các Instance và tất cả các liên kết giữa các Tenants là được tin cậy.
- - Phân vùng quản lý - Management: Là khu vực tương tác của các dịch vụ. Phân vùng này được coi như là “khu vực kiểm soát”, các mạng trong khu vực này truyền tải các dữ liệu bí mật như là các tham số cấu hình, các tên người dùng, và các mật khẩu. Giao dịch lệnh và điều khiển quan trọng nằm trong phân vùng này có yêu cầu tính toàn vẹn rất cao. Các truy cập vào phân vùng này cần được giới hạn và kiểm soát chặt chẽ.
- Phần lớn các thực thi trong phân vùng này phải là tin cậy. Tuy nhiên, khi quan tâm đến việc triển khai OpenStack, có nhiều hệ thống cầu nối phân vùng này với các phân vùng khác làm giảm mức độ tin cậy đặt ra cho phân vùng quản lý này.
- - Phân vùng an toàn dữ liệu - Data được quan tâm chính liên quan đến thông tin trong dịch vụ lưu trữ của OpenStack. Phần lớn dữ liệu được truyền qua phân vùng này yêu cầu rất cao về độ chính xác và bảo mật. Trong một số trường hợp, tùy theo dạng triển khai mà có thêm cả yêu cầu về tính sẵn sàng.
- Mức độ tin cậy của phân vùng này phụ thuộc vào việc quyết định triển khai của người quản trị và không có một mức độ tin cậy mặc định nào được đặt ra.
Cầu nối các khu vực an toàn – Bridging security domains
Cầu nối là một thành phần tồn tại trong nhiều phân vùng an toàn. Bất kỳ một thành phần nối giữa các phân vùng an toàn với mức tin cậy hoặc yêu cầu xác thực khác nhau phải được cấu hình cẩn thận. Các cầu nối này thường là những điểm yếu trong kiến trúc mạng đám mây. Một cầu nối thường được cấu hình cho phù hợp với yêu cầu an toàn của mức tin cậy cao nhất của vùng an toàn có sử dụng cầu nối. Trong nhiều trường hợp việc kiểm soát an toàn của các cầu nối cần được quan tâm tương ứng với các tấn công có thể xảy ra với hệ thống.
Hình 4 cho thấy, thành phần Compute Host làm cầu nối giữa phân vùng dữ liệu và phân vùng quản lý; do đó, thành phần Compute Host cần được cấu hình phù hợp với yêu cầu an toàn của phân vùng quản lý, do phân vùng quản lý có yêu cầu tin cậy cao hơn. Tương tự như vậy, thành phần API Endpoint trong mô hình kết nối phân vùng công cộng không tin cậy với phân vùng quản lý nên cần được thiết lập có thể chống lại các tấn công từ phân vùng công cộng lan sang phân vùng quản lý.
Trong một số trường hợp, người quản trị có thể cần đặt mức an toàn cho thành phần cầu nối cao hơn phân vùng an toàn tham gia vào cầu nối. Trong Hình 5, đối với thành phần API endpoint, kẻ tấn công có thể tiếp cận vào API endpoint từ phân vùng công cộng, từ đó làm vô hiệu hóa hoặc đạt được quyền truy cập tới phân vùng quản lý.
Kết luận
Việc phân tách các phân vùng an toàn trong thiết kế của OpenStack là không đơn giản, bởi vì các dịch vụ cốt lõi trong hệ thống sẽ thường kết nối ít nhất hai phân vùng an toàn, nên cần đưa ra một sự xem xét đặc biệt khi ứng dụng kiểm soát an toàn lên hệ thống. Tùy theo thực tế triển khai, người quản trị có thể ứng dụng các cách phân vùng an toàn khác nhau.
Theo cách phân chia được nêu trên, các phân vùng an toàn có thể ánh xạ độc lập hoặc kết hợp để thể hiện cho hầu hết các khu vực an toàn trong khi triển khai OpenStack. Ví dụ, một số mô hình triển khai có thể kết hợp phân vùng khách và phân vùng dữ liệu trong cùng một mạng vật lý, trong khi các mô hình khác thì các phân vùng này được thiết lập tách biệt. Trong mỗi trường hợp cụ thể, người quản trị đám mây cần xác định chính xác các khu vực an toàn để có sự quan tâm phù hợp. Việc nhận biết các phân vùng này cũng phụ thuộc vào mô hình đám mây được triển khai là đám mây công cộng (Public cloud), đám mây riêng (Private cloud), hay đám mây lai (Hybrid cloud).
Ý tưởng về điện toán đám mây đã xuất hiện từ những năm 1960, tuy nhiên, điện toán đám mây chỉ trở thành “tiện ích công cộng” khi mà vấn đề an toàn được giải quyết trọn vẹn, bao gồm cả các vấn đề về kỹ thuật và phi kỹ thuật.