[小ネタ] Docker Extensions から Snyk Container を利用して Docker イメージの脆弱性スキャンを行う
こんにちは!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 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
コマンドが利用できます。 ↩