web-dev-qa-db-ja.com

ローカルホストでDocker for Windowsデーモンを公開するリスクは何ですか?

Docker for Windowsを実行している開発者は、Docker設定> [全般]タブで[TLSを使用せずにtcp:// localhost:2375でデーモンを公開する]オプションを有効にする必要があります。 enter image description here

警告があります:

TCP TLSなしでデーモンを公開すると、レガシークライアントがデーモンに接続するのに役立ちます。また、リモートコード実行攻撃に対して脆弱になります。注意して使用してください。

私の質問は:

  • Localhostでdockerデーモンを有効にするリスクは何ですか?
  • 緩和策はありますか?
3
Ortomala Lokni

認証なしでDockerデーモンを公開する場合(これはオプションです)、HTTPリクエストをlocalhost:2375はホスト上でDockerコマンドを実行できるようになります(DockerデーモンはREST APIなのでHTTPコマンドを受け取ります)

問題の設定によっては、その結果が悪い場合があります。たとえば、攻撃者はコンテナを起動し、コンテナが制御するシステムに接続して内部ネットワークへのアクセスを許可する可能性があります。

攻撃者はまた、基礎となるホストからディレクトリにマップするコンテナーを開始し、それらが制御するコンテナーに侵入する可能性があります。

これらのシナリオの可能性は、実際の脅威モデルによって異なりますが、それは起こり得ることです。

緩和策については、TLS証明書を介したクライアント証明書認証を使用するようにDocker Daemonを設定できます。その設定に関する詳細情報 here

もちろん、開発者が使用する必要のあるツールには機能しない可能性があります。

代替オプション(Windowsコンテナーではなく、開発中のLinuxコンテナーであると想定)は、Visual Studio Codeの機能を使用して、リモートDockerインスタンスに対して開発することができます(詳細 こちら

3
Rory McCune