
初期アクセスに典型的に利用されるGootloaderマルウェアが、最大1,000個のアーカイブを連結することで検知回避を狙った、不正に細工されたZIPアーカイブを使用するようになりました。
これにより、アーカイブ化されたJScriptファイルであるこのマルウェアは、解析しようとする多くのツールをクラッシュさせます。
研究者によると、この悪意あるファイルはWindowsの既定ユーティリティであれば正常に展開できますが、7-ZipやWinRARに依存するツールでは失敗します。
これを実現するために、マルウェアの背後にいる脅威アクターは500~1,000個のZIPアーカイブを連結し、さらに解析ツールによるパースをより困難にする別の手口も用いています。
Gootloaderのマルウェアローダーは2020年から活動しており、ランサムウェアの展開を含むさまざまなサイバー犯罪オペレーションで使用されています。
7か月の休止期間を経て、このオペレーションは昨年11月に復活したと、セキュリティ研究者であるHuntress LabsとDFIR Reportが報告しました。
当時も不正に細工されたZIPアーカイブは存在していましたが、改変は最小限で、データを抽出しようとするとファイル名の不一致が発生していました。
より最近のサンプルを分析したExpelの研究者によると、この段階の解析妨害をさらに強化するため、Gootloaderの運用者は現在、はるかに広範な難読化メカニズムを実装しています。
具体的には、検知と解析を回避するために、現在は次のメカニズムが使用されています:
- パーサーがファイル末尾から読み取るという性質を悪用し、最大1,000個のZIPアーカイブを連結する。
- 必須の2バイトが欠落した切り詰められたEnd of Central Directory(EOCD)を使用し、多くのツールでパースを破壊する。
- ディスク番号フィールドをランダム化し、存在しないマルチディスクアーカイブをツールに期待させる。
- ローカルファイルヘッダーとセントラルディレクトリエントリ間でメタデータの不一致を追加する。
- 静的検知を回避するため、ダウンロードごとに固有のZIPおよびJScriptサンプルを生成する。
- ZIPをXORエンコードされたブロブとして配信し、クライアント側でデコードして目的のサイズに達するまで繰り返し追記することで、ネットワークベースの検知を回避する。

出典: Expel
ホスト上で実行されると、このマルウェアのJScriptは一時ディレクトリからWindows Script Host(WScript)経由で起動し、2つ目のJScriptファイルを指すショートカット(.LNK)ファイルをスタートアップフォルダーに追加することで永続化を確立します。
このペイロードは初回起動時およびシステムの起動のたびに実行され、NTFSのショートネームを用いてCScriptをトリガーし、その後PowerShellがPowerShellを起動します。
Gootloaderの作者は機能を壊さずに検知回避するため複数の破損手法を追加しましたが、Expelの研究者は、防御側が脅威を見つけるのに役立つ構造上の異常を利用しました。チームはまた、「現在のZIPアーカイブを一貫して識別できる」YARAルール も共有しました。
この検知は、ZIPヘッダーの特徴の特定の組み合わせ、数百回繰り返されるローカルファイルヘッダー、そしてEOCDレコードを見つけることに依存しています。
研究者は、防御側に対し、JScriptファイルを開く既定のアプリケーションをWindows Script Hostではなくメモ帳に変更して、実行を防ぐことを推奨しています。
攻撃対象領域を減らすため、Expelは、JScriptファイルが不要であれば、ダウンロードしたコンテンツの実行においてwscript.exeとcscript.exeをブロックするよう助言しています。