النموذج المستضاف ذاتياً لا يجعل النشر آمناً. إنه يغيّر أيّ المخاطر تملكونها. تتوقف البيانات عن مغادرة حدودكم، وهذا عادةً سبب اتخاذ القرار، وفي المقابل ترثون سطح الأمن الكامل لخدمة استدلال، وطبقة استرجاع، ومجموعة أدوات تحمل بيانات اعتماد إنتاجية، وقطعة نموذج نزّلتموها من الإنترنت.
التأطير الذي يصمد في المراجعة هو أن تطبيق النموذج اللغوي نظام ذو امتيازات. فهو يقرأ نصاً غير موثوق، ويتخذ قرارات منه، ويستدعي أدوات تلمس بيانات حقيقية. ولا شيء في طبقة النموذج يبرّر إضعاف الضوابط التي تطبّقونها على أي خدمة أخرى بهذا الملف، وعدد من تلك الضوابط يحتاج إعادة صياغة لأن حدود الثقة تقع في أماكن غير مألوفة.
حالات الفشل الجديرة بالتخطيط ليست غريبة. تتفق إرشادات 2026 الحالية على أن الضرر يأتي من أدوات مفرطة الامتيازات، واسترجاع غير موثوق، وعزل تشغيلي غير كافٍ، أكثر مما يأتي من مطالبات ذكية وحدها. وهذه نتيجة مطمئنة، لأنها تعني أن العمل انضباط هندسي مطبَّق على خمس طبقات أكثر منه بحثاً.
عاملوا كل مدخل نصي كغير موثوق
الافتراض الأول هو أن كل نص خارجي عدائي: مطالبات المستخدمين، والوثائق المسترجَعة، ومخرجات الأدوات، وتاريخ المحادثة. المحتوى المسترجَع هو ما تغفل عنه الفرق، لأنه يأتي من نظام داخلي فيبدو موثوقاً. وثيقة رفعها مورّد، أو بريد استُوعب في قاعدة معرفة، أو تذكرة كتبها عميل، كلها نصّ يتحكم به المهاجم جالس في فهرسكم ينتظر أن يُسترجَع إلى مطالبة.
الضوابط التي تنجح بنيوية لا إقناعية:
- افصلوا السياقات صراحةً. ينبغي أن تكون رسائل النظام والمطوّر والأدوات والمستخدم متمايزة ومقيّدة بمخطط، لا مجمّعة في كتلة واحدة غير مميّزة.
- صنّفوا المقاطع المسترجَعة كبيانات. يجب ألا يستطيع المحتوى المسترجَع تجاوز تعليمات النظام، وينبغي أن تجعل بنية المطالبة هذا الفصل صريحاً لا ضمنياً.
- افحصوا استدعاءات الأدوات خارج النموذج. الأدوات المكشوفة لنموذج لغوي واجهات ذات امتيازات. التفويض ينتمي إلى طبقة سياسة تقيّم الإجراء المطلوب مقابل استحقاقات المستدعي، باستقلال عمّا قرّره النموذج.
- تحقّقوا من المخرجات قبل التنفيذ. كل ما يصير كوداً أو SQL أو أمر صدَفة أو كتابة ملف أو طلب HTTP يخضع للتحقق من المخطط وقوائم السماح قبل التنفيذ لا بعده.
- اشترطوا موافقة على الإجراءات ذات الأثر. الإفراج عن دفعة، وحذف بيانات، والتواصل الخارجي، وتغيير الصلاحيات، كلها تنتمي خلف خطوة بشرية، مع عرض الإجراء المقترح من النموذج وأدلّته على المعتمِد.
اختبار التصميم بسيط: افترضوا أن مهاجماً يتحكم تحكماً كاملاً بمخرج النموذج لطلب واحد. إن منحه ذلك أي شيء، فالاحتواء في المكان الخطأ.
سلسلة توريد النموذج ومنشأ الأوزان
تصل النماذج مفتوحة الأوزان كملفات من مضيف عام، ومعظم عمليات النشر تثق بها كما تثق بصورة نظام تشغيل أساسية، أي دون عناية كافية. التحقق من المنشأ هو الضابط، وهو رخيص.
ثبّتوا قطعة الأوزان بالبصمة الرقمية لا بوسم أو اسم متغيّر، ليكون ما اعتمدتموه هو ما يُحمَّل فعلاً. تحقّقوا من المجاميع الاختبارية أو التواقيع في كل نشر، وتحديداً عند إعادة النشر وفي النسخ المتوسّعة تلقائياً، لأن هذه هي المسارات التي تتخطى المراجعة التي حظي بها النشر الأول. خزّنوا الأوزان على وحدات مشفّرة وركّبوها للقراءة فقط داخل حاوية الاستدلال، حتى لا تستطيع عملية خدمة مخترَقة تعديل ما تشغّله.
وخلف الآليات، احتفظوا بسجلّ نماذج ببيانات منشأ: المصدر والمجموع الاختباري والإصدار وسلسلة التدريب والضبط الدقيق وتاريخ الاعتماد والمالك المسؤول. هذا ما يجعل الضابط قابلاً للتدقيق لا مجرد موجود، وهو القطعة التي سيطلبها منظّم أو مدقّق داخلي.
مدّوا التفكير نفسه إلى مجموعة الاسترجاع وخطّ التضمين. فهما جزء من سلسلة التوريد، والإرشادات الحالية صريحة في أن التحقق من المصادر وعزل الاستيعاب ينتميان هناك. الوثيقة المسمومة في الفهرس ناقل حقن دائم لا يحمل شيئاً من ظهور ملف نموذج مخترَق.
العزل وقت التشغيل
تحصين الحاويات والعناقيد لخدمة النماذج ممارسة عادية مطبَّقة باتساق، وهو المكان الذي يُحدّ فيه نطاق انفجار كل ما سبق.
- شغّلوا حاويات الاستدلال بغير صلاحيات الجذر، وأسقطوا كل قدرات لينكس غير الضرورية.
- طبّقوا ملفات seccomp وحصر AppArmor أو SELinux حيث تدعمه المنصة.
- استخدموا أنظمة ملفات جذرية للقراءة فقط، بتركيب الحد الأدنى من المسارات القابلة للكتابة التي يحتاجها وقت التشغيل.
- جزّئوا الشبكة بحيث لا تستطيع حاوية الاستدلال بلوغ أنظمة التدريب أو مخازن المتجهات أو خدمات الإدارة إلا عبر مسارات مصرّح بها صراحةً.
- افرضوا سياسة الشبكة مع mTLS للاتصال بين الخدمات، حتى لا يستطيع مكوّن مخترَق التحرك جانبياً على افتراض أن حركة المرور الداخلية موثوقة.
- اعزلوا أحمال العمل الحساسة بفضاءات أسماء وحسابات خدمة منفصلة، ومجمّعات عُقد منفصلة حيث يستدعي التصنيف ذلك.
تستحق نقطة التجزئة تشديداً. تميل خدمات الاستدلال إلى تراكم امتداد شبكي لأنها تحتاج الاسترجاع والأدوات والتسجيل والقياسات، والنتيجة الافتراضية حاوية تستطيع محادثة كل شيء. عدّدوا الوجهات التي تحتاجها فعلاً وامنعوا الباقي، فتلك السياسة هي ما يحوّل حقناً ناجحاً إلى حادثة محتواة.
الأسرار وبيانات الاعتماد
كشف الأسرار هو ما يحوّل حقن المطالبات إلى اختراق أوسع، والضوابط هنا بلا بريق.
أبقوا الأسرار خارج سياق النموذج. مفاتيح واجهات البرمجة وكلمات مرور قواعد البيانات ومفاتيح التوقيع يجب ألا توضع في مطالبة أبداً، وحيث يلزم فعلاً الإشارة إلى رمز مميّز، فليكن قصير الأجل ومحصوراً بإجراء واحد. استخدموا خزنة أو وسيطاً مدعوماً بـ KMS بدل متغيرات البيئة لبيانات الاعتماد طويلة الأجل، وفضّلوا الرموز قصيرة الأجل للاستيعاب ووصول الأدوات ومصادقة الخدمات.
ينبغي أن تصادِق الأدوات بوصفها هويات خدمة مخصصة بصلاحيات ضيقة النطاق، لا بوصفها المستخدم البشري ولا بحساب خدمة إداري يسبق المشروع. أشد الحوادث ضرراً في هذا المجال تأتي من أداة تملك سلطة أكبر مما تطلّبته المهمة، استدعاها نموذج جرى إقناعه بذلك.
أضيفوا فحص الأسرار إلى خطوط التكامل والنشر المستمر وإلى خط سجلات التشغيل. المطالبات والمخرجات تمرّ عبر السجلات، وبيانات الاعتماد التي تظهر في أيّ منهما ينبغي التقاطها سريعاً لا اكتشافها أثناء مراجعة.
سجلات تدقيق تصمد أمام حادثة
تسجيل طلبات التطبيق غير كافٍ لنظام نموذج لغوي، لأن السؤال بعد الحادثة ليس أي نقطة نهاية استُدعيت، بل ماذا رأى النموذج، وماذا فعل، وماذا سمح به النظام.
التقطوا دورة حياة الاستدلال كاملة: من استدعى النموذج، وأي سياق زُوّد به، وأي نتائج استرجاع استُخدمت، وأي أدوات استُدعيت وبأي وسائط، وأي مخرج أُعيد، وسياق المصادقة طوال المسار. دوّنوا قرارات السياسة أيضاً كأحداث من الدرجة الأولى: استدعاءات أدوات محظورة، ومطالبات محجوبة، واسترجاعات مرفوضة، وفحوص منشأ فاشلة، ووصول أسرار مرفوض. هذه السجلات هي الدليل على أن ضوابطكم كانت تعمل، وهو ادّعاء مختلف عن مجرد وجود الضوابط.
خزّنوا السجلات في نظام لا يقبل إلا الإضافة أو يكشف العبث حيث أمكن، وادمجوها مع مركز عمليات الأمن بدل تركها في سجلّ تطبيق لا يراقبه أحد. البيانات نفسها تدعم كشف الشذوذ: قفزات في حجم المطالبات، وتسلسلات استدعاء أدوات غير معتادة، وإساءة استخدام وحدات المعالجة أو التكلفة، وأنماط كسر حماية متكررة من هوية واحدة. احتفظوا بها وفق نظامكم الامتثالي، واحجبوا الأسرار وقت الكتابة حتى لا يخلق الاحتفاظ كشفاً جديداً.
أين تقع قائمة OWASP
تظل قائمة OWASP لأعلى عشرة مخاطر لتطبيقات النماذج اللغوية الكبيرة تصنيفاً مفيداً وقائمة تحقق معقولة للتغطية، ولا تزال أمثلتها تتمحور حول الشيء الصحيح: أدوات وإضافات تعالج مدخلات غير موثوقة دون ضبط وصول كافٍ، وصولاً إلى تنفيذ كود عن بُعد. استخدموها للتأكد من أنكم نظرتم في حقن المطالبات، ومعالجة المخرجات غير الآمنة، وتسريب البيانات، ومخاطر سلسلة التوريد، والوكالة المفرطة.
لا تتوقفوا عندها. قائمة التحقق تؤكد أنكم فكّرتم في فئة؛ لكنها لا تخبركم أين تنتمي نقطة الإنفاذ. الموقف الأقوى هو إنفاذ السياسة خارج النموذج، ومعاملة الاسترجاع والأدوات والتنفيذ كحدود ثقة منفصلة، لكل منها تفويضه.
ماذا تفعلون أولاً
ابدأوا بجرد الأدوات، لأنه المكان الذي تجلس فيه السلطة الحقيقية. أدرجوا كل أداة يستطيع النموذج استدعاءها، وبيانات الاعتماد التي تستخدمها، وما يكسبه مهاجم من استدعائها بوسائط عشوائية. قلّصوا الصلاحيات حتى يصير ذلك الجواب مقبولاً، وضعوا ذوات الأثر منها خلف موافقة.
ثم أضيفوا المصادقة والتفويض عند بوابة الاستدلال بادّعاءات محصورة وانتهاء صلاحية قصير، وثبّتوا أوزانكم وتحقّقوا منها، وحصّنوا حاويات الخدمة، وفعّلوا تسجيل تدقيق دورة الحياة. هذه الخمسة هي مجموعة الضوابط العملية، وكلها قابلة للتسليم قبل أول إصدار إنتاجي. وفي خبرتنا، الفرق التي تضيفها لاحقاً تفعل ذلك بعد أن توقف مراجعة داخلية الإطلاق، وبتكلفة تبلغ أضعاف بنائها من البداية.
الأسئلة الشائعة
هل يمكن حلّ حقن المطالبات بمطالبات نظام أفضل؟
لا، واعتباره مشكلة صياغة مطالبات هو أشيع خطأ تصميمي نراه. التعليمات في مطالبة النظام نصّ يتنافس مع نصّ آخر، وتعليمة موضوعة بذكاء كافٍ داخل وثيقة مسترجَعة أو استجابة أداة ستفوز أحياناً. الضوابط التي تصمد بنيوية: افصلوا سياقات النظام والمطوّر والأدوات والمستخدم فصلاً صريحاً؛ وصنّفوا المحتوى المسترجَع بوصفه بيانات غير موثوقة لا تعليمات؛ واجعلوا كل استدعاء أداة ذي أثر يمرّ عبر فحص سياسة يعمل خارج النموذج. افترضوا أن النموذج قابل للإقناع، ثم اجعلوا الإقناع غير كافٍ.
ماذا يتضمّن التحقق من منشأ الأوزان عملياً؟
ثبّتوا القطعة الأثرية بالبصمة الرقمية (digest) لا بوسم أو اسم متغيّر، وتحقّقوا من المجموع الاختباري أو التوقيع في كل عملية نشر بما فيها النسخ المتوسّعة تلقائياً وإعادة النشر، وخزّنوا الأوزان على وحدات مشفّرة عند السكون تُركَّب للقراءة فقط. وخلف ذلك، احتفظوا بسجلّ نماذج يدوّن المصدر والمجموع الاختباري والإصدار وسلسلة الضبط الدقيق وتاريخ الاعتماد والمالك. السجلّ هو ما يحوّل ضابطاً أمنياً إلى ضابط قابل للتدقيق، لأنه يتيح لكم الإجابة عن أي أوزان بالضبط أنتجت مخرجاً بعينه في تاريخ بعينه دون إعادة بنائه من سجلات النشر.
كم ينبغي أن نسجّل، بالنظر إلى حساسية بيانات المطالبات؟
سجّلوا دورة حياة الاستدلال كاملة، ثم اضبطوا الوصول إلى السجلّ بدل تقليص ما يلتقطه. يعني ذلك هوية المستدعي والسياق المزوَّد والمقاطع المسترجَعة واستدعاءات الأدوات والمخرجات وقرارات السياسة مثل الاستدعاءات المحظورة والمطالبات المحجوبة وفحوص المنشأ الفاشلة. احجبوا الأسرار وقت الكتابة بدل إسقاط الحقول كاملة. السجلّ الجزئي هو نمط الفشل الذي تكتشفونه أثناء حادثة، حين يكون السؤال ماذا كان بوسع مستخدم بعينه أن يرى، ويتطلب الجواب إعادة بناء لا تستطيعون تنفيذها.