クラウド環境
TrafficStealer:コンテナを利用し収益化を図る攻撃者
「TrafficStealer」がオープンコンテナAPIを悪用し、トラフィックを特定のWebサイトにリダイレクトする手口で、広告表示の操作に関与していることが明らかになりました。
「TrafficStealer」がオープンコンテナAPIを悪用し、トラフィックを特定のWebサイトにリダイレクトする手口で、広告表示の操作に関与していることが明らかになりました。
トレンドマイクロでは、コンテナやコンテナ型ハニーポットを導入し、不正活動を監視しています。加えて、クラウドセキュリティソリューションの強化や推奨事項を改善するためにもこれらの情報を活用しています。これらのハニーポットは、計算資源を不正利用しようと試みる暗号資産マイナーを頻繁に捕らえています。さらに最近、従来とは異なる種類の攻撃である「Dockerコンテナを活用し、トラフィックにより収益を得るソフトウェア」が明らかになりました。これは、一見すると正規のソフトウェアのような外観を装っていますが、潜在的に迷惑なアプリケーション(PUA)として分類される不正なコンポーネントを包含している可能性があります。
関連する解析を進める過程で、ハニーポットによって収集されたデータセットの存在が確認されました。これらのハニーポットにはデータ収集を行う設定は施されていなかったため、これは不自然な出来事でした。しかも発見されたのは暗号資産のマイニングを行うソフトウェアや、偵察を行うためのLinuxコマンドなどではありませんでした。トレンドマイクロのラボのネットワークを利用して、あるコンテナが特定の広告にトラフィックを誘導して収益を上げていたのです。攻撃者は、ハニーポットを「収益を生み出すマシン」に変えてしまいましたが、同時に貴重な情報も残してくれました。そして、この経験は攻撃者の戦術をより深く理解する貴重な機会ともなりました。
トレンドマイクロが取得したJavaScript Object Notation (JSON)ハニーポットログにより、標的となったIPアドレス、国、ハニーポットからのトラフィックの動向、攻撃時のタイムスタンプ、トークン、環境パス、コンテナを使用した活動等の情報が確認可能となりました。また、2023年4月時点では、未だDockerイメージはダウンロード可能であるため、トレンドマイクロは状況の変化を引き続き監視しています。
最近の傾向としては、攻撃者は独自のコンテナイメージを作成、公開し、自らのリポジトリから引き出して使用するのではなく、既に確立されたサービスやベースイメージを使用するようになりました。現在、正規のイメージをこのように悪用されることが増えています。また、変数やパラメータを利用した感染や不正活動がイメージの展開時もしくは展開後に開始されることが判明しています。なお、今回のケースでは、YAML構造が当該攻撃を自動化するのに使用されています。
仕組み
トレンドマイクロの環境において確認されたコンテナイメージは、「トラフィックの収益化」を提供するサービスによってパブリッシュされています。「トラフィックの収益化」は広い意味があり、さまざまなサービスに対して使われうる用語です。今回のケースでは、以下のようなソフトウェアをインストールすることを望むユーザに対して、支払いを約束するようなサービスを指しています。このソフトウェアは、複数のモバイルアプリのユーザからトラフィックを受信し、コンテナアプリを介してプロキシを設定します。加入したユーザは、自身のネットワークを介してトラフィックをルーティングする見返りとして収入を得ます。サービスに加入すると、ユーザはIDとして機能する独自のトークンを受け取ります。後に、このトークンには設定がなされ、収益化のために使用されます。
攻撃者のソフトウェアやコンテナがインストールまたは実行されると、ユーザのデバイスをプロキシとして使用しているトラフィックを可視化することは不可能となります。
ネットワーク上のトラフィックを把握できなくなることは好ましくないことですが、これらのサービスの実行にユーザ自身知らない間に加担しているとなると、さらに深刻な状況が生じます。トレンドマイクロのハニーポットの場合、このサービスは攻撃者が収益を上げるための手口となる可能性を有します。今回と類似のケースでは、脆弱性や設定ミスを悪用してコンテナを悪用し、コインマイナーを展開するようなケースもあります。ただし、コインマイナーの場合は被害者のCPUが狙いですが、今回のケースはネットワークトラフィックを標的としています。
トレンドマイクロが「TrafficStealer」と名づけたこのソフトウェアは、複数の技術を組み合わせることにより稼働しています。今回の場合は、トレンドマイクロによってコンテナ及びアプリケーションが稼働しているという前提のため、トラフィックに違法性はないと開発者は主張しています。しかし、違法性がないにもかかわらず、クライアントにおいて生成されたトラフィックは一切所有していないとも開発者は主張しています。
これらのサービスにおいて一般的なトラフィックの経由例を以下に示します。
- Webクローリング。これは、広告による収入を得られる可能性が高いWebサイトをインターネット上でスキャンすることを指します。そして、攻撃者は、該当するサイトを標的にし、ネットワークを介してトラフィックを誘導します。
- クリックシミュレーション。標的となるWebサイトが特定されると、ソフトウェアはそのサイト上に表示される広告において偽のクリックを生成します。これにより、広告のエンゲージメント数が上昇したとされ、攻撃者の広告収入の増加につながります。
サーバと交信するためのトラフィックは全て暗号化されます。なお、当通信には通常とは異なるTCPポートが使用されるため、余計に疑わしい挙動に見えると言わざるをえません。本来のクライアントが自身の広告のパフォーマンスを測定しようとすると、トラフィックの発生に関して対価を支払わなければなりません。さらに、自身では把握していない未知のトラフィックがネットワーク内を経由していることになります。
通常、正規のサービスでは、パラメータとして使用するトークンを生成するためのアカウントの作成、そして、ローカルでサービスを実行するための独自IDを作成する必要があります。トレンドマイクロの環境でサービスを使用した攻撃者は、トークンをハードコーディングし、コンテナ作成時にパラメータとして引き渡していました。
コードリポジトリにおいて類似した挙動を検索すると、Dockerファイル及びdocker-compose.yamlファイルで同様の挙動を示す例を発見しました。また、クラウドパイプラインのYAMLファイルでも同じ挙動が確認されました。YAML設定ファイルは、ソフトウェア設定やパラメータをアプリケーションやソフトウェアに提供する際の構造(ストラクチャ)を供給します。一方、クラウドパイプラインは、クラウドサービスの展開、実行、変更の自動化を可能にします。今回のケースでは、YAMLファイルの開発者及びパブリッシャーは、設定ファイルをパブリッシュするプロセスを自動化し、そのファイルをクラウドに自動的に展開します。この結果としてマルウェアサービスの展開と自動化が迅速化され、攻撃のスケール化が急速に進んだといえます。これらのファイルの特徴や挙動から判断すると、展開されるランナーが増えるにつれ、攻撃者の収益も増加すると推測されます。
この侵入過程において、もう一点注目すべきことがあります。それは、攻撃者がTTY(標準入出力先の端末デバイスを示すコマンド)を作成しなかったという事実です。TTYは通常、攻撃が自動化されたものであることを示します。攻撃者が特定の標的に関する偵察を行う意図を持つ場合や、より標的を絞った攻撃を実施する場合には、TTYパラメータが 「True」となっていることが一般的です。また、ワーム型攻撃と類似した自動化攻撃やコンテナ攻撃の場合、多くは 「False」となります。
これらのサービスの1つは、包括的なWebダッシュボードを提供します。これにより、攻撃者は感染したノードの挙動(オペレーティングシステムやIPアドレスに関する情報を含む)を監視することが可能となります。
トレンドマイクロのハニーポットを感染させる際に使用されたイメージは、Docker Hub(15MBを数秒で処理)のみで50万回取得されていました。なお、参照したデータでは、当該イメージを各々の環境で実行している正規サイトの数を推測するのは困難です。
まとめ
コンテナ化された「TrafficStealer」の発見は、攻撃者がいかにその技術を適応させ、新興の人気プラットフォームを悪用しているかを物語っています。今回の実施されたハニーポットの検証、および関連データの調査では、1つのイメージから50万回コンテナが取得されていることが確認されています。これは、コンテナを実行するため、または数字を多く見せかけるために実施されました。当サービスにおいて利益を得るはずであったユーザの中には、投下した資本(クラウドサービスに支払った最初のサブスクリプション等)に対する約束されたリターンを享受していない可能性があります。一方で、自ら関知せぬままサービスに加入させられているユーザもおそらく存在し、知らないうちに攻撃者の収益化に加担している可能性も否めません。このことは、クラウドサービスに対して支払われた対価に損失が発生していることを意味します。さらにこのようなユーザは、この「潜在的に迷惑なアプリケーション」が自らの環境で作動することを自身で許可したものではありません。つまり、プロキシとしてネットワークを使用するトラフィックに関してはおそらく手出しができず、制御することはできないでしょう。しかしながら、ネットワークが犯罪行為に利用される場合、ログに記録されるのは状況を関知していないユーザ自身、もしくは組織のIPアドレスです。

また、全く新しいサービスやベースイメージを作成、パブリッシュするのではなく、既に確立されたものを使用することで攻撃の自動化が捗ります。これは、攻撃者にとって大きな利点とはなりませんが、例えるならば一般の開発においてプロセスにコンポーズを使用して自動化を容易にすること同じような意味をもつでしょう。現在悪用されているのはDockerのみですが、KubernetesやAmazon Elastic Container Server(ECS)等コンテナを搭載した他のプラットフォームの大半も悪用される危険性を有しています。このような挙動そのものは不正とはみなされておらず、引き続き類似の活動が実行される可能性も考えられます。その場合、このスキームは攻撃者にとっては短期間で収益を得ることできる術であり続けるでしょう。
現時点において、攻撃者の技術、また攻撃の展開範囲を完全把握するまでには解析が進んでいません。しかし、この手口が違法行為などの不正に使用されることがないかどうか、トレンドマイクロでは監視を継続しています。「TrafficStealer」のような脅威がシステム、ネットワーク、コンテナに及ぼすリスクを軽減するために、下記のような施策を実施してください。
- 全てのコンテナ環境に、ゼロトラストセキュリティを導入する
- コンテナAPIを無防備にしない
- コンテナ認証ポリシーを導入する。スキャン、署名、承認されていないコンテナの実行を許可しない
- コンテナイメージに対するマルウェア対策スキャンポリシーを設定する
IOC(痕跡情報)
IOC(痕跡情報)の全リストは、こちらをご覧ください。
参考記事
Attackers Use Containers for Profit via TrafficStealer
By: Alfredo Oliveira
翻訳:新井 智士(Core Technology Marketing, Trend Micro™ Research)