
اكتشاف ملفات PHP التي قد تكون ضارة
_______ __ __ _______
| ___ || |_| || |
| | | || || ___|
| |___| || || |___ Webshell finder,
| ___|| || ___| kiddies hunter,
| | | ||_|| || | website cleaner.
|___| |_| |_||___|
اكتشف ملفات PHP التي يحتمل أن تكون ضارة.
يبذل php-malware-finder قصارى جهده لاكتشاف الكود المشفر/المشبوه وكذلك الملفات التي تستخدم دوال PHP التي تُستخدم غالبًا في البرامج الضارة/قذائف الويب.
كما يتم اكتشاف القائمة التالية من أدوات الترميز/التعتيم/قذائف الويب:
بالطبع من التافه تجاوز PMF، لكن هدفه هو اصطياد الأطفال والأغبياء، وليس الأشخاص ذوي العقول العاملة. إذا أبلغت عن تجاوز مخصص غبي لـ PMF، فمن المحتمل أنك تنتمي إلى إحدى (أو كلتيهما) الفئتين، ويجب عليك إعادة قراءة العبارة السابقة.
يتم الكشف عن طريق التجول في نظام الملفات واختبار الملفات مقابل مجموعة من قواعد YARA. نعم، الأمر بهذه البساطة!
بدلاً من استخدام نهج قائم على التجزئة،
يحاول PMF قدر الإمكان استخدام أنماط دلالية، للكشف عن أشياء مثل
"متغير $_GET يتم فك تشفيره مرتين، وفك ضغطه،
ثم تمريره إلى دالة خطيرة مثل system".
git clone https://github.com/jvoisin/php-malware-finder.gitcd php-malware-finder && makeأو استبدل الخطوتين الأخيرتين بـ go install github.com/jvoisin/php-malware-finder،
والذي سيقوم بتجميع وتثبيت PMF مباشرة في مجلد ${GOROOT}/bin.
$ ./php-malware-finder -h
Usage:
php-malware-finder [OPTIONS] [Target]
Application Options:
-r, --rules-dir= Alternative rules location (default: embedded rules)
-a, --show-all Display all matched rules
-f, --fast Enable YARA's fast mode
-R, --rate-limit= Max. filesystem ops per second, 0 for no limit (default: 0)
-v, --verbose Verbose mode
-w, --workers= Number of workers to spawn for scanning (default: 32)
-L, --long-lines Check long lines
-c, --exclude-common Do not scan files with common extensions
-i, --exclude-imgs Do not scan image files
-x, --exclude-ext= Additional file extensions to exclude
-u, --update Update rules
-V, --version Show version number and exit
Help Options:
-h, --help Show this help message
أو إذا كنت تفضل استخدام yara:
$ yara -r ./data/php.yar /var/www
يرجى تذكر أنه يجب عليك استخدام YARA 3.4 على الأقل لأننا نستخدم التجزئات لنظام القائمة البيضاء، والتعبيرات النمطية الجشعة. يرجى ملاحظة أنه إذا كنت تخطط لبناء yara من المصادر، فيجب تثبيت libssl-dev على نظامك لدعم التجزئات.
أوه، وبالمناسبة، يمكنك تشغيل مجموعة الاختبارات الشاملة باستخدام make tests.
إذا كنت ترغب في تجنب تثبيت Go و libyara، يمكنك أيضًا استخدام صورة
docker الخاصة بنا ببساطة عن طريق تحميل المجلد الذي تريد مسحه ضوئيًا إلى دليل
/data الخاص بالحاوية:
$ docker run --rm -v /folder/to/scan:/data ghcr.io/jvoisin/php-malware-finder
تحقق من ملف whitelist.yar. إذا كنت كسولاً، يمكنك إنشاء قوائم بيضاء لمجلدات كاملة باستخدام السكريبت generate_whitelist.py.
لأنه:
PHP-malware-finder مرخص بموجب رخصة GNU Lesser General Public License v3.
مشروع YARA الرائع مرخص بموجب رخصة Apache v2.0.
التصحيحات أو القوائم البيضاء أو العينات مرحب بها بالطبع.