أمن البرمجة بالذكاء الاصطناعي: حقن الأوامر (Prompt Injection) يختبئ في ملفات مشروعك
يقرأ مساعد البرمجة بالذكاء الاصطناعي الخاص بك كل ملف في مستودعك (repository). فهو يقرأ ملف README، وملفات الإعدادات (config files)، والقواعد الخاصة بك، ويستخدم هذه الملفات ليقرر كيفية كتابة الكود.
يستغل تهديد أمني جديد هذا السلوك تحديداً. فقد اكتشف الباحثون ثغرة أمنية في 28 أداة برمجة مختلفة تعتمد على الذكاء الاصطناعي. هذا الهجوم ليس عملية اختراق معقدة، بل هو مجرد ملف نصي بسيط في مستودعك.
كيف يعمل الهجوم:
تقوم بعمل نسخة (clone) لمشروع مفتوح المصدر. يبدو المشروع طبيعياً. تفتحه في محرر الذكاء الاصطناعي الخاص بك وتطلب ميزة جديدة. لا ترى أحرف Unicode المخفية في ملفات الإعدادات؛ فهذه الأحرف تخفي التعليمات عنك، لكنها تأمر الذكاء الاصطناعي بفعل شيء آخر.
تخبر التعليمات المخفية الذكاء الاصطناعي بإرسال بيانات اعتماد AWS الخاصة بك إلى خادم خارجي. يعتقد الذكاء الاصطناعي أن هذه تعليمات مشروعة للمشروع، فيقوم بتنفيذ الأمر. وهكذا، تضيع بياناتك السرية.
لماذا يصعب إيقاف هذا الهجوم:
- أحرف مخفية: ترى أنت نصاً عادياً، لكن الذكاء الاصطناعي يرى أوامر خبيثة عبر أحرف Unicode غير مرئية.
- كل ملف هو نقطة دخول: يمكن لملف README أو تعليق في مكتبة برمجية أن يحمل الحمولة الضارة (payload).
- صلاحيات عالية: غالباً ما تعمل وكلاء الذكاء الاصطناعي (AI agents) بصلاحيات المستخدم الخاصة بك، مما يمكنها من قراءة مفاتيح SSH ورموز API الخاصة بك.
- استدعاء الأدوات (Tool calls): يستخدم الذكاء الاصطناعي استدعاء الأدوات لتشغيل الأوامر. يستهدف الهجوم هذه الاستدعاءات لتجاوز تدريبات السلامة.
كيف تحمي سير عملك:
- تنقية محتويات الملفات: قم بإزالة الأحرف المخفية وأنماط الحقن الشائعة قبل أن يقرأها الذكاء الاصطناعي.
- استخدام بيئات معزولة (sandboxes): قم بتشغيل وكلاء الذكاء الاصطناعي في حاويات (containers) بدون وصول إلى الشبكة ومع أنظمة ملفات للقراءة فقط.
- وضع سياسات صارمة: أنشئ قائمة بيضاء (whitelist) بالأوامر المسموح بها، واشترط موافقة بشرية على أي أمر يقوم بنقل البيانات أو حذف الملفات.
يمكنك إجراء فحص سريع قبل جلسات البرمجة الخاصة بك. ابحث في ملفاتك عن مصطلحات مشبوهة مثل "ignore all previous" أو "curl" و "exfil".
أدوات البرمجة بالذكاء الاصطناعي تزيد من الإنتاجية، لكنها تفترض أن الملفات الموجودة على قرصك آمنة، وهذا غير صحيح. تعامل مع كل ملف على أنه مدخلات غير موثوقة.
كيف تتعامل مع مخاطر حقن الأوامر (prompt injection) في سير عمل الذكاء الاصطناعي الخاص بك؟
المصدر: https://dev.to/tyson_cung/ai-coding-security-prompt-injection-is-hiding-in-your-project-files-4be9
