
Сканер версий PHP для выявления возможных уязвимостей
Versionscan — это инструмент для оценки текущей установленной версии PHP и её проверки на известные CVE, а также версии, в которых они были исправлены, чтобы сообщить о потенциальных проблемах.
ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ: Работа по адаптации инструмента для дистрибутивов Linux, которые применяют обратные исправления безопасности, всё ещё ведётся. На данный момент отчёт формируется только на основе точной версии.
{
"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, либо по степени серьёзности (оценке риска) с помощью параметра 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.