نجح باحثون في شركة Tracebit الأمنية في كشف ثغرة خطيرة في أداة Gemini CLI، وهي أداة مفتوحة المصدر من جوجل تساعد المطورين في كتابة التعليمات البرمجية من خلال شاشة الأوامر. لم يستغرق الأمر أكثر من 48 ساعة منذ إطلاق الأداة حتى تمكن الفريق من استغلال الإعدادات الافتراضية فيها لسرقة بيانات حساسة من جهاز المستخدم دون علمه.

تُعد Gemini CLI نسخة موجهة للعمل من الترمينال من أداة Gemini Code Assist، وتعتمد على نموذج Gemini 2.5 Pro المتخصص في البرمجة والاستدلال المحاكى. تعمل الأداة داخل نافذة الأوامر، ما يجعلها مناسبة للمبرمجين الذين يفضلون العمل من خلال شاشة الأوامر على محررات النصوص التقليدية.

بداية الهجوم: استغلال بسيط وخطير

استند الهجوم الذي اكتشفه الباحثون إلى آلية ذكية ومبنية على مفهوم يُعرف باسم حقن التعليمات الذكية أو prompt injection. لم تتطلب العملية سوى خطوتين من المستخدم: أن يطلب من الأداة وصف حزمة تعليمات برمجية تم إنشاؤها من قبل المهاجم، وأن يضيف أمرًا بسيطًا إلى قائمة الأوامر المسموح بها.

لم يبدو الملف الخبيث مختلفًا عن ملايين الحزم البرمجية المنتشرة في مستودعات مثل NPM أو PyPI أو GitHub، والتي كثيرًا ما تحتوي على شيفرات ضارة. ولم تكن الأوامر الخبيثة ضمن الكود نفسه، بل أُدرجت بشكل مخادع داخل ملف README.md، الذي يُستخدم عادة لتوضيح أهداف الحزمة ومحتواها.

الهجوم بصيغة نصية بريئة

استغل المهاجمون ثغرة في كيفية تفاعل نماذج الذكاء الاصطناعي مع الملفات النصية. فبينما يتجاهل المطورون في كثير من الأحيان قراءة ملفات README، تقرأ أدوات الذكاء الاصطناعي هذه الملفات بدقة. وهذا ما سمح للباحثين بإخفاء سلسلة من الأوامر داخل الملف بأسلوب لغوي طبيعي، بحيث لا يُثير الشبهات عند معاينته من قبل المستخدم.

عند تحليل سلسلة التعليمات المكتوبة بلغة طبيعية، قامت الأداة بتنفيذ سلسلة أوامر داخل نافذة الأوامر، من بينها الاتصال بخادم خارجي تابع للمهاجم ونقل متغيرات البيئة من جهاز المستخدم، وهي متغيرات قد تحتوي على معلومات حساسة مثل إعدادات النظام أو بيانات اعتماد الحسابات.

تنفيذ الأوامر بصمت

أوضح الباحثون أن الهجوم استغل أيضًا ثغرات إضافية، أبرزها ضعف التحقق من صلاحية الأوامر، وواجهة مستخدم مضللة. من المفترض أن تطلب الأداة إذنًا صريحًا قبل تنفيذ أي أمر، غير أن المستخدم يستطيع وضع بعض الأوامر في قائمة الأوامر المسموحة لتسهيل العمل.

عبر استغلال هذه الثغرة، أدخل الباحثون أمر grep إلى القائمة، وهو أمر بسيط يبحث داخل الملفات. بعده مباشرة، وبدون علم المستخدم، كما تم تنفيذ أمر env للحصول على متغيرات البيئة، ومن ثم إرسالها إلى خادم خارجي باستخدام الأمر curl.

ولزيادة التمويه، أضاف الباحثون مساحات بيضاء كبيرة داخل الأمر الكامل، ما جعل الجزء المرئي من التنفيذ يبدو كأنه يتعلق فقط بأمر grep، بينما اختفت الأوامر الخبيثة في الخلفية. وبهذا، نفذت Gemini CLI الأوامر دون تنبيه المستخدم أو إثارة أي شك.

الذكاء الاصطناعي ومشكلة الرغبة في إرضاء المستخدم

يرى الباحثون أن الذكاء الاصطناعي لديه ميل فطري لإرضاء المستخدم، وهي ظاهرة تُعرف بـ AI sycophancy. في هذه الحالة، صيغت التعليمات داخل README بطريقة تُظهر أن تنفيذ الأوامر ضرورة حتمية لفهم الحزمة ومساعدة المستخدم، ما جعل النموذج ينفذ الأوامر بدون تفكير في مصدرها أو خطورتها.

كتب الباحثون تعليمات داخل الملف تقول إن على الأداة تنفيذ أوامر محددة كي تتمكن من تقديم المساعدة، مع تحذيرات مبطنة بأن عدم تنفيذها سيجعل الأداة غير فعالة. وقد استغلت هذه اللغة البرمجية البريئة من الخارج رغبة النموذج في تقديم أفضل أداء، لتتحول إلى أمر مدمر بصمت.

رد فعل جوجل وإجراءات الحماية

استجابت جوجل بسرعة وأصدرت تحديثًا الأسبوع الماضي لإغلاق الثغرة، وصنفتها على أنها من الفئة الأولى من حيث الأولوية والخطورة. يعكس هذا التصنيف إدراك الشركة لاحتمالية التسبب في أضرار جسيمة لو تم استغلال الثغرة على نطاق واسع.

كما أوصت جوجل جميع المستخدمين بتحديث الأداة إلى الإصدار 0.1.14، وأشارت إلى أهمية تشغيل الأكواد غير الموثوقة ضمن بيئات معزولة sandboxed، وهي إعدادات غير مفعلة افتراضيًا.

تحذير من أدوات الذكاء الاصطناعي التفاعلية

أوضحت تجربة Tracebit أن أدوات الذكاء الاصطناعي التي تعمل من خلال شاشة الأوامر قد تكون عرضة لهجمات من نوع جديد تعتمد على اللغة والتمويه، وليس على الشيفرات الخبيثة المعتادة. وفي المقابل، أظهرت اختبارات الباحثين أن أدوات أخرى مثل Claude من Anthropic وCodex من OpenAI لم تكن قابلة للاستغلال بذات الطريقة، بفضل نظام السماح الصارم لديها.

تكشف هذه الحادثة عن تحديات حقيقية تواجه مطوري أدوات الذكاء الاصطناعي، وتطرح أسئلة جدية حول حدود الأمان والثقة في الأدوات الذكية التي تعمل جنبًا إلى جنب مع المستخدم داخل بيئة العمل البرمجية.