🚀 أصبحت CloudSek أول شركة للأمن السيبراني من أصل هندي تتلقى استثمارات منها ولاية أمريكية صندوق
اقرأ المزيد

المؤلفون: سبارش كولشريستا و شاشانك بهارثوال
المحرر: ديبانجلي بولراج
اكتشفت CloudSek ASM ثغرات أمنية في مرحلة ما بعد المصادقة الكاملة في SSRF (تزوير الطلبات من جانب الخادم) في شركة أبسميث عميل ريست (CVE-2022-38298) والبحث المرن (CVE-2022-38299).
يمكن استغلال ثغرة SSRF للوصول إلى خدمات البيانات الوصفية AWS/GCP والحصول على بيانات اعتماد الأمان المؤقتة لبيئة سحابة Appsmith.
في أغسطس 2022 CloudSek ASM، الذي يراقب أسطح هجمات عملائنا، اكتشف العديد من مثيلات Appsmith المكشوفة على الإنترنت. نظرًا لأن المثيلات كانت مكشوفة خارجيًا، قام باحثو الأمن في CloudSek باستكشافها بحثًا عن ثغرات محتملة قبل المصادقة وبعدها.
نظرًا لأن Appsmith لا يحتوي على قيود تسجيل في التثبيت الافتراضي، فقد ركزنا على وظائف ما بعد المصادقة، حيث اكتشفنا نقاط ضعف تزوير الطلبات من جانب الخادم (SSRF) في المكون الإضافي REST API (CVE-2022-38298) والبحث المرن (CVE-2022-38299)، على التوالي.
يمكن استغلال ثغرات SSRF للوصول إلى البيانات الوصفية الداخلية لـ AWS/GCP. نظرًا لأن Appsmith تقدم إصدارًا سحابيًا من برامجها المستضافة على AWS، يمكن أن يكون لثغرات SSRF تأثير كبير.
صانع التطبيقات هي أداة مفتوحة المصدر منخفضة التعليمات البرمجية تساعد المطورين على إنشاء لوحات المعلومات ولوحات الإدارة بسرعة كبيرة. إنها منصة تساعد الشركات على إنشاء أي تطبيق داخلي مخصص في غضون ساعات.
يمكن إعداد لوحات ولوحات Appsmith في 4 خطوات:
تتيح إحدى وظائف المصادقة اللاحقة في Appsmith للمستخدمين الاتصال بمصادر البيانات باستخدام واجهات برمجة تطبيقات REST. يمكن استخدام عميل REST الخاص بـ Appsmith لاستدعاء واجهة برمجة تطبيقات خدمة REST لإنشاء الاستعلامات وتنفيذها. يمكنه التعامل مع طلبات HTTP التي تتراوح بين GET و POST و PUT و PATCH، ويمكن للمستخدمين أيضًا تحديد الرؤوس، إذا لزم الأمر، للمصادقة.

عند استبدال عنوان URL الخاص بواجهة برمجة التطبيقات بحمولة Burp Collaborator، تلقينا رد فعل HTTP على الفور. ومع ذلك، عندما حاولنا الوصول إلى بيانات AWS الوصفية الداخلية، تلقينا خطأ «المضيف غير مسموح به».

نظرًا لأن Appsmith هي أداة مفتوحة المصدر، قمنا بمراجعة التعليمات البرمجية لهذه الوظيفة ووجدنا أن هناك منعًا يستند إلى القائمة السوداء يقيد المستخدمين من الوصول إلى بيانات AWS الوصفية.
المجموعة النهائية الثابتة الخاصة <String>DISALLOWED_HOSTS = set.of (
«169.254.169.254"،
«البيانات الوصفية. google.internal»
)؛قائمة النطاقات غير المسموح بها
مضيف السلسلة النهائي = URI.getHost ()؛
إذا كان (stringutils.isEmpty) فارغًا (مضيف)
|| disalowed_hosts. يحتوي على (مضيف)
|| disallowed_hosts. يحتوي على (INETaddress.getByname (المضيف). gethostAddress ())) {
ErrorResult.setbody (AppSmithPlugin_execute_Argument_error.getMessage) («المضيف غير مسموح به»). «))؛
طلب ErrorResult.set (طلب تنفيذ الإجراء)؛
إرجاع Mono.just (نتيجة الخطأ)؛
}شرط التحقق من اسم المضيف
في محاولة لتجاوز حماية القائمة السوداء لـ SSRF، قمنا بتنفيذ خادم إعادة توجيه يعيد توجيه طلب الخداع إلى الخادم المدرج في القائمة السوداء.

لذلك، قمنا بإعداد خادم إعادة توجيه PHP، على VPS الخاص بنا، والذي يعيد توجيه الطلبات الواردة إلى نقطة نهاية البيانات الوصفية الداخلية لـ AWS. بهذه الطريقة، تمكنا من استغلال ثغرة SSRF هذه. تمت استضافة ملف redirect.php التالي على VPS الخاص بنا:
<؟ php
$server = $_GET ["الخادم"]؛
إذا ($server = «gcp») {
العنوان («الموقع: http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/ «)؛
}
elseif ($server = «aws») {
العنوان («الموقع: http://169.254.169.254/latest/meta-data/ «)؛
}
؟ >محتوى ملف Redirect.php
ثم قدمنا طلبًا إلى الملف أعلاه من Appsmith REST API واستجابة لذلك، تلقينا البيانات الوصفية من سحابة AWS/GCP.


تتيح إحدى وظائف المصادقة اللاحقة في Appsmith للمستخدمين الاتصال بقواعد بيانات Elasticsearch كمصادر بيانات.

بمجرد توصيل قاعدة بيانات Elasticsearch، حدد طريقة الاستعلام وأدخل المسار. أضفنا المسار التالي: /أحدث/بيانات وصفية/iam/بيانات اعتماد الأمان /. اترك الجسم فارغًا.


عند تشغيل هذا الاستعلام، فإنه يعرض بيانات اعتماد الأمان المؤقتة لدور AWS الخاص بك.

على الرغم من أن SSRF بعد المصادقة ليس جديدًا، إلا أنه يمكن أن يكون له تأثير كبير نظرًا لأن Appsmith تقدم إصدارًا سحابيًا من برامجها المستضافة على AWS. أيضًا، لا يحتوي Appsmith على قيود تسجيل في التثبيت الافتراضي. لذلك إذا تعرض مثيل Appsmith للإنترنت، فيمكن لأي شخص التسجيل والوصول إلى الوظائف الضعيفة التي تحتوي على ثغرة SSRF هذه.
في هذه الحالة، يمكن استغلال ثغرات SSRF في عنوان IP للبيانات الوصفية لـ AWS والحصول على بيانات اعتماد أمان مؤقتة للبيئة السحابية لـ Appsmith المستضافة ذاتيًا.
يمكن أن يكون لهذا تأثير واسع النطاق، نظرًا لأنه يتم عرض أكثر من 1000 مثيل من Appsmith على الإنترنت:

قدمت CloudSek هذه الثغرة الأمنية إلى Appsmith عبر عملية الكشف عن الثغرات الأمنية المحددة جيدًا. بعد ذلك، قام فريق Appsmith بإصلاح هذه المشكلة في الإصدار التالي. لا تحتوي إصدارات Appsmith 1.7.12 والإصدارات الأحدث على هذه الثغرة الأمنية.
يمكن العثور على الجدول الزمني لعملية الكشف هذه أدناه: