2024年6月27日木曜日

docker scout を Mac にインストールしてイメージのスキャンをしてみる

docker scout を Mac にインストールしてイメージのスキャンをしてみる

概要

docker scout はイメージの脆弱性をスキャンしてくれるツールです
docker のバージョンがある程度最新であればデフォルトで使えます
また dockerhub でもフリープランであれば3イメージまで scout スキャンを設定することができます

今回は Mac 上で動かして脆弱性に対応してみました

環境

  • macOS 11.7.10
  • docker 24.0.2

とりあえず使う

バージョン24であれば特にインストールは不要でいきなり使えます

  • docker scout quickview ruby:3.1.2

結果は以下の通りです

INFO New version 1.9.3 available (installed version is 0.16.1)
    ✓ Pulled
    ✓ Image stored for indexing
    ✓ Indexed 630 packages

  Your image  ruby:3.1.2                         │    7C    69H   134M   136L    11?   
  Base image  buildpack-deps:bullseye            │    6C    64H   132M   136L    11?   
  Refreshed base image  buildpack-deps:bullseye  │    1C     2H     3M   157L     3?   
                                                 │    -5    -62   -129    +21     -8   
  Updated base image  buildpack-deps:stable      │    1C     2H     3M   103L     3?   
                                                 │    -5    -62   -129    -33     -8   

What's Next?
  Learn more about vulnerabilities → docker scout cves ruby:3.1.2
  Learn more about base image update recommendations → docker scout recommendations ruby:3.1.2

脆弱性に対応してみる

  • docker scout recommendations ruby:3.1.2

これを実行すると対応方法を教えてくれます
基本はベースイメージを変更することで脆弱性に対応できるので dockerhub でベースイメージの別タグを探すと良いです

https://hub.docker.com/_/ruby/tags?page=&page_size=&ordering=&name=3.1.2 例えば 3.1.2 であれば 3.1.2-alpine3.14 にするだけでかなり減ります

  • docker scout quickview ruby:3.1.2-alpine3.14
INFO New version 1.9.3 available (installed version is 0.16.1)
    ✓ Pulled
    ✓ Image stored for indexing
    ✓ Indexed 128 packages

  Your image  ruby:3.1.2-alpine3.14  │    2C     8H     8M     0L          
  Base image  alpine:3.14            │    1C     2H     5M     0L          
  Updated base image  alpine:3.20    │    0C     0H     2M     0L     1?   
                                     │    -1     -2     -3            +1   

What's Next?
  Learn more about vulnerabilities → docker scout cves ruby:3.1.2-alpine3.14
  Learn more about base image update recommendations → docker scout recommendations ruby:3.1.2-alpine3.14

ただベースイメージを変更するとイメージ内で使用するコマンドも変わってくるのでベースイメージを変更した場合は Dockerfile などを書き換える必要がでてきます

Ruby のバージョンを上げることも検討する

3.1.2 -> 3.2.4 にすることで更に脆弱性を減らせます

  • docker scout quickview ruby:3.2.4-alpine3.20
INFO New version 1.9.3 available (installed version is 0.16.1)
    ✓ Provenance obtained from attestation
    ✓ SBOM obtained from attestation, 127 packages indexed
    ✓ Pulled

  Your image  ruby:3.2.4-alpine3.20  │    0C     0H     3M     0L     1?   
  Base image  alpine:3.20            │    0C     0H     2M     0L     1?   

What's Next?
  Learn more about vulnerabilities → docker scout cves ruby:3.2.4-alpine3.20

最後に

docker scout を試してみました
基本的に脆弱性が出たらベースイメージを変更することを検討しましょう

またイメージで使われているツールやソフトウェアの CVE もチェックできるのでソフトの脆弱性をチェックしたい場合は以下のコマンドを使いましょう

  • docker scout cves ruby:3.2.4-alpine3.20

参考サイト

0 件のコメント:

コメントを投稿