あなたのWindowsマシンには「Sleepwalker」バックドアなど不要です

人気記事

眠りに就いたまま起動の合図を待つスリーパーセル(潜伏工作員)のように、これまで発見されたことのなかったWindows向けバックドア「Sleepwalker」は、メモリ内で静かに待機し続けます。特定の細工が施された1つのネットワークパケットが届くと目を覚まし、このマルウェア独自の23命令からなる言語を使ってコマンドを実行するのです。これらのコマンドは、メモリ上で直接コードを実行することから、データをコンピュータの外部へ持ち出すことまで、あらゆる操作を可能にします。

マルウェア研究者のDominik Reichel氏がこのパッシブ型バックドアを発見しました。このバックドアは独自のコマンド言語を備えており、Reichel氏は月曜日に公開した技術分析でSleepwalkerの詳細を明らかにしています。

「これを取り上げる価値があるのは、あのパケットが運んでいるものにあります。それは人間が読めるコマンドではなく、バックドア独自に設計されたコマンド言語で書かれた短いプログラムなのです」とReichel氏は述べています。「23の命令は、スケジューリング、データ転送の複数の手法、段階的なファイル配信、そしてメモリ上での直接的なコード実行までをカバーしています。暗号鍵を復元しただけでは、これらのプログラムを理解するには不十分です。内部のコマンド言語自体もリバースエンジニアリングする必要があります」

独自のコマンド言語を持つことに加えて、このバックドアのもう一つの注目すべき特徴は、リモートホストとして通常のネットワークアドレスの代わりにVMwareのVMCIターゲットを指定できる点です。

「全体として見ると、このアプローチは日和見的な攻撃者ではなく、標的を定めたリソース豊富な攻撃主体によるものと一致しています」とReichel氏は記しています。

このマルウェアは64ビットのWindows DLLファイル内に隠されており、Windowsのデータ保護APIの一部でセンシティブなデータを保護するdpapi.dllになりすましています。実際のdpapi.dllと同じ7つの関数をエクスポートしますが、実際にはWindowsの正規コンポーネントではないdpapisvc.dllという名前のファイルへ呼び出しを転送しようとします。

このファイルは偽造されたESET Management Agentのバージョンリソースも持っており、ESET Management AgentのWindows実行ファイルであるERAAgent.exeにサイドロードされる形で読み込まれます。ホストプロセスの名前がERAAgent.exeであることを確認すると、Sleepwalkerはコンピュータのメモリ内で休眠状態に入ります。これにより従来型のアンチウイルスツールからも身を隠しやすくなっています。

攻撃者が管理するコマンド&コントロール(C2)サーバーに接続してコマンドを受信し始める一般的なバックドアとは異なり、Sleepwalkerはじっと待ち構え、ネットワークを通過するすべてのパケットを監視して特定のパターン、いわゆる「マジックパケット」を探し続けます。パターンに一致するパケットを検知すると、バックドアはそのデータを復号し、コマンドとして処理します。

「このバックドアは自らは何も送信せず、デフォルトでは目立つリスニングポートも開かないため、既知の不正ドメインへの接続や異常な送信トラフィックを監視するツールでは何の異常も検知できません」とReichel氏は記しています。「既知の不正インフラへの送信接続が見当たらないからといって、感染していないとは限りません。このバックドアによってマシンが完全に侵害されていても、ネットワークモニターにフラグを立てさせるようなものは一切生成されない可能性があるのです」

隠されたコマンド

バックドアに送信されるすべてのコマンドはAES-256-CCMで暗号化されており、このコマンド言語のユニークな点は、復号してもテキストにもドキュメントにもならないことです。

その代わり、各コマンドは生のバイト列からなる短い並びであり、特定の順序で読み解いたときにのみ意味を持ちます。Reichel氏のレポートには、このバイト列の読み方を示すキーが含まれており、Sleepwalkerの23命令それぞれがこのコマンド言語で記述されています。

命令の中には、内部プログラムを含むものもあります。例えば、スケジューラーの中にネットワークリスナーを組み込むことができ、特定のファイルが組み立てられ、検証されるまで待機してから侵害済みのコンピュータ上で実行するルーチンを持つこともあります。

マジックパケットを検知する2つの命令や、実行中のすべてのプログラムとパケットリスナーを停止する終了コマンド、親プログラムと並行して動作する第2の小さなプログラムを起動する命令といった基本的な命令に加え、このバックドアには他にも複数の命令が備わっています。

その中には、データの送信や秘匿に関する4つの命令が含まれます。そのうちの1つは、選択したアドレスとポートへTCP接続を開き、データのブロックをリモートホストへ送信します。このリモートホストには、通常のネットワークアドレスの代わりにVMwareのVMCIターゲットを指定することも可能です。もう1つは、選択したコンピュータ上のWindowsの名前付きパイプにデータのブロックを書き込むもので、事前にユーザー名とパスワードでログインするオプションも備えています。

他の5つの命令は、後続の命令を受信する、あるいは自ら働きかけて取得すること、TCPまたはUDPポートを開くこと、名前付きパイプを作成・接続することなど、受信タスクの処理に重点を置いています。

さらに、このマルウェアにはプログラムの構築と実行に関する5つの異なる命令も備わっています。

数多くの未解明点と検知ツール

しかしReichel氏が指摘するように、Sleepwalkerについては依然として多くが未解明のままです。「このファイルを確認済みの侵入事案に結びつける収集コンテキストを私は持っていないため、被害者や業界、国、影響を受けた組織を特定することはできません」と同氏は記しています。

このDLLがERAAgent.exeの傍らに配置された後にサイドロードによって実行されるよう設計されていることは分かっていますが、マルウェアの操作者が最初にどのようにコンピュータへのアクセスを得たのか、あるいは悪意あるファイルをどのように送り込んだのかは分かっていません。また、操作者や開発者が誰であるか、そして侵害後にどのような活動が行われたのか(そもそも行われたのかどうか)についても不明です。

「既知のグループへの帰属を裏付けるような関連コードは見つかりませんでした。この1つのサンプルだけでは、Sleepwalkerがいつ、どの程度の規模で展開されたのか、亜種が存在するのか、あるいは継続的なキャンペーンの一部であるのかを特定することはできません」とReichel氏は記しています。

そしておそらく最も重要な点として、Sleepwalkerあるいは関連するマルウェアのサンプルに感染している可能性があると考える人に向けて、Reichel氏は「そのバイトコードを解読し、暗号化された痕跡やネットワーク上の痕跡を調査し、挙動や侵害指標を要約し、コマンドを実行したりトラフィックを送信したりすることなく受信パイプラインを安全に再現するためのツールキットを作成しました」と述べ、標的にされた可能性がある人々に対し、自身に連絡するよう呼びかけています。

同氏はまた、Sleepwalkerが検知された後に使用できる修復スクリプトを含む、対策ガイドも作成しています。®

翻訳元: https://www.theregister.com/security/2026/08/24/you-dont-want-this-sleepwalker-backdoor-on-your-windows-machine/5292021

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