كيف يختلف أمان واجهة برمجة التطبيقات (API) عن أمان التطبيقات العامة؟
نشرت: 2023-07-19على الرغم من الخلط في بعض الأحيان على أنهما نفس الشيء، إلا أن أمان التطبيقات وأمن واجهة برمجة التطبيقات (API) هما مجالان متميزان. يشير أمان التطبيق إلى تأمين التطبيقات بأكملها، بينما يشير أمان واجهة برمجة التطبيقات (API) إلى تأمين واجهات برمجة التطبيقات (APIs) التي تستخدمها المؤسسات لربط التطبيقات وتبادل البيانات. وعلى هذا النحو، يجب على المنظمات اتباع نهج مختلف في التعامل مع هذين التخصصين.
ما هو أمن التطبيق؟
يستخدم أمان التطبيقات (AppSec) ممارسات التفويض والتشفير والتشفير الآمن لحماية البيانات والأنظمة من الهجمات الإلكترونية. تقلل المؤسسات التي تطبق AppSec من مخاطر اختراق البيانات، وتحمي البيانات الحساسة، وتضمن امتثال تطبيقاتها لمعايير الصناعة.
تحدد ISACA المكونات الخمسة الحاسمة لبرامج AppSec على النحو التالي:
- الأمن حسب التصميم
- اختبار الكود الآمن
- فاتورة المواد البرمجية
- التدريب والتوعية الأمنية
- WAFs وبوابات أمان API وتطوير القواعد
ما هو أمان API؟
API، أو واجهة برمجة التطبيقات، يحمي الأمان واجهات برمجة التطبيقات من الهجمات السيبرانية. لقد شهد استخدام واجهة برمجة التطبيقات (API) زيادة كبيرة في السنوات الأخيرة، مما منح المؤسسات فرصًا للابتكار من خلال تمكين عمليات نقل البيانات بين التطبيقات. لسوء الحظ، مع زيادة استخدام واجهة برمجة التطبيقات (API)، تزايدت الهجمات عليها. كشفت الأبحاث التي أجرتها شركة Salt Security أن الهجمات على واجهات برمجة التطبيقات زادت بنسبة 400% بين يونيو وديسمبر 2022.
التهديدات الأمنية للتطبيقات مقابل API
يتطلب فهم الفرق بين أمان AppSec وواجهة برمجة التطبيقات (API) فهم أهم التهديدات لكل تخصص. ولحسن الحظ، توفر OWASP، وهي منظمة غير ربحية تسعى إلى تحسين أمان البرامج، قائمة شاملة بأهم التهديدات التي تهدد أمان التطبيقات وأمن واجهة برمجة التطبيقات (API). تقوم هذه القوائم، المعروفة باسم OWASP Top Ten، بجمع المعلومات من مجتمع خبراء الأمن العالمي التابع لـ OWASP لتحديد التهديدات الأكثر أهمية للتطبيقات وواجهات برمجة التطبيقات.
ومن المثير للاهتمام، أنه بينما نشرت OWASP قائمة المخاطر الأمنية العشرة الأوائل لتطبيقات الويب في عام 2003، إلا أنها أصدرت قائمة المخاطر الأمنية العشرة الأوائل لواجهة برمجة التطبيقات (API) في أواخر عام 2019. ويمثل هذا التناقض اختلافًا رئيسيًا آخر بين أمان التطبيق وأمن واجهة برمجة التطبيقات (API): أمان التطبيق راسخ، مجال تم بحثه على نطاق واسع وخضع لمراحل تطورية عديدة، في حين أن أمان واجهة برمجة التطبيقات (API) ليس كذلك.
على الرغم من أننا لا نملك الوقت لإجراء تحليل متعمق، فمن المفيد إلقاء نظرة سريعة على كل قائمة لمعرفة مدى اختلافها، وهو ما ينبغي أن يوضح كيفية تعامل المؤسسات مع أمان AppSec وAPI.
أهم عشرة مخاطر أمنية لتطبيقات OWASP (2021)
- التحكم في الوصول المكسور - عندما يتمكن مستخدم غير مصرح له من الوصول إلى المعلومات أو الأنظمة المقيدة
- فشل التشفير – عندما يكشف طرف ثالث عن بيانات حساسة دون نية محددة بسبب نقص التشفير أو وجود عيوب فيه
- الحقن – عندما يحاول أحد المهاجمين إرسال البيانات إلى أحد التطبيقات بطريقة تؤدي إلى تغيير معنى الأوامر المرسلة إلى المترجم الفوري
- التصميم الآمن - المخاطر المتعلقة بالعيوب المعمارية والتصميمية
- التكوين الخاطئ للأمان – عندما تقوم فرق الأمان بتكوين عناصر التحكم الأمنية بشكل غير دقيق أو تتركها غير آمنة
- المكونات الضعيفة والقديمة - عندما تترك المؤسسات المكونات دون إصلاح
- فشل تحديد الهوية والمصادقة (المعروف أيضًا باسم المصادقة المكسورة) - عندما تكون التطبيقات عرضة لهجمات المصادقة
- فشل سلامة البرامج والبيانات – عندما تفشل التعليمات البرمجية والبنية التحتية في الحماية من انتهاكات السلامة
- فشل التسجيل الأمني والمراقبة (في حالة عدم كفاية التسجيل والمراقبة) - عندما تفشل المؤسسات في اكتشاف خروقات البيانات بسبب عدم كفاية إجراءات التسجيل والمراقبة
- تزوير الطلب من جانب الخادم - عندما يخدع المهاجمون التطبيقات لإرسال طلب معد إلى وجهة غير متوقعة، حتى عندما تكون محمية بجدار حماية أو VPN أو أي نوع آخر من قائمة التحكم في الوصول إلى الشبكة (ACL)
أهم عشرة مخاطر أمنية لواجهة برمجة تطبيقات OWASP (2023)
- ترخيص مستوى الكائن المعطل - عندما لا يكون لكائن واجهة برمجة التطبيقات - على سبيل المثال، قواعد البيانات أو الملفات - ضوابط ترخيص مناسبة، مما يمنح المستخدمين غير المصرح لهم الوصول
- المصادقة المعطلة – عندما يسيئ مهندسو البرامج والأمن فهم حدود مصادقة واجهة برمجة التطبيقات (API) وكيفية تنفيذها
- تخويل مستوى خاصية الكائن المكسور - مزيج من التعرض المفرط للبيانات والتخصيص الجماعي: عندما يستغل المهاجمون قفلًا أو ترخيصًا غير مناسب على مستوى خاصية الكائن.
- استهلاك غير مقيد للموارد - تتطلب تلبية طلبات واجهة برمجة التطبيقات (API) النطاق الترددي للشبكة ووحدة المعالجة المركزية (CPU) والذاكرة والتخزين. يقوم مقدمو الخدمة بتوفير موارد أخرى مثل رسائل البريد الإلكتروني/الرسائل النصية القصيرة/المكالمات الهاتفية أو التحقق من صحة القياسات الحيوية عبر تكامل واجهة برمجة التطبيقات (API) ويتم دفع ثمنها لكل طلب. يمكن أن تؤدي الهجمات الناجحة إلى رفض الخدمة أو زيادة تكاليف التشغيل.
- يتضمن ترخيص مستوى الوظيفة المعطلة مهاجمين يرسلون استدعاءات API مشروعة إلى نقاط نهاية API المكشوفة
- الوصول غير المقيد إلى تدفقات الأعمال الحساسة - تعرض واجهات برمجة التطبيقات المعرضة لهذه المخاطر لتدفق الأعمال - مثل شراء تذكرة أو نشر تعليق - دون التعويض عن مدى الضرر الذي يمكن أن تلحقه الوظيفة بالأعمال إذا تم استخدامها بشكل مفرط بطريقة آلية؛ هذا لا يأتي بالضرورة من أخطاء التنفيذ.
- تزوير الطلب من جانب الخادم – عندما تقوم واجهة برمجة التطبيقات (API) بإحضار مورد بعيد دون التحقق من صحة معرف URI المقدم من المستخدم؛ تمكين المهاجم من إجبار التطبيق على إرسال طلب معد إلى وجهة غير متوقعة، حتى عندما يكون محميًا بجدار حماية أو VPN.
- التكوين الخاطئ للأمان – عادةً ما تحتوي واجهات برمجة التطبيقات والأنظمة التي تدعمها على تكوينات معقدة لجعلها أكثر قابلية للتخصيص. يمكن لمهندسي البرمجيات وDevOps تفويت هذه التكوينات أو عدم اتباع أفضل ممارسات الأمان فيما يتعلق بالتكوين، مما يفتح الباب لأنواع مختلفة من الهجمات.
- الإدارة غير الصحيحة للمخزون – تكشف واجهات برمجة التطبيقات (API) عن نقاط نهاية أكثر من تطبيقات الويب التقليدية، مما يجعل التوثيق المناسب والمحدث مهمًا. يعد المخزون الكافي من المضيفين وإصدارات واجهة برمجة التطبيقات المنشورة أمرًا ضروريًا أيضًا للتخفيف من المشكلات مثل إصدارات واجهة برمجة التطبيقات المهملة ونقاط نهاية تصحيح الأخطاء المكشوفة.
- الاستهلاك غير الآمن لواجهات برمجة التطبيقات - يميل المطورون إلى الثقة في البيانات الواردة من واجهات برمجة التطبيقات التابعة لجهات خارجية أكثر من مدخلات المستخدم ويعتمدون معايير أمان أضعف. ولاختراق واجهات برمجة التطبيقات، يلاحق المهاجمون خدمات الطرف الثالث المدمجة بدلاً من محاولة اختراق واجهة برمجة التطبيقات المستهدفة مباشرةً.
كما ترون، على الرغم من وجود بعض التداخل، فإن التطبيقات وواجهات برمجة التطبيقات تخضع في المقام الأول لتهديدات مختلفة وفريدة من نوعها، ويجب على المؤسسات الاستجابة وفقًا لذلك. يتمثل الاختلاف الرئيسي بين القائمتين في أنه يمكن للمؤسسات التخفيف من جميع المخاطر الحرجة المرتبطة بأمن التطبيقات باستخدام أدوات وتقنيات الأمان التقليدية متعددة الأغراض، لكن أمان واجهة برمجة التطبيقات (API) مختلف.
يعد أمان واجهة برمجة التطبيقات (API) مشكلة حديثة للغاية وتتطلب حلاً حديثًا بنفس القدر. لا يمكن للمؤسسات أن تتوقع من الأدوات التي تستخدمها لحماية تطبيقاتها وأصولها الأخرى أن تفي بمهمة تأمين واجهات برمجة التطبيقات. يتطلب أمان واجهة برمجة التطبيقات أدوات أمان خاصة بواجهة برمجة التطبيقات؛ طرق الحماية التقليدية مثل بوابات API وجدران حماية تطبيقات الويب (WAFs) لا تكفي.