التخفيف من الثغرات الأمنية المفرطة في الوكالات

وصف المخاطر وفقًا لمعيار OWASP

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

أهمية ذلك بالنسبة إلى مطوّري تطبيقات Android

قد يؤدي منح نموذج اللغة الكبير (LLM) صلاحيات مفرطة داخل تطبيق Android إلى وقوع حوادث أمنية خطيرة، مثل:

  • الوصول غير المصرَّح به إلى النظام: يمكن للمهاجم أن يطلب من النموذج اللغوي الكبير الوصول إلى الملفات أو تعديلها أو حذفها على جهاز Android محلي (على سبيل المثال، مستندات المستخدم أو بيانات التطبيق) أو موارد الشبكة المتصلة إذا كان النموذج يملك الإذن المناسب من Android للقيام بذلك.
  • استخراج البيانات: يمكن خداع النموذج اللغوي الكبير لقراءة البيانات الحسّاسة من قواعد بيانات التطبيقات المحلية (مثل Room) أو SharedPreferences أو واجهات برمجة التطبيقات الداخلية، ثم استخراج هذه المعلومات إلى مصدر خارجي (على سبيل المثال، إرسالها باستخدام طلب بيانات من واجهة برمجة التطبيقات أو وظيفة البريد الإلكتروني). وقد يؤدي النموذج أيضًا إلى تسريب معلومات حساسة استوعبها خلال مرحلة التدريب أو معلومات حساسة يقدّمها المستخدم في طلبه.
  • اختراق وظائف أو أنظمة أخرى: إذا كان النموذج اللغوي الكبير يتحكّم في وظائف أخرى (مثل إرسال رسائل SMS أو إجراء مكالمات أو نشر محتوى على وسائل التواصل الاجتماعي باستخدام نوايا ضمنية أو تعديل إعدادات النظام أو إجراء عمليات شراء داخل التطبيق)، يمكن للمهاجم اختراق هذه الوظائف لإرسال رسائل غير مرغوب فيها أو نشر معلومات مضلّلة أو إجراء معاملات غير مصرّح بها، ما يؤدي إلى خسارة مالية مباشرة أو إلحاق الضرر بالمستخدم.
  • حجب الخدمة: يمكن توجيه النموذج اللغوي الكبير لتنفيذ إجراءات مكثّفة الاستخدام للموارد بشكل متكرر داخل التطبيق أو ضد الخدمات الخلفية، مثل تنفيذ طلبات بحث معقّدة في قاعدة البيانات أو استدعاء واجهة برمجة تطبيقات في حلقة، ما يؤدي إلى عدم استجابة التطبيق أو استنزاف البطارية أو الاستخدام المفرط للبيانات أو حتى حجب الخدمة عن الأنظمة الخلفية.

إجراءات التخفيف من المخاطر لمطوّري تطبيقات Android

تتمحور إجراءات الحدّ من السلطة المفرطة في تطبيقات Android حول تطبيق مبدأ أقل امتياز على كل أداة ووظيفة يمكن للنموذج اللغوي الكبير الوصول إليها أو تشغيلها.

الحدّ من مجموعة أدوات الذكاء الاصطناعي (وظائف دقيقة مقابل وظائف مفتوحة النهاية):

  • توفير الحد الأدنى من الأدوات: يجب أن تقتصر إمكانية وصول النموذج اللغوي الكبير على الأدوات المحدّدة (الوظائف وواجهات برمجة التطبيقات والنوايا) التي يحتاج إليها تمامًا لأداء وظيفته داخل تطبيقك. وإذا لم يكن بحاجة إلى تصفّح الويب أو إرسال رسالة إلكترونية، لا تتيح له هذه الإمكانات.
  • استخدام أدوات بسيطة ذات غرض واحد: من الأفضل تزويد النموذج اللغوي الكبير بأداة يمكنها تنفيذ مهمة واحدة محدّدة فقط (مثل "قراءة نوع معيّن من إعدادات المستخدم") بدلاً من أداة قوية ومفتوحة يمكنها تنفيذ أي مهمة (مثل "تنفيذ أي أمر shell").

تقييد قدرات الذكاء الاصطناعي

  • أذونات Android الدقيقة: عندما تتفاعل وظيفة يتم تشغيلها من خلال نموذج لغوي كبير (LLM) مع موارد نظام Android أو تطبيقات أخرى، تأكَّد من أنّ تطبيقك يطلب ويحتفظ فقط بالحد الأدنى المطلق من أذونات Android اللازمة.
  • الأذونات الخاصة بكل مستخدم: عندما ينفّذ نموذج اللغة الكبير إجراءً نيابةً عن المستخدم، يجب أن يتم ذلك باستخدام أذونات المستخدم المحدّدة وسياقه، وليس باستخدام حساب أوسع نطاقًا على مستوى التطبيق قد يكون إداريًا. يؤكّد ذلك أنّ النموذج اللغوي الكبير لا يمكنه تنفيذ أي إجراء لا يُسمح للمستخدم بتنفيذه بنفسه.

إبقاء المستخدم مسؤولاً (موافقة المستخدم على الإجراءات المهمة)

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

الثقة مع التحقّق (التحقّق من صحة الإدخال والإخراج وأنظمة الخلفية القوية)

  • أمان الخلفية: لا تعتمد على النموذج اللغوي الكبير فقط لتحديد ما إذا كان الإجراء مسموحًا به. يجب أن تتضمّن أي خدمات أو واجهات برمجة تطبيقات خلفية تتصل بها الوظائف التي يتم تشغيلها بواسطة نموذج اللغة الكبير (LLM) عمليات مصادقة وتفويض والتحقّق من صحة الإدخال قوية خاصة بها للتحقّق من كل طلب والتأكّد من أنّه مشروع وضِمن المَعلمات المتوقّعة.
  • تنظيف البيانات: كما هو الحال مع الثغرات الأمنية الأخرى، من المهم تنظيف البيانات والتحقّق من صحة كلّ من البيانات التي يتم إدخالها إلى النموذج اللغوي الكبير والمعلَمات التي ينشئها النموذج لطلبات الدوال، وذلك لرصد أي تعليمات ضارة أو نواتج غير متوقّعة قبل تنفيذ أي إجراء.

ملخّص

"الوكالة المفرطة" هي ثغرة أمنية خطيرة حيث يتم منح النموذج اللغوي الكبير أذونات واسعة النطاق للتفاعل مع أنظمة أو وظائف أخرى، ما يسمح بخداعه لتنفيذ إجراءات ضارة. ويمكن أن يؤدي ذلك إلى الوصول غير المصرَّح به إلى البيانات أو اختراق النظام أو خسارة مالية أو إلحاق الضرر بالمستخدمين في تطبيقات Android. تعتمد إجراءات الحدّ من المخاطر بشكل كبير على مبدأ الامتياز الأقل: الحدّ بشكل صارم من الأدوات وأذونات Android المتاحة للنموذج اللغوي الكبير، والتأكّد من أنّ كل أداة تتضمّن وظائف محدودة ومحدّدة، واشتراط موافقة بشرية على جميع العمليات ذات التأثير الكبير.

مراجع إضافية