Skip to main content

SnykでARMコンテナイメージをスキャン

container scans

2020年10月1日

0 分で読めます

ARMベースのシステムは、エッジやIoTの用途に加え、AWS Graviton Amazon EC2インスタンスのようなサーバー用途でも、開発者の間でますます人気が高まっています。Dockerは、複数のアーキテクチャ向けにコンテナイメージをビルドするためのツールセットを、さらに柔軟にしています。しかし、そうしたイメージが安全かどうかは、どうすれば確認できるでしょうか?

ARM開発者がコンテナを安全に保護できるよう支援

Snykでは現在、ARM(または実際には他のあらゆるプラットフォーム)向けにビルドされたDockerイメージをスキャンできます。対象のタグがARM専用にビルドされている場合は、通常どおりSnyk CLIでイメージを指定するだけです。のみ

snyk container test arm64v8/debian

一部のDockerイメージは、マニフェストリストを使って複数のプラットフォームに対応しています。Dockerでのビルドと公開方法について詳しくご覧ください。

最新のDebianイメージタグを掲載したDocker Hubのページ。Linuxのオペレーティングシステムとアーキテクチャ、および圧縮後のサイズが一覧表示されています。
Docker Hubでタグのオペレーティングシステムとアーキテクチャを表示

上記のようなイメージの場合は、--platformフラグを使って、テストするプラットフォームを明示的に指定できます。Docker Hubのdebianイメージをテストする例を紹介します。

$ snyk container test --platform=linux/arm64 debian
…
✗ Medium severity vulnerability found in gcc-8/libstdc++6
  Description: Information Exposure
  Info: https://snyk.io/vuln/SNYK-DEBIAN10-GCC8-347558
  Introduced through: gcc-8/libstdc++6@8.3.0-6, apt@1.8.2.1, meta-common-packages@meta
  From: gcc-8/libstdc++6@8.3.0-6
  From: apt@1.8.2.1 > gcc-8/libstdc++6@8.3.0-6
  From: apt@1.8.2.1 > apt/libapt-pkg5.0@1.8.2.1 > gcc-8/libstdc++6@8.3.0-6
  and 2 more...

✗ High severity vulnerability found in gnutls28/libgnutls30
  Description: Out-of-bounds Write
  Info: https://snyk.io/vuln/SNYK-DEBIAN10-GNUTLS28-609778
  Introduced through: gnutls28/libgnutls30@3.6.7-4+deb10u5, apt@1.8.2.1
  From: gnutls28/libgnutls30@3.6.7-4+deb10u5
  From: apt@1.8.2.1 > gnutls28/libgnutls30@3.6.7-4+deb10u5
Organization:      garethr
Package manager:   deb
Project name:      docker-image|debian
Docker image:      debian
Licenses:          enabled

Tested 92 dependencies for known issues, found 54 issues.

Snykでプラットフォーム情報を活用する

ACR、Docker Hub、ECR、GCRなどのコンテナレジストリからARMイメージをインポートする場合や、snyk container monitorを使ってイメージをSnykの監視対象に追加する場合、Snykのプロジェクトページでもプラットフォーム情報を確認できます。プロジェクトのメタデータにプラットフォームが表示されます。

Docker Hubをソース、Debian 10を対象OS、Linux/ARM64をプラットフォームとして表示した、ソフトウェアプロジェクトの詳細ページのスクリーンショット

お客様はSnyk APIでもプラットフォーム情報を利用できます。コンテナイメージのプロジェクトを取得すると、プラットフォームを含むimagePlatform属性を確認できます。

Dockerプロジェクトのイメージプラットフォーム欄に「linux/arm64」と表示されたスクリーンショット。

次のステップ

Snykでは、今後数年間で開発者がARMプラットフォームをどのように活用していくのかに注目しています。また、開発者が選択したプラットフォームにかかわらず、安全なDockerイメージをビルドできるよう、さらなる支援方法を探っていきます。

Snyk CLIの最新バージョンをダウンロードして、上記の新しいARM機能をお試しください。

CTFを始めよう

オンデマンドのバーチャル入門ワークショップで、CTFチャレンジの解き方を学びましょう。