
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
sortパラメータと"cve"または"risk"の値を使用して、結果をCVE IDまたは重要度(リスク評価)で並べ替えることもできます。
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のような名前のファイルに書き込まれます。