Một **lỗ hổng CVE** nghiêm trọng, được đặt tên là CosmosEscape, trong dịch vụ Microsoft Azure Cosmos DB đã có khả năng cho phép những kẻ tấn công chiếm quyền kiểm soát hầu như mọi cơ sở dữ liệu được lưu trữ trên dịch vụ này, bao gồm cả các hệ thống nội bộ của Microsoft.
Lỗ hổng này tồn tại trong API Gremlin của Cosmos DB. Nếu bị khai thác, nó có thể dẫn đến một cuộc tấn công chéo giữa các khách thuê (cross-tenant attack), ảnh hưởng đến hàng triệu khối lượng công việc của khách hàng và cả hạ tầng nội bộ của Microsoft.
Việc hiểu rõ các rủi ro cấu trúc như vậy ngày càng trở nên quan trọng khi đánh giá tổng thể về an ninh nền tảng đám mây trên các môi trường doanh nghiệp đa khách thuê.
Khám phá và Cơ chế Kỹ thuật của Lỗ hổng CVE CosmosEscape
Các nhà nghiên cứu tại Wiz đã phát hiện ra lỗ hổng khi đang thử nghiệm với Gremlin, một ngôn ngữ truy vấn đồ thị phổ biến được Cosmos DB hỗ trợ. Họ đã nhận thấy một ngoại lệ .NET bất thường.
Hầu hết các triển khai Gremlin mã nguồn mở chạy trên Máy ảo Java (JVM). Điều này cho thấy Cosmos DB sử dụng một công cụ Gremlin tùy chỉnh dựa trên .NET.
Sự khác biệt này rất quan trọng bởi vì các máy chủ Gremlin thường biên dịch các truy vấn thành mã có thể thực thi và chạy chúng bên trong một môi trường sandbox bị hạn chế. Các sandbox này trong lịch sử đã cho thấy sự mong manh trước những kẻ tấn công kiên quyết.
Khai thác Phản ánh .NET và Thoát Sandbox
Nghi ngờ của nhóm nghiên cứu đã được xác nhận. Họ phát hiện ra rằng công cụ của Cosmos DB dịch các truy vấn Gremlin thành mã .NET nhưng không hạn chế đầy đủ tính năng phản ánh .NET reflection.
Tính năng này cho phép mã kiểm tra và thao tác các mã khác tại thời điểm chạy. Bằng cách khai thác lỗ hổng này, các nhà nghiên cứu đã xây dựng khả năng đọc tệp, ghi tệp và cuối cùng là khả năng thực thi mã tùy ý hoàn toàn (remote code execution).
Họ thực hiện điều này chỉ bằng cách sử dụng các truy vấn được tạo ra và chạy trên cơ sở dữ liệu của chính họ. Đây là một phương pháp khai thác cho phép tấn công mạng hiệu quả.
Bằng chứng Khai thác (Proof of Concept)
Trong một bằng chứng khái niệm ấn tượng, một truy vấn Gremlin được thiết kế đặc biệt đã thực thi lệnh hostname trực tiếp trên hạ tầng backend của Cosmos DB.
g.V().hasLabel('Person').has('name', __.inject(System.getenv('COMPUTERNAME'))).values('name')
Việc thực thi mã này đã cho phép các nhà nghiên cứu có chỗ đứng trên DB Gateway, thành phần đa khách thuê chịu trách nhiệm chạy các truy vấn của khách hàng.
Tầm ảnh hưởng và Quy mô Tấn công Mạng
Mặc dù các cơ sở dữ liệu của khách hàng không được lưu trữ trên cùng một cụm, Gateway vẫn cần một cách để truy cập chúng. Nó thực hiện điều này bằng cách sử dụng một khóa ký có khả năng truy xuất khóa chính (primary key) của bất kỳ tài khoản nào.
Điều quan trọng là khóa ký này không chỉ giới hạn trong một khách hàng hoặc một khu vực; nó hoạt động trên nhiều khách thuê, khu vực và các định dạng API bao gồm SQL, MongoDB, Cassandra và Gremlin. Đây là một lỗ hổng CVE rất nghiêm trọng.
Khóa Chính Cosmos (Cosmos Master Key)
Wiz đặt tên cho bí mật mạnh mẽ này là Cosmos Master Key. Khóa Chính này cũng mở khóa quyền truy cập vào Config Store, về cơ bản là thư mục chính của Cosmos DB liệt kê mọi tài khoản trên nền tảng cùng với ID đăng ký, ID khách thuê, quy tắc mạng và thẻ.
Vì Config Store bản thân nó là một cơ sở dữ liệu Cosmos DB có thể truy vấn được, những kẻ tấn công có thể đã sử dụng nó để liệt kê mọi tài khoản trong một khu vực hoặc lọc kết quả theo ID khách thuê để nhắm mục tiêu chính xác vào một tổ chức cụ thể.
Theo phân tích được công bố trên Blog nghiên cứu của Wiz, việc kết hợp các lỗ hổng thoát sandbox với các khóa ký không giới hạn đã phá vỡ các ranh giới cô lập đám mây cơ bản. Đây là một ví dụ điển hình về **lỗ hổng CVE** có tác động rộng.
Những rủi ro kiến trúc này phù hợp với các xu hướng lỗ hổng bảo mật rộng lớn hơn của Microsoft. Trong đó, các tài khoản máy có quyền hạn quá mức và quyền truy cập dịch vụ cơ bản khuếch đại phạm vi ảnh hưởng tiềm năng của một lỗi đơn lẻ.
Chuỗi Tấn công và Tầm ảnh hưởng
Việc kết hợp hai khả năng này đã tạo ra một đường dẫn tấn công tàn khốc: liệt kê mục tiêu thông qua Config Store, sau đó sử dụng Master Key để lấy khóa chính của chúng và giành quyền truy cập đọc/ghi hoàn toàn vào dữ liệu của họ. Đây là một cuộc tấn công mạng quy mô lớn.
Vì Cosmos DB là nền tảng của các dịch vụ lớn của Microsoft như Microsoft Entra ID, Microsoft Teams và Microsoft Copilot, mức độ phơi nhiễm đã mở rộng vượt ra ngoài các khách hàng doanh nghiệp thông thường, đi sâu vào các hệ thống backend của chính Microsoft. Kể cả các cơ sở dữ liệu riêng tư, được cô lập mạng cũng có nguy cơ bị ảnh hưởng, vì chính DB Gateway bị xâm nhập đã thực thi việc cô lập đó.
Biện pháp Khắc phục và Cập nhật An ninh Mạng
Wiz đã tiết lộ có trách nhiệm về CosmosEscape cho Microsoft. Microsoft đã triển khai một bản vá nóng nhanh chóng và từ đó đã khắc phục hoàn toàn vấn đề bằng cách loại bỏ hoàn toàn Cosmos Master Key và thêm các biện pháp bảo vệ kiến trúc mới.
Cuộc điều tra của Microsoft không tìm thấy bằng chứng nào cho thấy **lỗ hổng CVE** này đã bị khai thác độc hại trước khi công bố. Không có hành động nào được yêu cầu từ khách hàng của Azure Cosmos DB.
Việc đánh giá các vector tấn công chéo khách thuê này nhấn mạnh lý do tại sao các nhóm an ninh mạng phải liên tục kiểm toán các mối đe dọa ghi nhật ký đám mây và các mẫu truy cập bất ngờ trên các kho dữ liệu quan trọng.
Việc tăng cường an ninh mạng đòi hỏi sự giám sát liên tục và cập nhật bản vá bảo mật kịp thời để phòng chống các lỗ hổng tiềm ẩn.










