StingyBasilisk APT、Windowsの名前付きパイプでマルウェアを制御し、セキュリティ検知を回避

これまで知られていなかったスパイ活動型のグループ「StingyBasilisk」が、少なくとも2022年4月から、標的ネットワークで秘密裏に活動を続けていました。

初期侵入経路は不明で、既知のAPTグループとの関連も、現時点では確実には特定できていません。

2026年2月以降、攻撃者はSMB経由でネットワーク内を横展開しました。ペイロードをC:\Windows\Tempに配置し、Impacketのatexecで実行しています。atexecは\pipe\atsvc名前付きパイプを開き、MS-RPC経由でスケジュールされたタスクを作成するツールです。

攻撃者はデフォルトの動作も変更していました。タスク名にはImpacket標準の命名ではなく、11BBA9EF-3528-C48C-2221-D0D4DD92D971のようなGUID形式が使われています。

防御側は、タスクスケジューラのイベント106と、プロセス作成イベント4688でこの挙動を探索できます。CunningDoorローダーは、2026年2月12日にrundll32.exe IKEYUI64.dll,ikeyUI_DlgSelectDeviceAを介して、この方法で初めて実行されました。

このグループは、あまり一般的ではない2種類の永続化手法を使っていました。いずれもMITRE ATT&CKに登録されています。1つ目はCOMハイジャック(T1546.015)で、正規のCOMオブジェクトを攻撃者のコードにリダイレクトします。

2つ目はタイムプロバイダー(T1547.003)です。Windows Timeサービスを悪用し、起動時に不正なDLLを読み込ませます。

Positive TechnologiesのPT ESC IRチームが、2026年初頭にこの侵入を発見しました。このマルウェアは、Windowsの名前付きパイプでインプラントを制御し、正規のセキュリティツールを装っています。

クラウドセキュリティソリューション

StingyBasilisk APTの攻撃手法

COMハイジャックでは、攻撃者はNetwork List Managerの{DCB00C01-570F-4A9B-8D69-199FDBA5723B}とNetwork ConfigurationオブジェクトにTreatAsレジストリ値を設定しました。

呼び出しは、正規のnetprofm.dllに似せた偽のライブラリnetprofmprox.dllにリダイレクトされます。このDLLは想定されるCOM関数をエクスポートしているため、呼び出し元のプロセスはクラッシュしません。

これはSilentCOMファミリーです。リクエストを本物のライブラリに中継し、svchost.exe -k netsvcsの内部でのみ動作します。

タイムプロバイダーを使う手法では、W32Time\TimeProvidersの下に不正なエントリを作成し、DllNameに悪意あるDLLを指定します。一例がwgtdgr.dllです。

Image

このDLLはその後、Local Systemとしてsvchost.exe内に読み込まれます。これがTediousLoaderで、コードはTimeProvOpenエクスポートに格納されています。

TediousLoaderは、ネットワークをトリガーとするバックドアとして動作します。各アダプターにRAWソケットを作成し、SIO_RCVALLでプロミスキャスモードを有効にして、5秒ごとに各パケットの先頭256バイトを読み取ります。

マルウェアは、サンプルごとに異なる8バイトのマジックシグネチャを探します。一致したパケットには難読化された16バイトの設定情報が含まれており、接続・待ち受け・バインドのどれを行うかをマルウェアに指示します。

マルウェア駆除ソフトウェア

続いてAES-256-CBCで暗号化されたペイロードを受信し、メモリ上で実行します。C2アドレスは通常のトラフィックの中で届くため、固定のサーバーはハードコードされていません。

CunningDoorは、署名済みSafeNetライブラリを使ったDLLサイドローディングによるアクセスを利用します。具体的には、IKEYUI64.dllとiKeyAPI.dll、およびeToken.dllとDLPReel.dllの組み合わせです。ローダーは、連鎖する3つのXORキーでシェルコードを復号します。

Image

シェルコードは、改変したFNV-1aハッシュでAPIを解決し、\.\pipe[a-z]+.[a-f0-9]{8}に一致するパイプで待ち受けます。一方、SilentCOMのパイプはGUID形式です。

メモリ上のシェルコードは、NtAllocateVirtualMemoryやNtProtectVirtualMemoryなどの直接システムコールを使い、APIの監視を回避します。

セッションキーはCurve25519 ECDHでネゴシエートし、パイプの通信は改変版ChaCha20で暗号化します。改変された定数71 20 2F 78 48 3F D9 14 48 B0 13 DA 02 32 46 88は、メモリスキャンで確実に検出できる指標です。

5つ目のコンポーネントであるHenMapCaCon.dllは、Go 1.18〜1.19で作られたDLLです。go-winioを使い、パイプ\.\PIPE\ProProBitOpen上でTLSサーバーをホストします。おとりのQRコードページと、ファイルを外部へ持ち出すための/fetchエンドポイントを公開しています。

各組織は、HKLMのCLSIDキー配下でのTreatAsの変更を監視する必要があります。あわせて、W32Timeプロバイダーに新たに追加されたエントリの監査、これらのパターンに一致する名前付きパイプへのSMBトラフィックの調査、rundll32がTempから署名済みベンダーDLLを起動した場合のアラート設定も求められます。

ChaCha20の定数をメモリスキャンすれば、ディスクに一切書き込まれないペイロードも見つけられる可能性があります。

MTTRを21分短縮し、被害が出る前にサイバー脅威を阻止します。ANYRUNのサンドボックスをSOCに統合しましょう。

サイバーセキュリティトレーニングコース

翻訳元: https://gbhackers.com/stingybasilisk-apt-attack/

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