Minerva (ミネルバ)

情報収集型ハッキングツールである「RedLine Stealer」がメッセージアプリインストーラーに偽装  2021年4月27日 Minervaのブログから

情報収集型ハッキングツール(Stealer)は、悪意のコードが詰まったマルウェアです。その目的は感染したPC内を探り機密情報を奪うことです。感染手法は、セコンドステージ後のペイロード攻撃又は正当なソフトウェアを装って攻撃を仕掛けてきます。今回紹介する「Redline Stealer」はユーザーの認証情報などを窃取する目的で利用されることが多く、Redline Stealerは.Netベースマルウェアで、最近世間で知れ渡るメッセージアプリTelegramのインストラーを装って仕掛けられていました。今回のブログでは、Redline Stealerがどのような特性で検知回避するかについてお話致します。

解凍プロセス

一般論としてですが、.Netマルウェアの多くは、難読コードを利用して偽のセットアップファイルに圧縮格納されており、非常にわかりづらくなっています。Detect-It-Easy製品を使用しても、今回メッセージアプリTelegramインストーラー内にマルウェアが潜んでいることが判別できませんでした。

Detect-It-Easyの分析結果

調査チームはマルウェアを逆コンパイルを試みましたが、ほとんどの変数・関数名がスクランブル化されており、コードを把握することが困難でした。リバースエンジニアリングで解明しようと試みても、パッカー開発者は、パッカー内に制御フロー平坦化を採用しており、プログラムのフローを難読化することで、元のソースコードを抽出するのは構造上困難でした。制御フロー平坦化はソフトウェアの目的を隠すために用いられる手法です。

制御フロー難読化の一般例

デコーディング関数で非難読化

上記の図で見られるように、ペイロードデータはイメージピクセルのRGB値内に潜んでいました。最初の4ピクセルはイメージ内にある実際のサイズデータなどでした。

イメージピクセルがデコードされた後、パッカーはペイロードファイルであるLightning.dllを復号化するためにRC2アルゴリズムを利用しています。このdllファイルからGameCore.Coreという名前のオブジェクトがインスタント化されることにより、Gameという関数がバイナリーディレクトリーから異なるイメージファイルを受け取ります。Game関数はファイナルペイロードを復号することで、他のプロセスのメモリ空間へインジェクション攻撃を行います。

RC2アルゴリズム関数(非難読化)

コードはローディングを実行してGame関数を呼びます。

最後に実際のペイロードが表示されて、全てのコードが非難読化されることにより、クリアテキスト上にC2サーバアドレスを参照できます。

MinervaはRedline Stealerをメモリーインジェクション防御モジュールで先制防御しました。下記の図は実際の攻撃阻止イベントです。

Minerva製品(Minerva Armor)についてのお問い合わせはPico Technologies (info@pico-t.co.jp)までお願い致します。

HOME