クラウド環境
新たなクリプトジャック型攻撃キャンペーン「Commando Cat」:DockerのリモートAPIサーバを不正利用
公開状態のDockerリモートAPIサーバを介して暗号資産マイナーを配備するクリプトジャック型攻撃について解説します。本攻撃では、オープンソース・ツール「Commando」のDockerイメージが不正利用されます。
概要
- 公開状態のDockerリモートAPIサーバを介して暗号資産マイナーを配備するクリプトジャック型攻撃について解説します。本攻撃では、オープンソース・プロジェクト「Commando」のDockerイメージが利用されます。
- 本攻撃者は、Dockerイメージ「cmd.cat/chattr」を用いて初期アクセスを行い、さらにコマンド「chroot」や「ボリューム・バインディング」の手口によってコンテナ外に脱出し、ホストシステム自体へのアクセスを試みます。
- 攻撃の痕跡として、特定のUser-Agent文字列や、TCPポート3022によるDropBear SSHの通信が確認されています。これらは、本マルウェアの検知に役立つものです。
- 本攻撃の影響を軽減する上では、コンテナ・セキュリティのベストプラクティスを遵守することが重要です。例えば、コンテナやAPIの設定を適切に行い、信頼できるDockerイメージのみを使用することなどが挙げられます。
最近トレンドマイクロでは、公開状態のDockerリモートAPIサーバを介して暗号資産マイナーをインストールする攻撃キャンペーンに遭遇しました。本攻撃は、その初期段階の特徴を踏まえ、「Commando Cat」の名称で呼ばれています。具体的に当該の初期段階では、オープンソースのプロジェクト「Commando(Dockerイメージをオンデマンドで作成する機能を開発者向けに提供するもの)」が不正利用され、表面上無害なコンテナが標的環境上でデプロイされます。一般に、Commandoのデプロイには「cmd.cat」が利用されます。今回の攻撃者は、特にDockerイメージ「cmd.cat/chattr」を利用して標的システムを自身のコマンドコントロール(C&C:Command and Control)インフラに接続させ、不正なペイロードを取り込ませます。なお、本攻撃キャンペーンが始まったのは、2024年初頭のこととなります。
初期アクセス
初期アクセスの手段として、攻撃者は始めに無害なDockerイメージ「cmd.cat/chattr」を標的環境内に配備します。次に、当該イメージをベースとするDockerコンテナを作成し、コマンド「chroot」を用いてコンテナの外部に脱出し、標的環境のオペレーティングシステム自体にアクセスします。続いて、コマンド「curl」や「wget」を用いて不正なバイナリを取り込みます。
攻撃の流れ
1. DockerリモートAPIサーバに探りを入れる
本攻撃キャンペーンにおける一連の活動は、DockerリモートAPIサーバに対するpingリクエスト通信を皮切りに始まります。
2. Dockerイメージ「cmd.cat/chattr」をベースとするコンテナを作成
サーバから「OK」の応答が返されると、攻撃者はDockerイメージ「cmd.cat/chattr」をベースとするコンテナの作成作業に入ります。
上図の内容より、攻撃者はコマンド「chroot」や「ボリューム・バインディング(紐づけ)」の手口によってコンテナ外への脱出を図っていると考えられます。具体的には、コマンド「chroot」を実行してコンテナの外側に踏み出し、さらにボリューム・バインディング用パラメータ「Binds」を設定することで、ホストシステム側にも侵入します。
パラメータ「Binds」の設定「/:/hs(図3の青枠参照)」は、ホストのルートディレクトリをコンテナ側のディレクトリ「/hs」にマウントするものです。これにより攻撃者は、ホスト内のファイルシステムに無制限でアクセスできるようになります。Bindsに対応するもう1つの設定「/var/run/docker.sock:/var/run/docker.sock」はDockerソケットを紐づけるものであり、これによってコンテナからホストのDocker用デーモンに直接アクセスできるようになります。結果、攻撃者はホスト端末内にいるかのように、Docker自体を操作することが可能となります。
3. イメージが存在しない場合はリポジトリから取得
図3のコンテナ作成依頼に対して「No such image(イメージが見つからない)」の応答が返された場合、攻撃者はリポジトリ「cmd.cat」から当該のDockerイメージ「chattr」を取得します。
4. コンテナをデプロイ
上記の手順3.でイメージを取得できた場合、攻撃者は手順2.と同様の操作を再度実行し、Dockerコンテナの作成を試みます。
コンテナ作成時には、Base64でエンコードされた処理が実行されます。
Base64のエンコードを解除すると、下記のスクリプトが得られます。
本スクリプトは、まずディレクトリ「/usr/sbin/」に「z」という名前のファイルが存在するかをチェックします。存在しない場合は、以下のファイルサーバから不正なバイナリをダウンロードし、「/usr/sbin」に保存した上で、実行します。
hxxp[:]/leetdbs[.]anondns[.]net/z
なお、本バイナリはツール「UPX」によって圧縮されたものであり、その実体は、マルウェア「Kaiten」をベースに作られたオープンソースのIRC(インターネット・リレー・チャネル)ボット「ZiggyStarTux」であると推測されます。
調査時、C&Cサーバ自体はすでに停止されていました。しかし、バイナリからは下記のUser-Agent文字列が発見されました。これらの文字列は、ネットワーク上で本マルウェアを検知する際に役立つと考えられます。
- User-Agent: HackZilla/1.67 [en] (X11; U; Linux 2.2.16-3 x64)
- User-Agent: Mozilla/4.75 [en] (X11; U; Linux 2.2.16-3 i686)
上記文字列より、本マルウェアが小型のSSHサーバ「DropBear SSH」を使用し、TCPポート「3022」によってクライアントアプリケーションを起動していることが示唆されます。この点も、本マルウェアを検知する手がかりとして役立つ可能性があります。
本マルウェアは、標的環境内にデプロイされると、以下のC&Cサーバのポート「1219」に接続します。図6に、通信開始時のデータを示します。当該の内容は、IRCの初期通信に該当するものです。
45[.]9[.]148[.]193
本攻撃キャンペーンの特徴は、クリプトジャック用スクリプトを標的環境内にデプロイする手段として、Dockerイメージを使用した点にあります。こうした戦略は攻撃者にとって、Dockerの設定に絡む脆弱性を不正利用できる一方、セキュリティソフトウェアを回避しやすいという点で、有利に働くと考えられます。サイバーセキュリティの調査チームが本攻撃グループの動向を監視し続ける一方で、企業や組織では、Dockerの利便性を逆手に取った攻撃への対策を強化することが重要です。
推奨事項
コンテナやそのホストを狙った攻撃を防ぐ上で有効なベストプラクティスを、下記に示します。
- コンテナやAPIが不正利用される事態を避けるため、その設定には常に細心の注意を払う。Dockerについては、セキュリティを高めるための具体的なガイドラインが公開されている。
- 環境内では信頼済みのアプリケーションのみが稼動するように、企業や組織でイメージを利用する際には、常に公式の、または認証済みのイメージを使用する。
- コンテナは、ルート・ユーザではなくアプリケーション・ユーザで起動することが望ましい。
- 内部ネットワークなどの信頼できるソース以外からコンテナにアクセスできないようにするなど、安全面に配慮した設定を行う。
- 企業や組織では、推奨されるベストプラクティスを遵守する。具体例として、Dockerから包括的なベストプラクティスの一覧が提示されている。さらにDockerは、クラウド環境の安全性を高めるためのセキュリティ機能を提供している。
- 不審なコンテナやイメージの存在を極力把握できるように、セキュリティ監査を定期的に実施する。
まとめ
今回挙げた攻撃キャンペーン「Commando Cat」は、公開状態のDockerリモートAPIサーバが抱えるリスクや、その不正利用による脅威を特徴づけるものです。攻撃者はDockerの設定不備に目を付け、さらにcmd.catのようなオープンソース・ツールを駆使することで、従来からのセキュリティ監視をかわしながら初期侵入を果たし、不正なバイナリのデプロイに及ぶ可能性があります。実際にDockerイメージがクリプトジャック用スクリプトの拡散に利用されていることからも、コンテナに焦点を当てたセキュリティ・プラクティスの重要性がうかがわれます。
トレンドマイクロのソリューション
Dockerサーバを保護する上で有力なセキュリティソリューションとして、下記が挙げられます。
- Trend Vision One™ - Container Security:コンテナイメージやレジストリの自動スキャン機能により、脅威を早期に検知します。
- Trend Cloud One™ - Workload Security:新規または既存のワークロードを保護します。機械学習や仮想パッチ技術により、未知の脅威に対しても効果を発揮します。
トレンドマイクロの製品では、本稿で挙げた不正な活動や攻撃行為からシステムを保護する機能として、下記を提供しています。
- 1010326 - Identified Docker Daemon Remote API Call:特定されたDockerデーモンのリモートAPI呼び出し
- 1008619 - Application - Docker:アプリケーション - Docker
- 1010349 - Docker Daemon Remote API Calls:DockerデーモンのリモートAPI呼び出し
Trend Vision One™のハンティング・クエリ
Trend Vision Oneの脅威ハンティングに有用な可能性のあるクエリとして、下記が挙げられます。
eventId:100115 AND (remarks: POST_IMG_BLD_CRE OR remarks: POST_CON_CREATE) AND "cmd.cat"
MITRE ATT&CK Techniques
MITRE ATT&CK Tactics and Techniquesはこちらで確認してください。
侵入の痕跡(IoC:Indicators of Compromise)
侵入の痕跡(IoC)はこちらで確認してください。
参考記事:
Commando Cat: A Novel Cryptojacking Attack Abusing Docker Remote API Servers
By: Sunil Bharti, Shubham Singh
翻訳:清水 浩平(Core Technology Marketing, Trend Micro™ Research)