
أبحاث أمنية والكشف عن الثغرات لتطبيق ownCloud ONLYOFFICE Integration، بما في ذلك التحليل التقني وإثباتات المفهوم والتأثير والمعالجة.
CWE-307: التقييد غير السليم لمحاولات المصادقة المفرطة الخطورة
CVSS v3.1: 8.1 (عالية)
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
تعكس الدرجة التأثير الملاحظ أثناء اختبار تدفق المصادقة المتأثر.
Owncloud الإصدار 10.16.3
تقبل نقطة نهاية WebDAV المتأثرة بيانات اعتماد المصادقة عبر ترويسة HTTP Authorization: Basic.
مثال على الطلب:
GET /remote.php/webdav/ HTTP/1.1 Host: target.example Authorization: Basic <BASE64(username:password)>
تمثل قيمة Base64 ما يلي:
username:password
لا تؤدي محاولات المصادقة الفاشلة المتكررة ضد الحساب نفسه إلى تفعيل آليات الحماية المتوقعة من هجمات القوة الغاشمة.
أثناء الاختبار، تم إرسال محاولات مصادقة غير صالحة متتالية متعددة دون ملاحظة أي مما يلي:
تحديد معدل الطلبات
تأخيرات مصادقة تدريجية
قفل مؤقت للحساب
HTTP 429 Too Many Requests
كما ظل طلب مصادقة لاحق باستخدام بيانات اعتماد صالحة مقبولاً.
الخطوة 1 — الوصول إلى تدفق مصادقة WebDAV
قم بالمصادقة إلى ownCloud واحصل على إمكانية الوصول إلى مستند خاص/مشاركة تستخدم تدفق مصادقة WebDAV المتأثر.
عند الوصول إلى نقطة النهاية المتأثرة، يعرض الخادم تحدياً للمصادقة الأساسية عبر HTTP.
الخطوة 2 — ملاحظة طلب المصادقة
تُنقل بيانات الاعتماد عبر ترويسة HTTP Authorization:
Authorization: Basic <BASE64(username:password)>
الخطوة 3 — تنفيذ محاولات مصادقة متكررة
باستخدام حساب اختبار خاضع للتحكم، أرسل بشكل متكرر طلبات مصادقة تحتوي على كلمات مرور غير صالحة.
مثال على بيانات اعتماد الاختبار:
testuser:incorrect-password-01 testuser:incorrect-password-02 testuser:incorrect-password-03 ...
يمكن إعادة إنتاج الطلبات باستخدام Burp Suite Intruder أو أداة اختبار HTTP أخرى.
الخطوة 4 — ملاحظة سلوك الخادم
بعد محاولات مصادقة فاشلة متتالية متعددة، يستمر الخادم في قبول طلبات المصادقة دون فرض آلية فعالة للحماية من هجمات القوة الغاشمة.
لا يُلاحظ أي قفل مؤقت، أو تأخير تدريجي، أو تحديد لمعدل الطلبات، أو استجابة HTTP 429 Too Many Requests.
الخطوة 5 — التحقق من نجاح المصادقة
يُقبل طلب لاحق باستخدام بيانات الاعتماد الصحيحة بشكل طبيعي.
يوضح هذا أن محاولات المصادقة الفاشلة المتكررة لا تقيد بشكل كافٍ محاولات تخمين كلمات المرور اللاحقة عبر آلية مصادقة WebDAV المتأثرة.
يتضمن هذا البحث مقطع فيديو قصير لإثبات المفهوم يوضح الاختبار الكامل.
يمكن للمهاجم القادر على الوصول إلى نقطة نهاية مصادقة WebDAV المتأثرة أن يحاول بشكل متكرر تخمين كلمات المرور ضد حسابات المستخدمين دون مواجهة حمايات فعالة على مستوى التطبيق من هجمات القوة الغاشمة.
قد يؤدي نجاح تخمين كلمة المرور إلى وصول غير مصرح به إلى حساب ownCloud المستهدف وموارده المرتبطة، اعتماداً على امتيازات ذلك الحساب وأذوناته.
وبالتالي، تزيد الثغرة من جدوى هجمات تخمين كلمات المرور عبر الإنترنت ضد الحسابات المكشوفة من خلال تدفق المصادقة المتأثر.
تم الإبلاغ سابقاً عن مشكلة مماثلة في منتج Nextcloud ذي صلة وتم تعيين:
CVE-2023-32319
المرجع:
HackerOne Report #1879549
يُقدَّم هذا المرجع لمقارنة مشكلة الحماية من هجمات القوة الغاشمة في المصادقة ولا يعني أن الثغرتين متطابقتان.
ينبغي دمج تدفق مصادقة WebDAV مع آلية الحماية الحالية من هجمات القوة الغاشمة في التطبيق.
تشمل الضوابط الموصى بها ما يلي:
تتبع محاولات المصادقة الفاشلة لكل حساب و/أو مصدر.
تطبيق تأخيرات تدريجية بعد محاولات المصادقة الفاشلة المتكررة.
فرض حد أقصى قابل للتكوين لعدد المحاولات الفاشلة المتتالية.
رفض المزيد من محاولات المصادقة مؤقتاً بعد الوصول إلى الحد المكوَّن.
أعد HTTP 429 Too Many Requests عند تفعيل تحديد المعدل.
طبّق الحماية بشكل متسق عبر جميع آليات المصادقة، بما في ذلك HTTP Basic Authentication المستخدمة من قِبل WebDAV.
تأكد من أنه لا يمكن استخدام آليات مصادقة أو نقاط نهاية بديلة لتجاوز حماية القوة الغاشمة الحالية للتطبيق.
يمكن لسياسة محتملة أن تقيّد المصادقة مؤقتًا بعد عدد قابل للتكوين من الإخفاقات المتتالية، مثل 10 محاولات. يجب تحديد العتبة الدقيقة وفترة التقييد وفقًا لمتطلبات الأمان الخاصة بالتطبيق.
ownCloud Server: https://github.com/owncloud/core
الثغرة الأمنية ذات الصلة: CVE-2023-32319
تقرير HackerOne رقم #1879549: https://hackerone.com/reports/1879549
Hoang126 نيابةً عن فريق الأمان في ETC JSC
البحث الأمني والإفصاح المسؤول.
أُجري هذا البحث لأغراض اختبار الأمان والإفصاح المسؤول.
أُجري الاختبار ضد بيئة خاضعة للرقابة. لم يتم إجراء أي وصول غير مصرح به إلى حسابات أو بيانات طرف ثالث.