
Un escáner de versiones de PHP para reportar posibles vulnerabilidades
Versionscan es una herramienta para evaluar la versión de PHP que tienes instalada actualmente y compararla con CVE conocidas y las versiones en las que se corrigieron, para informar sobre posibles problemas.
TEN EN CUENTA: El trabajo aún está en progreso para adaptar la herramienta a distribuciones Linux que realizan backports de parches de seguridad. Por ahora, esto solo informa según la versión exacta reportada.
{
"require": {
"psecio/versionscan": "dev-master"
}
}
La única dependencia actual es la consola de Symfony.
Para ejecutar el escaneo contra tu versión actual de PHP, usa:
bin/versionscan
El script comprobará PHP_VERSION de la instancia actual y generará los resultados de aprobado/rechazado. La salida se ve similar a:
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... |
Los resultados también se mostrarán con colores para indicar fácilmente si la comprobación es aprobada o rechazada.
Hay varios parámetros que se pueden proporcionar a la herramienta para configurar sus escaneos y resultados:
Si deseas definir una versión de PHP a comprobar distinta a la que el script encuentra por sí mismo, puedes usar el parámetro php-version:
bin/versionscan scan --php-version=4.3.2
También puedes indicarle a versionscan que informe solo los fallos y no las pruebas que pasan:
bin/versionscan scan --fail-only
También puedes ordenar los resultados ya sea por ID de CVE o por severidad (calificación de riesgo), con el parámetro sort y el valor "cve" o "risk":
bin/versionscan scan --sort=risk
Por defecto, versionscan muestra la información directamente en la consola en un formato legible para humanos. También puedes especificar otros formatos de salida que sean más fáciles de analizar mediante programación (como JSON). Usa la opción --format para cambiar la salida:
vendor/bin/versionscan scan --php-version=5.5 --format=json
Los formatos de salida compatibles son console, json, xml y html.
El formato de salida HTML requiere una opción --output con el directorio donde escribir el archivo:
vendor/bin/versionscan scan --php-version=5.5 --format=html --output=/var/www/output
El resultado se escribirá en un archivo con un nombre similar a versionscan-output-20150808.html