الخدمات · واجهات برمجة التطبيقات
اختبار اختراق واجهات برمجة التطبيقات REST و GraphQL
واجهات برمجة التطبيقات هي المكان الذي تعيش فيه بياناتكم فعلاً، وما التطبيق الإلكتروني أو تطبيق الجوال إلا واجهة أمامية واحدة لها، ويستطيع المهاجم أن يتجاوز التطبيق ويستدعي الواجهة مباشرة. لذلك نختبر واجهات REST و GraphQL لديكم وفق OWASP API Security Top 10، ويؤكد مختص كل نتيجة قبل أن تصل إلى تقريركم.
ما نختبره
نختبر واجهاتكم وفق قائمة OWASP API Security Top 10 لعام 2023، وهي المخاطر الخاصة بواجهات برمجة التطبيقات لا بالصفحات التي أمامها.
ضوابط الوصول على مستوى الكائنAPI1:2023
هل يستطيع مستخدم أن يقرأ سجلات مستخدم آخر أو يعدّلها بتغيير معرّف في الطلب. وهي أكثر ثغرات الواجهات شيوعاً وأشدّها ضرراً.
المصادقةAPI2:2023
الرموز ومفاتيح الواجهة والتعامل مع JWT وانتهاء الصلاحية وتجديدها، ونقاط النهاية التي تنسى التحقق ممن يستدعيها.
ضوابط الوصول على مستوى الحقولAPI3:2023
الحقول التي لا ينبغي للمستخدم رؤيتها أو تعيينها: بيانات تُكشَف أكثر من اللازم في الردود، وإسناد جماعي يتيح للطلب الكتابة في حقول محمية.
استهلاك المواردAPI4:2023
حدود معدل الطلبات والحصص، والطلبات التي قد تستنزف المعالج أو الذاكرة أو حصة مدفوعة لدى طرف ثالث.
ضوابط الوصول على مستوى الوظيفةAPI5:2023
هل يستطيع مستخدم عادي الوصول إلى وظائف المسؤول باستدعاء نقطة النهاية مباشرة أو بتغيير نوع طلب HTTP.
مسارات الأعمال الحساسةAPI6:2023
مسارات مثل الدفع أو شحن الرصيد أو التسجيل التي قد يسيء برنامج آلي استغلالها على نطاق واسع، وهل من حدّ يكبح الأتمتة.
تزوير الطلب من جهة الخادمAPI7:2023
نقاط النهاية التي تجلب رابطاً تزوّدونها به، وقد تُوجَّه نحو شبكتكم الداخلية أو بيانات تعريف البيئة السحابية.
الإعداد الخاطئ للأمانAPI8:2023
إعدادات CORS وترويسات الأمان والرسائل المسهبة عن الأخطاء والمكوّنات غير المحدّثة والإعدادات الافتراضية المكشوفة.
إدارة الجردAPI9:2023
نقاط النهاية المنسية أو غير الموثّقة: إصدار /v1 قديم ما زال يعمل إلى جانب /v2، وخوادم التطوير والتجربة، والواجهات الخفية.
الاستهلاك غير الآمن لواجهات الأطراف الأخرىAPI10:2023
الواجهات الخارجية التي يعتمد عليها نظامكم، وهل يثق بردودها دون التحقق منها.
REST و GraphQL
نختبر REST و GraphQL على حدّ سواء. ففي GraphQL نفحص أيضاً الاستكشاف (introspection) المتروك في بيئة الإنتاج، وعمق الاستعلام وتعقيده، وإساءة استخدام التجميع، والتحقق من الصلاحية عند كل مُحلّل (resolver) لا عند المدخل وحده. وفي REST نعمل انطلاقاً من مساراتكم، سواء أكانت موثّقة أم لا.
متى تختبرون واجهاتكم؟
- قبل الإطلاق أو قبل أي إصدار كبير، لتعالجوا المشكلات قبل أن يستدعي شيء الواجهة في بيئة الإنتاج.
- حين تخدم الواجهة تطبيق جوال أو تكاملاً مع شريك، حيث يكون العميل خارج سيطرتكم ويستطيع أي أحد استدعاء نقاط النهاية مباشرة.
- حين تطلبه جهة تنظيمية أو أحد عملائكم. فواجهات برمجة التطبيقات خدمات مقدَّمة عبر الإنترنت، يوجب الضابط 2-11-3-1 من الضوابط الأساسية للأمن السيبراني على الجهات المشمولة اختبارها، ويدعو إطار الأمن السيبراني للبنك المركزي السعودي (3.2.4) إلى اختبار سنوي للخدمات المقدَّمة للعملاء وعبر الإنترنت. وحيثما تتعاملون مع بيانات البطاقات، يغطي المتطلب 11.4 من PCI DSS v4.0.1 اختبار الاختراق. اطّلعوا على صفحتي الضوابط الأساسية للأمن السيبراني ومتطلبات البنك المركزي السعودي.
- قبل جولة تمويل أو مراجعة أمنية من عميل كبير، حين قد يُطلب منكم تقرير اختبار اختراق حديث.
ما نحتاجه منكم
- عنوان كل واجهة في النطاق، مثل api.example.com
- حساب تجريبي أو رمز وصول لكل دور من أدوار المستخدمين، مثل العميل والمسؤول
- توثيق الواجهات إن توفّر لديكم: ملف OpenAPI أو Swagger، أو مخطط GraphQL، أو مجموعة Postman. ويمكننا العمل من حركة مرور ملتقطة إن لم يتوفّر
- بيئة نختبر عليها، ويُفضَّل أن تكون البيئة التجريبية. وإن اختبرنا بيئة الإنتاج، نتفق أولاً على نوافذ الاختبار وحدود معدل الطلبات وشروط الإيقاف
ويُجرى الاختبار افتراضياً بأسلوب الصندوق الرمادي: نستدعي الواجهة بالحسابات التي تزوّدوننا بها، كما يفعل أي عميل حقيقي. وإن أمكنكم مشاركة الشيفرة المصدرية، يتيح لنا اختبار الصندوق الأبيض التعمّق أكثر.
ما تستلمونه
- ملخص تنفيذي لمخاطركم بلغة الأعمال
- تقرير نتائج تقني يتضمن تقييم CVSS والأدلة والطلبات الدقيقة لإعادة إظهار كل نتيجة، ليتحقق منها المطورون لديكم بأنفسهم
- خارطة طريق للمعالجة بإرشادات تناسب بيئتكم التقنية، سواء أكانت REST أو GraphQL
- ربط النتائج بالمتطلبات التنظيمية التي تلتزمون بها، مثل الضوابط الأساسية للأمن السيبراني وإطار الأمن السيبراني للبنك المركزي السعودي ونظام حماية البيانات الشخصية
- بيان بمخاطر OWASP API Security Top 10 التي شملها الاختبار
- جلسة عرض النتائج مع فريقكم
- جولة واحدة لإعادة اختبار جميع النتائج المؤكدة خلال 90 يوماً دون تكلفة إضافية، ثم خطاب إغلاق يوثّق حالة كل نتيجة
وإذا أكدنا نتيجة حرجة، نُبلغ جهة التواصل المسمّاة لديكم خلال 24 ساعة من تأكيدها، دون انتظار التقرير النهائي.
السعر والمدة
نرسل إليكم سعراً ثابتاً وجدولاً زمنياً بعد أن نعرف حجم واجهاتكم: كم نقطة نهاية أو نوع GraphQL فيها، وكم دوراً تخدم، وهل هي REST أم GraphQL أم كلاهما. ولا نحتسب أتعابنا بالساعة، وإعادة الاختبار مشمولة.