LoginSignup
7
2

More than 1 year has passed since last update.

grypeを使ってSBOMに関連する脆弱性情報を調べる

Last updated at Posted at 2023-03-05

はじめに

grypeを使ってSBOMに関連する脆弱性をリストアップしてみます。
grypeはコンテナイメージやファイルシステム向けの脆弱性スキャナーです。
https://github.com/anchore/grype
前回に引き続き、例としてCentOS 7のrpmdbを元に生成したSPDX-JSON形式のSBOMに関連する脆弱性情報を調べてみます。

環境情報

macOS上にDockerでCentOS 7のコンテナを立ち上げて、その中で作業をします。
今回の環境情報は以下です。

コンポーネント バージョン 備考
PC M1 MacBook Pro
OS macOS Ventura 13.0.1
Docker 4.15.0
CentOS 7.9.2009
grype v0.59.0
syft v0.62.3

手順

CentOS 7のコンテナを作成

macOS上での作業です。

dockerイメージをpullし、コンテナを作成します。

$ docker pull centos:centos7
$ docker run -it -d --name centos7 centos:centos7

ログインして、バージョンを確認します。

$ docker exec -it centos7 /bin/bash
# cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (AltArch)

grypeをインストール

/usr/local/binにgrypeをインストールします。

# curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin

syftで生成したSBOM(SPDX-JSON形式)を元に脆弱性を調べる

前回の記事に従って、CentOS 7のrpmdbを元にSPDX-JSON形式のSBOMを生成しておきます。
ファイル名はcentos7_rpm.jsonとします。

syftを使ってCentOS 7のrpmdbを元にSPDX-JSON形式のSBOMを生成する
https://qiita.com/ykmchd/items/b28bca1663d957ae1956

SBOMをパイプでgrypeに渡し、リダイレクトでcentos7_rpm_vulnerability.txtというテキストファイルに出力します。

# cat centos7_rpm.json | grype --distro centos:7 > centos7_rpm_vulnerability.txt

出力結果を一部確認すると、openssl-libsパッケージに該当する脆弱性が紐付けされていることがわかります。

[root@6252d20a0c65 ~]# grep openssl centos7_rpm_vulnerability.txt
openssl-libs                 1:1.0.2k-25.el7_9                                       rpm   CVE-2015-2808     Medium    
openssl-libs                 1:1.0.2k-25.el7_9             (won't fix)               rpm   CVE-2019-1547     Medium    
openssl-libs                 1:1.0.2k-25.el7_9             (won't fix)               rpm   CVE-2019-1551     Low       
openssl-libs                 1:1.0.2k-25.el7_9             (won't fix)               rpm   CVE-2019-1563     Low       
openssl-libs                 1:1.0.2k-25.el7_9             (won't fix)               rpm   CVE-2020-1968     Low       
openssl-libs                 1:1.0.2k-25.el7_9             (won't fix)               rpm   CVE-2022-3358     Low       
openssl-libs                 1:1.0.2k-25.el7_9             (won't fix)               rpm   CVE-2022-4304     Medium    
openssl-libs                 1:1.0.2k-25.el7_9             (won't fix)               rpm   CVE-2022-4450     Medium    
openssl-libs                 1:1.0.2k-25.el7_9             (won't fix)               rpm   CVE-2023-0215     Medium    
openssl-libs                 1:1.0.2k-25.el7_9             (won't fix)               rpm   CVE-2023-0286     Medium    
[root@6252d20a0c65 ~]# 

最後に

grype(とsyft)を使ってSPDX-JSON形式のSBOMに関連する脆弱性情報を調べることができました。
syftとgrypeをCIに取り入れて、シフトレフトによって早期に脆弱性を検知・対応するDevSecOpsを推進していきたいですね。

参考情報

7
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
2