正規ソフトウェアに潜むマルウェア、パスワードやカード情報、暗号資産ウォレットを窃取

FortiGuardのインシデントレスポンス担当研究者が、攻撃者が正規ソフトウェアのフォルダー内にSectopRATを隠していた侵入事案を調査しました。

SectopRATは「ArechClient2」とも呼ばれ、.NET製のリモートアクセス型トロイの木馬(RAT)です。今回の事案で攻撃者は、イタリア企業が開発したデジタルオーディオワークステーションのコンポーネントと並べて、暗号化したペイロードを隠していました。

研究者は、改ざんされたソフトウェアのフォルダーを、通常のインストール先ではないC:\ProgramData配下で発見しました。

ベンダーが侵害されたソフトウェアを配布していた形跡は確認されていません。このため、今回は確定したサプライチェーン攻撃ではなく、ソフトウェアの改ざん事案と位置づけられます。

感染チェーンの起点はReportDump.exeです。これは正規のソフトウェアコンポーネントで、Windowsのタスクスケジューラーを通じて自動実行されるよう設定されていました。

この実行ファイルは起動するとFrameworkBase.dllを読み込みます。攻撃者はこのライブラリのインポートアドレステーブルを書き換え、別のファイルsdkcra.dllを読み込ませていました。これが悪意ある読み込み処理の開始点となります。

この悪意あるDLLは、Activation.Desktop.dbから暗号化されたアセンブリコードを読み取ります。復号後、そのコードをstp_aim_x64_vc15.dllのエクスポート関数に渡します。

この関数はWindowsのEnumSystemCodePagesW() APIを悪用します。復号したコードをコールバックとして渡すことで、Windowsに悪意ある命令を実行させる仕組みです。

アセンブリコードはハッシュを使って187個のWindows APIを動的に解決し、関数名を単純な解析では見えないようにしています。続いてpool.dbを読み込み、バイトキー0xBCを用いた独自ルーチンで、埋め込まれたSectopRATのペイロードを復号します。

最後に、ローダーが.NETランタイムを初期化し、復元したトロイの木馬をメモリ上で実行します。

SectopRATはさらに、ランダムな名前、制御フローの平坦化、.NETのcalli命令による間接呼び出しも使用しています。こうした手法により、リバースエンジニアリングの際に挙動を追いにくくなっています。

解析対象の亜種は、TCPポート15847で98.142.252[.]140に接続します。このサーバーに到達できない場合は、12個あるバックアップ用ドメインのいずれかにアクセスし、暗号化されたサーバーアドレスを取得します。

研究者によると、これらのドメインはBNBのインフラに関連しているように見えました。ただ、攻撃者がそれらを侵害したかどうかは確認できていません。

通信にはAES暗号化が使われ、復号後のメッセージはJSON形式です。このマルウェアは29種類のコマンドに対応しており、画面キャプチャ、リモートシェルの実行、ファイル管理、プロセス管理、システム再起動、データ窃取などを実行できます。

DeployBrowserKeyコマンドは、機密データの収集を開始させます。SectopRATは追加モジュールWbElevation.dllをダウンロードし、ブラウザー情報の抽出に利用します。

さらに、Thunderbird、Steam、Battle.NET、MetaMask、Coinbase Wallet、Atomic Wallet、Exodus、Electrumなどのアプリケーションやウォレットも標的にしていると、Fortinetは述べています。

注記: IPアドレスとドメインは、誤った名前解決やハイパーリンク化を防ぐため、意図的に無害化([.]など)しています。元に戻すのは、MISP、VirusTotal、自社のSIEMなど、管理された脅威インテリジェンス基盤の中に限ってください。

ANY.RUNは、脅威調査を効率化し手作業を減らすため、1万6,000以上のSOCチームに利用されています。チームで試してみる

翻訳元: https://cyberpress.org/trusted-software-hides-infostealer/

本記事は cyberpress.org の記事を翻訳・要約したものです。