كيف تدافع عن نفسك ضد هجمات API

جدول المحتويات:

كيف تدافع عن نفسك ضد هجمات API
كيف تدافع عن نفسك ضد هجمات API
Anonim

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

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

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

ما المقصود بواجهة برمجة التطبيقات وكيف تستخدم واحدًا؟
ما المقصود بواجهة برمجة التطبيقات وكيف تستخدم واحدًا؟

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

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

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

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

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

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

كيفية الحماية من هجمات قاموس كلمات المرور
كيفية الحماية من هجمات قاموس كلمات المرور

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

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

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

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

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

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

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

حدد ما تتعامل معه

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

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

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

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

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

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

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

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

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

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

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

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

تقنيات الحلفاء

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

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

واجهات برمجة التطبيقات موجودة على الخط الأمامي

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

موضوع شعبي