システムドライブのシリアル番号やコンピュータ名が、いつの間にか不可欠な鍵として機能するようになっていました。それがなければ、この悪意あるプログラムはペイロードを復号することすらできません。Kasperskyの研究者は最近、これまで文書化されていなかった2つの高度にモジュール化されたプログラム「OctLurk」と「SilkLurk」を発見しました。攻撃者はこれらの高度なバックドアを、中央アジアおよびシリア全域の政府機関・国家関連組織を狙った標的型サイバースパイ活動に展開していました。技術報告書によると、この長期にわたるキャンペーンは少なくとも2025年1月から活発に継続しているとのことです。
調査担当者は、アフガニスタン、キルギスタン、タジキスタン、ウズベキスタン、カザフスタン、シリア・アラブ共和国にまたがる広範な感染痕跡を発見しました。さらに、被害者の広範なリストには医療機関、研究機関、政府機関が含まれています。加えて、外務省、法執行機関、物流企業、都市計画関連組織、公立教育機関も対象となっていました。
入り組んだサイバースパイ活動の帰属を探る
セキュリティ専門家は、中程度の確度でOctLurkとSilkLurkの両方を単一の中国語話者の脅威アクターに帰属させています。ただし、このキャンペーンを既知の高度persistent threat(APT)グループに結びつけることには、まだ成功していません。この帰属判断はいくつかの説得力のある要因に基づいています。まず、両方のバックドアが侵害されたマシン上に頻繁に共存していること。次に、両者が同一の作業ディレクトリを共有していること。最後に、研究者は攻撃者がOctLurkのコマンドシェルを通じてSilkLurkを直接展開した具体的な事例を確認しています。
高度な検知回避:環境依存の鍵生成と難読化
開発者はOctLurkとSilkLurkのローダーを、標的とする被害者ごとに綿密に作り込んでいました。OctLurkはC:ドライブの固有のシリアル番号を使って復号鍵を動的に生成します。一方、SilkLurkは感染したコンピュータ名から直接算出した32ビットのハッシュ値を計算します。マルウェアはこれらの算出値を使って、ペイロードへのファイルパスと悪意あるコード自体の両方を復号していました。そのため、研究者がコピーしたローダーをまっさらな解析用マシンに移しても、実行できなかったり、コアモジュールを明らかにできなかったりすることになります。
さらに、マルウェアの作成者は、重度に難読化されたコード、zlib圧縮、二重のXOR暗号化方式によってフォレンジック解析を著しく複雑にしていました。また、複数層にわたる算術演算・論理演算も実装していました。重要な点として、主要バックドアと補助的なプラグインはほぼ完全にシステムのランダムアクセスメモリ(RAM)内でのみ動作していました。ハードドライブ上に永続的に残るのは、ごく小さなローダーのみです。すべてをメモリ内で実行することで、目立つファイルの生成を大幅に減らし、感染サイクルを再現しようとする自動化サンドボックスを妨害していました。
OctLurkの感染経路と指令系統
OctLurkのインストールを成功させるため、攻撃者は侵害した管理者権限の認証情報を悪用しました。次に、リモートコンピュータ上に「GoogleUpDate」という紛らわしい名前のスケジュールタスクを作成します。このタスクは、昇格したSystemアカウント権限を持つバッチスクリプトを実行します。続いて、スクリプトは新しいWindowsサービスを登録し、悪意あるダイナミックリンクライブラリ(DLL)をロードします。最後に、ローダーがペイロードを復号し、主要バックドアをメモリに注入して、ポート443経由でコマンド&コントロール(C2)サーバーとの通信を確立します。
起動すると、OctLurkは詳細なシステム情報を綿密に送信します。オペレーティングシステムのバージョン、コンピュータ名、現在のユーザー、ローカルホスト名、IPアドレス、正確なシステム時刻を報告します。送信前に、マルウェアはこの情報をzlibで圧縮し、XORを使って二重に暗号化していました。特筆すべきは、暗号鍵の一つが完全にランダムな83バイトで構成されていた点です。このデータを受信すると、C2サーバーは新たなコマンドや追加のプラグインを送り返すことができます。
研究者は、コマンドシェルの起動、ファイル操作、侵害されたマシンのリモート制御を目的とした特定のモジュールを詳細に分析しました。その結果、攻撃者は機密ファイルの検索、読み取り、作成、コピー、移動、名前変更、削除を自由に行える能力を得ていたことが分かりました。さらに、タイムスタンプの改ざん、任意のプログラムの実行、スクリーンショットの取得、システムクリップボードの操作も可能でした。マウスポインタの移動やキー入力のリモートシミュレーションを行う能力すら備えていました。
侵害後の戦術と横展開
永続性をしっかりと確立した後、攻撃者は感染したシステムの徹底的な偵察を行いました。専用のバッチスクリプトが、インストール済みのハードウェアやソフトウェア、アクティブなユーザーセッション、実行中のプロセスに関する情報を収集していました。ネットワーク構成、インストール済みのアンチウイルスソリューション、Microsoft Defenderの設定、開放ポート、DNSキャッシュ、スタートアップ項目、スケジュールタスクも収集対象でした。特定のコマンドは、RDP接続を含む機密性の高いリモートログインの成功記録を標的にして抽出していました。
大規模な認証情報の窃取のため、攻撃者はImpacketのsecretsdumpをコンパイルした実行ファイル版を展開しました。このツールはドメインコントローラーから直接パスワードハッシュを効率的に抽出します。ハッシュの窃取に成功した後、攻撃者はDomain Controllersグループのメンバーシップを照会していました。これはおそらく、ネットワーク内でさらなる横展開を進めるための追加標的を特定する狙いがあったと見られます。
同時に、専用のキーロガーがキー入力とクリップボードの内容を密かに記録し、2つの別々のファイルに保存していました。データを保存する前に、キーロガーは単純な検知を回避するため各バイトを個別に改変していました。別の独立したユーティリティは、ChromeとFirefoxのブラウザから保存済みパスワードを抽出することに特化していました。最後に、攻撃者は冗長な制御手段として、既知のリモートアクセス型トロイの木馬であるPandora RCをインストールしていました。
内部ネットワークの偵察には、攻撃者はFscanを利用していました。このスキャナーは、アクセス可能なホスト、既知の脆弱性、稼働中のネットワークサービスを積極的に探索し、特にポート22のSSHとポート3306のMySQLを標的にしていました。発見後は、事前に用意した設定ファイルにまとめられた認証情報を使って認証を試みていました。さらに、攻撃者はcurlコマンドを用いて内部メールサーバーに直接接続し、窃取した認証情報を検証したうえで、特定のメール受信箱に選択的にアクセスしていました。
LurkProxy:コマンドチャネルの秘匿化
OctLurkと並行して、攻撃者はLurkProxyを頻繁に展開していました。この専用ユーティリティは、ほぼ同一のアーキテクチャを採用していますが、バックドアとしてではなく、もっぱらリバースプロキシサーバーとして機能します。LurkProxyは、利用可能なすべてのネットワークインターフェース上でポート64980を静かに監視していました。C2サーバーとの間に高度に安全なTLS接続を確立し、zlib圧縮と二重のXOR暗号化によって保護されたカスタムバイナリプロトコルを使ってパケットを送信していました。
LurkProxyは、2つの異なる動作モードをシームレスにサポートしていました。1つ目のモードは、感染したコンピュータを事実上SOCKS5プロキシに変換し、攻撃者が被害者自身のインフラを経由して選定した標的へと双方向のトラフィックを転送できるようにするものです。2つ目のモードは、あらかじめ定められたIPアドレスとポートに接続する透過型プロキシとして動作します。研究者が分析した具体的なサンプルでは、攻撃者はSOCKS5機能を有効にしていました。
SilkLurkとPlugXの展開
SilkLurkは、異なる手法によって永続性を確立していました。攻撃者は、表面上は正規のNVIDIAおよびRealtekの実行ファイルを起動する新しいサービスを密かに登録していました。しかし、これらの信頼された正規プログラムのそばに、侵害済みのDLLを悪意を持って配置していました。その結果、正規のアプリケーションはDLLサイドローディングと呼ばれる手法によって、意図せず差し替えられたコンポーネントを読み込んでしまいます。悪意あるローダーはその後、実行中のプロセスを確認し、暗号化されたペイロードファイルを指定のディレクトリに転送したうえで、自動起動と障害復旧が設定された「RmSs」サービスを作成していました。最終的に、SilkLurkバックドアを復号してメモリに直接注入していました。
SilkLurkの設定ブロックには、最大4つの異なるC2サーバーと、2つのプロキシ用のパラメータを格納できる仕組みになっていました。接続に成功すると、バックドアはコンピュータ名、DNSドメイン、ユーザー名、CPUアーキテクチャ、Windowsのバージョン、IPアドレス、プロセスID、システム稼働時間、そして特定の悪意あるモジュール名を送信していました。攻撃者は、ローカル時刻の照会、再接続待機時間の調整、設定の更新、追加モジュールのメモリへのロード、プラグイン機能の実行を行う権限を有していました。
観測されたある侵入事例では、SilkLurkがコマンドシェルを起動し、PowerShellを立ち上げました。攻撃者は、侵害した管理者権限の認証情報を使って、共有ネットワークドライブに素早く接続しました。彼らは、高度に機密性の高い文書を求めて共有フォルダを探索していました。捜索を終えると、痕跡を隠すためにネットワークリソースの接続を丹念に切断していました。その後、正規かつ改変されていないWinRARおよび7-Zipのコピーを使って、窃取したファイルをパッケージ化していました。
注目すべきことに、攻撃者はSilkLurk経由で悪名高いPlugXマルウェアもインストールしていました。別の展開ファイルは、正規のSymantec実行ファイル、悪意あるローダー、暗号化されたペイロードを展開する仕組みになっていました。PlugXは正規のsvchost.exeプロセスに密かに自身を注入し、「SymantecRAS」サービスとして永続性を確立し、「KG_MFA」という特定のキャンペーン識別子を使用していました。

インフラの重複と結論
SilkLurkとPlugXの両方のコマンドドメインは、まったく同一のゾーン「kozow.com」に解決されていました。モジュール式のPlugXリモートアクセス型トロイの木馬は、少なくとも2008年から活発に利用されており、中国語話者の脅威アクターとの深い歴史的つながりを持っています。このインフラの重複は、PlugXの展開と相まって、このキャンペーンの当初の帰属判断を裏付ける重要な補足的根拠となりました。
攻撃者は、OctLurk、SilkLurk、LurkProxyの基盤インフラを仮想プライベートサーバーを使って構築していました。OctLurkおよびLurkProxyに関連するIPアドレスの一部は、以前にGTSのプレゼンテーションで詳しく説明された、カザフスタンの重要施設を標的とした別のキャンペーンで利用されたインフラと直接重複していました。
以前、2025年3月には、攻撃者はTrustFall(MystRodXまたはSilentRaidとしても知られる)という名前のLinux向けバックドアを展開していました。2025年10月には、GTSの研究者が新たなサンプルと追加のC2サーバーを発見しました。重要な点として、OctLurkとLurkProxyはその後、これらと同一のIPアドレスのうち3つを利用していました。
この明確なインフラの重複は、WindowsとLinuxの両方の環境を標的とした複数のキャンペーン間に関連性があることを強く示唆しています。ただし、それらが同時に運用されていたことや、統一された中央指令下にあったことを決定的に証明するものではありません。報告書は、これらの組織への侵入に使われた初期アクセス経路については明示的に触れていません。それでもなお、観測された侵害後の活動は、極めて計算されつくした戦略を明確に示しています。管理者権限を確保した後、攻撃者は複数の独立したコマンドチャネルを確立していました。彼らは積極的に認証情報を収集し、冗長なリモートアクセスツールを展開していました。これにより、防御側がコンポーネントの一つを検知して無力化した場合でも、持続的なアクセスを維持できるようにしていたのです。
翻訳元: https://meterpreter.org/octlurk-and-silklurk-backdoors/