こんにちは!AWS事業本部コンサルティング部のたかくに(@takakuni_)です。
今回はDocker Desktop で提供されている Docker Extensions から、Snyk Container を利用して Docker イメージの脆弱性スキャンを行ってみようと思います。
Docker Extensions とは
Docker Desktop 内でサードパーティ製ツールを提供する拡張機能です。
2023-01-12にリリースされたDocker Desktop v4.16 で、 Docker Extensions はベータ版から GA になりました。今回は GA 記念に Snyk の拡張機能を利用してみようと思います。
・Extensions have moved from Beta to GA.
Docker Desktop release notes - v4.16.0
Docker Extensions の概要は以下をご覧ください。
やってみた
拡張機能のインストール
早速、拡張機能をインストールします。
Docker Desktop の Extentions から Add Extentions
を選択し、検索窓に Snyk
と入力します。
検索結果で表示された拡張機能の Install
をクリックします。
インストールが成功すると Open
ボタンが表示されます。ボタンをクリックして、拡張機能を確認してみます。
Snyk の拡張機能では、ローカルに保存された Docker イメージを Snyk Container で脆弱性スキャンする機能が提供されていました。
イメージスキャン
今回は試しに、 Nginx のイメージスキャンを行ってみようと思います。
Nginx イメージを選択して、Test image
をクリックするとスキャンが開始されます。数十秒ほどでテスト結果が表示されました。
重要度順に脆弱性と依存関係がリストアップされ、より詳しい情報のリンクが記載されていますね。
docker scan との違い
Docker には、Docker イメージの脆弱性スキャンを行う docker scan
コマンドが提供されています。
コマンド実態は Snyk Container が利用されているのですがテスト結果に差異がないか確認してみます。
詳しくは以下をご覧ください。
結論、同じテスト結果が表示されていました。
GUI なら Docker Extensions 、 CLI なら docker scan
コマンドの使い分けができそうですね。1
docker
$ docker scan nginx
Testing nginx...
✗ Low severity vulnerability found in util-linux/libblkid1
Description: Information Exposure
Info: https://security.snyk.io/vuln/SNYK-DEBIAN11-UTILLINUX-2401081
Introduced through: util-linux/libblkid1@2.36.1-8+deb11u1, e2fsprogs@1.46.2-2, util-linux/libmount1@2.36.1-8+deb11u1, util-linux/mount@2.36.1-8+deb11u1, nginx-module-image-filter@1.23.3-1~bullseye, util-linux@2.36.1-8+deb11u1, util-linux/bsdutils@1:2.36.1-8+deb11u1, util-linux/libsmartcols1@2.36.1-8+deb11u1
From: util-linux/libblkid1@2.36.1-8+deb11u1
From: e2fsprogs@1.46.2-2 > util-linux/libblkid1@2.36.1-8+deb11u1
From: util-linux/libmount1@2.36.1-8+deb11u1 > util-linux/libblkid1@2.36.1-8+deb11u1
and 15 more...
✗ Low severity vulnerability found in tiff/libtiff5
Description: Out-of-bounds Read
Info: https://security.snyk.io/vuln/SNYK-DEBIAN11-TIFF-2434417
Introduced through: nginx-module-image-filter@1.23.3-1~bullseye
From: nginx-module-image-filter@1.23.3-1~bullseye > libgd2/libgd3@2.3.0-2 > tiff/libtiff5@4.2.0-1+deb11u1
✗ Low severity vulnerability found in tiff/libtiff5
Description: Resource Exhaustion
Info: https://security.snyk.io/vuln/SNYK-DEBIAN11-TIFF-2440571
Introduced through: nginx-module-image-filter@1.23.3-1~bullseye
From: nginx-module-image-filter@1.23.3-1~bullseye > libgd2/libgd3@2.3.0-2 > tiff/libtiff5@4.2.0-1+deb11u1
------------ 抜粋 ------------
Organization: XXXXXXXXXXXXXXXXXXXXXX
Package manager: deb
Project name: docker-image|nginx
Docker image: nginx
Platform: linux/amd64
Base image: nginx:1.23.3
Licenses: enabled
Tested 143 dependencies for known issues, found 98 issues.
According to our scan, you are currently using the most secure version of the selected base image
テスト回数について
Snyk Container はフリープランの場合、月100テストまでの回数制限があるので注意です。
まとめ
以上、「Docker Extensions から Snyk Container を利用して Docker イメージの脆弱性スキャンを行う」でした!
コンテナイメージの脆弱性スキャンをより簡単に行える機能として、気軽にご利用いただけますと幸いです。
以上、AWS事業本部コンサルティング部のたかくに(@takakuni_)でした!
注釈
-
Snyk でも同様に GUI ならコンソール、 CLI なら
snyk container
コマンドが利用できます。 ↩