1. VanHelsingとは
VanHelsingは2025年3月7日に出現したRansomware-as-a-Service(RaaS)プログラムである[1][2]。RaaSとは、ランサムウェアの開発・運営を行う「オペレーター」と、実際の攻撃を実行する「アフィリエイト」が利益を分配するビジネスモデルである。
2.1 RaaSの運用形態
| 項目 | 内容 |
|---|---|
| 開始時期 | 2025年3月7日 |
| 初観測 | 2025年3月16日(CYFIRMA) |
| アフィリエイト参加費 | $5,000 USD |
| 利益配分 | アフィリエイト80% / オペレーター20% |
| 攻撃禁止対象 | CIS諸国(旧ソビエト連邦の独立国家共同体) |
| 対応プラットフォーム | Windows, Linux, BSD, ARM, ESXi(広告上) |
| 身代金要求額 | 確認された事例で$500,000 USD |
| 支払い方法 | Bitcoin |
| 既知の被害者数 | 8組織以上(2025年5月時点) |
| 主な標的 | 米国・フランスの政府機関、製造業、製薬業 |
| 恐喝手法 | 二重恐喝(暗号化 + データリーク脅迫) |
CIS諸国への攻撃禁止は、ロシア語圏のサイバー犯罪グループに典型的な特徴であり、法執行機関からの追及を回避する意図がある[2]。
2.2 確認されたTorインフラ
ソースコードから抽出された交渉用 .onion サイト(4サイト):
vanhelcbxqt4tqie6fuevfng2bsdtxgc7xslo2yo7nitaacdfrlpxnqd.onion vanhelqmjstkvlhrjwzgjzpq422iku6wlggiz5y5r3rmfdeiaj3ljaid.onion vanhelsokskrlaacilyfmtuqqa5haikubsjaokw47f3pt3uoivh6cgad.onion vanheltarnbfjhuvggbncniap56dscnzz5yf6yjmxqivqmb5r2gmllad.onion
データリーク公開用ブログサイト(3サイト):
vanhelvuuo4k3xsiq626zkqvp6kobc2abry5wowxqysibmqs5yjh4uqd.onion vanhelwmbf2bwzw7gmseg36qqm4ekc5uuhqbsew4eihzcahyq7sukzad.onion vanhelxjo52qr2ixcmtjayqqrcodkuh36n7uq7q7xj23ggotyr3y72yd.onion
確認されたBitcoinウォレット: bc1q0cuvj9eglxk43v9mqmyjzzh6m8qsvsanedwrru
参考文献
[1] https://research.checkpoint.com/2025/vanhelsing-new-raas-in-town/ (Check Point, 2025-03-24)
[2] https://www.cyfirma.com/research/vanhelsing-ransomware/ (CYFIRMA, 2025-03-16)
2. ソースコードリークの経緯
2.1 タイムライン
| 日付 | 出来事 |
|---|---|
| 2025年3月7日 | VanHelsing RaaSプログラムが開始 |
| 2025年3月11日 | Check Pointが最初のバリアントを取得(コンパイルタイムスタンプ) |
| 2025年3月16日 | CYFIRMAが初観測。2番目のバリアント(5日後にコンパイル)も確認 |
| 2025年3月〜5月 | 少なくとも8組織が被害。$500,000の身代金要求が確認 |
| 2025年5月20日 | 元開発者「th30c0der」がRAMPフォーラムでソースコードを$10,000で販売試行 |
| 2025年5月20日(同日) | VanHelsingオペレーターが対抗措置として自らソースコードを無料公開 |
| 2025年5月20日以降 | オペレーターが「VanHelsing 2.0」の開発を予告 |
2.2 リークの詳細
元開発者「th30c0der」がロシア語圏のサイバー犯罪フォーラム「RAMP(Russian Anonymous Marketplace)」でVanHelsingのソースコード一式を$10,000で販売しようとした。販売内容にはアフィリエイトパネル、データリークTorサイト、Windows/Linuxビルダーが含まれていた[3][4]。
これに対しVanHelsingのオペレーターは、th30c0derを「元開発者で詐欺師」と非難し、販売の経済的価値を無効化するためにソースコードを自ら無料で公開するという焦土作戦を実行した[3][5]。
オペレーターのRAMPフォーラムへの投稿:
"Today we are announcing that we are publishing the old source codes and will soon come back with the new and improved version of the locker (VanHelsing 2.0)"
2.3 リークされた内容と本解析の対象
リークされたアーカイブに含まれていたもの:
| コンポーネント | 含まれていた | 本解析の対象 |
|---|---|---|
| Windowsエンクリプター(Locker) | ソースコード | 対象 |
| Loader | ソースコード | 対象 |
| Decrypter | ソースコード | 対象 |
| Brewriter(MBRロッカー) | ソースコード(開発途中) | 対象 |
| Builder | ソースコード | 対象 |
| アフィリエイトパネル(PHP) | ソースコード | 対象外 |
| Linuxビルダー | 含まれていない | — |
| データベース | 含まれていない | — |
リークされたWindowsソースコードはVisual Studioのプロジェクトファイルが「Release」フォルダ(通常はコンパイル済みバイナリを格納する場所)に誤配置されるなど、整理が不十分な状態であった[3]。
2.4 本解析の位置づけ — 「過去のバージョン」であることの認識
オペレーター自身が「old source codes(古いソースコード)」と明言しており、リーク後にVanHelsing 2.0の開発を予告している。したがって、本文書群で解析するソースコードはリーク時点(2025年5月)のバージョンであり、以下の点に留意が必要である:
- 現行バージョンとの差異: オペレーターがVanHelsing 2.0を開発している場合、暗号化方式、EDR回避技術、ネットワーク拡散手法等が大幅に変更されている可能性がある。本解析で特定したバグ(拡張子不一致、メモリリーク等)はVanHelsing 2.0で修正されていると推測される
- 派生バリアントの出現: ソースコードが公開されたことで、VanHelsingのオリジナル開発者とは無関係の攻撃者がコードを改変・カスタマイズした派生バリアントを展開する可能性がある。実際に、リーク後に「低スキルのサイバー犯罪者による初期実験」が確認されている[6]
- IOCの有効性: ミューテックス名(
Global\VanHelsingLocker)、ファイル拡張子(.vanhelsing)、Tor .onionアドレス等のIOCは、オリジナルのVanHelsingには有効だが、派生バリアントでは変更されている可能性が高い - 検知ルールの普遍性: 本解析で示した検知手法のうち、IOCベースのもの(ミューテックス名、ファイルパターン等)は陳腐化しやすいが、行動ベースのもの(大量ファイル操作、シャドウコピー削除パターン、PSExec横展開等)はバリアントが変わっても有効性を維持する
参考文献
[3] https://www.bleepingcomputer.com/news/security/vanhelsing-ransomware-builder-leaked-on-hacking-forum/ (BleepingComputer)
[4] https://cybersecuritynews.com/vanhelsing-ransomware-builder-leaked/ (CyberSecurityNews)
[5] https://www.cybersecurity-help.cz/blog/4746.html (Cybersecurity Help)
[6] https://www.mishcon.com/news/leaked-ransomware-source-code-likely-to-lead-to-more-attacks (Mishcon de Reya)
3. アーキテクチャ全体像
3.1 コンポーネント構成と攻撃チェーン
VanHelsingのWindowsツールセットは5つのコンポーネントで構成される:
[攻撃者インフラ]
┌─────────────────────────┐
C2パネル (PHP) ──── API ────→ │ Builder │
アフィリエイトが │ ・C2からタスク受信 │
ビルドをリクエスト │ ・Locker/Decrypterコンパイル│
│ ・AES-256-GCM暗号化 │
│ ・Loader生成 │
│ ・ZIPパッケージング │
└──────┬──────────────────┘
│ Locker.zip + decrypter.zip
▼ C2サーバー経由で配布
[アフィリエイト]
Locker.zip をダウンロード
├── loader.exe (暗号化Lockerを内包)
└── ReadMeGuid.txt (--Password KEY:NONCE + 使い方ガイド)
[被害者環境]
┌─────────────────────────────────────────────────────────┐
│ Loader │
│ ・--Password KEY:NONCEで起動 │
│ ・AES-256-GCM復号 → Lockerバイナリをメモリ上で復元 │
│ ・NtAllocateVirtualMemory直接syscall (x64) │
│ ・リフレクティブPEローディング → Lockerを実行 │
└──────┬──────────────────────────────────────────────────┘
│ Lockerがメモリ内で動作開始
▼
┌─────────────────────────────────────────────────────────┐
│ Locker │
│ ・MonitorAndKill: セキュリティ/バックアップ停止 (10秒間隔) │
│ ・PurgeShadowCopies: WMI経由シャドウコピー削除 │
│ ・XChaCha20-Poly1305 + Curve25519でファイル暗号化 │
│ ・SMB共有の探索・暗号化 │
│ ・[--spread-smb] PSExecでリモートホストに拡散 │
│ ・README.txt配置 + 壁紙変更 │
└──────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────┐
│ Brewriter (未完成・Lockerとの統合未実装) │
│ ・MBRをカスタムブートローダーで置換 │
│ ・OS起動前にランサムメッセージ表示(bootloader.bin欠落) │
└──────────────────────────────────────────────────────────┘
[身代金支払い後]
┌─────────────────────────────────────────────────────────┐
│ Decrypter │
│ ・--Key <秘密鍵>で起動 │
│ ・crypto_box_seal_openでセッション鍵を開封 │
│ ・XChaCha20-Poly1305で復号 │
│ ・元のファイル名を復元 │
└──────────────────────────────────────────────────────────┘
3.2 各コンポーネントの役割と技術的特徴
| コンポーネント | 役割 | 主要技術 | 開発状態 |
|---|---|---|---|
| Locker | ファイル暗号化・ネットワーク拡散 | XChaCha20-Poly1305, Curve25519, libsodium, SMB+PSExec横展開, WMIシャドウコピー削除 | 主要機能は実装済み。一部未実装(--spread-vcenter, --MbrLock, AddToStartup) |
| Loader | 暗号化ペイロードの復号・メモリ内実行 | AES-256-GCM, リフレクティブPEローディング, NtAllocateVirtualMemory直接syscall (x64) | 実装済み。旧バージョンから大幅に進化 |
| Decrypter | 暗号化ファイルの復号 | crypto_box_seal_open, XChaCha20-Poly1305 pull | 実装済み。バグ複数あり(GetRealFileName, 部分暗号化計算差異) |
| Brewriter | MBRブートレコード書き換え | PhysicalDrive0直接アクセス, セクター読み書き | 未完成。bootloader.bin欠落、Lockerとの統合未実装 |
| Builder | 自動ビルド・パッケージング | C2ポーリング, msbuildコンパイル, AES-256-GCM暗号化, code.h生成 | 実装済み。C2通信がHTTPS非対応 |
3.3 暗号方式の全体像
VanHelsingは用途に応じて2つの暗号方式を使い分ける:
| 用途 | 暗号方式 | 鍵管理 | 使用コンポーネント |
|---|---|---|---|
| ファイル暗号化 | XChaCha20-Poly1305 + Curve25519 | ファイルごとにセッション鍵を生成し、公開鍵で封印 | Locker → Decrypter |
| ペイロード保護 | AES-256-GCM | ビルドごとにランダム鍵を生成し、ReadMeGuid.txtで配布 | Builder → Loader |
ファイル暗号化にChaCha20系を、ペイロード保護にAES-GCMを選択した理由は、それぞれの用途の要件が異なるためと考えられる: - ファイル暗号化(ChaCha20): 多数のファイルを高速に暗号化する必要があり、AES-NIハードウェアサポートの有無に依存しない性能が求められる - ペイロード保護(AES-GCM): 1回限りの復号であり、ビルドサーバーとアフィリエイトの端末のCPU(通常AES-NI対応)で最速の処理が求められる
4. 主要な技術的発見
4.1 発見されたバグと実装上の問題
ソースコード解析を通じて、全コンポーネントにわたって多数のバグと実装上の問題を特定した。主要なものを以下に示す:
| コンポーネント | 問題 | 影響 |
|---|---|---|
| Locker | .vanlocker vs .vanhelsing 拡張子不一致 |
カスタムアイコンが表示されない |
| Locker | SystemParametersInfoW(SPI_SETDESKWALLPAPER, 0, NULL, ...) |
壁紙がクリアされるだけで設定されない |
| Locker | GetSharedFolder()のSilentモードがL"Normal"のまま |
ネットワーク共有でSilentモードが機能しない |
| Locker | Exec()のメモリリーク + ハンドルリーク | 長時間実行でメモリ消費増大 |
| Loader | x64パスのgetchar()(デバッグ残留の可能性) |
x64環境での実行に影響しうる |
| Decrypter | GetRealFileName()のバッファオーバーリード | ドット1つ以下のファイル名でクラッシュ |
| Decrypter | 部分暗号化割合の計算順序差異 | 大容量ファイルの復号で最大99バイトのずれ |
| Brewriter | GPTディスクでセクター1(GPTヘッダー)を破壊 | UEFI環境でブート不能かつランサムメッセージも表示されない |
| Brewriter | bootloader.bin欠落 | コンポーネント自体が機能しない |
| Builder | C2通信がHTTPS非対応 | ビルド成果物と鍵が平文で傍受可能 |
| Builder | NULLポインタデリファレンス | C2応答なし時にBuilderがクラッシュ |
4.2 開発の成熟度と将来の進化
リークされたソースコードには、コメントアウトされた旧バージョンのコードが大量に残されており、開発の進化過程を追跡できる:
- Locker:
--Password認証の放棄、スレッドプール(max_threads_num = 5)の断念、program filesディレクトリ除外の解除、.vanlocker→.vanhelsingへの拡張子変更 - Loader:
VirtualAlloc→NtAllocateVirtualMemory直接syscallへの進化、ハードコード鍵 → コマンドライン鍵受け渡しへの変更、変数名難読化の逆行的な除去 - Decrypter:
.vanlocker→.vanhelsing検索への変更(Lockerの拡張子変更に追従)
ReadMeGuid.txt(Builderが生成するアフィリエイト向けガイド)には、ソースコードに未実装のフラグが多数記載されており、開発ロードマップを示唆する: --no-extension, --no-note, --no-proc, --no-services, --no-vm, --sandbox-check, --no-killcluster, --no-domain。これらはVM検知、サンドボックス検知、クラスター対応など、より高度な機能の計画を示している。
5. 公開分析レポートとの照合
本解析で使用した主要な公開分析レポート:
| 発行元 | 日付 | 主な貢献 |
|---|---|---|
| Check Point Research | 2025-03-24 | 初の詳細技術分析。2バリアントの比較、暗号化フロー、Silentモード分析 |
| CYFIRMA | 2025-03-16 | 初観測報告。MITRE ATT&CKマッピング、IOC |
| GLIMPS | 2025年3月 | バイナリ分析。PDBパス、libsodium使用確認、難読化なしの確認 |
| Picus Security | 2025年 | 暗号化ファイルフォーマット詳細、検知ルール |
| FortiGuard Labs | 2025年 | 被害者統計、コマンドライン引数分析 |
| Splunk Security Research | 2025年 | VanHelsing専用Analytics Story(7検知ルール) |
| AttackIQ | 2025-05-15 | エミュレーション・検知テスト |
| BleepingComputer | 2025-05-22 | リーク経緯の詳細報道 |
| Veeam | 2025年 | リーク後のセキュリティチーム向けガイダンス |
本解析で公開レポートとソースコードの間に差異が確認された点:
- 部分暗号化割合: Check Pointは30%、ソースコードは20%(バリアント間の差異と推測)
- 暗号化ファイルフォーマット: Picus Securityの報告にはnonce用デリミタ(
---nonce---)があるが、本ソースコードには存在しない
6. 文書構成
| 文書 | 内容 |
|---|---|
| VanHelsing ランサムウェア v1.0 技術解析 — 全体概要(本文書) | VanHelsingの全体像、リーク経緯、アーキテクチャ概観 |
| VanHelsing v1.0 Locker 技術解析 | ファイル暗号化エンジン、ネットワーク拡散、プロセス/サービス停止、検知ポイント |
| VanHelsing v1.0 Loader 技術解析 | AES-256-GCM復号、リフレクティブPEローディング、直接syscall |
| VanHelsing v1.0 Decrypter 技術解析 | 復号エンジン、Lockerとの暗号パラメータ対比、復号失敗シナリオ |
| VanHelsing v1.0 Brewriter 技術解析 | MBR書き換え、GPTディスクへの影響、Petya/NotPetya比較 |
| VanHelsing v1.0 Builder 技術解析 | C2タスクポーリング、ビルドパイプライン、脅威インテリジェンス価値 |
参考文献
[7] https://www.veeam.com/blog/vanhelsing-ransomware-leak-lessons-resilience.html (Veeam)
[8] https://www.picussecurity.com/resource/multi-platform-vanhelsing-ransomware-raas-analysis (Picus Security)
[9] https://www.fortinet.com/blog/threat-research/ransomware-roundup-vanhelsing (FortiGuard Labs)
[10] https://www.glimps.re/en/resource/vanhelsing-our-cti-experts-publish-their-technicalanalysis/ (GLIMPS)
[11] https://research.splunk.com/stories/vanhelsing_ransomware/ (Splunk Security Research)
[12] https://www.attackiq.com/2025/05/15/emulating-vanhelsing-ransomware/ (AttackIQ)