Skip to main content

Docker Hub認証:2021年こそDocker Hubで2FAを有効にする年?

著者
Blog Headers

2021年3月15日

0 分で読めます

これまでの講演「侵入してコンテナを守る」での聴衆の反応や、最近のTwitterでの反応を見る限り、Docker Hubに比較的最近追加された多要素認証機能を知っている人は多くないようです。

2019年10月、DockerはDocker Hubの認証メカニズムを強化するため、2要素認証のベータ版をリリースしました(2FAとも呼ばれます)。この新機能により、Dockerコンテナのイメージやアプリケーションを扱う主要かつ最大規模のハブにおける、ソフトウェアサプライチェーンのセキュリティがさらに強化されます。

講演では、npmレジストリとDocker Hubレジストリにおけるメンテナーや開発者向けの2FAの提供状況についても取り上げました。Docker Hubのアカウントで2FAを有効にしている人が一人もいない、というスライドを見た聴衆の反応を確かめたかったのです。

「エコシステムにおける2FAの状況」と題されたスライド。クジラのアイコンとともに、2019年10月1日時点で全ユーザーの約0%と記載されている。

この数字の背景には何があるのでしょうか?

簡単に言えば、2019年10月までDocker Hubの認証では多要素認証がサポートされていませんでした。他のレジストリと比較すると、2020年1月に共有されたnpmjsレジストリのデータでは、2FAを有効にしていた開発者は全体のわずか9.27%でした。npmjsで2FAが導入されたのは2017年後半です。開発者のソフトウェアサプライチェーンセキュリティへの対応は遅れています。

Docker Hubが2FAを導入

Docker Hubはコンテナイメージの主要レジストリとして、数百万ものDockerイメージをホストしています。ソフトウェアサプライチェーンのセキュリティを真剣に考える必要があるのは明らかです。

DockerチームがGitHubリポジトリで、Docker Hub認証に2FAを導入する計画を発表したところ、コミュニティから歓迎されました。

「6月末からの展開を予定しています」というコメントと、親指を立てた手、笑顔、お祝い、ロケットのリアクション。

2019年10月、Docker Hubの2FAサポートのベータ版が正式に発表され、ユーザーが有効にできるようになりました。

Docker Hubの2要素認証を有効にする

以前、実践すべきDockerイメージのセキュリティに関する10のベストプラクティスをご紹介しました。Docker Hub認証で2FAがサポートされたことは、Dockerイメージとソフトウェアサプライチェーンのセキュリティにおける大きな前進です。プロジェクトのためにも、ぜひ有効にしましょう。攻撃者がアカウントを侵害し、悪意のあるDockerコンテナイメージをコンテナレジストリに混入させるリスクを軽減できます。

Dockerで2要素認証を有効にする方法

2要素認証を有効にするには、Docker Hubのアカウントのセキュリティ設定に移動し、2要素認証を有効にする手順に従ってください。設定が完了したら、ぜひそのことを共有して、周りにも広めましょう!

2要素認証の設定画面。2FAが有効になっていること、リカバリーコードと無効化のボタン、新しいコードを生成するオプションが表示されています。

コンテナイメージのセキュリティ

Docker Hubの2FAだけでセキュリティは十分?

イメージリポジトリへのアクセスを保護するのは大切です。次は、イメージそのものについて考えてみましょう。Snyk Container Scannerを使えば、開発者はデスクトップからイメージをスキャンしてCVEを検出できます。開発者ファーストのセキュリティを実現する、画期的なツールです。Snyk CLIをインストールし、次の簡単なコマンドを実行して試してみてください(node:latestをお使いのイメージタグに置き換えてください)。

$ snyk container test node:latest

...

Project name:      docker-image|node
Docker image:      node:latest
Platform:          linux/amd64
Base image:        node:19.8.1-bullseye
Licenses:          enabled

Tested 410 dependencies for known issues, found 211 issues.

Base Image            Vulnerabilities  Severity
node:19.8.1-bullseye  211              5 critical, 5 high, 2 medium, 199 low

Recommendations for base image upgrade:

Alternative image types
Base Image               Vulnerabilities  Severity
node:19.8-bullseye-slim  43               0 critical, 0 high, 0 medium, 43 low
node:buster-slim         60               0 critical, 3 high, 1 medium, 56 low
node:19.8-buster         387              2 critical, 12 high, 24 medium, 349 low

イメージのDockerfileが手元にある場合は、上記のコマンドに--file Dockerfileを追加すると、さらに詳しい情報を確認できます。高度なコマンドラインの使い方については、Snyk Container CLIのドキュメントサイトをご覧ください。

Snyk ContainerはDocker Hubのリポジトリと直接連携し、そこにプッシュされたセキュリティ上の脆弱性を包括的に可視化します。また、今後イメージに脆弱性が見つかった場合も監視して通知します。新しいイメージを変更またはプッシュしていない場合でも通知を受け取れます。

Snykはオープンソース向けに無料で利用でき、プライベートプロジェクト向けの無料プランも提供しています。ぜひSnykに登録して、Dockerイメージをテストし、問題を修正してみてください。もちろん、そこで終わらせず、アプリケーションプロジェクトもインポートしましょう!

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

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

続けて取り組みたい、Dockerのセキュリティ対策: