Skip to main content

Dockerfileのプルリクエストでコンテナセキュリティを自動化

著者
Headshot of Danielle Inbar

Danielle Inbar

Container scanning

2021年3月16日

0 分で読めます

ソースコード管理ツールとの連携や、問題を修正するプルリクエストの発行は、長年にわたり、アプリケーションの依存関係を修正するお客様をSnykが支援してきた取り組みの一つです。今度は、同じようにコンテナセキュリティの課題にも対応できるよう支援します。Snyk Containerを拡張し、Dockerfileの問題を自動修正して、常に最新のベースイメージを使用できるようになりました。

脆弱性の件数と深刻度別に現在のベースイメージと代替イメージを比較するダッシュボード。「修正PRを作成」ボタンを表示。

Snykでは最近、Dockerfileを重視した取り組みを始めました。GitリポジトリからDockerfileを自動検出し、ベースイメージの脆弱性を明らかにするとともに、セキュリティ上の問題を減らすためにアップグレードできるベースイメージを提案します。次の段階として、修正も自動で行えるようにします。本日より、代替となる脆弱性の少ないベースイメージをDockerfileで使用するために必要な変更を含むプルリクエストを、自動または手動で作成できるようになりました。この自動化により、コンテナの問題を早期に知らせるだけでなく、簡単かつ迅速に修正できるようになり、多数のコンテナ脆弱性への対応におけるチームの取り組みをさらに後押しします。

node:bookworm-slimへのアップグレードを推奨するGitHubのプルリクエスト。重大度の高い脆弱性を一覧にした表が表示されている。

コンテナ向けのコードレベルのセキュリティ修正を自動化

これまでSnykは、任意で適用できるベースイメージを推奨していました。以下の例では、node:10.4.0をベースイメージとして使用しています。Snyk Containerによると、このイメージには脆弱性が956件あり、そのうち453件は深刻度が高いものです(この記事の執筆時点)。セキュリティチームが収集したデータに基づき、このイメージのセキュリティリスクを抑えるため、別のベースイメージを推奨します。この例では、深刻度の高い脆弱性が64件のみのnode:10.23.2へのマイナーアップグレードが選択肢の一つです。

新しい修正用プルリクエストでは、必要に応じてほかのアップグレード方法も選択できます。また、マイナーアップグレードについては、修正用プルリクエストを自動作成することもできます。

新しいプロセスでは、Dockerfileを検出し、以下のロジックに沿ってベースイメージを推奨します。

  • マイナーアップグレード - フレームワークのバージョン(この例ではNode)を大きく変更しない、最も安全で最適なアップグレード

  • メジャーアップグレード - より多くの脆弱性を減らせるメジャーバージョンアップ。ただし、メジャーバージョンの変更により、アプリケーションとの互換性に問題が生じるリスクが高まる可能性があります

  • 代替アップグレード - 現在のベースイメージを置き換える、実用的な代替イメージの選択肢です。通常はより軽量なイメージで、脆弱性をさらに減らせますが、軽量化されているため、使用にあたって追加の手順が必要になる場合があります

自動プルリクエストは、最新のマイナーアップグレード版のベースイメージに対してのみ作成されるため、内容を確認してマージできます。手動でプルリクエストを作成する場合は、上記の推奨イメージから任意の代替ベースイメージを選んで更新できます。

一覧表示された脆弱性に対処するため、Dockerfileをnode:10からnode:debian-buster-slimに変更するGitHubプルリクエスト。

利用可能なプラン

これらの修正用プルリクエスト機能は、無料アカウントを含むすべてのプランのSnyk Containerユーザーに、すでにご利用いただけます。

Snyk Containerは、Docker Official Imagesに対してベースイメージを推奨し、自動プルリクエストを作成します。Docker Hub上の厳選されたDockerリポジトリ群であるDocker Official Imagesは、幅広い人気のプログラミング言語ランタイム、データストア、その他のサービスを網羅し、多くのコンテナユーザーが利用する基本的なベースイメージを提供します。Docker Official Imagesプログラムでは、専任チームが公式イメージのすべてのコンテンツを審査、公開しており、セキュリティ更新が速やかに適用されるよう管理しています。Docker Hubで特に人気の高いイメージであるため、これは非常に重要です。

今後はDocker Official Images以外にも対象を広げる予定です。対応してほしい上流イメージのソースや、社内のカスタムイメージをどのように管理しているか(そのようなプロセスがある場合)について、ぜひご意見をお聞かせください。この新機能はSnykのWeb UIとAPIから利用でき、簡単に設定できます。Snykでは、以下を含むすべてのGitベースのリポジトリ管理ツールに対応しています。

  • GitHub

  • GitLab

  • Bitbucket Server

  • Bitbucket Cloud

  • GitHub Enterprise Server

詳細については、ドキュメントをご覧ください。

ぜひご意見をお聞かせください

これで、Dockerfileを最新のベースイメージに保つことで、Snykにコンテナセキュリティの問題を修正させることができます。あとはプルリクエストをマージするだけで、安全を保てます。

皆さまのご意見をもとに、より良いエクスペリエンスを提供できるよう改善を続けていきます。ご意見や、対応してほしい具体的なユースケースがありましたら、ぜひお聞かせください。

開発者ファーストのコンテナセキュリティ

Snykは、コンテナイメージとKubernetesワークロードの脆弱性を検出し、自動的に修正します。