نظرة عامة حول اكتشاف واجهة برمجة التطبيقات
¶
يقوم وحدة اكتشاف واجهة برمجة التطبيقات في منصة Wallarm ببناء جرد واجهات برمجة تطبيقات REST التطبيقية استنادًا إلى الاستخدام الفعلي لواجهة برمجة التطبيقات. تقوم الوحدة بتحليل الطلبات الفعلية للحركة وبناء جرد واجهة برمجة التطبيقات استنادًا إلى نتائج التحليل.
يتضمن جرد واجهة برمجة التطبيقات التي تم بناؤها العناصر التالية:
-
نقاط نهاية واجهة برمجة التطبيقات
-
طرق الطلب (GET، POST، وغيرها)
-
المعلمات المطلوبة والاختيارية لـ GET، POST، والمعلمات الرأسية بما في ذلك:
- نوع/تنسيق البيانات المرسلة في كل معلمة
- تاريخ ووقت آخر تحديث لمعلومات المعلمة
المشكلات التي يتناولها اكتشاف واجهة برمجة التطبيقات¶
بناء جرد واجهة برمجة التطبيقات الفعلي والكامل هي المشكلة الرئيسية التي تعالجها وحدة اكتشاف واجهة برمجة التطبيقات.
يعد الحفاظ على تحديث جرد واجهة برمجة التطبيقات مهمة صعبة. هناك فرق متعددة تستخدم واجهات برمجة تطبيقات مختلفة، ومن الشائع أن يتم استخدام أدوات وعمليات مختلفة لإنتاج وثائق واجهة برمجة التطبيقات. نتيجة لذلك، تواجه الشركات صعوبات في فهم ما هي واجهات برمجة التطبيقات التي لديها، وما البيانات التي تعرضها، وامتلاك وثائق واجهة برمجة التطبيقات محدثة.
نظرًا لأن وحدة اكتشاف واجهة برمجة التطبيقات تستخدم الحركة الفعلية كمصدر للبيانات، فإنها تساعد في الحصول على وثائق واجهة برمجة التطبيقات محدثة وكاملة عن طريق تضمين جميع نقاط النهاية التي تعالج الطلبات فعليًا في جرد واجهة برمجة التطبيقات.
عندما يتم اكتشاف جرد واجهة برمجة التطبيقات الخاص بك بواسطة Wallarm، يمكنك:
-
الحصول على رؤية كاملة لكامل ملكية واجهة برمجة التطبيقات بما في ذلك قائمة واجهات برمجة التطبيقات الخارجية والداخلية.
-
رؤية البيانات التي تدخل إلى واجهات برمجة التطبيقات.
-
الحصول على قائمة نقاط النهاية ذات الثغرات الأمنية المفتوحة.
-
الحصول على قائمة بالتهديدات التي حدثت خلال الأيام الـ7 الماضية لأي نقطة نهاية واجهة برمجة التطبيقات معينة.
-
تصفية فقط واجهات برمجة التطبيقات التي تعرضت للهجوم، وترتيبها حسب عدد الضربات.
-
تصفية واجهات برمجة التطبيقات التي تستهلك وتحمل بيانات حساسة.
-
مشاهدة ملخص مرئي عن بنية جرد واجهة برمجة التطبيقات الخاص بك والمشكلات على لوحة معلومات مفيدة.
-
فهم أي نقاط النهاية من المحتمل أن تكون هدفًا لهجوم.
-
العثور على واجهات برمجة تطبيقات الظل واليتامى والزومبي.
-
تتبع التغييرات في واجهة برمجة التطبيقات التي حدثت خلال الفترة الزمنية المحددة.
-
فلترة نقاط نهاية واجهة برمجة التطبيقات حسب حالة الحماية الذاتية لـ BOLA.
-
تزويد مطوريك بالوصول لمراجعة جرد واجهة برمجة التطبيقات الذي تم بناؤه وتنزيله.
كيف يعمل اكتشاف واجهة برمجة التطبيقات؟¶
يعتمد اكتشاف واجهة برمجة التطبيقات على إحصائيات الطلبات ويستخدم خوارزميات متطورة لتوليد مواصفات واجهة برمجة التطبيقات المحدثة استنادًا إلى الاستخدام الفعلي لواجهة برمجة التطبيقات.
معالجة الحركة¶
يستخدم اكتشاف واجهة برمجة التطبيقات نهجًا مختلطًا لإجراء التحليل محليًا وفي السحاب. يمكّن هذا النهج من عملية أولوية للخصوصية حيث يتم الاحتفاظ ببيانات الطلب والبيانات الحساسة محليًا مع استخدام قوة السحاب لتحليل الإحصائيات:
-
يقوم اكتشاف واجهة برمجة التطبيقات بتحليل الحركة المشروعة محليًا. تحلل Wallarm نقاط النهاية التي يتم إرسال الطلبات إليها والمعلمات التي يتم تمريرها.
-
وفقًا لهذه البيانات، يتم إعداد الإحصائيات وإرسالها إلى السحاب.
-
تقوم سحابة Wallarm بتجميع الإحصائيات المستلمة وبناء وصف واجهة برمجة التطبيقات على أساسها.
كشف الضوضاء
يتم تحديد الطلبات النادرة أو الفردية على أنها ضوضاء ولا تتضمن في جرد واجهة برمجة التطبيقات.
كشف الضوضاء¶
يعتمد اكتشاف واجهة برمجة التطبيقات كشف الضوضاء على معيارين أساسيين للحركة:
-
استقرار نقطة النهاية - يجب تسجيل ما لا يقل عن 5 طلبات خلال 5 دقائق من لحظة الطلب الأول إلى النهاية.
-
استقرار المعلمة - يجب أن تكون نسبة حدوث المعلمة في الطلبات إلى النهاية أكثر من 1 بالمئة.
سيعرض جرد واجهة برمجة التطبيقات النهايات والمعلمات التي تجاوزت هذه الحدود. الوقت المطلوب لبناء جرد واجهة برمجة التطبيقات الكامل يعتمد على تنوع الحركة وشدتها.
كما يقوم اكتشاف واجهة برمجة التطبيقات بتصفية الطلبات بناءً على معايير أخرى:
-
يتم معالجة الطلبات التي استجاب لها الخادم في نطاق 2xx فقط.
-
لا يتم معالجة الطلبات التي لا تتوافق مع مبادئ تصميم واجهة برمجة التطبيقات REST. يتم ذلك عن طريق التحكم في معلمة رأس الاستجابة
Content-Type
: إذا لم تتضمن معلمةContent-Type
application
كنوع وjson
كنوع فرعي، يعتبر مثل هذا الطلب غير REST API ويتم تصفيته. مثال على استجابة واجهة برمجة التطبيقات REST:Content-Type: application/json;charset=utf-8
. إذا لم تكن المعلمة موجودة، يقوم اكتشاف واجهة برمجة التطبيقات بتحليل الطلب. -
يتم تجاهل الحقول القياسية مثل
Accept
وما شابه.
كشف البيانات الحساسة¶
يكتشف ويبرز اكتشاف واجهة برمجة التطبيقات البيانات الحساسة المستهلكة والمنقولة بواسطة واجهات برمجة التطبيقات الخاصة بك:
-
البيانات التقنية مثل عناوين IP وMAC
-
بيانات تسجيل الدخول مثل المفاتيح السرية وكلمات المرور
-
البيانات المالية مثل أرقام بطاقات البنك
-
البيانات الطبية مثل رقم الترخيص الطبي
-
المعلومات الشخصية التعريفية (PII) مثل الاسم الكامل، رقم الجواز أو الرقم الوطني
أمان البيانات المُحمّلة إلى سحابة Wallarm¶
يقوم اكتشاف واجهة برمجة التطبيقات بتحليل معظم الحركة محليًا. ترسل الوحدة إلى سحابة Wallarm نقاط النهاية المكتشفة فقط، وأسماء المعلمات والبيانات الإحصائية المختلفة (وقت الوصول، عددها، إلخ.) يتم نقل جميع البيانات عبر قناة آمنة: قبل تحميل الإحصائيات إلى سحابة Wallarm، يقوم وحدة اكتشاف واجهة برمجة التطبيقات بتجزئة قيم معلمات الطلب باستخدام خوارزمية SHA-256.
من جانب السحاب، يتم استخدام البيانات المُجزأة للتحليل الإحصائي (على سبيل المثال، عند تقييم الطلبات ذات المعلمات المتطابقة).
لا يتم تجزئة البيانات الأخرى (قيم نقاط النهاية، طرق الطلب، وأسماء المعلمات) قبل تحميلها إلى سحابة Wallarm، لأن البيانات المُجزأة لا يمكن استعادتها إلى حالتها الأصلية مما سيجعل بناء جرد واجهة برمجة التطبيقات مستحيلًا.
مهم
Wallarm لا ترسل قيم المعلمات المحددة إلى السحاب. يتم إرسال نقطة النهاية، وأسماء المعلمات والإحصائيات عنها فقط.
فيديو توضيحي حول اكتشاف واجهة برمجة التطبيقات¶
شاهد فيديو توضيحي حول اكتشاف واجهة برمجة التطبيقات: