کازموساسکیپ؛ رخنهای در قلب Azure Cosmos DB
خلاصهٔ کاملتر
به گزارش تیم تحقیقاتی Wiz، آسیبپذیریای به اسم CosmosEscape توی Azure Cosmos DB — سرویس دیتابیس پرچمدار مایکروسافت — میتونست کل سرویس رو در معرض خطر بذاره. نقطهٔ شروع، API گرملین بود؛ زبان کوئری گرافی که Cosmos DB ازش پشتیبانی میکنه. برخلاف SQL که موتورش کوئری رو به مجموعهای ثابت از عملیات آماده نگاشت میکنه، موتورهای گرملین معمولاً کوئری رو به کد اجرایی ترجمه و توی یه محیط محدودشده اجرا میکنن.
محققا وقتی یه استثنای .NET دیدن فهمیدن مایکروسافت یه موتور گرملین اختصاصی نوشته که کوئریها رو به کد .NET تبدیل میکنه. به گفتهٔ نویسندهها، محدودیتهای این سندباکس حواسشون به reflection در .NET نبوده و همین اجازه داد خوندن و نوشتن فایل و در نهایت اجرای کد دلخواه روی DB Gateway به دست بیاد؛ سرویسی که کوئری مشتریها رو از طرف اونها اجرا میکنه و روی کلاسترهای چندمستأجری Service Fabric بالا میاد.
روی همون کلاستر یه کلید امضا پیدا شد که اصلاً به یک حساب محدود نبود: بین تنانتها، ریجنها و حتی طعمهای مختلف API (SQL، MongoDB، Cassandra و Gremlin) کار میکرد. محققا اسمشو گذاشتن Cosmos Master Key، چون با اون میشد primary key هر حساب Cosmos DB رو از اندپوینتهای عمومی گرفت — یعنی دسترسی کامل خوندن و نوشتن روی دیتابیسهای اون حساب.
این کلید، درِ Config Store رو هم باز میکرد؛ یه فهرست منطقهای از همهٔ حسابهای Cosmos DB با نام حساب، subscription ID، tenant ID و تنظیمات شبکه. ترکیب این دوتا یعنی مهاجم اول میتونست دیتابیسهای یه سازمان مشخص رو پیدا کنه و بعد بازشون کنه. چون سرویسهایی مثل Microsoft Entra ID، Teams و Copilot هم دادهشون رو تو Cosmos DB نگه میدارن، دیتابیسهای داخلی خود مایکروسافت هم در معرض بودن. حسابهای خصوصی و ایزولهشده از نظر شبکه هم مصون نبودن، چون همین DB Gateway مسئول اعمال اون ایزولاسیونه.
مایکروسافت 48 ساعت بعد از گزارش یه هاتفیکس داد و تا جولای 2026 مهاجرت به یه معماری سختجانتر رو کامل کرد و Cosmos Master Key رو کلاً حذف کرد. طبق بررسی لاگها هیچ نشونهای از سوءاستفادهٔ واقعی پیدا نشده و مشتریها کاری لازم نیست بکنن. جمعبندی نویسندهها اینه که سرویسهای ابری چندمستأجری به یه مرز ایزولاسیون محکم و تا حد ممکن کوچیک دور کدی که مستأجر کنترلش میکنه نیاز دارن.
نکات کلیدی:
- CosmosEscape از فرار از سندباکس گرملین شروع میشد و به اجرای کد روی DB Gateway میرسید
- Cosmos Master Key یه کلید پلتفرمی بود که primary key هر حساب رو برمیگردوند
- Config Store امکان فهرستکردن و هدفگیری حسابها بر اساس tenant و subscription رو میداد
- حسابهای خصوصی و ایزولهشده از نظر شبکه هم در امان نبودن
- مشکل کاملاً برطرف شده و هیچ اقدامی از سمت مشتری لازم نیست




