コンプライアンス
コンテナ経由でホストを侵害する「コンテナエスケープ」攻撃を実例で解説
トレンドマイクロは、コンテナに内在する脆弱性を攻撃し弊社が設置したハニーポットのコンテナからホスト側へ脱出しようと試みる攻撃を発見しました。この攻撃はいわゆる「コンテナエスケープ」の攻撃手法となっており、ルート権限のすべてを備えたホストマシン上のPrivileged(特権)コンテナからホスト側に「脱出」できるよう特別に作成されたペイロードが利用されました。
「DX(デジタルトランスフォーメーション)」や「2025年の崖」など新たなデジタル世界への対応と変革の必要性が叫ばれる中、そのシンプルさと柔軟性の高さからマイクロサービスアーキテクチャを採用する企業や組織が増えています。実際、2019年に行われた調査では、大企業のITリーダの89%は「進化し続けるデジタル世界で企業が競争力を維持するためにはマイクロサービスが不可欠」と考えていることが報告されており、今後より多くの開発者がオンプレミスやクラウドサービス内にコンテナを展開することが予想されます。しかしクラウド上のコンテナではセキュリティ管理の不備により重要データが不用意に露出する可能性があり、攻撃者にとって格好の的となる恐れがあります。具体的には露出したRedisインスタンス内に暗号資産採掘ツール(コインマイナー)が展開されたり、Docker Hub上でコミュニティが共有するコンテナイメージを悪用して不正コンテナが展開されたりするなど、設定に不備のあるサービスを狙った攻撃が継続的に確認されています。また別の事例ではコインマイナーが感染したLinuxシステム内に既存する別のコインマイナーを検索して削除し自身の計算能力を最大化させる動きも確認しました。このコインマイナーはDockerやRedisのプラットフォーム内で露出したアプリケーションプログラミングインターフェース(API)を検索していたことから、攻撃者がこれらのプラットフォームに精通していることが示唆されます。
そして今回トレンドマイクロでは、さらに上記とは異なる攻撃手口を確認しました。この攻撃はいわゆる「コンテナエスケープ」の攻撃手法となっており、ルート権限のすべてを備えたホストマシン上のPrivileged(特権)コンテナからホスト側に「脱出」できるよう特別に作成されたペイロードが利用されました。注意すべき点は、Dockerを利用しているからといって、ユーザが使用するコンテナすべてが自動的に特権コンテナとなるわけではないことです。事実、Dockerユーザの多くは特権コンテナを使用していません。これはすなわち、適切なセキュリティを確保する方法を知らずに特権コンテナを使用することはリスクが高いことを示します。
■技術解析
2019年7月、Googleセキュリティチームに所属するFelix Wilhelm氏はcgroup release_agentを利用してDockerの特権コンテナやKubernetesポッドからホスト側に脱出させることがいかに「容易なこと」であるかを紹介する概念実証(PoC)をツイートしました。
さらに、トレンドマイクロは同様の手口を利用してコンテナに内在する脆弱性を攻撃しトレンドマイクロが設置したハニーポットのコンテナからホスト側へ脱出しようと試みる攻撃(図1)を発見しました。
弊社の調査結果から攻撃者の利用端末あるいはボットが構築された送信元端末にはイギリスまたはフランスのIPアドレスが割り当てられていることが判明しました。Dockerが稼働するホスト上で動作する不正コンテナが展開され実行されます。攻撃者が利用した侵入経路はcalm.shというシェルスクリプト(図1)です。感染端末内に侵入後、calm.shはcmdという別のシェルスクリプトをドロップします。さらにcalm.shはELFファイル形式を使用したコインマイナーである偽アプリ「nginx」を呼び出します。nginxは一般的にHTTPサーバを連想させる名前ですが、被害者に正規ソフトウェアと誤認させ不正ファイルと悟られないようにするために攻撃者が意図的に利用したものと推測されます。
トレンドマイクロが設置したハニーポットは、コンテナを攻撃する際に多用されるネットワークスキャナにより捕捉されました。zgrabと呼ばれるスキャナを用いて露出したAPIを持つコンテナをマッピングしたところ、以下のHTTP接続を通じて露出したAPIに不正コンテナが展開されることが明らかとなりました。
図2:露出したAPI上に不正コンテナを展開したHTTP接続
次にcreateコマンドを使用するAPIはレジストリから「gin」というコンテナイメージを取り出しました。デプロイメントパラメータとして用いられるオプションの1つはコンテナエスケープを実行するために必要なPrivilegedが付与されていました。
図3:コンテナイメージ「gin」を取り出すAPIおよびデプロイメントパラメータにPrivilegedが付与されていることを示すコード
なお、これに失敗した場合は特権コンテナを必要としない別の攻撃手口として脆弱なサーバ上でコインマイナーを稼働させようとする動作を確認しました。
上述の通りコインマイナーのバイナリはnginxというELFファイルで不正なコンテナイメージ内に埋め込まれています。このELFファイルは感染したコンテナ内で利用可能なリソースをすべて使用して暗号資産を採掘するために正規サービスに偽装することで密かに動作しようと試みます。このような攻撃手口は別の事例でも確認されています。
■まとめ
攻撃者は人気のあるDevOps技術を標的とし、コンテナやクラウド環境を攻撃するための新たな手法を模索し続けています。
トレンドマイクロが解析した初期サンプルの多くはセキュリティ上の弱点を確認する機能を実装していませんでした。当時攻撃者が行っていたのは、思いつく限りの手口を手当たり次第に実行し、どれが成功するかを極めるというものでした。
しかし現在は巧妙化した手口が確認されています。これらの攻撃手口の一部にはセキュリティ上の弱点を確認する機能が実装されており、仮想化環境における実装の不備を攻撃することで特権コンテナからホスト側に脱出させルート権限の奪取しようと試みるなど、コインマイナーを展開して感染端末内のリソースを盗用し不当に利益を得ようとする手口が見られています。
■被害に遭わないためには
コンテナイメージの安全性を確保するには、コンテナイメージに内在する脆弱性や不正ファイルを確認するためにスキャンを実施することが重要です。セキュリティチームは定期的にスキャンを実施することで、マルウェアや脆弱性を狙う攻撃にいち早く気付くことができ被害を最小限に抑えることができます。
今回の攻撃手口で用いられたnginxバイナリは、トレンドマイクロの脅威インテリジェンスやソリューションにとって既知のサンプルであるため、弊社のウイルス検索エンジンが速やかに検出対応しました。LinuxベースのOS上では上記のような脅威やリスクは無縁であるというのは作り話です。2021年3月3日公開のブログ記事では、Linuxにおける脅威概況について解説しました。企業や組織は運用負荷軽減や多様な働き方の実現に向けて基幹システムの設置場所をオンプレミスからクラウドへと移行しています。移行先としてLinux環境を利用されることも多く、それに伴い攻撃者も有益な攻撃対象としてLinuxに注目しています。
■トレンドマイクロの対策
トレンドマイクロが提供する「Trend Micro Cloud One™」は6つのクラウド向けセキュリティソリューションで構成されたクラウドビルダー向けのセキュリティサービスプラットフォームです。お客様のクラウド移行、クラウドネイティブアプリケーション開発、クラウドによるオペレーショナル・エクセレンスに対する保護を提供します。
「Trend Micro Cloud One™」に含まれる下記2つはコンテナ技術に利用するお客様に有効なセキュリティ対策ソリューションです。
「Trend Micro Cloud One™ Container Security」
コンテナイメージを自動的にスキャンし、利用しようとしているコンテナ自体の安全性を随時確認することで、セキュアなCI/CDパイプラインを実現します。
「Trend Micro Cloud One™ Application Security」
コードの脆弱性、サーバ上のデータ流出、およびその他のアプリケーションレベルの一般的な脆弱性攻撃への保護を提供します。幅広いアーキテクチャとネットワークトポロジに製品を導入できるため、アプリケーションのエンドユーザと機密データを保護できます。主要なポイントでお客さまのフレームワークに自動的に接続し、悪用しようとする試みを検出してハッキングを阻止し、脆弱性を保護します。
この他にも「Trend Micro Cloud One™」には以下ソリューションが含まれます。
- Workload Security:パフォーマンスを損なうことなく、データセンター、クラウド、 コンテナを保護するクラウド型セキュリティ
- Conformity:クラウドインフラストラクチャの継続的なセキュリティ、コンプライアンス対応状況の確認および可視化を実現
- Network Security
:マルチクラウド環境のための強力なネットワークレイヤのセキュリティ
■侵入の痕跡(Indicators of Compromise 、IoCs)
侵入の痕跡(Indicators of Compromise、IoCs)は、こちらを参照してください。
参考記事:
• 「Threat Actors Now Target Docker via Container Escape Features」
By: Alfredo Oliveira, David Fiser, Trend Micro
翻訳:益見 和宏(Core Technology Marketing, Trend Micro™ Research)
記事構成:岡本 勝之(セキュリティエバンジェリスト)
高橋 哲朗(スレットマーケティンググループ)