Tenable ブログ
ブログ通知を受信するCVE-2019-14271: Docker Copy (docker cp) の脆弱性を悪用する概念実証が公開される
人気のコンテナプラットフォームであるDockerの脆弱性を悪用する概念実証(PoC)コードが公開されました。
背景
11月19日、Palo Alto Networksの調査チームであるUnit 42の研究者らは、幅広く使用されているコンテナプラットフォームであるDockerの深刻な脆弱性の分析を公開しました。
分析
CVE-2019-14271は、コンテナ間でファイルをコピーするために使用されるDockerコピー(docker cp)コマンドの重大なコードインジェクションの欠陥で、この脆弱性を突くとは、攻撃者は完全にコンテナを脱出する可能性があります。この脆弱性を悪用するには、攻撃者は悪意のあるDockerコンテナイメージにエクスプロイトコードを含めるか、別の脆弱性を介して、または以前に漏洩したDockerシークレットを使用して、コンテナを侵害する必要があります。
この脆弱性は2019年7月に修正されましたが、Unit 42の研究者らは11月19日にこの脆弱性の分析を公開しました。研究者らによると、docker cpの脆弱性は、ヘルパープロセス(docker-tar)がホストファイルシステムからではなくコンテナファイルシステムから特定のライブラリを不適切にロードするために存在します。具体的に言うと、docker-tarは、libnssで始まるファイル名で識別されるネームサービススイッチ(NSS)ライブラリをロードするため、攻撃者は、docker-tarをターゲットにし、ホストファイルシステムにおける完全なルートアクセスを取得できます。
CVE-2019-14271の悪用を実証するため、研究者らは独自のバージョンのNSSライブラリ(libnss_files.so)を作成し、run_at_link()という関数を追加しました。この関数は、最初にdocker-tarによって呼び出されたことを確認するためのチェックを実行し、その後、悪意のあるlibnss_files.soファイルを正当なファイルに置き換えるステップが実行されます。最後に、NSSライブラリは、指定されたパス(/ evil)にメッセージを書き込む実行可能ファイルを要求し、/host_fsパスでホストファイルシステムをコンテナにマウントします。このエクスプロイトのビデオデモは、Palo Alto Networksのブログで公開されています。
概念実証
Unit 42の研究者らは、ブログで悪意のあるNSSライブラリファイル、libnss_files.soを使用する概念実証を公開しています。
ソリューション
前述したように、Dockerは7月にDockerバージョン19.03.1でこの脆弱性を修正しています。Dockerユーザーには、早急に更新することをお勧めします。
現時点で修正されたバージョンへの更新が不可能な場合、ユーザーは検証または署名済みの信頼できるDockerコンテナイメージのみを使用することを強くお勧めします。また、この脆弱性に対する緩和策としてコンテナを起動するときに非rootユーザーで実行することを検討してください。
影響を受けているシステムの特定
この脆弱性を識別するための Tenable プラグインのリストは、こちらからご覧いただけます。
詳細情報
- CVE-2019-14271に関するPalo Alto Networksのブログ
- バージョン19.03.1に関するDockerリリースノート
- CVE-2019-14271用Debianセキュリティトラッカー
- CVE-2019-14271に関するSUSEアドバイザリ
Tenable コミュニティの Tenable セキュリティレスポンスチームに参加してみませんか。
現代のアタックサーフェスを総合的に管理する Cyber Exposure Platform を初めて提供した Tenable について詳細情報をご覧ください。
今すぐ Tenable.io Vulnerability Management の60日間無料トライアルをお試しください。
関連記事
- Container security
- Vulnerability Management