
Un scanner de versions PHP pour signaler les vulnérabilités possibles
Versionscan est un outil permettant d'évaluer votre version actuelle de PHP installée et de la comparer aux CVE connues ainsi qu'aux versions dans lesquelles elles ont été corrigées, afin de signaler les problèmes potentiels.
À NOTER : Le travail est toujours en cours pour adapter l'outil aux distributions Linux qui rétroportent les correctifs de sécurité. Pour l'instant, il ne rapporte que pour la version brute indiquée.
{
"require": {
"psecio/versionscan": "dev-master"
}
}
La seule dépendance actuelle est la console Symfony.
Pour lancer l'analyse sur votre version actuelle de PHP, utilisez :
bin/versionscan
Le script vérifie la constante PHP_VERSION de l'instance courante et génère les résultats succès/échec. Le résultat ressemble à :
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... |
Les résultats sont également colorisés pour montrer facilement la réussite ou l'échec de la vérification.
Plusieurs paramètres peuvent être transmis à l'outil pour configurer ses analyses et ses résultats :
Si vous souhaitez définir une version de PHP à vérifier autre que celle que le script détecte lui-même, vous pouvez utiliser le paramètre php-version :
bin/versionscan scan --php-version=4.3.2
Vous pouvez également demander à versionscan de ne rapporter que les échecs et non les tests réussis :
bin/versionscan scan --fail-only
Vous pouvez aussi trier les résultats soit par ID CVE, soit par sévérité (notation de risque), avec le paramètre sort et la valeur "cve" ou "risk" :
bin/versionscan scan --sort=risk
Par défaut, versionscan affiche les informations directement dans la console sous une forme lisible. Vous pouvez également spécifier d'autres formats de sortie plus faciles à analyser par programme (comme JSON). Utilisez l'option --format pour changer le format :
vendor/bin/versionscan scan --php-version=5.5 --format=json
Les formats de sortie supportés sont console, json, xml et html.
Le format de sortie HTML nécessite une option --output spécifiant le répertoire dans lequel écrire le fichier :
vendor/bin/versionscan scan --php-version=5.5 --format=html --output=/var/www/output
Le résultat sera écrit dans un fichier nommé par exemple versionscan-output-20150808.html.