重大な欠陥により、悪意のある攻撃者は、Docker ユーザを騙して悪意のあるコンテナを実行させ、単純なコピー コマンドを実行するのを待つことで、Docker ユーザのコンピュータを乗っ取る可能性があります。
パロアルトネットワークスのユニット42のバグハンターによると、CVE-2019-14271と指定されたこの脆弱性は、2月にruncホールが公表されて以来、Dockerで発見された脆弱性の中で最も深刻なものだという。
本質的に、これは開発者や Docker コンテナを使用するその他の人々がパニックになるのではなく認識しておく必要があることです。ネットワーク経由などでリモートから悪用されることはありません。
代わりに、ハッカーは何らかの方法でプログラマーや他の Docker ユーザーを騙して悪意のあるコンテナをダウンロードして実行させ、docker cp
そのコンテナからファイルをコピーするコマンドを使用するときに、ホスト マシン上でルートとしてコードを実行する必要があります。
あるいは、サイバー犯罪者がコンテナに侵入し、改ざんして、ユーザーがコンテナを実行した際に上記の操作を実行する可能性docker cp
もあります。コンテナはデフォルトのルートユーザーとして実行する必要があります。
難解であることは確かだ。興味深いことでもある。なぜならchrootや共有ライブラリなどが関係するからだ。
この欠陥は Docker 19.03.1 で修正されており、このバージョンにアップグレードする必要がありますが、Palo Alto は水曜日に、この脆弱性を悪用する方法に関する詳細を明らかにしました。
ロジャー、それについて
この脆弱性自体は、Dockerがcp copyコマンドを実行する方法に起因しています。コンテナからファイルをコピーする際、Dockerはホストシステム上とコンテナ内のchroot環境でdocker-tarというプロセスを実行します。chroot環境は、この操作によってシンボリックリンク経由でホスト上のデータが予期せず上書きされることを防ぎます。
「chroot化は主にシンボリックリンクの問題を回避するために行われます。シンボリックリンクの問題は、ホストプロセスがコンテナ上のファイルにアクセスしようとする際に発生する可能性があります」と、Unit 42のシニアリサーチャーであるYuval Avrahami氏は説明します。「もしこれらのファイルの1つがシンボリックリンクであれば、意図せずホストルートで解決されてしまう可能性があります。」
しかし、docker-tarは共有ライブラリlibnss_*.soをロードしますが、chroot化により、本来であればホストシステムからではなくコンテナからロードされることになります。そのため、悪意のあるコンテナには、ホスト上でroot権限で実行されるdocker-tarによってロード・実行される、特別に細工されたlibnss_*.soライブラリが含まれている可能性があります。こうして、コンテナはホストマシン上でスパイウェアや暗号マイニングソフトウェアのインストールなどを実行できるようになります。
Dockerルームの雑談:コンテナ新興企業のエンタープライズ部門がミランティスに売却、CEOが退任、Swarmサポートも廃止へ
続きを読む
「通常、ライブラリはホストファイルシステムからロードされますが、docker-tarはコンテナにchrootするため、コンテナファイルシステムからライブラリをロードします」とAvrahami氏は述べています。「つまり、docker-tarはコンテナによって生成され制御されるコードをロードして実行するのです。」
明確に言うと、docker-tarはコンテナファイルシステムにchrootされている以外、コンテナ化されていません。ホストの名前空間で実行され、すべてのルート権限を持ち、cgroupsやseccompによる制限を受けません。そのため、docker-tarにコードを挿入することで、悪意のあるコンテナはホストへの完全なルートアクセスを取得できます。
Unit 42によると、この脆弱性を解消するために、Dockerの最新アップデートでは、コンテナのlibnssではなく独自のlibnssバージョンをロードするようになりました。これにより、信頼できないライブラリがdocker-tarプロセスで使用されるのを防ぎます。
開発者や管理者は Docker を最新バージョンにアップデートすることでこの特定の攻撃から身を守ることができますが、Avrahami 氏は信頼できないコンテナを起動しないこと、コンテナをルート ユーザーとして実行しないことで同様の攻撃を防ぐこともアドバイスしています。
「root権限が厳密に必要でない場合は、コンテナを非rootユーザーとして実行することを強くお勧めします」と研究者は説明した。「これにより、コンテナのセキュリティがさらに強化され、コンテナエンジンやカーネルに潜む多くの脆弱性を攻撃者が悪用するのを防ぐことができます。」®