أفضل الممارسات الأمنية API

أفضل ممارسات أمان API في عام 2022

المُقدّمة

واجهات برمجة التطبيقات (APIs) ضرورية لنجاح الأعمال. يجب أن يكون التركيز على ضمان موثوقيتها وأمنها. قال غالبية المشاركين في استطلاع للرأي أجرته شركة Salt Security لعام 2021 إنهم أخروا إطلاق أحد التطبيقات بسبب أمن API المخاوف.

أهم 10 مخاطر أمنية لواجهات برمجة التطبيقات

1. عدم كفاية التسجيل والرصد

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

2. إدارة الأصول غير السليمة

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

3. الحقن

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

4. خطأ في التكوين الأمني

غالبًا ما تكون التكوينات الأمنية السيئة ناتجة عن التكوينات الافتراضية غير الآمنة.

  • تكوينات مخصصة غير مكتملة
  • افتح التخزين السحابي
  • رؤوس HTTP تم تكوينها بشكل خاطئ
  • طرق HTTP التي تم تمكينها بدون داعٍ
  • تقاسم الموارد من مصادر مختلفة
  • إخراج رسائل خطأ مفصلة تحتوي على متعلقة بالأمان معلومات

5. التنازل الجماعي

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

6. كسر تفويض مستوى الوظيفة

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

7. كسر مصادقة المستخدم

غالبًا ما تسمح آليات المصادقة للمهاجمين بخرق رموز المصادقة المميزة أو استغلال أخطاء التنفيذ لانتحال شخصية مستخدمين آخرين بشكل مؤقت أو دائم.

8. الإفراط في التعرض للبيانات

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

9. نقص الموارد ومعدل الحد

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

10. تفويض مستوى الكائن المكسور

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

كيفية تأمين SOAP APIs

SOAP هو أحد مواصفات البروتوكول التي تتصل بصفحات الويب. إنه معيار صناعة W3C ، تنسيق XML. ينفذ SOAP تمرير رسالة مصحوب بالحالة. يتكامل SOAP مع بروتوكولات WS-Security. يمكن أن يضمن SOAP سلامة وسرية المعاملات المعالجة بمزيد من التشفير. باستخدام XML ، فإن SOAP هو أكثر أنماط واجهة برمجة التطبيقات تطويلًا.

SOAP هو أحد مواصفات البروتوكول التي تتصل بصفحات الويب. إنه معيار صناعة W3C ، تنسيق XML. ينفذ SOAP تمرير رسالة مصحوب بالحالة. يتكامل SOAP مع بروتوكولات WS-Security. يمكن أن يضمن SOAP سلامة وسرية المعاملات المعالجة بمزيد من التشفير. باستخدام XML ، فإن SOAP هو أكثر أنماط واجهة برمجة التطبيقات تطويلًا.

كيفية تأمين بقية واجهات برمجة التطبيقات

REST هو نمط معمارية API. REST هي واجهة بسيطة لنقل المعلومات. عند إرسال البيانات ، لا توجد مرحلة تحويل. المعلومات المرسلة في النموذج الأصلي لها تأثير مفيد على حمل العميل. البيانات بتنسيق JSON أو XML.

متطلبات معمارية مريحة:

  • عدم احتواء الدولة (عديم الجنسية)
  • التخزين المؤقت. 
  • الواجهة المشتركة: تسمح بتفاعل متسق ومستقل عن التطبيق مع خادم الويب.

في REST ، تستخدم جميع الاتصالات طرق HTTP: GET و POST و PUT و PATCH و DELETE. يتم استخدام REST كواجهة برمجة تطبيقات للإدارة لـ CRUD (إنشاء وقراءة وتحديث وحذف). تثبيت التفاعل مع الموارد في خدمات قابلة للتطوير خفيفة الوزن. عادة ما يكون المورد كائن نموذج بيانات.

يفرض إنشاء واجهات برمجة تطبيقات آمنة RESTful أيضًا متطلبات معيارية معينة:

  • استخدام بروتوكول HTTPS: تضمن عملية التشفير سلامة البيانات المرسلة. 
  • حدود السعر: من الضروري فحص الحمل على API. إسقاط الطلبات في حالة الحمل الزائد 
  • المصادقة: تعريف المستخدم / التطبيق / الجهاز. 
  • سجل التدقيق: تسجيل الإجراءات عن طريق إنشاء إدخال في ملف السجل. 
  • التحكم في حقوق الوصول: تحديد حقوق الوصول للعمل مع الموارد.
  • الوصول إلى منطق الأعمال للتطبيق.

حسب التصميم ، لا تحتفظ REST API بأي سجلات. هناك قيود على الوصول من خلال نقاط النهاية المحلية. عند العمل مع بنية REST. من المعتاد التمييز بين مستويين من الأمان:

  • المستوى الأول - الوصول إلى API
  • المستوى الثاني - الوصول إلى التطبيق

كيفية تأمين واجهات برمجة التطبيقات

لضمان أمان واجهة برمجة التطبيقات ، يجب على المؤسسات الانتباه عن كثب إلى المجالات التالية. 

  1. التحكم بالوصول
  2. حماية API
  3. حماية التهديد

نمط بوابة API

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

يمكن لمطوري API التركيز على وظائف API الخاصة بمنطق الأعمال. بوابة API تدير الأمن والتحكم في الوصول.

API التحكم في الوصول

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

التحقّق من المُستخدم يتعلق بتحديد الكيان الذي يطلب الوصول إلى واجهة برمجة التطبيقات. التعريف هو إما التحقق من صحة ما إذا كان المستخدم يعرف كلمة مرور.

المصادقة الأساسية

تستخدم هذه الطريقة عملية مصادقة HTTP. يتم ترميز بيانات اعتماد المستخدم باستخدام خوارزمية base64. يتم إرفاق رأس HTTP عند إرسال طلب.

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

رمز OAuth المميز

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

المصادقة المستندة إلى OIDC

OIDC - OpenID Connect. تهدف هذه المصادقة إلى التحقق من هوية المستخدم النهائي. يعتمد على المصادقة التي يقوم بها خادم التفويض. يحصل على تفاصيل الملف الشخصي عن المستخدم باستخدام آلية تشبه REST.

المصادقة المستندة إلى مفتاح API

مفتاح API هو قيمة سلسلة يتم تمريرها بواسطة تطبيق العميل إلى بوابة APIM. يحفظ مفتاح العميل المعلومات في قاعدة بيانات التطبيق. سيتحقق الخادم من هوية العميل. عندما يقوم المستخدم بالتسجيل ، يقوم البرنامج بإنشاء مفتاح.

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

المصادقة المستندة إلى ملفات تعريف الارتباط

طريقة للتحقق من محتوى ملفات تعريف الارتباط تحتفظ بجميع المعلومات حول الجلسة. يبدأ المستخدم في طلب تسجيل الدخول. يرسل ردًا بعد أن يقوم المستخدم بتسجيل الدخول. في رأس هذه الاستجابة ، يوجد حقل Set-Cookies. يحتوي هذا الحقل على معلومات حول:

  • اسم حقل ملف تعريف الارتباط
  • قيمة حقل ملف تعريف الارتباط
  • إلى متى يستمر ملف تعريف الارتباط

في المرة التالية التي يحتاج فيها المستخدم إلى الوصول إلى واجهة برمجة التطبيقات. سيمرر قيمة حقل JSESSIONID المحفوظ لملف تعريف الارتباط مع المفتاح "ملف تعريف الارتباط" في رأس الطلب.

المصادقة القائمة على الرمز المميز

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

رموز ويب JSON (JWT)

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

هذا النهج هو الطريقة المثلى لتقييد وصول REST API. إنها إحدى أكثر الآليات أمانًا لإرسال البيانات بين طرفين.

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

يوفر استخدام بروتوكول HTTPS جنبًا إلى جنب مع التوقيع المشفر مستوى عالٍ من الأمان.

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

قام مجتمع المطورين بتشكيل بعض التوصيات عند التحقق من صحة بيانات الإدخال:

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

ترخيص

الغرض من التفويض هو تحديد مستويات الوصول.

التحكم في الوصول المستند إلى XACML

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

افتح Policy Agent OPA

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

سبيدل +

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

معدل الحد

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

سيكون تحديد المعدل لحماية واجهات برمجة التطبيقات مفيدًا بالطرق التالية:

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

وفي الختام

تعد واجهات برمجة التطبيقات (API) الآن ضرورية في تطوير الإنترنت والتطبيقات الرقمية الحديثة. يمكن أن تستخدمها التطبيقات والخدمات والأنظمة الأساسية للبرامج لترتيب التفاعلات. تمثل واجهات REST أكثر من 80٪ من جميع واجهات برمجة التطبيقات العامة والخاصة. اقرأ مقالنا حول ما هو API للحصول على فهم أفضل للاختلافات المهمة بين واجهات برمجة تطبيقات REST و SOAP.

أخبار الأمن السيبراني حول تهديدات برامج الفدية والبرامج الضارة.

مخدرات لندن تتعرض لهجوم LockBit Ransomware، برنامج التسجيل في قاعة المحكمة يقدم برامج ضارة: موجز أخبار الأمن السيبراني الخاص بك

مخدرات لندن تتعرض لهجوم LockBit Ransomware، برنامج التسجيل في قاعة المحكمة يقدم برامج ضارة: تقرير إخباري لأخبار الأمن السيبراني الخاص بك مخدرات لندن التي تتعرض لهجوم LockBit Ransomware، ترفض دفع 25 دولارًا

اقرأ المزيد »