Tenable ブログ
ブログ通知を受信するruncの脆弱性(CVE-2019-5736)、悪質なコンテナによるホスト上のruncバイナリの上書きを可能にする
CVE-2019-5736、特定のコンテナ設定でホスト上のruncバイナリの上書きを可能にする
背景
最近、コンテナプラットフォームDockerおよびKubernetesで広く使用されているランタイムであるruncの新しい脆弱性(CVE-2019-5736) が 発表されました 。 この脆弱性に関する情報には、悪意のあるコンテナがサンドボックスを回避し、ホスト上で任意のコマンドを実行する方法が詳述されています。 ただし、この攻撃にはいくつかの制限あり、適切なセキュリティプラクティスに従う特定の構成では悪用されません。
分析
この脆弱性を悪用するためには、悪意のあるコンテナをデプロイする必要があり、uid 0をそのコンテナにマッピングする必要があります。Dockerは、namespaceの設定に関する文書をリリースしています。これに従って適切に設定することにより、脆弱なホストが攻撃されることを回避できます。その後、悪意のあるコンテナは、rootとしてコマンドを実行するか、ホストを悪用するために他の無関係なコマンドをrootとして実行している管理者にピギーバックします。
多くの組織では、ビジネスニーズを解決するためにサードパーティ製のあらかじめパッケージ化されたコンテナが使用されています。攻撃者はこれらのあらかじめパッケージ化されたコンテナの1つを悪意のあるコードで侵害するか、または他の必要な企業機能を果たすように宣伝する悪意のあるコンテナを作成する可能性があります。外部の攻撃者は、この方法を利用して不正なコンテナを企業環境に導入する可能性が最も高いと考えられます。
ソリューション
Red Hat、Debian、Amazon Web Services (AWS)、Google Cloud Platform (GCP)、Docker、NVIDIA、および、Kubernetesは、この脆弱性、および、この脆弱性に対するセキュリティ更新プログラムの入手可能性に関する情報を含むブログまたはセキュリティアドバイザリを公開しています。開発環境でコンテナを構築し、実稼働のために導入する前にスキャンして保護することで、悪意のあるイメージを誤って導入する可能性を減らすことができます。また、リスクを最小限に抑えるために、rootとして実行されているイメージの使用を可能な限り避けてください。
研究者による開示には以下の緩和策が含まれています。
- SELinuxをコンテナに対して強制モードに設定すると、ホストのruncバイナリを上書きできなくなります(注:研究者によるとFedoraベースのホストではこの対策は無効です)。
- ホストのruncバイナリが読み取り専用に設定されている場合、悪意のあるコンテナは、それを上書きして悪用することはできません。
- コンテナ内の権限の低いユーザー、またはそのユーザーにマップされたuid 0を持つ新しいユーザーnamespaceは、ホスト上のruncバイナリーへの書き込みアクセスを削除します。
影響を受けているシステムの特定
この脆弱性を特定するための Nessus プラグイン一覧は、リリースされる度にこちらに表示されます。
詳細情報
- CVE-2019-5736
- Dragon Sectorの開示
- Docker Namespaceドキュメンテーション
- Linux Namespaceに関する説明
- Red Hat更新情報
- Debian更新情報
- Amazon/AWS更新情報
- Google更新情報
- Docker更新情報
- Nvidia更新情報
- Kubernetes更新情報
Tenable コミュニティの Tenable セキュリティレスポンスチームに参加してみませんか。
現代のアタックサーフェスを総合的に管理する Cyber Exposure Platform を初めて提供した Tenable について詳細情報をご覧ください。
今すぐ Tenable.io Vulnerability Management の60日間無料トライアルをお試しください。
関連記事
- Vulnerability Management