يختبر تقييم أمن GraphQL واجهات GraphQL في مواجهة OWASP API Security Top 10 — عيوب التحكم في الوصول ومنطق العمل التي تهيمن على اختراقات API — وفي مواجهة المخاطر الفريدة لـ GraphQL نفسه: استبطان المخطّط (introspection) الذي يسلّم المهاجم الخريطة كاملةً، وعمق الاستعلام وتعقيده وتجميعه (batching) الذي يحوّل طلباً واحداً إلى حجب للخدمة، والتخويل الذي يُفرَض لكل resolver بدلاً من كل نقطة نهاية. ولأن نقطة نهاية GraphQL واحدة تكشف الرسم البياني بأكمله، فإن غياب فحص على حقل واحد قد يكشف بيانات مستخدم آخر. نختبر في مواجهة السلوك الفعلي لـ API، ونتابع كل نتيجة حتى إثبات عملي، ونصنّف خطورتها بـ CVSS إلى جانب الأثر الفعلي على العمل.
ما الذي يشمله
التخويل على مستوى الحقل والكائن (BOLA/BFLA) عبر الاستعلامات والطفرات (mutations)
كشف الاستبطان (introspection) وما يُظهِره المخطّط في بيئة الإنتاج
حدود عمق الاستعلام وتعقيده وتكلفته — حجب الخدمة بالاستعلامات المتداخلة
إساءة استغلال التجميع (batching) والأسماء المستعارة (aliasing)، بما في ذلك القوة الغاشمة عبر طلب واحد
المصادقة المكسورة في الاستعلامات والطفرات والاشتراكات (subscriptions)
الحقن الذي يصل إلى قواعد البيانات والخدمات السفلية عبر الـ resolvers
الإفراط في كشف البيانات والإسناد الجماعي عبر أنواع الإدخال (input types)
معالجة الأخطاء وإفشاء المعلومات في الاستجابات
ضوابط تحديد المعدّل واستهلاك الموارد
مراجعة المخطّط في مواجهة السلوك الفعلي لـ API
كيف يعمل
- ملخّص تنفيذي مع نظرة عامة على المخاطر لصنّاع القرار
- تقرير تقني مفصّل، كل نتيجة مع إثبات مفهوم قابل لإعادة الإنتاج
- ربط النتائج بـ OWASP API Security Top 10 والمخاطر الخاصة بـ GraphQL
- خطورة CVSS والأثر على العمل لكل نتيجة
- توصيات بشأن تعقيد الاستعلام وعمقه وتحديد المعدّل
- إرشاد لتحصين المخطّط والـ resolvers
- خارطة طريق للمعالجة محدَّدة الأولويات مع خطوات ملموسة
- إعادة الاختبار بعد المعالجة
لماذا حافظ سيكيور
الأسئلة الشائعة
يقيّم واجهة GraphQL بحثاً عن نقاط ضعف أمنية — عيوب التخويل على مستوى الحقل والكائن، وكشف الاستبطان، وحجب الخدمة بتعقيد الاستعلام والتجميع، والحقن عبر الـ resolvers، وإفشاء المعلومات — في مواجهة OWASP API Security Top 10 وإرشادات OWASP الخاصة بـ GraphQL، مع إثبات كل نتيجة وتصنيفها.
تكشف REST API نقاط نهاية كثيرة؛ أما GraphQL فتكشف عادةً نقطة واحدة يمكن الوصول عبرها إلى الرسم البياني كله. ويُفرَض التخويل لكل resolver بدلاً من كل مسار، فيكشف فحص واحد غائب حقلاً في كل مكان يظهر فيه، ويضيف محرّك الاستعلام مخاطر لا يحملها اختبار REST — الاستبطان، وعمق الاستعلام وتعقيده، والتجميع. والمعيار المرجعي يبقى OWASP API Security Top 10 مطبَّقاً على الرسم البياني.
الاستبطان قدرة مدمَجة في GraphQL لوصف مخطّطه الخاص — كل نوع وحقل ووسيط. وهو مفيد في التطوير لكنه في الإنتاج يسلّم المهاجم خريطة كاملة لـ API. وتعطيله في الإنتاج يرفع الحاجز؛ لكنه ليس بديلاً عن فرض التخويل، إذ يظلّ استكشاف الرسم البياني ممكناً بالتخمين، ولذا نختبر الاثنين.
يتيح GraphQL للعميل طلب بيانات متداخلة ومترابطة بعمق في طلب واحد. وبدون حدود للعمق أو التعقيد أو التكلفة، يمكن لاستعلام واحد مصاغ بعناية — أو لعدة استعلامات بأسماء مستعارة مجمَّعة معاً — إجبار الخادم على أداء قدر هائل من العمل حتى ينهار. نختبر ما إذا كانت تلك الحدود موجودة وصامدة، ونوصي بعتبات ملموسة.
نقطة نهاية GraphQL وبيئتها، والمخطّط أو إتاحة الاستبطان إن توفّر، وحسابات اختبار لكل دور (مستخدمان على الأقل لكل دور حتى نختبر الوصول بين المستخدمين). وبيئة الاختبار (staging) التي تطابق الإنتاج مثالية. ونتّفق على النطاق وعلى أي طفرات يجب تجنّبها قبل أن نبدأ.
الصندوق الأسود يعني أننا نختبر دون معرفة داخلية؛ والأبيض يعني أن لدينا أيضاً المخطّط والوثائق وأحياناً المصدر؛ والرمادي يقع بينهما، وعادةً ببيانات اعتماد والمخطّط. ولـ GraphQL نوصي عادةً بالرمادي: فمع الأدوار والمخطّط نغطّي عيوب التخويل لكل resolver بعمق أكبر بكثير وفي وقت أقل من اختبار أعمى.
تحصل كل نتيجة على درجة CVSS كأساس مشترك، تُعدَّل بالأثر الفعلي على العمل في سياقكم — أي بيانات أو عملية تكشف، وما مدى سهولة الوصول إليها، وماذا يكسب المهاجم. لهذا قد تأخذ مشكلتان بالدرجة نفسها من CVSS أولويتين مختلفتين.
نفضّل بيئة اختبار (staging) تطابق الإنتاج. وعندما يتعيّن إجراء الاختبار على بيئة الإنتاج، نتّفق على الحدود مسبقاً — لا طفرات مدمِّرة، وحذر في اختبارات التعقيد والتجميع التي قد تُحمِّل الخادم، وجهة اتصال من طرفكم للإيقاف الفوري إذا بدا شيء خاطئاً.
يعتمد على حجم المخطّط، وعدد الأدوار، وتعقيد منطق العمل؛ وعادةً يستغرق التقييم المعتاد نحو أسبوعين إلى ثلاثة أسابيع. ونقدّم تقديراً محدَّداً بعد تحديد النطاق، حالما يُعرَف المخطّط وعدد الأدوار.
خدمات ذات صلة
خدمات تكميلية قد تكون مفيدة لكم