目的
全てのケースに完全に対応したソリューションが無いことを前提として各スキャナの性能を調査し、比較検討に利用可能な情報をまとめてみる。
背景
プロフェッショナルの人たちが長期間の検討を経た結果、壊滅的なクオリティしかないぽんこつを選定してしまう悲劇を見たため。
参考 :
- 第734回 UbuntuでSBOM(ソフトウェア部品表)を作る方法 | gihyo.jp
- 2019年6月14日号 Ubuntuにおける「バージョンによる脆弱性判定」の正しいアプローチ、WSL2のプレビュー開始 | gihyo.jp
方法
同一環境でのスキャンを実施し、結果を確認
想定される結果
OK
- 該当ソフトウェアを正しく検出できる
- 該当バージョンで未解決の脆弱性を正しく検出できる
準OK
- 個別のフォローを行えばOKと同じ結果を示せる
NG
- 該当ソフトウェアを検出できない
- 該当バージョンで未解決の脆弱性を検出できない (偽陰性)
- 該当バージョンで解決済みの脆弱性を検出してしまう (偽陽性)
想定される起因
- 対象環境に対応していない
- 対象ソフトウェアの導入手法に対応していない
- 脆弱性DBが提供するデータとのマッチング方法の違い
- 脆弱性DBが提供するデータの問題
- Upstream以外のバックポート情報に対応していない
- 未解決の脆弱性に対する処理方針の違い
評価項目
1. PHPの脆弱性検出能力
- Docker Official Image (Debian系)
- Docker Official Image (Alpine系)
- CentOS7 にphpenvでインストールしたバイナリ
- CentOS7 にインストールしたRemi's RPM repositoryパッケージ
- CentOS7 にインストールしたOS標準パッケージ
- CentOS7 にインストールしたSoftware Collectionsパッケージ
- Alma Linux8 にインストールしたAppStreamパッケージ
- Alma Linux9 にインストールしたAppStreamパッケージ
- Ubuntu 22.04 にインストールしたOS標準パッケージ
- Alpine 3.16 にインストールしたOS標準パッケージ
: 適切な検出
: 個別のフォローをすれば適切な検出
: 偽陽性または偽陰性の検出
結果 | ツールA | ツールB |
---|---|---|
1 | ||
2 | ||
3 | ||
4 | ||
5 | ||
6 | ||
7 | ||
8 | ||
9 | ||
10 |
2. Pythonの脆弱性検出能力
- Docker Official Image (Debian系)
- Docker Official Image (Alpine系)
- CentOS7 にpyenvでインストールしたバイナリ
- CentOS7 にインストールしたOS標準パッケージ
- CentOS7 にインストールしたSoftware Collectionsパッケージ
- Alma Linux8 にインストールしたOS標準パッケージ
- Alma Linux8 にインストールしたAppStreamパッケージ
- Alma Linux9 にインストールしたOS標準パッケージ
- Alma Linux9 にインストールしたAppStreamパッケージ
- Ubuntu 22.04 にインストールしたOS標準パッケージ
- Ubuntu 22.04 にインストールしたUniverseパッケージ
- Alpine 3.16 にインストールしたOS標準パッケージ
3. JAVA/OpenJDKの脆弱性検出能力
- Docker Official Image - Temurin (Debian系)
- Docker Official Image - Temurin (Alpine系)
- Docker Official Image - Temurin (Debian系)
- Docker Official Image - Temurin (Alpine系)
- CentOS7 にインストールしたOS標準パッケージ
- Alma Linux8 にインストールしたAppStreamパッケージ
- Alma Linux9 にインストールしたAppStreamパッケージ
- Alma Linux9 にインストールしたOracleJDKバイナリ
- Alma Linux9 にインストールしたTemurinパッケージ
- Alma Linux9 にインストールしたCorrettoパッケージ
- Ubuntu 22.04 にインストールしたOS標準パッケージ
- Ubuntu 22.04 にインストールしたOracleJDKバイナリ
- Ubuntu 22.04 にインストールしたTemurinパッケージ
- Ubuntu 22.04 にインストールしたCorrettoパッケージ
- Alpine 3.16 にインストールしたOS標準パッケージ
4. Kernelの脆弱性検出能力
- CentOS7 にインストールしたELRepoパッケージ
- CentOS7 にインストールしたOS標準パッケージ
- Alma Linux8 にインストールしたOS標準パッケージ
- Alma Linux9 にインストールしたOS標準パッケージ
- Ubuntu 22.04 にインストールしたOS標準パッケージ
- Ubuntu 22.04 にインストールしたHWEパッケージ
- Ubuntu 22.04 にインストールしたMainlineBuilds