كيفية الدفاع عن نفسك ضد هجمات واجهة برمجة التطبيقات (API)

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




واجهات برمجة تطبيقات الويب

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

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


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

هناك العديد من الأمثلة الأخرى على واجهات برمجة التطبيقات الضعيفة أو سيئة التصميم. فقد كشف موقع فيسبوك عن البيانات الشخصية لـ 533 مليون من مستخدميه لأن إحدى واجهات برمجة التطبيقات سمحت لأي شخص بالبحث في قاعدة البيانات باستخدام أرقام الهواتف بمعدل يصل إلى 1000 رقم في الدقيقة.

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


أصحاب المصلحة في التنمية

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

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


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

أنواع الهجمات

يمكن تجميع أنواع الهجوم الشائعة التي ستواجهها وفقًا لتقنية الهجوم الخاصة بها.

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


حماية واجهات برمجة التطبيقات الخاصة بك

عندما تبحث عن تأمين جزء من البنية الأساسية لتكنولوجيا المعلومات لديك، فقد يكون من المغري البحث عن حلول محددة أو جديدة. ولكن لا تنس أساسيات الأمن السيبراني.

قم بتحديد كمية ما تتعامل معه

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

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


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

اجعل واجهات برمجة التطبيقات الخاصة بك موجزة

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

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


استخدم التشفير

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

المصادقة وقيم الإدخال

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

لا تقبل أبدًا إدخالاً من واجهة برمجة التطبيقات دون التحقق من صحته أولاً. افحصها بحثًا عن المحتوى المشوه والبرامج النصية المضمنة وهجمات التجاوز.


كن على دراية بمعدل طلبات الاتصال، وطبق تدابير معقولة للحد من المعدلات. هل يحاول أحد الزوار المتكررين اختراق قاعدة البيانات الخاصة بك بالقوة، أم أنه يحاول سحب البيانات من قاعدة البيانات الخاصة بك، طلبًا تلو الآخر؟

التكنولوجيات المتحالفة

تساعد جدران حماية تطبيقات الويب (WAFs) في حماية مواقع الويب والتطبيقات المستضافة وواجهات برمجة التطبيقات من خلال تصفية ومراقبة حركة المرور من وإلى الموارد المحمية. ويمكنها اكتشاف هجمات مثل البرامج النصية عبر المواقع وحقن SQL، وغيرها. جدران حماية تطبيقات الويب هي تقنية حماية على مستوى طبقة التطبيق (المستوى 7 في نموذج ISO)، وليست حلاً سريعًا لجميع أمان موقع الويب أو واجهة برمجة التطبيقات. من الأفضل نشرها كعنصر واحد في مجموعة متعددة الطبقات من الدفاعات.

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


واجهات برمجة التطبيقات (APIs) في الخط الأمامي

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

أضف تعليق