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