
Uno scanner di versioni PHP per segnalare possibili vulnerabilità
Versionscan è uno strumento per valutare la versione PHP attualmente installata e confrontarla con le CVE note e le versioni in cui sono state corrette, per segnalare potenziali problemi.
NOTA BENE: Il lavoro è ancora in corso per adattare lo strumento alle distribuzioni Linux che effettuano backport delle correzioni di sicurezza. Al momento, restituisce solo le informazioni per la versione così come riportata.
{
"require": {
"psecio/versionscan": "dev-master"
}
}
L'unica dipendenza attuale è la console Symfony.
Per eseguire la scansione sulla versione PHP corrente, usa:
bin/versionscan
Lo script controlla la costante PHP_VERSION per l'istanza corrente e genera i risultati superato/non superato. L'output è simile 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... |
I risultati verranno anche visualizzati a colori per mostrare facilmente l'esito superato/non superato del controllo.
Ci sono diversi parametri che possono essere passati allo strumento per configurare le scansioni e i risultati:
Se desideri specificare una versione PHP da verificare diversa da quella rilevata automaticamente dallo script, puoi usare il parametro php-version:
bin/versionscan scan --php-version=4.3.2
Puoi anche dire a versionscan di restituire solo i fallimenti e non i test superati:
bin/versionscan scan --fail-only
Puoi anche ordinare i risultati per ID CVE o per gravità (valutazione del rischio) usando il parametro sort con il valore "cve" o "risk":
bin/versionscan scan --sort=risk
Per impostazione predefinita, versionscan restituisce le informazioni direttamente sulla console in un formato leggibile dall'utente. Puoi anche specificare altri formati di output più facili da analizzare a livello di programma (come JSON). Usa l'opzione --format per cambiare l'output:
vendor/bin/versionscan scan --php-version=5.5 --format=json
I formati di output supportati sono console, json, xml e html.
Il formato HTML richiede l'opzione --output per specificare la directory in cui scrivere il file:
vendor/bin/versionscan scan --php-version=5.5 --format=html --output=/var/www/output
Il risultato verrà scritto in un file con nome simile a versionscan-output-20150808.html