検出率の低いGootloaderマルウェアが大半のセキュリティツールを回避

Gootloaderマルウェアが再浮上し、巧妙な回避手法を用いて不正に形成されたZIPアーカイブを悪用し、難読化メカニズムによってセキュリティ検知システムを回避しています。

Storm-0494とVanilla Tempestの提携として追跡されているGootloaderマルウェアのキャンペーンは、検知を回避する驚くべき能力を携えて、2025年後半に再び戻ってきました。

この脅威は、意図的に不正な形式にしたZIPアーカイブという特殊な配布メカニズムを通じて動作し、自動解析を妨げつつ、Windowsを実行する被害者システム上では実行可能なままになっています。

このアーキテクチャ上の手法は、ハッシュバスティングと独自の難読化技術と相まって、Gootloaderが企業向けセキュリティツール全般で一貫して低い検出率を維持している理由を説明します。

防御回避の武器としてのZIPアーカイブ

ユーザーがGootloaderを受け取ると、JScriptファイルを含む一見標準的なZIPファイルをダウンロードします。

しかし、このアーカイブは検知の隙間を生むために意図的に不正な形式にされています。ZIP形式ではディレクトリ構造がファイル末尾に格納されるため、ツールはファイルの末尾から逆方向に読み取って内容を解釈します。

Gootloaderはこのアーキテクチャ上の特性を悪用し、同一のZIPアーカイブを500~1,000個、順番に連結します。

ZIPパーサは末尾から開始するため、読み取られるのは最後のアーカイブのディレクトリだけで、先行する数百の構造は未使用のまま残ります。

実際の結果として、Windowsの標準解凍機能を使う被害者システムでは悪意あるJScriptが正常に展開される一方、7-Zip、WinRAR、さらにはVirusTotalの抽出ユーティリティのような専門的解析ツールでは失敗したり、破損した出力になったりします。

アーカイブの「End of Central Directory」構造はさらに切り詰められており、標準化された形式仕様から重要な2バイトが欠落しています。

Image
ZIPアーカイブファイル構造の視覚的な内訳(出典:expel)。

この切り詰めにより、アーカイブの整合性を検証しようとするツールでパースエラーが発生します。さらにGootloaderは、「Disk Number」や「Number of Disks」といった重要度の低いヘッダーフィールドをランダム化し、存在しないマルチパートアーカイブを期待するよう一部の解凍ユーティリティを誤誘導します。

これらの改変が組み合わさることで、研究者が「ハッシュバスティング」と呼ぶ防御が成立します。Gootloaderをダウンロードする各ユーザーは暗号学的に一意なファイルを受け取るため、シグネチャベースの検知が無効化されます。

防御側にとって重要な理由

Gootloaderの開発者は、少なくとも2020年以降、ランサムウェア運用への関与を維持しており、特に初期侵入を担当しています。彼らの責務は、防御を回避して確実に実行される動作可能なマルウェアを届けることです。

過去には、Gootloaderマルウェアは企業向けセキュリティツールをすり抜けたマルウェア全体のおよそ11%を占めていました。

Malcatのアノマリエンジンは、ZIPアーカイブに関する別の問題の一つも指摘しました。ローカルファイルのメタデータの複数要素が、セントラルディレクトリにある内容と一致していないのです。

Image
ローカルファイルヘッダーとセントラルディレクトリ間の不一致を強調したファイルのMalcat解析(出典:expel)。
 

2025年11月のキャンペーン再稼働は、Storm-0494と脅威アクターVanilla Tempest(現在Rhysidaランサムウェアを展開中)との協業に続くものであり、この能力が犯罪エコシステム内で依然として高く評価されていることを示しています。

Huntressによる最近の観測では、さらなる高度化が明らかになっています。攻撃者は現在、Z85エンコーディングを用いてカスタムWOFF2フォントファイルをJavaScriptコード内に埋め込み、ソースコード上では意味不明な文字列に見えるものを、ブラウザでレンダリングすると正当なファイル名へと変換します。

この手法は静的な文字列解析を無力化します。「invoice」「contract」「agreement」といったキーワード検索を行っても、これらの単語はソースコード自体には存在せず、実行時に置換されたグリフとしてのみ現れるため、何もヒットしません。実際の影響として、従来のコンテンツ検査は失敗します。

JScriptが実行されると(通常は悪意あるファイルをダブルクリックした後にWindows Script Host経由で実行)、新たに改変された手法で永続化を確立します。

マルウェアは2つのショートカットファイル(.LNK)と追加のJScriptファイルを、ユーザーのAppDataディレクトリおよびスタートアップフォルダにドロップします。注目すべき点として、ショートカットはターゲット参照にWindows 8.3の短いファイル名(「Molecular Ecology.lnk」ではなく「MOLECU1.LNK」のようなレガシー別名)を使用します。

これらの短いファイル名参照は、古いシステムとの互換性のためにNTFSが自動生成するものですが、現代の環境ではほとんど見られないため、監視に値する行動上の異常となります。

攻撃のシーケンスは驚くほど迅速に進行します。展開されたバックドア(Supper SOCKS5)からの偵察は、実行から20分以内に開始されます。

初期感染から17時間以内にドメインコントローラーの侵害が観測されており、攻撃者は特権アカウントを作成し、ランサムウェア展開前の典型的な前兆活動であるVolume Shadow Copyの列挙を実行できるようになります。

Gootloaderがペイロードのハッシュを継続的に変化させることを踏まえ、防御側は静的シグネチャに依存するのではなく、動的な検知手法を実装すべきです。

異常なZIPアーカイブ特性、具体的には100個以上の連結されたアーカイブ構造や、切り詰められたEnd of Central Directoryレコードを持つファイルを監視することは、早期検知の手掛かりになります。

プロセス監視では、ZIPの既定の展開先であるAppData\Local\TempディレクトリからJScriptファイルをWScriptが実行している状況を検知すべきです。さらに、.JSファイルの既定の関連付けアプリケーションをWindows Script Hostからメモ帳に変更すれば、熟練ユーザーの正当なスクリプト利用を維持しつつ、誤実行を防止できます。

翻訳元: https://gbhackers.com/gootloader-malware/

ソース: gbhackers.com