كشف تقرير حديث عن ثغرة أمنية كبيرة تتمثل في انكشاف الأكواد السرية (API keys) بشكل متكرر، مما يثير تساؤلات حول فعالية الأدوات الحالية في كشف هذه التسريبات. استكشفت الدراسة الأسباب الكامنة وراء سهولة انكشاف هذه الرموز الحساسة.
قام فريق البحث في Intruder بتحليل أداء ماسحات الثغرات التقليدية وطوروا طريقة جديدة للكشف عن الرموز السرية لمعالجة الفجوات الموجودة. تم تطبيق هذه الطريقة على نطاق واسع، حيث تم فحص 5 ملايين تطبيق. أسفر الفحص عن اكتشاف أكثر من 42,000 رمز سري مكشوف من 334 نوعًا مختلفًا، مما يسلط الضوء على فئة رئيسية من التسريبات التي لا تتعامل معها الأدوات الحالية بكفاءة، خاصة في تطبيقات الصفحة الواحدة (SPAs).
فحص الرموز السرية المكشوفة في تطبيقات الصفحة الواحدة
طرق الكشف التقليدية عن الرموز السرية وقيودها
تعتمد الطريقة التقليدية المؤتمتة للكشف عن الأكواد السرية في التطبيقات على البحث في مسارات معروفة وتطبيق تعابير نمطية لمطابقة أشكال الرموز السرية المعروفة. هذه الطريقة مفيدة ويمكن أن تكشف عن بعض التسريبات، لكنها تعاني من قيود واضحة ولا يمكنها اكتشاف جميع أنواع التسريبات.
على سبيل المثال، يتم فحص رمز وصول شخصي لـ GitLab. يقوم الماسح بفحص الاستجابة المباشرة لطلب واحد، ويتجاهل الصفحات الأخرى والملفات مثل ملفات JavaScript. إذا تم العثور على نمط الرمز السري، يتم إجراء طلب متابعة للتحقق من نشاط الرمز. هذه الطريقة بسيطة ولكنها فعالة، خاصة عندما تحدد القوالب العديد من المسارات التي غالبًا ما تتعرض فيها الرموز السرية.
من جهة أخرى، فإن أدوات اختبار أمان التطبيقات الديناميكي (DAST) توفر طريقة أكثر شمولاً لفحص التطبيقات، وتمتلك وظائف أكثر تعقيدًا تسمح بالمسح الكامل للتطبيقات ودعم المصادقة. ومع ذلك، فإن هذا النوع من المسح مكلف ويتطلب تكوينًا معمقًا، وغالبًا ما يقتصر على عدد قليل من التطبيقات ذات القيمة العالية. كما أن العديد من أدوات DAST لا تنفذ مجموعة واسعة من التعابير النمطية مقارنة بالأدوات المعروفة.
إضافة إلى ذلك، فإن أدوات اختبار أمان التطبيقات الثابت (SAST) تحلل الكود المصدري لتحديد الثغرات، وهي طريقة رئيسية للكشف عن الرموز السرية قبل وصول الكود إلى مرحلة الإنتاج. على الرغم من فعاليتها في اكتشاف بيانات الاعتماد المضمنة، إلا أنها لا تغطي الصورة الكاملة، وبعض الرموز السرية داخل حزم JavaScript تفلت من الثغرات التي قد تفوتها التحليلات الثابتة.
تطوير آلية للكشف عن الرموز السرية في حزم JavaScript
بدأ البحث بتحديد مدى انتشار هذه المشكلة. هل يتم بالفعل تضمين الرموز السرية في تطبيقات الواجهة الأمامية لـ JavaScript، وهل هذا منتشر بما يكفي لتبرير نهج مؤتمت؟
للإجابة على هذه الأسئلة، قام فريق Intruder ببناء آلية مؤتمتة وفحص حوالي 5 ملايين تطبيق. كانت النتائج كبيرة، وغطت أكثر من 100 ميجابايت من النصوص العادية وجمعت أكثر من 42,000 رمز سري من 334 نوعًا مختلفًا. عند مراجعة بعض العينات، تم تحديد عدد من حالات الانكشاف ذات التأثير العالي.
أبرز الاكتشافات
رموز المستودعات البرمجية
كانت أبرز حالات الانكشاف هي الرموز الخاصة بمنصات المستودعات البرمجية مثل GitHub و GitLab. تم اكتشاف 688 رمزًا، كان الكثير منها نشطًا ويوفر وصولاً كاملاً إلى المستودعات. في إحدى الحالات، تم تضمين رمز وصول شخصي لـ GitLab مباشرة في ملف JavaScript، وكان يمكنه الوصول إلى جميع المستودعات الخاصة داخل المؤسسة.
مفاتيح واجهة برمجة التطبيقات الخاصة بإدارة المشاريع
شملت حالات الانكشاف الهامة الأخرى مفتاح واجهة برمجة تطبيقات لتطبيق إدارة المشاريع Linear، تم تضمينه مباشرة في كود الواجهة الأمامية. هذا الرمز كشف عن نظام Linear بأكمله للمؤسسة، بما في ذلك المهام الداخلية والمشاريع والروابط إلى خدمات أخرى.
مجموعة واسعة من الخدمات الأخرى
تم اكتشاف رموز سرية مكشوفة عبر مجموعة واسعة من الخدمات الأخرى، بما في ذلك واجهات برمجة التطبيقات لبرامج التصميم بمساعدة الحاسوب (CAD)، وأنظمة اختصار الروابط، ومنصات البريد الإلكتروني، وخطافات الويب الخاصة بمنصات الدردشة والأتمتة (مثل Slack و Microsoft Teams)، ومحولات PDF، ومنصات استخبارات المبيعات والتحليلات.
أهمية منع شحن الأسرار
تعد ضوابط “Shift-left” ضرورية. حيث تقوم أدوات SAST وفحص المستودعات وحواجز IDE بالتقاط المشكلات الحقيقية ومنع أنواع كاملة من الانكشاف. ومع ذلك، كما يوضح هذا البحث، فإنها لا تغطي كل مسار يمكن أن يسلكه الرمز السري إلى مرحلة الإنتاج.
يمكن للأسرار التي يتم إدخالها أثناء البناء والنشر تجاوز هذه الضمانات والانتهاء في كود الواجهة الأمامية. ومن المتوقع أن تنمو هذه المشكلة مع تزايد الأتمتة واستخدام الكود المولّد بالذكاء الاصطناعي.
لهذا السبب، هناك حاجة إلى فحص تطبيقات الصفحة الواحدة (SPA) للحصول على الرموز السرية قبل وصولها إلى مرحلة الإنتاج. تم بناء آلية الكشف عن الرموز السرية لتطبيقات SPA في Intruder لمساعدة الفرق على اكتشاف ذلك.

