攻撃者が、再コンパイルした7-Zipの自己解凍形式アーカイブ(SFX)モジュールの中に、OpenSUpdaterのリフレクティブローダーを隠していることがわかりました。
このインストーラーには正規のfoobar2000セットアップファイルが含まれています。しかし、悪意のあるコードは展開スタブ自体から実行されます。展開されたファイルが無害に見える場合、アナリストが見落としかねない部分です。最近のサンプルは、ESETがOpenSUpdater、MicrosoftがSnackarcinとして検知しています。
通常の7-Zip SFXインストーラーは、解凍スタブ、テキスト形式の設定、埋め込みアーカイブで構成されます。
スタブはファイルを展開してディスクに書き込み、設定に指定されたプログラムを実行します。そのため、不審なインストーラーを調べるアナリストは、まずそのプログラムを確認するのが自然です。
報告されたサンプルでは、このプログラムはsetup.exeという名前の正規のfoobar2000インストーラーでした。ただし、周辺のパッケージには不審な点があります。ゲームアプリの開発元を名乗るAnimated Productions, LLCの署名が付いており、バージョン情報にはランダムに見える単語が並んでいます。
証明書にも、繰り返しのパディングバイトが含まれています。このパディングから攻撃者の意図を断定することはできませんが、パッケージの異様さは詳しく調べる価値があります。
ローダーはsetup.exeやSFXの設定には隠されていません。攻撃者は、再コンパイルした7-Zipのコードのうち、ExtractArchive関数内でプログレスバーを初期化する直前に、ローダーを挿入しています。
スタブのインポート、文字列、主要な実行パスは、一見すると通常のSFXモジュールとよく似ています。そのため、簡易的な調査では改変部分を見つけにくくなっています。
挿入されたコードの役割は主に3つです。コマンド&コントロール(C2)サーバーへの接続、コンポーネントのダウンロード、ペイロードのメモリへのロードです。
このコードは難読化されたC2アドレスを取得し、特徴的なバイト列を使ってサーバーに登録します。その後、静的にコンパイルされたcurl関数で、2つのDLLと暗号化されたデータブロブを要求します。
リフレクティブローダーは、1つ目のDLLのcx1エクスポートと、2つ目のDLLのcx2エクスポートを呼び出し、ブロブを復号します。続いて、得られたDLLをメモリにマッピングし、そのcx3エクスポートを呼び出します。研究者はサーバー上のこれらのDLLを入手できなかったため、最終ペイロードの挙動は確認されていません。
関連する亜種は、オープンソースのNSIS用プラグインEmbedHtmlにローダーを仕込んでいます。空文字列を指定してEmbedHtml::GetUrl()を呼び出すとこのコードが動作し、NSISスクリプト内の圧縮データからC2アドレスを読み取ります。
どちらの手法も、正規アプリケーションのインストーラーの脇にあれば通常の部品に見えるソフトウェアコンポーネントに、悪意あるロジックを埋め込んでいます。
報告されたサンプルのSHA-256ハッシュは、a7666e5aa3c6ecae0295caa7c3f49714eb561d6e1be6807cf1020b79f1902cd0、e99a053b9d6a414256177e1529417f85867d6ed355f6009300d626f63429753c、ba38916e82c47cff6de71791f179ce762e640e2975e40d6a1803d16ff591b752です。
報告されたC2ドメインは、7-Zipのサンプルがcodeonicinc[.]com、NSIS亜種がsetupsoftwarecenter[.]comだと、gdatasoftwareは述べています。
Googleは2021年、OpenSUpdaterによる証明書解析を悪用した以前の回避手法を報告していました。今回の発見は、有効な署名や無害な展開ファイルだけでは、インストーラーを安全と判断できないことを示しています。ほかに不審な点があれば、アナリストはSFXスタブや同梱プラグインのコードも調べるべきです。blog+1
16,000以上のSOCチームがANY.RUNを活用し、脅威調査を効率化して手作業を減らしています。チームで試してみる
翻訳元: https://cyberpress.org/opensupdater-conceals-loader-in-7-zip/