
عزز اكتشاف البرامج الضارة لديك باستخدام WAF + YARA (WAFARAY)
في الأساس، جاءت الفكرة الرئيسية لاستخدام WAF + YARA (YARA من اليمين إلى اليسار = ARAY) للكشف عن الملفات الضارة على مستوى جدار الحماية (WAF) قبل أن يتمكن WAF من إعادة توجيهها إلى الخادم الخلفي، مثل الملفات التي يتم رفعها عبر وظائف الويب انظر: https://owasp.org/www-community/vulnerabilities/Unrestricted_File_Upload
عندما تسمح صفحة ويب برفع الملفات، فإن معظم جدران الحماية (WAFs) لا تقوم بفحص الملفات قبل إرسالها إلى الخادم الخلفي. يمكن أن يوفر تطبيق WAF + YARA اكتشافًا للبرامج الضارة قبل أن يقوم WAF بإعادة توجيه الملفات إلى الخادم الخلفي.
نعم، أحد الحلول هو استخدام ModSecurity + Clamav، حيث تستدعي معظم الصفحات ClamAV كعملية وليس كخدمة خلفية (daemon)، وفي هذه الحالة، قد يستغرق تحليل ملف أكثر من 50 ثانية لكل ملف. انظر هذا المورد: https://kifarunix.com/intercept-malicious-file-upload-with-modsecurity-and-clamav/
🙁 بعض الأدلة هنا Black Hat Asia 2019 يرجى متابعة القراءة ورؤية نشر المختبر السريع أدناه.
بشكل أساسي، هو نشر سريع (1) بقواعد YARA مُجمَّعة مسبقًا وجاهزة للاستخدام عبر ModSecurity (WAF) باستخدام قاعدة مخصصة؛ (2) ستقوم هذه القاعدة المخصصة بإجراء فحص واكتشاف للملفات التي قد تحتوي على كود ضار، (3) عادةً وظائف الويب (رفع الملفات) إذا كان الملف مشبوهًا سيتم رفضه مع استلام رمز 403 ممنوع من ModSecurity.
✔️ يقوم YaraCompile.py بتجميع جميع قواعد yara. (كود Python3)
✔️ ملف test.conf هو مضيف افتراضي يحتوي على قواعد mod security. (كود ModSecurity)
✔️ تستدعي قواعد ModSecurity النص modsec_yara.py لفحص الملف الذي يتم محاولة رفعه. (كود Python3)
✔️ يعيد Yara خيارين: 1 (200 OK) أو 0 (403 ممنوع)
/YaraRules/Compiled/YaraRules/rules/YaraRules/YaraScripts/etc/apache2/sites-enabled/temporal فريق الدفاع (Blueteamers): تطبيق القواعد، تنبيه أفضل، اكتشاف البرامج الضارة في الملفات التي يتم رفعها عبر وظائف الويب.فريق الهجوم / مختبري الاختراق (Redteamers/pentesters): نطاق الصندوق الرمادي (GreyBox)، رفع وتجاوز بملف ضار، تطبيق القواعد.مسؤولي الأمن (Security Officers): الحفاظ على التنبيه، صيد التهديدات.مركز العمليات الأمنية (SOC): مراقبة أفضل للملفات الضارة.فريق الاستجابة للطوارئ الحاسوبية (CERT): تحليل البرامج الضارة، تحديد مؤشرات الاختراق الجديدة (IOC).يعتمد إثبات المفهوم على نظام Debian 11.3.0 (مستقر) x64، و OWASP CRC v3.3.2 و Yara 4.0.5، ستجد نص التثبيت التلقائي هنا wafaray_install.sh ودليل التثبيت اليدوي الاختياري هنا: manual_instructions.txt كما تم إنشاء صفحة PHP كـ "محاكاة" لملاحظة التفاعل والكشف عن الملفات الضارة باستخدام WAF + YARA.
✔️ الخطوة 1: تنزيل Debian 11.3.0: https://cdimage.debian.org/debian-cd/current/amd64/iso-dvd/debian-11.3.0-amd64-DVD-1.iso
✔️ الخطوة 2: النشر باستخدام VMware أو VirtualBox
✔️ الخطوة 3: بعد التثبيت، يرجى اتباع التعليمات أدناه:
alex@waf-labs:~$ su root
root@waf-labs:/home/alex#
# تذكر تغيير YOUR_USER باسم المستخدم الخاص بك (مثل waf)
root@waf-labs:/home/alex# sed -i 's/^\(# User privi.*\)/\1\nalex ALL=(ALL) NOPASSWD:ALL/g' /etc/sudoers
root@waf-labs:/home/alex# exit
alex@waf-labs:~$ sudo sed -i 's/^\(deb cdrom.*\)/#\1/g' /etc/apt/sources.list
alex@waf-labs:~$ sudo sed -i 's/^# \(deb\-src http.*\)/ \1/g' /etc/apt/sources.list
alex@waf-labs:~$ sudo sed -i 's/^# \(deb http.*\)/ \1/g' /etc/apt/sources.list
alex@waf-labs:~$ echo -ne "\n\ndeb http://deb.debian.org/debian/ bullseye main\ndeb-src http://deb.debian.org/debian/ bullseye main\n" | sudo tee -a /etc/apt/sources.list
alex@waf-labs:~$ sudo apt-get update
alex@waf-labs:~$ sudo apt-get install sudo -y
alex@waf-labs:~$ sudo apt-get install git vim dos2unix net-tools -y
alex@waf-labs:~$ git clone https://github.com/alt3kx/wafaray
alex@waf-labs:~$ cd wafaray
alex@waf-labs:~$ dos2unix wafaray_install.sh
alex@waf-labs:~$ chmod +x wafaray_install.sh
alex@waf-labs:~$ sudo ./wafaray_install.sh >> log_install.log
# اختبر بيئة مختبرك
alex@waf-labs:~$ firefox localhost:8080/upload.php
بمجرد تنزيل وتجميع قواعد Yara.
يشبه ذلك عند نشر ModSecurity، تحتاج إلى تخصيص نوع القواعد التي تريد تطبيقها. السجل التالي هو مثال عندما كشف جدار الحماية (WAF) + Yara عن ملف ضار، في هذه الحالة تم اكتشاف eicar.
Message: Access denied with code 403 (phase 2). File "/temporal/20220812-184146-YvbXKilOKdNkDfySME10ywAAAAA-file-Wx1hQA" rejected by
the approver script "/YaraRules/YaraScripts/modsec_yara.py": 0 SUSPECTED [YaraSignature: eicar]
[file "/etc/apache2/sites-enabled/test.conf"] [line "56"] [id "500002"]
[msg "Suspected File Upload:eicar.com.txt -> /temporal/20220812-184146-YvbXKilOKdNkDfySME10ywAAAAA-file-Wx1hQA - URI: /upload.php"]
$ sudo service apache2 stop
$ sudo service apache2 start
$ cd /var/log
$ sudo tail -f apache2/test_access.log apache2/test_audit.log apache2/test_error.log
⚠️ كن حذرًا بشأن اختبارك. تم اختبار العروض التوضيحية التالية على أجهزة افتراضية معزولة. ⚠️
يتم رفع ملف ضار، وترفض قواعد ModSecurity بالإضافة إلى Yara رفع الملف إلى الخادم الخلفي إذا تطابق الملف مع قاعدة Yara واحدة على الأقل. (مثال على برامج ضارة: https://secure.eicar.org/eicar.com.txt) لا تقم بتنفيذ الملف.
في هذا العرض التوضيحي، نقوم بتعطيل القاعدة 933110 - PHP Inject Attack للتحقق من صحة قواعد Yara.
يتم رفع ملف ضار، وترفض قواعد ModSecurity بالإضافة إلى Yara رفع الملف إلى الخادم الخلفي إذا تطابق الملف مع قاعدة Yara واحدة على الأقل. (مثال على WebShell PHP: https://github.com/drag0s/php-webshell) لا تقم بتنفيذ الملف.
يتم رفع ملف ضار، وترفض قواعد ModSecurity بالإضافة إلى Yara رفع الملف إلى الخادم الخلفي إذا تطابق الملف مع قاعدة Yara واحدة على الأقل. (مثال على سوق البرامج الضارة (RecordBreaker): https://bazaar.abuse.ch/sample/94ffc1624939c5eaa4ed32d19f82c369333b45afbbd9d053fa82fe8f05d91ac2/) لا تقم بتنفيذ الملف.
في حال كنت ترغب في تنزيل المزيد من قواعد yara، يمكنك الاطلاع على المستودعات التالية:
Alex Hernandez المعروف بـ (@_alt3kx_)
Jesus Huerta المعروف بـ @mindhack03d
Israel Zeron Medina المعروف بـ @spk085