情報収集型ハッキングツールである「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)までお願い致します。