بدون هیچ‌گونه هشدار قبلی، تیم امنیتی Varonis یک رخنه امنیتی حیاتی در بستر دیالوگفلو سی‌ایکس (Dialogflow CX) گوگل کشف کرد که به نام ریجنت‌ایجنت (Rogue Agent) ثبت شد. این باگ به هر فردی که دسترسی ویرایش روی یکی از چت‌بات‌های پروژه داشته باشد، امکان کنترل همزمان تمام ربات‌های فعال‌شده با کد بلوک (Code Block) را در یک پروژه ابری واگذار می‌کند.

وقتی یک فایل قابل نوشتن، کل پروژه را در خطر می‌اندازد

کد بلوک‌های گوگل به توسعه‌دهندگان اجازه می‌دهند با تزریق اسکریپت‌های پایتون، منطق گفتوگوی ربات را کنترل کنند. نقطه ضعف در این میان این است که تمام ربات‌های یک پروژه، اسکریپت‌های خود را در یک محیط ابری اشتراکی (Cloud Run) اجرا می‌کنند. محققان در کدهای داخلی زیرورو شدند و به فایلی سیستمی به نام code_execution_env.py برخوردند که دسترسی نوشتن داشت. تغییر این فایل به‌وسیله یک چت‌بات مخرب، به معنای تزریق کد دستکاری‌شده به تمام ربات‌های دیگر در همان محیط است. از آن لحظه به بعد، هر بار که هر رباتی فعال می‌شود، کد مخرب اجرا شده و مکالمات زنده، داده‌های حساس کاربران و توکن‌های احراز هویت را بدون نظارت به سرور مهاجم می‌فرستد. گوگل این حفره را به‌سرعت رفع کرد، اما تا امروز هیچ گزارش مستندی از سوءاستفاده واقعی مشاهده نشده است. رویدادهای مشابه در گزارش‌های جدید امنیت سایبری نشان می‌دهند که محیط‌های ابری اشتراکی همواره کانون دغدغه‌های فنی هستند.

نمودار معماری امنیتی چت‌بات‌های هوشمند

نشت اطلاعات از محفظه امنیتی

کشف رخنه به بازنویسی فایل محدود نمی‌شد. تیم وارونیس دو نقطه ضعف دیگر را در محیط ایزولهی اجرا (Sandbox) شناسایی کرد:

  • دسترسی آزاد به اینترنت: برخلاف انتظار، محیط اجرای کدها فایروال‌های مرزی گوگل (VPC Service Controls) را دور می‌زند و به‌صورت پیش‌فرض به اینترنت باز دسترسی دارد. این یعنی مهاجم می‌تواند با یک دستور ساده پایتون، داده‌ها را به‌صورت مستقیم به خارج از پروژه ابری سرقت کند.
  • دسترسی به IMDS: سرویس ابرداده نمونه که باید کاملاً از دسترس کدهای کاربر ایزوله باشد، در محیط اجرای کانتینر در دسترس قرار داشت. هرچند حساب سرویس گوگل دسترسی محدودی داشت، اما نقض اصل ایزولاسیون در بستر سرویس‌های Metadata زنگ خطری برای توسعه‌دهندگان است.

چه کسانی در معرض خطر بودند؟

این حمله نیازمند مجوز dialogflow.playbooks.update روی یکی از چت‌بات‌هاست. پس از آن، تهاجم بیشتر یک تهدید درونی یا حساب توسعهدهندهی هک‌شده است تا یک سایبرکرایمر تصادفی. مهاجمان حتی می‌توانستند با تغییر ظاهری کد در کنسول گوگل، ردپای خود را پاک کنند، در حالی که نسخه مخرب همچنان در کانتینر ابری فعال بوده و پیام‌های فیشینگ یا درخواست رمز عبور را به کاربران تحمیل می‌کرد. گوگل با اعمال لایه‌های جداسازی دقیق‌تر در محیط Cloud Run و محدودسازی دسترسی IMDS، این حفره را بسته است. با این حال، این رویداد یادآوری می‌کند که پیاده‌سازی کدهای داینامیک در بستر ربات‌های هوشمند، نیازمند بازبینی سخت‌گیرانهای معماریهای ابری است. آیندهی چت‌باتهای سازمانی به همان سرعتی که یاد می‌گیرند، به دقت در طراحی حریمهای امنیتی آن‌ها وابسته است.