Dockerセキュリティをシフトレフト
William Henry
2019年4月17日
0 分で読めますDockerセキュリティレポートへようこそ:Dockerセキュリティをシフトレフト。
このレポートは、複数の記事で構成されています。
Dockerセキュリティをシフトレフト
この情報をすべて1か所にまとめた、手作りのPDFレポートもダウンロードいただけます。
Dockerの脆弱性は広く存在する
ダウンロード数がそれぞれ1,000万回を超える公式Dockerイメージ上位10個には、少なくとも30件の脆弱性が含まれています。
最も人気のある無料の認定Dockerイメージ上位10個のうち、50%に既知の脆弱性があります。
Dockerセキュリティの責任の所在が明確でない
68%がコンテナセキュリティの責任は開発者が担うべきだと考えており、次いで運用担当者(39%)となっています。
開発者の80%は、開発中にDockerイメージをテストしていないと回答しています。
開発者の50%は、Dockerイメージの脆弱性をまったくスキャンしていません。
簡単な修正でもセキュリティに大きな効果
脆弱性が含まれるDockerイメージの20%は、イメージを再ビルドするだけで解決できた可能性があります。
Dockerイメージの44%には既知の脆弱性があり、より新しく安全なベースイメージが利用可能でした。
開発者の45%は、本番コンテナで新たに公開された脆弱性を一度も発見していません。
改善するための方法:
適切なDockerベースイメージを選ぶ
できるだけ小さなベースイメージを使いましょう。不要なものはパッケージに含めないでください。
事前の修正に役立つアドバイス:Snykなどのツールは、脆弱性が最も少ない推奨イメージへのアップグレードや代替イメージを提示します。
マルチステージビルドを使い、頻繁にビルドしましょう。
マルチステージビルドを使うと、実際に必要な成果物だけをコピーでき、イメージに不要な脆弱性が含まれるのを減らせます。
開発パイプラインの一環として、Dockerイメージを再ビルドしましょう。
Dockerイメージを頻繁にスキャンする
開発ワークフローやCI/CDパイプラインの一環として、Dockerイメージをスキャンしましょう。
事前の修正に役立つアドバイス:Snykなどのツールは、どのイメージレイヤーが脆弱性の原因となっているかを特定し、修正方法を提示します。
ベースイメージとパッケージを自動スキャンして、本番環境のDockerコンテナを監視しましょう。
このレポートの概要
今年、Dockerは誕生から6年を迎えました。この6年間で、Dockerをはじめとするコンテナの導入は大きく進みました。現在、開発者の57%が日常業務でコンテナを使っていると回答しています(このセクション後半のグラフをご覧ください)。コンテナ技術の登場により、開発者は革新的なソリューションをより簡単に構築できるようになりました。こうしたオープンソースソリューションの多くは無料で利用できます。現在では大手ソフトウェアベンダーも、Docker Hubなどのパブリックレジストリにビルド済みイメージを公開しており、開発者はそれらをダウンロードして利用できます。
2015年、Docker、Red Hat、CoreOS、IBM、Googleをはじめとする業界リーダーの幅広い連合が、ソフトウェアコンテナの共通規格に取り組み、Open Container Initiative(OCI)を設立しました。この取り組みは、オープンソースの技術コミュニティを運営することを目的に設立されました。また、コンテナベースのソリューション向けに、ベンダー中立でオープンな仕様に準拠した、ポータブルなランタイムの構築も目指しています。
OCI標準の公開後、さまざまなビルド技術やランタイム技術が開発されてきました。そのため、この記事で「Dockerコンテナ」や「Dockerイメージ」と記載している場合も、OCI(Open Container Initiative)標準に準拠した技術がほかにも多数あることをご理解ください。この記事の執筆時点では、Dockerは依然として圧倒的に人気の高いOCIビルドツール兼ランタイムです。Kubernetesの普及とCRI-Oの利用が、この状況を変え始めています。

Dockerコンテナを作成、配布、利用する組織が増えるにつれ、セキュリティ脆弱性のリスクも高まります。Dockerイメージは多くの場合、ほかのイメージをベースに構築されるため、あるイメージに脆弱性があると、それを利用するすべてのイメージにも脆弱性が存在します。Dockerの普及には代償が伴います。1つの脆弱性が広く拡散し、大きな影響を及ぼす可能性があるのです。
Dockerの状況と、それに伴うセキュリティリスクやベストプラクティスをより深く理解するため、オープンソースセキュリティの現状レポートの生データを詳しく分析しました。このレポートでは、DockerコンテナとDockerイメージに共通するセキュリティ上の問題と、セキュリティを強化するために実施できる対策を紹介します。
Dockerを取り巻く状況
現在、Dockerは広く利用されており、Dockerイメージが必要な場合はDocker Hubが標準的な入手先となっています。Docker Hubは、コンテナイメージを扱う世界最大のライブラリであり、コミュニティです。このブログの執筆時点で、Docker Hubにはすでに200万件を超える(2,085,422件の)イメージが公開され、すぐにダウンロードして利用できました。その数は日々増え続けています。
Docker Hubには誰でもイメージを公開できますが、Docker Hubは一部のイメージをほかより信頼性が高いものとしてラベル付けしています。Dockerは一部のコントリビューターやそのイメージに公式認定や認証を付与していますが、そうしたイメージにも、対処が必要な脆弱性が含まれています。
現在、Docker Hubには次のものが掲載されています。
223件の認証済みパブリッシャーによるイメージ。これらの製品は、商業組織が直接公開・保守しています。
151件の公式イメージ。公式イメージは、Dockerのオープンソースリポジトリや「ドロップイン」ソリューションのリポジトリから厳選されたものです。
40件のDocker認定イメージ。ベストプラクティスへの準拠と、特定の基本テストへの合格が求められます。
公式Dockerイメージの上位10個は、それぞれ1,000万回以上ダウンロードされており、どのイメージにも少なくとも30件の脆弱性があります。
最も人気のある無料のDocker認定イメージ上位10個のうち、半数に既知の脆弱性があります。調査したあるイメージには、既知の脆弱性が160件近く含まれていました。
451 Researchによると、アプリケーションコンテナ技術の導入は著しいペースで拡大しており、2020年にはさらに40%成長すると予測されています。
