マルウェア
IaCツールを悪用して拡散するLinuxのボット型マルウェアのキャンペーンを解説
本記事では、Linuxシステムを標的とする攻撃者の間で新たに採用されている手口について解説します。今回トレンドマイクロでは、Infrastructure as Code(IaC)ツールを悪用する手口を特定しました。これはマルウェアの拡散にIaCツールの悪用が確認された初のケースと言えます。
Linuxを標的とする脅威の増加は、「Windows以外のOSはマルウェアに感染しにくい」といった俗説を覆しました。Linuxが攻撃者に狙われるようになると、Ngrokのようなローカル環境で実行しているアプリケーションを外部公開するサービスを悪用したり、競合する別のマルウェアを強制停止させる機能を利用したりと、脅威が高度化していく様子が見られるようになりました。
本記事では、Linuxシステムを標的とする攻撃者の間で新たに採用されている手口について解説します。今回トレンドマイクロでは、Infrastructure as Code(IaC)ツールを悪用する手口を特定しました。これはマルウェアの拡散にIaCツールの悪用が確認された初のケースと言えます。また今回解説する手口の中には、Socks5プロトコルを使用したプロキシ経由のネットワークを介したTor(The Onion Router)の使用、正規DevOpsツールの悪用、アーキテクチャに応じた後続のマルウェア検体のダウンロード、競合する暗号資産採掘ツール(コインマイナー)の削除や無効化のほか、マルウェア検出や解析を回避する機能が含まれます。
図1:ボット型マルウェアの感染連鎖
トレンドマイクロが最近解析した検体の多くは、解析困難化としては効果的でないものの、解析を遅らせるには十分効果のある複雑な関数や複数のコード層を用いたエンコーディング技術を実装しており、すべての層を一度にデコードするためのパターンの発見を困難なものにしていました。例えば、弊社が実施したスキャンで見つかったものの中にボット型マルウェアの検体があります。この検体のフルコンテンツは、当初はBase64テキストのみで、Bashにパイプを用いて実行されるようになっていました。その結果、実行されたシェルはデコードされたシェルスクリプトコードを解釈してしまい、デコードされたコードは再び新たな層にエンコードされていました。
■ Torプロキシ
このボット型マルウェアが実装している最も興味深い手口の1つは、感染後に実行するスクリプトや悪意のあるバイナリなどのダウンロードに必要なすべてのファイルが匿名ネットワークのTor上にホストされていることです。このボット型マルウェアは、感染環境内にバイナリ(ss、ps、curl)が存在しない場合に備えて、これらのバイナリをダウンロードします。これらのツール自体は正規のものですが、マルウェアがHTTPリクエストを実行したり、被害者のシステムに関する情報を取得、またはプロセスを実行するために利用されます。また、このマルウェアの背後にいる攻撃者は、サーフェイスウェブからの接続を受信するプロキシ経由の大規模なネットワークを維持していることが判明しました。
さらにトレンドマイクロは、このマルウェアが感染システムの情報をより多く取得するためにcurlやwgetなどのバイナリを使用せず、シェルスクリプトやUnixシステムの設計を使用してHTTPリクエストを実行するという別の手口も発見しました。
図2:ボット型マルウェアがHTTPリクエストを実行する際の代替技術として使用するダウンローダ
これらのプロキシは、Torネットワークを経由してリクエストをサーバに送り、ファイルを取得するほか、被害者のシステムに関する以下のような識別可能な情報(図3)も送信します。
- IPアドレス(ランダム化された外部IPアドレスおよびハッシュ化された内部IPアドレス)
- OSのアーキテクチャ
- スクリプトを実行中のユーザ名
- ダウンロードするファイルを識別するURI(Uniform Resource Identifier)の一部(アーキテクチャに応じて)
- 保存するファイル(図3のコマンド例中央の引数「-o」は保存時に使用するランダム化されたファイル名を示しています)
- スクリプトを実行中のホスト名
図3:実行されるコマンドの内訳
また、使用されているプロキシサーバのほとんどが、複数の脆弱性を持つ公開サービスを保有していることもわかりました。これは、サーバ所有者の知らないところで攻撃者にTorプロキシサービスを悪用されている可能性があることを示しています。数週間にわたるプロキシの監視では、しばらくすると必ずプロキシサービスが無効化されていたことから、これは事実であると推定されます。
図4:使用されたTorプロキシの1つから見つかった詳細の一部(ポートなど)
図5:無効化されたプロキシ
■ 複数のアーキテクチャへの対応およびクラウドサービスのアンインストール
このボット型マルウェアのもう一つの興味深い特徴は、LinuxあるいはLinuxベースのOSであれば、さまざまなアーキテクチャ内で実行可能なことです。最初に実行されるスクリプトは、感染システムを別のマルウェアに感染させるために必要なファイルをダウンロードする前に数回の検査と確認を行います。この検体は、このマルウェアの背後にいる攻撃者がLinuxシステムを対象とした大規模なキャンペーンの一環としてこのマルウェアを展開しようとしている可能性を示唆しています。さらにこの検体には、以下のコードが示すように、特定のクラウド関連サービスやエージェントを削除する機能が含まれていることがわかりました。
- /usr/local/share/assist-daemon/assist_daemon -stop
- /usr/local/share/assist-daemon/assist_daemon -delete
- /usr/local/qcloud/monitor/barad/admin/uninstall.sh
- /usr/local/qcloud/stargate/admin/uninstall.sh
- /usr/local/qcloud/YunJing/uninst.sh
- /etc/init.d/aegis uninstall
- systemctl stop aliyunsystemctl disable aliyun
■ マルウェア拡散に悪用されるIaCツール
ワームベースの動作は、Linux環境における脅威としてはもはや珍しいものではありませんが、マルウェアの拡散手口にInfrastructure as Code(IaC)ツールが悪用されている事例が確認されたのは初めてです。この検体においては、スクリプトがマルウェアを拡散するためにインフラストラクチャの自動化および管理ツールであるAnsible、Chef、Salt Stackに関連する実行ファイルを探索します。このため、インフラのデプロイメントや構成ファイルが一箇所に保存されていると、管理するインフラ全体が侵害の危険にさらされることになります。
図6:マルウェアの拡散手口に悪用されるIaCツール
■ ボット型マルウェアのペイロード
近年確認されるマルウェアの脅威動向と同じく、このボット型マルウェアはMonero(XMR)を対象とするコインマイナー「XMRig」をインストールすることがわかりました。XMRigの設定ファイルはバイナリ内に埋め込まれています。また、パブリックなマイニングプールを利用する他の多くのコインマイナーとは異なり、このXMRigはプライベートのマイニングプールを利用していることも特筆すべき点です。これは、ステルス化の必要性だけでなく、ボット型マルウェアで構築されたボットネットの規模が大きくなっているからかもしれません。
図7:ハードコードされた設定ファイルを持つXMRig
もう1つの興味深い事実は、プロキシサービスと同様にプールサービスもしばらくすると停止することです。さらにプールが使用するアドレスは関連性のない別のサーバをホストします。これは、マルウェアの背後にいる攻撃者がプールサービスをインストールするためにサーバをハッキングしていた可能性を示唆しています。
図8:サービスが実行されているMonero用マイニングプールに対するアドレス
図9:サービスが無効化されたMonero用マイニングプールに対するアドレス
crontab(図10)を見てみると、このマルウェアは、すでにシステム内に組み込まれている別のコインマイナーを削除する機能を備えており、感染システムから不正な利益を得るのが1つのウォレットだけになるようにしていると考えられます。またcrontabには、grep検索で無効化するクラウドサービスの詳細が記述されており、攻撃者がアップデートして別のサービスを含める可能性があります。
図10:感染システムから別のコインマイナーを削除したことを示すcrontab
■ 結論
このマルウェア検体は他のソフトウェアを必要とせず、マルウェアの実行および拡散手口に必要な要件はLinux OSだけです。このマルウェアが必須ツール(ss、ps、curl)をダウンロードするのは、感染対象となるすべての環境にこれらのツールが存在するわけではないことと、ユーザがこれらのツールをシステム上にインストールするために必要な権限を持っていない可能性があるからです(コンテナの場合)。
このボット型マルウェアの作成者はTorネットワークを利用することで匿名性を確保しています。また、攻撃者の使用するカスタムマイニングプールやMoneroコインマイナーにより追跡はさらに困難となり、おそらく不可能になるでしょう。攻撃者はIaCツールを攻撃手口に利用していることから、最新技術を取り入れることについても十分に意識していると考えられます。攻撃者が新たな脅威動向を用いてキャンペーン活動を実行する事例は今後も増えていくでしょう。
本記事で解説したマルウェア検体の事例は、設定ミスや脆弱性だけがキャンペーンに利用できる唯一の弱点でないことを示しています。被害者のシステムにアクセスしなければ、マルウェアはコードを実行することができません。そのため、攻撃者や悪意のある内部の人間によってインフラ全体が侵害の危険にさらされないように、システムへのアクセス権を適切に管理し、保護する必要があります。
クラウドのインフラ基盤や環境を保護するためのベストプラクティスをいくつか紹介します。
- 最小特権の原則を徹底し、責任共有モデルに従うこと。組織やセキュリティチームは、特定のシステムへのアクセスを許可された人員を可視化し、制限しなければなりません。また、機微なデータや機密情報の保管方法、および個別のシステムや環境に対する保護対策についても把握しておく必要があります
- 既定の認証情報を強力で安全なパスワードに置き換え、異なるシステム環境のセキュリティ設定を組織の必要に応じてカスタマイズすること
- システムを定期的に更新して最新のパッチを適用すること。特にインターネット上に露出したシステムの脆弱性対策、認証情報の複雑化には注意を払うこと
■ トレンドマイクロのクラウドセキュリティソリューション
「Trend Micro Hybrid Cloud Security」として提供されるセキュリティソリューションは、クラウドネイティブシステムとその多様なレイヤーを保護するのに役立ちます。ソリューションとして提供される製品群は継続的インテグレーションおよび継続的デリバリー(CI / CD)パイプラインとアプリケーションの自動保護を提供するクラウドビルダー向けのセキュリティサービスプラットフォーム「Trend Micro Cloud One™」を利用しています。また、セキュリティの問題をいち早く特定して解決し、DevOpsチームの問題解決速度を改善するのにも役立ちます。Trend Micro Cloud One™には、以下が含まれています。
- 「Trend Micro Cloud One™ Workload Security」: データセンター、クラウド、 コンテナを保護する多層防御・脆弱性対策を提供するクラウド型セキュリティ
- 「Trend Micro Cloud One™ Container Security」: コンテナイメージのスキャン、アドミッションコントロール、コンテナの実行時保護をまとめて実現
- 「Trend Micro Cloud One™ File Storage Security」:クラウドファイル/オブジェクトストレージのためのセキュリティ
- 「Trend Micro Cloud One™ Network Security」:マルチクラウド環境のための強力なネットワークレイヤのセキュリティ
- 「Trend Micro Cloud One™ Application Security」:コンテナ、サーバレスなどに構築された最新のアプリケーションおよびAPI向けセキュリティ
- 「Trend Micro Cloud One™ Conformity」:クラウドインフラストラクチャの継続的なセキュリティ、コンプライアンス対応状況の確認および可視化
■ 侵入の痕跡(Indicators of Compromise、IoC)
今回の記事に関する侵入の痕跡は、こちらを参照してください。
参考記事:
- 「Tor-Based Botnet Malware Targets Linux Systems, Abuses Cloud Management Tools」
by David Fiser, Alfredo Oliveira, Trend Micro
翻訳:益見 和宏(Core Technology Marketing, Trend Micro™ Research)