
ماسح إصدارات PHP للإبلاغ عن الثغرات المحتملة
Versionscan هي أداة لتقييم إصدار PHP المثبت لديك والتحقق منه مقابل CVEs المعروفة والإصدارات التي تم إصلاحها فيها للإبلاغ عن المشاكل المحتملة.
يرجى ملاحظة: العمل لا يزال جارياً لتكييف الأداة مع توزيعات لينكس التي تقوم بتثبيت التصحيحات الأمنية العكسية (backport). حالياً، هذا يعمل فقط للإصدار المباشر المبلغ عنه.
{
"require": {
"psecio/versionscan": "dev-master"
}
}
الاعتماد الوحيد حالياً هو وحدة التحكم Symfony.
لتشغيل الفحص مقابل إصدار PHP الحالي، استخدم:
bin/versionscan
سيتحقق السكريبت من PHP_VERSION للجلسة الحالية ويولد نتائج النجاح/الفشل. يبدو الإخراج مشابهاً لـ:
Executing against version: 5.4.24
+--------+---------------+------+------------------------------------------------------------------------------------------------------+
| Status | CVE ID | Risk | Summary |
+--------+---------------+------+------------------------------------------------------------------------------------------------------+
| FAIL | CVE-2014-3597 | 6.8 | Multiple buffer overflows in the php_parserr function in ext/standard/dns.c in PHP before 5.4.32 ... |
| FAIL | CVE-2014-3587 | 4.3 | Integer overflow in the cdf_read_property_info function in cdf.c in file through 5.19, as used in... |
سيتم الإبلاغ عن النتائج ملونة أيضاً لتوضيح نجاح/فشل الفحص بسهولة.
هناك عدة معلمات يمكن إعطاؤها للأداة لتكوين عمليات الفحص والنتائج:
إذا كنت ترغب في تعريف إصدار PHP للفحص غير الذي يجده السكريبت بنفسه، يمكنك استخدام المعلمة php-version:
bin/versionscan scan --php-version=4.3.2
يمكنك أيضاً إخبار versionscan بالإبلاغ عن حالات الفشل فقط وليس الاختبارات الناجحة:
bin/versionscan scan --fail-only
يمكنك أيضاً ترتيب النتائج إما بواسطة CVE ID أو حسب الشدة (تصنيف المخاطر)، باستخدام المعلمة sort وقيمة إما "cve" أو "risk":
bin/versionscan scan --sort=risk
بشكل افتراضي، يقوم versionscan بإخراج المعلومات مباشرة إلى وحدة التحكم بشكل قابل للقراءة البشرية. يمكنك أيضاً تحديد تنسيقات إخراج أخرى قد تكون أسهل للتحليل برمجياً (مثل JSON). استخدم الخيار --format لتغيير الإخراج:
vendor/bin/versionscan scan --php-version=5.5 --format=json
تنسيقات الإخراج المدعومة هي console، json، xml و html.
يتطلب تنسيق الإخراج HTML خيار --output للمجلد الذي سيتم كتابة الملف فيه:
vendor/bin/versionscan scan --php-version=5.5 --format=html --output=/var/www/output
ستتم كتابة النتيجة في ملف باسم مثل versionscan-output-20150808.html.