
Cake Fuzzer هو مشروع يهدف إلى المساعدة في اكتشاف الثغرات الأمنية تلقائياً وبشكل مستمر في تطبيقات الويب التي تم إنشاؤها استناداً إلى أطر عمل محددة، مع عدد محدود جداً من النتائج الإيجابية الخاطئة.
أحدث إصدار: 1.0
الترخيص: GNU GPL v3.0
Cake Fuzzer هو مشروع يهدف إلى المساعدة في اكتشاف الثغرات الأمنية بشكل تلقائي ومستمر في تطبيقات الويب التي تم إنشاؤها بناءً على أطر عمل محددة، مع عدد محدود جدًا من النتائج الإيجابية الزائفة. حاليًا، تم تنفيذه لدعم إطار عمل Cake PHP.
إذا كنت ترغب في معرفة المزيد عن عملية البحث، تحقق من سلسلة المقالات هذه: بحث الأمن السيبراني لتطبيقات CakePHP
فيما يلي قائمة ببعض الثغرات التي اكتشفها Cake Fuzzer:
| العنوان | الشدة | الرابط |
|---|---|---|
| حقن SQL أعمى في Cerebrate | 9.8 حرجة | https://zigrin.com/advisories/cerebrate-blind-sql-injection/ |
| حقن SQL في مكون CRUD | 8.8 عالية | https://zigrin.com/advisories/misp-sql-injection-in-crud-component/ |
| XSS قائم على DOM | 6.1 متوسطة | https://zigrin.com/advisories/misp-dom-based-xss/ |
| حقن SQL أعمى في معامل الترتيب | 8.8 عالية | https://zigrin.com/advisories/misp-blind-sql-injection-in-order-parameter/ |
| حقن SQL أعمى في معاملات الإدخال من نوع مصفوفة | 8.8 عالية | https://zigrin.com/advisories/misp-blind-sql-injection-in-array-input-parameters/ |
| حقن SQL زمني في /Logs/index | 7.2 عالية | https://zigrin.com/advisories/misp-time-based-sql-injection-in-logs-index/ |
الطرق النموذجية لاكتشاف الثغرات باستخدام الأدوات الآلية في تطبيقات الويب هي:
كلا الطريقتين لهما عيوب. ينتج عن SAST نسبة عالية من النتائج الإيجابية الزائفة – وهي نتائج ليست ثغرات أو ليست ثغرات قابلة للاستغلال. ينتج عن DAST نتائج إيجابية زائفة أقل ولكنه يكتشف عددًا أقل من الثغرات بسبب المعلومات المحدودة. كما يتطلب بعض المعرفة بالتطبيق وخلفية أمنية للشخص الذي يقوم بتشغيل الفحص. وغالبًا ما يتطلب ذلك تهيئة فحص مخصصة لكل تطبيق ليعمل بشكل صحيح.
مشروع Cake Fuzzer يهدف إلى الجمع بين مزايا كلا النهجين والقضاء على العيوب المذكورة أعلاه. يُسمى هذا النهج اختبار أمان التطبيقات التفاعلي (IAST).
أهداف المشروع هي:
ملاحظة: بعض فئات الثغرات ليست هدفًا لـ Cake Fuzzer، لذلك لن يتمكن Cake Fuzzer من اكتشافها. أمثلة على هذه الفئات تشمل ثغرات منطق الأعمال ومشكلات التحكم في الوصول.

Drawio: بنية Cake Fuzzer
يتكون Cake Fuzzer من 3 خوادم رئيسية (مستقلة إلى حد كبير) تسمح معًا باختبار الثغرات الديناميكي لتطبيقات CakePHP.
المكونات الأخرى تشمل:
يعتمد Cake Fuzzer على مفهوم اختبار أمان التطبيقات التفاعلي (IAST). يحتوي على مجموعة محددة مسبقًا من الهجمات التي يتم تعديلها عشوائيًا قبل التنفيذ. يمتلك Cake Fuzzer المعرفة بدواخل التطبيق بفضل إطار عمل Cake PHP، وبالتالي سيتم إطلاق الهجمات على جميع نقاط الدخول الممكنة للتطبيق.
أثناء الهجوم، يقوم Cake Fuzzer بمراقبة جوانب مختلفة من التطبيق والنظام الأساسي مثل:
تسمح مصادر المعلومات هذه لـ Cake Fuzzer بتحديد المزيد من الثغرات والإبلاغ عنها بدرجة يقين أعلى.
يصف القسم التالي الخطوات لإعداد بيئة تطوير Cake Fuzzer حيث يكون الهدف هو الإصدار القديم MISP v2.4.146 الذي يحتوي على الثغرة CVE-2021-41326.
قم بتشغيل الأوامر التالية على نظام التشغيل المضيف لتنزيل جهاز افتراضي قديم لـ MISP:
cd ~/Downloads # أو أي مكان ترغب في تخزين جهاز MISP الافتراضي
wget https://vm.misp-project.org/MISP_v2.4.146@0c25b72/[email protected] -O MISP.zip
unzip MISP.zip
rm MISP.zip
mv VMware/ MISP-2.4.146
قم بتنفيذ الإجراءات التالية في واجهة VMWare الرسومية لتجهيز مشاركة ملفات Cake Fuzzer بين نظام المضيف و MISP:
قم بتشغيل الأوامر التالية على نظام المضيف (استبدل MISP_IP_ADDRESS بعنوان IP الذي لاحظته سابقًا):
ssh-copy-id misp@MISP_IP_ADDRESS
ssh misp@MISP_IP_ADDRESS
بمجرد الاتصال بـ MISP عبر SSH، قم بتشغيل الأوامر التالية (في محطة MISP) لإنهاء إعداد مشاركة ملفات Cake Fuzzer بين نظام المضيف و MISP:
sudo apt update
sudo apt-get -y install open-vm-tools open-vm-tools-desktop
sudo apt-get -y install build-essential module-assistant linux-headers-virtual linux-image-virtual && sudo dpkg-reconfigure open-vm-tools
sudo mkdir /cake_fuzzer # ملاحظة: هذا المسار ثابت لأنه مشفر في التجهيز (أحد التصحيحات)
sudo vmhgfs-fuse .host:/cake_fuzzer /cake_fuzzer -o allow_other -o uid=1000 -o max_write=61440
# max_write يصلح مشكلة نسخ الملفات الغريبة: https://github.com/vmware/open-vm-tools/issues/437#issuecomment-669663891
ls -l /cake_fuzzer # إذا سارت الأمور بشكل جيد، يجب أن ترى محتوى دليل Cake Fuzzer من نظام المضيف. أي تغييرات على نظام المضيف ستنعكس داخل الجهاز الافتراضي والعكس صحيح.
قم بتجهيز MISP للاختبار البسيط (في محطة MISP):
CAKE=/var/www/MISP/app/Console/cake
SUDO='sudo -H -u www-data'
$CAKE userInit -q
$SUDO $CAKE Admin setSetting "Security.password_policy_length" 1
$SUDO $CAKE Admin setSetting "Security.password_policy_complexity" '/.*/'
$SUDO $CAKE Password [email protected] admin --override_password_change
أخيرًا، قم بتثبيت تبعيات Cake Fuzzer وإعداد البيئة الافتراضية (في محطة MISP):
source /cake_fuzzer/precheck.sh
يقوم Cake Fuzzer بفحص الثغرات الموجودة داخل مجلد /cake_fuzzer/strategies.
لإضافة هجوم جديد، نحتاج إلى إضافة ملف new-attack.json جديد إلى مجلد strategies.
كل ثغرة تحتوي على حقلين رئيسيين: Scenarios و Scanners. تحتوي Scenarios على النماذج الأساسية لحمولات الهجوم. من ناحية أخرى، تقوم Scanners بالكشف عن التعبيرات النمطية أو العبارات للاستجابة، المخرجات القياسية، الأخطاء القياسية، السجلات، والنتائج.
Scenariosلإنشاء حمولة، يجب أولاً فهم الثغرة وكيفية اكتشافها بأقل عدد ممكن من الحمولات.