Skip to main content

Gitから直接Dockerfileの脆弱性を検出

著者
Headshot of Danielle Inbar

Danielle Inbar

2020年11月12日

0 分で読めます

Snyk Containerの最新機能として、GitリポジトリからDockerfileを直接検出できるようになりました。これにより、セキュリティを開発の早い段階から確保できます。

この新機能により、イメージをビルドする前にDockerfileを簡単かつ早期にスキャンできるようになりました。セキュリティ対策を開発の早い段階に移し、ベースイメージの脆弱性を明らかにすることで、プロジェクトの開始に最適なベースイメージを選べます。

ここ数年でコンテナの利用が大幅に増加し、それに伴ってコンテナセキュリティの重要性も高まっています。まずは共通認識を持っていただくため、背景をご説明します。DockerはDockerfileの指示を読み取って、イメージを自動的にビルドできます。Dockerfileは、イメージのセットアップに必要な一連のコマンドを記述したテキストファイルです。ビルドされたイメージは、コンテナとして実行できます。

Dockerfileは強力なツールです。シンプルで分かりやすく、特別な前提条件がなく、どこでも利用できます。単なるテキストファイルなので、あらゆる場所で使われ、簡単に共有できます。これが、Dockerが開発者にとって非常に便利な理由の一つです。しかし、古かったり脆弱性が多数含まれていたりするベースイメージの上に構築すると、後から修正する際にアプリケーションが壊れる可能性があり、問題の解消が難しくなることがあります。

Dockerfileを詳しく見る

ソースコードリポジトリからDockerfileを自動検出する機能は、開発者がコンテナセキュリティをより簡単に実現できるようにするという当社の目標に沿ったものであり、DockerfileをSnykの主要な対象として扱えるようにします。これまでは、スキャン済みのイメージにDockerfileを手動で関連付けることができましたが、そのためにはまずイメージをビルドし、その後でDockerfileを関連付けてセキュリティ上の問題を確認する必要がありました。新機能ではこの2つを切り離し、より早い段階でDockerfileの分析結果を確認できるようになります。

新機能を使うには、GitリポジトリをSnykにインポートするだけです。Dockerfileが自動的に検出され、ベースイメージのセキュリティ上の問題をより詳しく確認できます。下の画像は、GitHubリポジトリからインポートしたDockerfileをスキャンした結果です。Dockerfileから親イメージのnode:10.8.0-jessieを特定し、そのベースイメージに含まれる内容や脆弱性について、悪用の成熟度などの関連情報も確認できます。

ベースイメージのアップグレードに関する推奨事項、脆弱性の件数、深刻度、問題の詳細を表示するSnykのDockerfileセキュリティスキャン
SnykでDockerfileの脆弱性を検出

ベースイメージを常に最新の状態に保つ

ベースイメージを常に最新の状態に保つのは簡単ではありませんが、ご安心ください。今回、それがずっと簡単になりました。Dockerfileが検出されると、使用されているベースイメージを確認します。脆弱性を明らかにするだけでなく、ニーズに合った、より脆弱性の少ないベースイメージがほかにないかもSnykがチェックします。そして、脆弱性への露出を減らし、ベースイメージを最新の状態に保てるよう、代替案を推奨します。以下の例をご覧ください。

ベースイメージのアップグレードに関する推奨事項を示す表。脆弱性、重大度、プルリクエストを作成するオプションが表示されています。

Dockerfileとイメージの関連付け

この新機能には、Dockerfileの問題がプロジェクト全体に与える影響を把握するための独自機能がいくつかあります。重要な機能の一つが、Dockerfileと、そこからビルドされたすべてのコンテナイメージを関連付ける機能です。これにより、実行中のアプリケーションへのセキュリティ上の影響を把握し、Dockerfileのベースイメージを更新する場合に、どのイメージのセキュリティを強化できるかを確認できます。また、イメージ同士の関係や、ビルドに使用されたコマンド一式を論理的に整理するのにも役立ちます。Dockerfileとそこから作成されたイメージの関連付けは、これまで多くのユーザーにとって課題でした。この新機能はその問題を解決し、コンテナの衛生状態を改善します。

リポジトリの詳細、脆弱性、依存関係、ベースイメージ node:10.8.0-jessie、リンクされたイメージ docker.io/python:app を表示するSnykのDockerfileスキャン

まとめ

ここまでご覧いただいたように、Snyk Containerを使えばDockerfileを簡単にスキャンし、問題を検出できます。さらに、ベースイメージの推奨事項を確認して活用すれば、イメージをビルドする前に問題を修正でき、すぐにメリットを得られます。この新機能は本日よりSnykで利用でき、オンプレミスとクラウドの両方を含む、以下のすべてのGitインテグレーションに対応しています。

  • Azure Repos

  • GitHub

  • GitLab

  • Bitbucket Server

  • Bitbucket Cloud

  • GitHub Enterprise Server

詳しくは、ドキュメントをご覧ください。

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

Snykでは、あらゆるインテグレーションの改善に常に取り組んでおり、皆さまからの継続的なフィードバックを大切にしています。ぜひご意見をお聞かせください。また、次に追加してほしい機能があればお知らせください。

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

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