
Um scanner de versão PHP para relatar possíveis vulnerabilidades
O Versionscan é uma ferramenta para avaliar sua versão do PHP atualmente instalada e verificar contra CVEs conhecidas e as versões em que foram corrigidas para relatar possíveis problemas.
ATENÇÃO: O trabalho ainda está em andamento para adaptar a ferramenta às distribuições Linux que fazem backport de correções de segurança. No momento, isso apenas relata a versão exata informada.
{
"require": {
"psecio/versionscan": "dev-master"
}
}
A única dependência atual é o console Symfony.
Para executar a verificação na sua versão atual do PHP, use:
bin/versionscan
O script verificará a PHP_VERSION da instância atual e gerará os resultados de aprovação/reprovação. A saída é semelhante 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... |
Os resultados também serão reportados coloridos para mostrar facilmente aprovação/reprovação da verificação.
Existem vários parâmetros que podem ser fornecidos à ferramenta para configurar suas verificações e resultados:
Se você deseja definir uma versão do PHP para verificar diferente da que o script encontra automaticamente, pode usar o parâmetro php-version:
bin/versionscan scan --php-version=4.3.2
Você também pode instruir o versionscan a relatar apenas as falhas e não os testes aprovados:
bin/versionscan scan --fail-only
Você também pode ordenar os resultados por ID do CVE ou por gravidade (classificação de risco), com o parâmetro sort e o valor "cve" ou "risk":
bin/versionscan scan --sort=risk
Por padrão, o versionscan exibirá informações diretamente no console em um formato legível por humanos. Você também pode especificar outros formatos de saída que podem ser mais fáceis de analisar programaticamente (como JSON). Use a opção --format para alterar a saída:
vendor/bin/versionscan scan --php-version=5.5 --format=json
Os formatos de saída suportados são console, json, xml e html.
O formato de saída HTML requer uma opção --output do diretório para escrever o arquivo:
vendor/bin/versionscan scan --php-version=5.5 --format=html --output=/var/www/output
O resultado será escrito em um arquivo com nome semelhante a versionscan-output-20150808.html