تأمين الوكلاء والأدوات
- طبّق مبدأ الامتياز الأدنى — امنح الوكيل فقط الوصول الذي تتطلبه مهمته
- تعرّف على مشكلة النائب المرتبك: وكيل يستعير صلاحيتك
- ركّب طبقات الدفاع الخمس التي تقلّص نطاق الضرر عندما يُخدَع الوكيل
- قرّر أي الإجراءات يستلزم وجود إنسان في الحلقة
- تحقّق من مدخلات الأدوات كي لا يتمكن وسيط سيء أو مُتلاعَب به من التنفيذ
في اللحظة التي يستطيع فيها الذكاء الاصطناعي اتخاذ إجراءات (استدعاء أدوات، تشغيل كود، الاتصال بواجهات برمجة التطبيقات)، فإنه يرث نموذجًا أمنيًا. والهدف ليس جعل النموذج غير قابل للخداع — بل التأكد من أنه حتى لو خُدِع، فلا يستطيع إحداث ضرر كبير.
المبدأ الأساسي: الامتياز الأدنى
امنح الوكيل الحد الأدنى من الوصول الذي تتطلبه مهمته، لا أكثر.
- يحتاج مُلخِّص المستندات إلى القراءة، لا الكتابة أو الشبكة.
- يحتاج المراجِع إلى قراءة الكود ونشر تعليق — لا الدفع أو النشر.
- حدِّد نطاق الأدوات ومفاتيح واجهات برمجة التطبيقات والوصول إلى الملفات لكل مهمة. فالوكيل ضيّق النطاق الذي يتعرّض للحقن لا يمكنه إحداث سوى ضرر ضيّق.
مشكلة النائب المرتبك
غالبًا ما يتصرف الوكيل بصلاحيتك (رموزك، جلساتك). فإذا وجّهه مدخل يتحكم فيه المهاجم، استعار المهاجم امتيازاتك — وهو "نائب مرتبك". الدفاع: لا تمنح الوكيل صلاحية محيطة لا يحتاجها، واشترط بيانات اعتماد صريحة ومحدودة النطاق للأدوات الحساسة.
طبقات الدفاع
ركّب هذه الطبقات معًا — لا تكفي أي واحدة بمفردها. كل طبقة تفترض أن الطبقات التي فوقها قد تفشل.
- شغّل الكود وعمليات الملفات في حاويات أو أدلة مؤقتة بلا وصول إلى النظام الأوسع أو الأسرار. فإذا خُدِع الوكيل، لعب داخل صندوق.
- قرّر أي الأوامر وأي النطاقات وأي المسارات مسموح بها — وامنع ما عدا ذلك. في Claude Code، هذه هي الأذونات (/docs/claude-code/permissions).
- اشترط موافقة صريحة للإجراءات غير القابلة للتراجع أو الحساسة: إرسال المال، إرسال البريد، الحذف، النشر، أو تغيير إعدادات الإنتاج.
- لا تدع وكيلًا واحدًا يمتلك الأسرار ويقرأ المحتوى غير الموثوق ويجري اتصالات صادرة عشوائية في آن واحد — تلك التركيبة هي مسار التسريب.
- سجّل الأدوات التي استدعاها الوكيل فعليًا وبأي وسائط، كي تتمكن من تدقيق السلوك واكتشاف الانحراف.
اكتب قائمة السماح صراحةً
"وضع قائمة سماح للسطح الخطر" سهل الموافقة عليه بإيماءة وسهل تخطيه. في Claude Code يكون ملموسًا: ملف settings.json يسمح بالمجموعة الضيقة من الأوامر والنطاقات التي تحتاجها المهمة ويمنع ما عداها. ابدأ متقيّدًا ووسّع فقط عندما تتعثر مهمة حقيقية.
كتلة أذونات Claude Code بالامتياز الأدنى
{
"permissions": {
"allow": [
"Read",
"Edit",
"Bash(npm test:*)",
"Bash(npm run build:*)",
"Bash(git status)",
"Bash(git diff:*)"
],
"deny": [
"Bash(git push:*)",
"Bash(rm:*)",
"Bash(curl:*)",
"Read(./.env)",
"Read(./secrets/**)"
]
}
}قائمة deny تتغلب على allow، لذا يظل حجب .env وsecrets/** ساريًا حتى لو مُنِح Read واسع النطاق. راجع الأذونات للاطلاع على صيغة القواعد الكاملة وأسبقيتها.
للأدوات مخططات — تحقّق منها
يمكن أن تكون مدخلات الأدوات التي ينتجها النموذج خاطئة أو مُتلاعَبًا بها. تحقّق من الوسائط قبل التنفيذ، وأعد الأخطاء كنتائج كي يتعافى الوكيل بدلًا من إعادة المحاولة بشكل أعمى.
اختبر نفسك
0/3- الامتياز الأدنى أولًا: حدِّد نطاق الأدوات والمفاتيح والوصول إلى الملفات لكل مهمة كي لا يتمكن الوكيل المخدوع من إحداث سوى ضرر ضيّق
- يتصرف الوكيل بصلاحيتك — لا تمنحه امتيازات محيطة لا يحتاجها (مشكلة النائب المرتبك)
- ركّب الطبقات الخمس: الصندوق الرملي، قائمة السماح، الإنسان في الحلقة، فصل مناطق الثقة، التسجيل والمراجعة
- في Claude Code، قواعد deny تتغلب على قواعد allow — احجب مسارات .env والأسرار صراحةً
- تحقّق من وسائط الأدوات قبل التنفيذ، وأعد الأخطاء كنتائج كي يتعافى الوكيل بدلًا من إعادة المحاولة بشكل أعمى