التقييم الأمني واختبار الاختراق لـ API
باستخدام OWASP API Security Top 10، نحدّد ونقيّم ثغرات REST API وGraphQL بما في ذلك BOLA/IDOR، والمصادقة المكسورة، وكشف البيانات، وعيوب تحديد المعدّل.
خدمات التقييم الأمني واختبار الاختراق لـ API
اختر الخدمة التي تناسب نوع API مؤسستكم
تغطية كاملة لـ OWASP API Security Top 10 (2023)
تغطّي اختباراتنا جميع مخاطر OWASP الأمنية العشرة الكبرى لواجهات API
التخويل المكسور على مستوى الكائن
المصادقة المكسورة
التخويل المكسور على مستوى خاصية الكائن
الاستهلاك غير المقيَّد للموارد
التخويل المكسور على مستوى الوظائف
الوصول غير المقيَّد إلى تدفّقات العمل الحسّاسة
تزوير الطلبات من جهة الخادم
سوء الإعداد الأمني
الإدارة غير السليمة للجرد
الاستهلاك غير الآمن لواجهات API
لماذا يهمّ أمن API؟
واجهات API قلب التطبيقات الحديثة وتوفّر وصولاً مباشراً إلى البيانات الحساسة
تعتمد التطبيقات الحديثة اعتماداً كبيراً على واجهات API. فتطبيقات الجوال، وتطبيقات الصفحة الواحدة، والخدمات المصغّرة، وأجهزة إنترنت الأشياء تتواصل جميعها عبر API، ما يجعلها أهدافاً حرجة للهجوم.
توفّر واجهات API وصولاً مباشراً إلى بيانات الخلفية ومنطق العمل. ويمكن لثغرة واحدة أن تكشف ملايين السجلّات أو تتيح إجراءات غير مصرَّح بها.
التخويل المكسور على مستوى الكائن (BOLA) هو المخاطرة الأولى في API. ويستطيع المهاجمون الوصول إلى بيانات مستخدمين آخرين بالتلاعب بمعرّفات الكائنات في طلبات API.
كثيراً ما تكشف واجهات API نقاط نهاية غير موثَّقة، أو ميزات تصحيح، أو إصدارات قديمة. وهذه النقاط الخفية تُستهدَف من المهاجمين كثيراً.
تغطية أنواع API
اختبارات متخصّصة لـ REST API وGraphQL
- المصادقة والتخويل
- اختبار BOLA/IDOR
- Rate Limiting وThrottling
- Input Validation
- Mass Assignment
- تسرّب البيانات الحساسة
- HTTP Method Tampering
- CORS Configuration
- Introspection Security
- Query Depth Limiting
- Query Complexity Analysis
- Field-level Authorization
- Batching Attacks
- Alias-based DoS
- الحقن في Queries
- Schema Exposure
منهجيات API المتخصّصة
نستفيد من أطر معترَف بها عالمياً لتقييم أمن API
ما الذي نختبره؟
تغطية شاملة لكل جوانب أمن API بناءً على OWASP API Security Top 10
- JWT Security
- OAuth 2.0 Flows
- API Keys
- Token Expiration
- Refresh Token Security
- BOLA / IDOR
- Predictable identifiers
- Ownership checks
- Nested resources
- Admin endpoints
- HTTP method tampering
- Mass assignment
- Read-only field writes
- SQL / NoSQL injection
- Command injection
- XXE
- Deserialization
- Parameter pollution
- Rate limit bypass
- Oversized payloads
- Expensive queries
- Costly third-party calls
- Automation abuse
- Workflow step skipping
- Race conditions
- Business limits
- URL parameters
- Webhooks
- Import from link
- Cloud metadata endpoints
- Excessive data in responses
- Error and stack traces
- Debug endpoints
- Sensitive headers
- CORS policy
- TLS configuration
- HTTP headers
- Verb tampering
- Documentation exposure
- Deprecated versions
- Undocumented endpoints
- Non-production hosts
- Unvalidated upstream responses
بمَ يبدأ الاختبار؟
كلما عرف الفريق أبكر ما هو موجود، ذهب وقت أكثر إلى اختباره.
الأقرب إلى مهاجم خارجي، والسبيل الوحيد لمعرفة ما يمكن الوصول إليه دون أن يكون موثَّقاً. ويُنفَق فيه وقت على الاكتشاف كان يمكن أن يذهب إلى الاختبار.
الخيار المعتاد. التغطية أوسع بكثير في الوقت نفسه، ويمكن اختبار التخويل كما يجب لأن هناك عدة مُستدعِين للمقارنة.
للمنطق الذي لا يمكن استنتاجه من الخارج، ولتأكيد ما إذا كان فحص التخويل موجوداً أصلاً بدلاً من التخمين من الاستجابات.
نطاق التقييم وما نحتاجه منكم
تعتمد جودة النتيجة أكثر من أي شيء على جاهزية هذه الأمور القليلة.
ملف OpenAPI أو Swagger، أو مجموعة Postman، أو عيّنة من حركة الطلبات الحقيقية. وبدون إحداها تذهب الأيام الأولى إلى اكتشاف ما هو موجود.
التخويل على مستوى الكائن هو الأول في OWASP API Top 10 ولا يمكن اختباره بحساب واحد. حسابان متناظران لكل دور، وحساب واحد لكل مستوى امتياز.
اختبار حدود الموارد يعني إرسال حركة طلبات تبدو مُسيئة. وعلى بيئة الإنتاج يحتاج ذلك إلى ساعات متَّفق عليها؛ وعلى بيئة الاختبار يحتاج إلى بيانات تشبه الحقيقية.
حيث تحدّ بوّابة API أو WAF من المعدّل حسب العنوان، تُسمَح عناويننا بالمرور لجزء من الاختبار، بحيث يكون المقيس هو API لا البوّابة.
جهة اتصال مسمّاة في كلا الطرفين. ونقطة نهاية إدارية مكشوفة يُبلَّغ عنها في يوم اكتشافها، لا في التقرير النهائي.
كيف تُحدَّد خطورة كل نتيجة
رقم لا منهجية وراءه لا يساعد أحداً على تقرير ما يُصلَح أولاً.
تُسجَّل كل نتيجة بـ CVSS v3.1، فتوجد لغة مشتركة مع مهندسيكم ومع الأدوات التي تستخدمونها أصلاً.
نقطة الضعف نفسها على نقطة نهاية للبحث وعلى أخرى تنقل الأموال ليستا النتيجة ذاتها. تُعدَّل الدرجة الأساسية بحسب البيانات والإجراء وراءها.
تأتي كل نتيجة مع الطلب والاستجابة اللذين يُظهِرانها. وما لا يمكن إعادة إنتاجه لا يُبلَّغ عنه بوصفه نتيجة مؤكَّدة.
يقترح التقرير تسلسلاً: ما يُصلَح قبل الإصدار التالي، وما يمكن أن ينتظر الإصدار الذي يليه.
عمليتنا
نهجنا المنظَّم لتقييم أمن API
نرسم خريطة جميع نقاط نهاية API باستخدام الوثائق وتحليل حركة الطلبات والـ fuzzing. ونحدّد نقاط النهاية الخفية، والإصدارات المهمَلة، والميزات غير الموثَّقة.
باستخدام أدوات متخصّصة لأمن API، نجري اختباراً آلياً للثغرات الشائعة وتحديد المعدّل ومشكلات المصادقة.
اختبار يدوي خبير لعيوب منطق العمل، وBOLA/IDOR، وتجاوز التخويل، وسلاسل الهجوم المعقّدة التي تفوت الأدوات الآلية.
تقرير مفصّل بدرجات CVSS، ومعالجة خاصة بـ API، ومجموعات Postman/Swagger، وإعادة اختبار مجانية بعد الإصلاحات.
مخرجات المشروع
تقارير شاملة وقابلة للتنفيذ للفرق التقنية والإدارية
الملخّص التنفيذي
ما الذي اختُبر، وما الذي وُجد، وماذا يعني ذلك للعمل، بلغة يستطيع قارئ غير تقني التصرّف بناءً عليها.
التقرير التقني
كل نتيجة مع درجة CVSS v3.1، والطلب والاستجابة بالضبط اللذين يُظهِرانها، ونقطة النهاية والطريقة المتأثّرة.
مجموعة API
مجموعة Postman من الطلبات التي تعيد إنتاج كل نتيجة، حتى يتمكّن مهندسوكم من تأكيد الإصلاح دون انتظارنا.
إعادة اختبار مجانية
بعد الإصلاح، تُعاد اختبار كل نتيجة فإمّا يُؤكَّد إغلاقها أو تُعاد فتحها مع بيان ما لا يزال يعمل، ويُحدَّث التقرير.
الأسئلة الشائعة
نختبر جميع أنواع واجهات API بما في ذلك REST وGraphQL وخدمات الويب SOAP/XML وgRPC وWebSocket وتطبيقات webhook. ويغطّي اختبارنا الواجهات العامة والداخلية/المصغّرة على حدّ سواء. ونعمل مع أي API بغضّ النظر عن الحزمة التقنية أو إطار العمل المستخدَم.
BOLA (التخويل المكسور على مستوى الكائن)، المعروف أيضاً بـ IDOR، يحدث حين لا تتحقّق API كما يجب من أن المستخدم الطالب يملك إذن الوصول إلى كائن محدّد. مثلاً تغيير /api/users/123 إلى /api/users/456 للوصول إلى بيانات مستخدم آخر. وهو الأول لأنه شائع للغاية، وسهل الاستغلال، ويمكن أن يؤدّي إلى اختراقات بيانات هائلة.
لـ GraphQL مخاوف أمنية فريدة: استعلامات الاستبطان يمكن أن تكشف المخطّط بأكمله، والاستعلامات المتداخلة يمكن أن تسبّب حجب خدمة عبر هجمات التعقيد، والتجميع يتيح هجمات القوة الغاشمة، وكثيراً ما يُغفَل التخويل على مستوى الحقل. نختبر الثغرات الخاصة بـ GraphQL بما في ذلك هجمات عمق الاستعلام، وحجب الخدمة المعتمِد على الأسماء المستعارة، والطفرات دون تخويل سليم.
تساعد الوثائق (OpenAPI/Swagger، ومجموعات Postman) على تسريع الاختبار، لكنها ليست شرطاً. يمكننا اكتشاف نقاط نهاية API عبر تحليل حركة الطلبات، أو الهندسة العكسية لتطبيق الجوال، أو فحص تطبيق الويب. وكثيراً ما نجد نقاط نهاية غير موثَّقة ليست في الوثائق الرسمية لكنها لا تزال متاحة.
يعتمد الجدول الزمني على تعقيد API ونطاقه. ويستغرق تقييم REST API معتاد بـ 20-50 نقطة نهاية أسبوعاً إلى أسبوعين. وتحتاج واجهات API المعقّدة ذات طرق المصادقة المتعدّدة أو منطق العمل الواسع أو GraphQL إلى أسبوعين إلى ثلاثة. وقد تستغرق معماريات الخدمات المصغّرة الكبيرة أربعة أسابيع أو أكثر. ونقدّم تحديد نطاق مفصّلاً أثناء الاستشارة الأولية.
نستخدم أدوات رائدة في القطاع، بما في ذلك Burp Suite بإضافات خاصة بـ API، وPostman للتفاعل مع API، وOWASP ZAP للمسح الآلي، ونصوص Python/Go مخصّصة للـ fuzzing، وأدوات خاصة بـ GraphQL مثل InQL وGraphQL Voyager، وأدوات متخصّصة لاختبار JWT وتحليل تحديد المعدّل.
نعم، لدينا خبرة واسعة في اختبار تدفّقات OAuth 2.0 (Authorization Code، وPKCE، وClient Credentials)، وOpenID Connect، والمصادقة المبنية على JWT، وأنظمة مفاتيح API، وآليات المصادقة المخصّصة. ونختبر تسرّب الرموز، والتحقّق غير السليم من الرموز، وتجاوز النطاق (scope)، وغيرها من ثغرات المصادقة.
تتسلّمون: ملخّصاً تنفيذياً، وتقريراً تقنياً بدرجات CVSS وطلبات إثبات المفهوم، ودليل معالجة مع أمثلة كود، ومجموعة Postman/Swagger لجميع نقاط النهاية المختبَرة، وجرد API مع تصنيفات المخاطر، وربطاً بالامتثال. إضافةً إلى جلسة استعراض للتقرير وإعادة اختبار مجانية بعد الإصلاحات.
نعم، نختبر الواجهات المواجِهة للخارج والداخلية معاً. وكثيراً ما تفتقر الواجهات الداخلية إلى مصادقة سليمة بافتراض أنها «داخلية فقط»، لكن المهاجمين الذين يخترقون المحيط يمكنهم استغلالها. ويمكننا العمل بوصول VPN، أو بيئات اختبار، أو بوّابات API لتقييم أمن واجهاتكم الداخلية.
تعتمد التكلفة على: عدد نقاط النهاية، وتعقيد API (REST مقابل GraphQL مقابل gRPC)، وآليات المصادقة، والحاجة إلى اختبار منطق العمل، ومتطلّبات الامتثال. ويبدأ تقييم REST API أساسي من نقطة سعرية واحدة، بينما يكلّف الاختبار الشامل لمعماريات الخدمات المصغّرة المعقّدة أكثر. تواصلوا معنا لاستشارة مجانية وعرض سعر دقيق.
ليس شرطاً صارماً، لكنه يغيّر ما يشتريه الوقت. فمع مواصفة أو مجموعة Postman أو عيّنة من حركة الطلبات الحقيقية، يبدأ العمل على الاختبار. وبدونها يذهب الجزء الأول من المهمة إلى اكتشاف ما هو موجود، وأي شيء غير موثَّق لا نعثر عليه يبقى دون اختبار.
لأن التخويل المكسور على مستوى الكائن هو الأول في OWASP API Top 10 ولا يمكن إثباته بحساب واحد. فالاختبار هو ما إذا كان المستخدم (أ) يستطيع قراءة بيانات المستخدم (ب) أو تغييرها، وهذا يحتاج إلى (ب) حقيقي يُشار إليه.
تحدّ البوّابة من سرعة استدعاء شيء ما؛ لكنها لا تقرّر ما إذا كان ينبغي السماح للمُستدعي أصلاً. فالتخويل ومنطق العمل والبيانات في الاستجابة تقع خلفها ولا تتأثّر بها. لذا يجري جزء من الاختبار بالسماح لعناويننا بالمرور، بحيث يكون المقيس هو API لا البوّابة أمامه.
نعم، بالساعات والحدود المتَّفق عليها مسبقاً. ويحتاج جزءان إلى حذر: اختبار حدود الموارد يعني إرسال حركة طلبات تبدو مُسيئة، وأي عملية تكتب تحتاج إلى اتفاق حول ما يجوز إنشاؤه وكيف يُنظَّف بعد ذلك.
Related insights
What we have written in this area