標的ネットワークを侵害するクロスプラットフォームのモジュラー型マルウェア「Glupteba」

トレンドマイクロでは最近、「Glupteba」の亜種(Trend Microでは「Trojan.Win32.GLUPTEBA.WLDR」として検出)を確認しました。Gluptebaは、過去にWindigo作戦に関与したバンキングトロジャンとして知られています。弊社ではまた、MikroTikルータへの攻撃や、自身のコマンド&コントロール(C&C)サーバへの更新に関して調査しました。今回確認されたバンキングトロジャンは、挙動に関して他の亜種との類似点を多く共有しています。前述の検体で特筆すべき点は、トレンドマイクロが最近解析したモジュール型アドウェアの一種「ManageX」(トレンドマイクロでは「Trojan.JS.MANAGEX.A」として検出)を使用していることです。本記事では、コード解析から判明したGluptebaのモジュール性とクロスプラットフォーム機能について解説します。

図1:攻撃の流れ

プログラミング言語「Go」の使用

今回の攻撃で主に使用されたドロッパーを解凍したところ、この亜種はオープンソースのプログラミング言語「Go」で記述されていることが分かりました。一般的に「Golang」で知られるこの言語は10年ほど前に開発されたばかりで、マルウェアの作成で使用されるのは非常に稀ですが、Sophos社Cybereason社のセキュリティリサーチャによる解析で判明したものなど、一部のGluptebaの亜種で使用されています。

Go言語が提供するさまざまな機能の中には、サイバー犯罪者にとっては検出回避のために悪用可能なものもあり、マルウェア作成においては魅力的な存在と言えます。その機能の1つは、システム上の1つのリポジトリのみを使用してコンパイルでき、異なるオペレーティング・システム間で実行可能な状態を維持できることです。この機能は、マルチプラットフォーム機能やペイロードを持つことを目的とするマルウェアにとって有利になります。

また、Goで記述されたマルウェアの種類はファイルサイズが大きくなります。これは、Go標準ライブラリがモジュール化されていないためで、単一の関数をインポートするとかなりのコードサイズが必要になります。ファイルサイズが大きくなることは侵入や転送の際に不利になる場合もありますが、一部のウイルス対策ソフトウェアでは大きすぎるファイルをスキャンできない可能性があるため、攻撃対象が使用している対策製品によっては検出回避に役立つ可能性があります。また、大きなファイルは静的分析に手間がかかる場合があり、リサーチャによる解析を困難化させる狙いも推測されます。

■ドロッパー

Glupteba 攻撃のメインドロッパーは、プロセス「svchost.exe」に不正コードを挿入するルートキットの構成ファイルをインストールすることにより、永続性を確立するために使用されます。これは、Glupteba が自身のペイロードをダウンロードしてモジュールとして扱うことを意図しているためです。また、不正プロセスを通常のプロセスに偽装して隠匿するための手法でもあります。

マルウェアのモジュラーアプローチは、コンピュータ上に構成ファイルを徐々にダウンロードしていくことで行われます。これは、モジュールごとに自身の機能を分割することにより、ウイルス対策ソフトに検出されないようにするためです。

このドロッパーはUPXパッカーを使用して圧縮されているため、最初の静的分析からは多くのことはわかりませんでした。 同様に、今回確認した検体と同様のドロッパーのほとんどは、意味のある文字列を隠すためにパッカーを使用して圧縮されていました。これはパッカーで圧縮された実行可能ファイルに共通した特徴であり、調査の困難化を狙う手段の1つと言えます。

コンピュータ, 男 が含まれている画像

自動的に生成された説明

図2:圧縮された検体

UPXアンパッカーを使用すると、前述の検体がC++言語を使用してコンパイルされていることがわかります。

Figure-3-Compiler

図3:コンパイラ

また、上述のように、ファイルを解凍すると、対象の検体がGo言語で記述されていることがわかります。

カレンダー が含まれている画像

自動的に生成された説明

図4:Golangでコンパイルされた文字列

しかし、この検体は一般的なツールでは完全に解凍することができません。マルウェアの解析者にとって有用な文字列を完全に見るためには、デバッガでファイルを開く必要があります。さらに、一部のマルウェア対策ツールは、不正かどうかの判断において、検体内の読み取り可能な文字列に大きく依存します。このことも、マルウェア作成者がパッカーを使用する理由の一つであると言えます。

テキスト, 新聞 が含まれている画像

自動的に生成された説明

図5:アドウェアのペイロードと見られる不審な文字列

解凍された検体の文字列は、さまざまなプラットフォームでのWebブラウザの使用を示唆しています。この 亜種のペイロードの一つには、不正広告の拡張機能のインストールを行うものが含まれます。さらに、WebブラウザのインストールはWindowsベースのものに限られず、Linuxベース、Androidベース、さらにはiOSベースのWebブラウザも含まれています。

グラフィカル ユーザー インターフェイス, テキスト, アプリケーション, メール

自動的に生成された説明

図6:ツール「DoublePulsar」の使用に関連する文字列

マルウェアのコードは、サイバー犯罪者集団「ShadowBrokers」が流出させたバックドア埋め込みツール「DoublePulsar」を示しています。これにより、追加の不正コードの実行が可能になり、通常はSMBv1脆弱性の攻撃ツールである「EternalBlue」をネットワーク内での拡散に利用します。

Figure-7.-Shellcode-injection-using-DoublePulsar-tool

図7:DoublePulsarを使用したシェルコードインジェクション

■拡張インストーラのペイロード

特定のコンピュータで確認されたペイロードは、インストールされた拡張機能にあたります。対象の拡張機能は、ドロッパーと同様にパックされたファイル wcrx.exe を実行することでコンピュータ上にインストールされます。該当ファイルは、以下の動作を行います。

  • コンピュータにインストールされているWebブラウザにブラウザ拡張機能「chrome_filter」を追加
Figure-8-Extension-installed

図8:インストールされた拡張機能

  • 「hxxp://fff<省略>xyz/down/m_inc[.]js?1589344811463」に接続し、ブラウザの拡張子からm_inc.jsファイルを置き換える。このファイルは、訪問したページごとに実行されるコンテンツスクリプトにあたる

図9:JSファイルのURL

Figure-10-Contents-of-m_inc.js

図10:m_inc.jsの内容

  • rundll32.exeを起動してhxxp://info<省略>com/js_jsonを照会し、Internet Explorerに挿入するスクリプトを含むJSON一覧を取得
Figure-11.-Memory-strings-of-rundll32.exe

図11:rundll32.exeのメモリ文字列

さらに調査を進めたところ、コンピュータ上のmaster_preferencesファイルにchromeAppIDなどの不正な兆候があることが明らかになりました。このファイルには、ユーザがコンピュータのChromeブラウザに適用しようとする設定が含まれています。このファイルにChromeの拡張機能をインストールすることで、Chromeブラウザに機能を追加することができます。

Figure-12-Contents-of-master_preferences

図12:master_preferencesの内容

上述の内容には、過去の記事で調査したManageXのクローム拡張機能のIoC(侵入の痕跡、Indicator of Compromise)「Chrome AppID」が表示されています。ManageXは、Chromeブラウザに不正な拡張機能を使用して、ユーザのブラウザ活動を追跡し、C&Cドメインと通信します。ManageXに関する詳細の調査は、こちらからご確認ください。

ウイルス調査では、一見正規のインストーラやフリーウェアのインストールを介して感染が始まる可能性があります。この侵入経路は他の多くのマルウェアと類似しており、通常は正規のアプリケーションを装って拡散されるGluptebaと何ら変わりはありません。

■脆弱性

攻撃でのドロッパーの他の使用法として、最初のコンピュータを足場にして、内部ネットワークをスキャンして脆弱なコンピュータを探します。その後、EternalBlueを利用して、ドロッパーをネットワーク全体に横方向に拡散させることが可能です。

EternalBlueは、EternalSynergy、EternalRomance、前述のDoublePulsarなどの他のツールや脆弱性攻撃コードとともにNSAが開発したハッキングツールです。サイバー犯罪者グループ「Shadow Brokers」は、2017年にこれらを流出させたと報じられています。特にEternalBlueは、ランサムウェア「WannaCry」「Petya」の拡散に利用されていました。

EternalBlueには、Microsoft SMBv1、具体的には「CVE-2017-0143」から「CVE-2017-0148」までの重要な脆弱性が含まれており、Windows 7、Windows Server 2008、Windows XP、さらには445番ポートが開いている、あるいは有効になっているWindows 10など、様々なコンピュータ上で使用されています。解凍された検体内で確認された文字列から、Microsoft SMBv1が使用されている場合と同様、対象となるWindowsのバージョン、ポート、およびアーキテクチャが明らかになりました。Microsoft SMBv1は、現在、その危険性から無効化またはアンインストールが推奨されるようになりました。

Figure-13-Strings-from-the-unpacked-sample

図13:解凍された検体の文字列

Figure-14-Strings-from-the-unpacked-sample

図14:解凍された検体の文字列

この欠陥は、2017年3月にMicrosoftがセキュリティアップデート「MS17-010」で直ちにパッチが適用されました。しかし、多くの企業では何らかの理由でパッチの適用が行われていない場合があり、脆弱なままとなっています。そのため、多くの攻撃者は今もEternalBlueを悪用して、クリプトジャッキングなどの悪質な活動を行っています。

■被害に遭わないためには

攻撃者は、ユーザのコンピュータを危険にさらすという目的を達成するために、実証済みの戦略と斬新な戦術のさまざまな組み合わせを活用しています。企業は、データを確実に保護するために、以下のベストプラクティスを講じることを推奨します。

  • コンピュータにパッチを適用して更新する、あるいは仮想パッチソリューションを検討する
  • 正規のダウンロードセンタとアプリストアからのみアプリをダウンロードする
  • ファイアウォールや侵入検知および防止システムを有効化する
  • エンドポイント、メール、Web、ネットワークなど、考えられるすべてのエントリポイントにセキュリティ対策を実装する
■トレンドマイクロの対策

本記事で紹介した脆弱性は、以下の製品を使用して防御することが可能です。

  • Trend Micro™Deep Security™:脆弱性を狙うさまざまな脅威からユーザシステムを保護
  • TrendMicro™DeepDiscovery™Inspector:カスタムサンドボックス化と広範的な検出技術を介してゼロデイ脆弱性を監視
  • TippingPoint®:標的型攻撃および高度な脅威からの保護

サーバ向け総合セキュリティ製品「Trend Micro Deep Security™」をご利用のお客様は以下のルールによりこの脅威から保護されています。  

  • IPS Rules 1008224, 1008225, 1008227:MS17-010の対象範囲と、WindowsSMBのRCE実行の脆弱性からの特定の保護を含む。
  • IPS Rules 1008327, 1008328: DoublePulsarペイロードからの保護として、サーバとクライアントの不審なSMBセッションの対象範囲を含む

Deep Discovery ™ Inspector」 をご利用のお客様は、以下のルールによって本記事で解説した脆弱性を利用する脅威から守られています。

  • DDI Rule 2383: CVE-2017-0144 – Remote Code Execution – SMB (Request)

ネットワーク脅威防御ソリューション「TippingPoint」では、以下のMainlineDV filterにより今回の脅威をブロックします。 

  •  Filters 27433, 27711, 27935, 27928: MS17-010の対象範囲と、WindowsSMBのRCE実行の脆弱性および攻撃からの特定の保護を含む
■侵入の痕跡(Indicators of compromise

今回の記事に関する侵入の痕跡はこちらを参照してください。

参考記事:

翻訳:下舘 紗耶加(Core Technology Marketing, Trend Micro™ Research)