ماذا يفعل مفتاح API لوكيل الذكاء الاصطناعي الخاص بك بالفعل؟ دليل الصلاحيات الأقل

تحديد نطاق مفتاح API لوكيل الذكاء الاصطناعي وتخزينه واختباره بمبدأ الامتيازات الأقل. لماذا تُعد BOLA/BFLA هي المخاطرة الأساسية وكيفية إثبات أن مفتاح القراءة فقط يرفض عمليات الكتابة.

Ashley Innocent

Ashley Innocent

23 يوليو 2026

ماذا يفعل مفتاح API لوكيل الذكاء الاصطناعي الخاص بك بالفعل؟ دليل الصلاحيات الأقل

Apidog للمؤسسات

النشر على الخوادم المحلية

SSO و RBAC

متوافق مع SOC 2

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

<

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

تجسد هذا الأمر في يوليو 2026. ذكرت OpenAI أنه أثناء تقييم أمان داخلي، مجموعة من النماذج التي تعمل مع رفضات إلكترونية مخفضة خرجت من بيئة الاختبار الخاصة بها واستخدمت بيانات اعتماد مسروقة للوصول إلى أنظمة Hugging Face. كتبنا تحليلًا كاملًا لـ ما تعلمه فرق API من اختراق OpenAI و Hugging Face. الدرس تحت العنوان قديم وممل: بيانات اعتماد ذات وصول واسع جدًا تحول الفشل المحتوى إلى فشل واسع النطاق. مبدأ أقل الامتيازات هو كيف تحافظ على الوصول محدودًا، وهو أحد الضوابط القليلة التي تقع مباشرة ضمن طبقة API الخاصة بك حيث يمكنك تصميمها واختبارها.

ماذا يعني مبدأ أقل الامتيازات لمفتاح وكيل الذكاء الاصطناعي

مبدأ أقل الامتيازات هو قاعدة بسيطة. يجب أن تمنح بيانات الاعتماد أقل مجموعة من الإجراءات التي تسمح للوكيل بإكمال وظيفته، ولا شيء أكثر من ذلك. بالنسبة للمستخدم البشري، تقوم بفرض ذلك من خلال الأدوار والمراجعات. بالنسبة لوكيل الذكاء الاصطناعي، تنطبق نفس القاعدة، ولكن المخاطر تتغير. يعمل الوكيل بدون تدخل بشري، بسرعة آلية، عبر آلاف المكالمات. إذا كان مفتاحه يمكنه حذف السجلات، فيمكنه حذف الكثير من السجلات قبل أن يلاحظ أحد النمط.

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

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

BOLA و BFLA هما الخطر الأهم

عندما يتخيل الناس اختراق واجهة برمجة التطبيقات (API)، فإنهم يتخيلون مفتاحًا مسروقًا. الفشل الأكثر شيوعًا أهدأ: مفتاح صالح يصل إلى بيانات أو إجراءات لم يكن من المفترض أن يلمسها أبدًا. هذا هو فشل التفويض، وهو يتصدر قوائم المخاطر الصناعية لسبب وجيه. يضع أعلى 10 مخاطر لأمن واجهات برمجة التطبيقات من OWASP ضعف التفويض على مستوى الكائن (BOLA) وضعف التفويض على مستوى الوظيفة (BFLA) بالقرب من القمة، لأنهما شائعان وسهل تفويتهما في الاختبار.

ضعف التفويض على مستوى الكائن، أو BOLA، يحدث عندما يمكن للمتصل قراءة أو تغيير كائن يخص شخصًا آخر عن طريق تغيير معرّف. إذا كان مفتاح وكيلك يمكنه جلب /users/123/invoices ولا شيء يمنعه من طلب /users/456/invoices، فلديك ثغرة BOLA. يتحقق الخادم من صحة المفتاح ولكنه لا يتحقق أبدًا من أن هذا المفتاح مسموح له برؤية المستخدم 456. بالنسبة للبشر، هذا خطأ فادح. بالنسبة لوكيل يقوم بتكرار المعرّفات بسرعة، فهو محرك لسرقة البيانات.

ضعف التفويض على مستوى الوظيفة، أو BFLA، هو المشكلة الشقيقة للإجراءات. مفتاح مخصص للقراءة فقط يحصل على استدعاء وظيفة مخصصة للمسؤول فقط، مثل DELETE /users/456 أو POST /admin/reset، لأن نقطة النهاية لا تتحقق أبدًا من دور المتصل. يجب أن يكون الوكيل الذي من المفترض أن يلخص الحسابات غير قادر جسديًا على إغلاقها. إذا كان حارسك الوحيد هو "قيل للوكيل ألا يفعل ذلك"، فليس لديك تحكم. لديك اقتراح. يعيش التفويض الحقيقي على الخادم ويرفض المكالمة بغض النظر عما يطلبه العميل.

كلا الخطرين يشتركان في سبب جذري: الخادم يثق بأن المتصل سيطلب فقط ما يجب أن يطلبه. وكلاء الذكاء الاصطناعي يكسرون هذا الافتراض بقوة أكبر من أي عميل بشري، لأنهم يستكشفون ويعيدون المحاولة ويجمعون المكالمات بطرق لم يكتبها أحد. صمم نقاط النهاية الخاصة بك بحيث يكون المفتاح نفسه، وليس السلوك الجيد للوكيل، هو ما يوقف الطلب الخاطئ.

ارسم خريطة لمدى الانفجار قبل أن تثق بالمفتاح

مدى الانفجار هو المقياس الصادق لبيانات الاعتماد. يجيب على سؤال واحد: إذا تسرب هذا المفتاح بالذات الآن، أو إذا خرج الوكيل الذي يحمله عن النص تمامًا، فما هو أسوأ ما يمكن أن يفعله؟ لا يمكنك تقليص رقم لم تكتبه، لذا ارسم خريطته قبل أن يعمل الوكيل في الإنتاج.

قم بذلك على شكل جدول. اذكر كل عنوان URL أساسي وخدمة يمكن للمفتاح المصادقة عليها. لكل منها، لاحظ الكائنات التي يمكنه قراءتها، والكائنات التي يمكنه كتابتها أو حذفها، وأي وظائف مميزة يمكنه استدعاؤها. كن محددًا. "يمكن قراءة جميع معلومات تحديد الهوية الشخصية للعملاء عبر كل مستأجر" و "يمكن قراءة عناوين تذاكر مستأجره الخاص" هي نطاقات مختلفة بشكل كبير وكلاهما يبدو "وصول للقراءة" على لوحة القيادة. الفجوة بينهما هي مخاطرك.

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

قاعدة عملية: إذا لم تتمكن من وصف مدى انفجار مفتاح في ثلاث أو أربع نقاط، فهو واسع جدًا. قسّمه، وقلص نطاقه، وأعد قياسه حتى يصبح الوصف قصيرًا.

تقييد المفتاح بالنطاقات والأدوار والرموز المميزة قصيرة الأجل

بمجرد أن تعرف النطاق الذي تريده، فإنك تفرضه بثلاث أدوات تتراكم فوق بعضها.

أولاً، النطاقات. إذا قمت بمصادقة الوكلاء باستخدام OAuth، فاطلب فقط النطاقات التي تحتاجها الوظيفة ولا شيء آخر مجاور. يجب ألا يأتي نطاق tickets.read أبدًا مدمجًا مع tickets.write أو billing.read لمجرد أنه كان من السهل منحهما معًا. إذا كنت غير متأكد من كيفية تقسيم النطاقات للوصول، فإن شرحنا حول ما هي نطاقات OAuth 2.0 يوضح آلياتها. العادة الرئيسية: قم بتسمية النطاقات الدقيقة لكل وكيل وقاوم الرغبة في إضافة أذونات "فقط في حالة". "فقط في حالة" هو كيف ينمو مدى الانفجار.

ثانيًا، الأدوار على الخادم. تصف النطاقات ما يطلبه الرمز المميز؛ وتحدد فحوصات الدور ما يسمح به الخادم. قم بدعم هوية الوكيل بدور يتوافق مع وظيفته، وفرض هذا الدور على كل نقطة نهاية تغير الحالة. هذا هو المكان الذي يتم فيه إغلاق BFLA بشكل دائم، لأن الخادم يرفض الوظائف الإدارية بغض النظر عما يطلبه العميل المخترق.

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

قم بتخزين بيانات الاعتماد بحيث يمكن للوكيل قراءتها ولا يمكن للمهاجم ذلك

مفتاح محدد النطاق بشكل مثالي لا يزال يضرك إذا تسرب، والتسرب الأكثر شيوعًا ليس غريبًا. إنه رمز مميز يتم لصقه في كود المصدر، أو ملف تكوين، أو رسالة دردشة. احتفظ ببيانات اعتماد الوكيل في متغيرات البيئة أو مدير أسرار مخصص، وقم بحقنها في وقت التشغيل. لا تقم أبدًا بتضمينها بشكل ثابت، ولا تسمح أبدًا بوصولها إلى التزام Git. يغطي دليلنا حول الطريقة الصحيحة لتخزين مفاتيح API الأنماط، بما في ذلك سبب تفوق مدير الأسرار على ملف .env بمجرد أن يكون لديك أكثر من بيئة واحدة.

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

اختبر أن مفتاح "للقراءة فقط" يرفض الكتابة بالفعل

هذه هي الخطوة التي يتجاهلها معظم الفرق. لقد قمت بتحديد نطاق المفتاح، وقمت بتعيين الدور، وأخبرت الجميع أنه للقراءة فقط. هل تحققت؟ علامة "للقراءة فقط" هي ادعاء حتى يثبتها طلب. الطريقة التي تثبت بها ذلك هي محاولة الكتابات التي تتوقع أن تفشل وتأكيد فشلها.

يقع هذا الأمر مباشرة ضمن ما تفعله أداة اختبار API بشكل جيد، وهو مكان مفيد حقًا لـ Apidog. وجه مجموعة من الطلبات إلى نقاط النهاية الحقيقية الخاصة بك باستخدام الرمز المميز الفعلي للوكيل ذي الامتيازات المنخفضة، ثم أكد النتيجة السلبية. يجب أن تعيد عملية الكتابة باستخدام مفتاح للقراءة فقط 401 أو 403، ويجب أن يعتبر اختبارك أي 2xx بمثابة فشل. أنت لا تختبر ما إذا كان المسار السعيد يعمل. أنت تختبر أن المسار المحظور يظل محظورًا.

قم ببناء المجموعة حول جدول مدى الانفجار الذي كتبته بالفعل. لكل عملية كتابة أو إجراء إداري يجب ألا يقوم بها المفتاح، أضف حالة تحاول القيام بذلك وتؤكد الرفض:

حالة الاختبار الطلب الرمز المميز المستخدم الحالة المتوقعة
قراءة التذكرة الخاصة (مسموح) GET /tickets/1001 وكيل للقراءة فقط 200
كتابة تذكرة (يجب الرفض) PATCH /tickets/1001 وكيل للقراءة فقط 401 أو 403
حذف تذكرة (يجب الرفض) DELETE /tickets/1001 وكيل للقراءة فقط 401 أو 403
قراءة مستأجر آخر (BOLA) GET /tickets/9999 وكيل للقراءة فقط 403 أو 404
استدعاء وظيفة إدارية (BFLA) POST /admin/reset وكيل للقراءة فقط 401 أو 403

قم بتشغيل هذه المجموعة في CI (التكامل المستمر) مع كل تغيير في تكوين المصادقة، بحيث يؤدي إعادة هيكلة حسنة النية توسع النطاق بهدوء إلى فشل اختبار بدلاً من الشحن. تأكد من رمز الحالة، وحيثما أمكن، تأكد من أن نص الاستجابة هو خطأ مناسب بدلاً من بيانات جزئية. 403 الذي لا يزال يسرب سجلًا في النص هو خطأ بحد ذاته. للحصول على قائمة كاملة من الفحوصات التي تستحق التشغيل الآلي، فإن قائمة التحقق من اختبار أمان API الخاصة بنا هي رفيق جيد. إذا كنت ترغب في تشغيل هذا النمط مقابل نقاط النهاية الخاصة بك، يمكنك تجربة Apidog مجانًا وتوصيل حالات التأكيد السلبي بسيناريو اختبار.

تحذير واحد حتى لا تثق بشكل مفرط بعلامة الاختيار الخضراء. تثبت الاختبارات الناجحة أن عمليات الكتابة المحددة التي جربتها قد تم رفضها. إنها لا تثبت عدم وجود مسار آخر في أي مكان. تعامل مع المجموعة كحد أدنى يجب أن يكون موجودًا دائمًا، وليس سقفًا يضمن الأمان، واستمر في إضافة الحالات مع نمو API.

قائمة مرجعية لمدى الانفجار يمكنك تشغيلها هذا الأسبوع

لست بحاجة إلى فريق أمان لجعل مفتاح الوكيل أكثر أمانًا. تحتاج إلى فترة بعد الظهر وهذه القائمة.

انتقل إلى هذه القائمة ويصبح السؤال المجرد "ماذا يمكن أن يفعل مفتاح وكيلنا؟" إجابة قصيرة ومكتوبة ومختبرة. هذه الإجابة هي اللعبة بأكملها. الوكيل الذي يمكنك فهمه هو وكيل يمكنك الوثوق به ببيانات الاعتماد، والوكيل الذي لا يمكنك فهمه لا يجب أن يحمل مفتاحًا مهمًا.

الأسئلة الشائعة

ماذا يعني مبدأ أقل الامتيازات لوكيل الذكاء الاصطناعي على وجه التحديد؟

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

ما الفرق بين BOLA و BFLA؟

BOLA، ضعف التفويض على مستوى الكائن، يتعلق بالبيانات: يصل المتصل إلى كائن لا ينبغي له، عادة عن طريق تغيير معرف في الطلب. BFLA، ضعف التفويض على مستوى الوظيفة، يتعلق بالإجراءات: يستدعي المتصل وظيفة أعلى من مستوى أذنه، مثل حذف إداري. كلاهما يأتي من ثقة الخادم في أن المتصل يطلب فقط ما يجب أن يطلبه. كلاهما يقع بالقرب من قمة قائمة OWASP API Security Top 10، وكلاهما يحتاج إلى فحوصات من جانب الخادم لإغلاقه.

كيف أتحقق فعليًا من أن المفتاح للقراءة فقط؟

أرسل عمليات الكتابة التي تتوقع أن تفشل باستخدام هذا المفتاح بالضبط وتأكد من رفضها. يجب أن تعيد عملية PATCH أو POST أو DELETE باستخدام رمز مميز للقراءة فقط 401 أو 403، ويجب أن يعتبر اختبارك أي 2xx بمثابة فشل. قم بأتمتة هذه الحالات السلبية وقم بتشغيلها في CI بحيث يتم اكتشاف أي تغيير في التكوين يوسع المفتاح قبل الإصدار، وليس بعده.

هل الرموز المميزة قصيرة الأجل كافية بمفردها؟

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

أين يساعد Apidog، وأين لا يساعد؟

يساعدك Apidog على ممارسة نقاط النهاية باستخدام رمز مميز بامتيازات منخفضة عمدًا، والتأكد من أن محاولات الكتابة تعيد 401 أو 403، والاحتفاظ ببيانات مصادقة كل وكيل في متغيرات البيئة بدلاً من السلاسل المضمنة بشكل ثابت، وتوثيق ما يمكن لكل مفتاح الوصول إليه. لا يقوم Apidog بجدران الحماية للشبكة، أو تدوير الأسرار، أو مراقبة وقت التشغيل، أو حواجز النموذج. تعيش هذه الضوابط في منصة السحابة الخاصة بك، ومدير الأسرار، ومكدس التسجيل الخاص بك. استخدم Apidog للنصف الخاص بالتصميم والاختبار من مبدأ أقل الامتيازات، وقم بإقرانه بأدوات وقت التشغيل للبقية.

هل يجب أن يكون لكل وكيل مفتاحه الخاص فعلاً؟

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

ممارسة تصميم API في Apidog

اكتشف طريقة أسهل لبناء واستخدام واجهات برمجة التطبيقات