< ニュースルームに戻る

LavaMoat が SSP へ — マルチシグ向けランタイム・サンドボックス

·4 分で読める·SSP Editorial Team 著
セキュリティ・バッジの下に南京錠、チェック付き盾、チップ、稲妻のアイコンが並び、見出しは「LavaMoat が SSP へ」。

2025-10-23、SSP Wallet v1.27.0 は年内で最も深いランタイム・セキュリティ変更を伴って着地しました。MetaMask が先駆けた JavaScript コンパートメント化のフレームワーク LavaMoat が、SSP に統合されたのです。ウォレットが読み込むサードパーティ依存はそれぞれ独立したサンドボックスに封じ込められ、改ざんされたパッケージ — どの現代ウォレットも直面する npm サプライチェーン・リスク — は、ウォレットの他の部分が何をしているかを読み取ることも書き換えることもできなくなります。同リリースでは Content Security Policy も引き締められ、セキュリティ・テストページがイースターエッグ的なジェスチャの後ろに隠され、UI 磨きも一通り入りました。

ランタイムのサンドボックス化が SSP に到来

LavaMoat を 30 秒で言えば、こうです。JavaScript アプリの依存ツリーを受け取って、それぞれのパッケージを独立したコンパートメントに隔離し、各コンパートメントはポリシーファイルで明示的に与えられたグローバルと API にしか触れられない — そういうランタイムです。デフォルトで、サードパーティ依存は localStorage を読めず、fetch を呼べず、キーリングに手を伸ばせず、Object.prototype をモンキーパッチできません。試みれば、ランタイムが止めます。

これは、多くのウェブアプリの姿勢とは別物です。普通のウェブアプリでは、インポートされたパッケージはアプリ本体と同じ権限で走ります。SSP の中では、秘密鍵を扱うコード、取引所 API と話す Swap 統合、サードパーティ製の UI ヘルパーが、これまで単一のグローバルスコープを共有していました。v1.27.0 からは、それが終わります。

なぜコンパートメント化が大事か

コンパートメント化が無効化しようとしている脅威は、npm のサプライチェーン攻撃です。このパターンは野生で何度も観測されてきました。攻撃者が人気パッケージの管理権を奪い、悪意あるバージョンを公開し、推移的依存の波に乗って、それを直接または間接にインポートしているすべてのアプリに乗り込みます。ウォレットにとって、アプリの完全な権限で走る悪意あるパッケージの影響は破滅的です — メモリ上のシード素材を読み、秘密鍵を持ち出し、ユーザーが署名する前にトランザクションの宛先を書き換えることさえ可能です。

LavaMoat は、攻撃がアプリに届くこと自体を防ぐわけではありません。届いたときの影響を取り除きます。改ざんされた依存は、ツリーの五層下に埋まっていたとしても、署名サーフェスにアクセスできず、ポリシーが許す範囲を超えた外向きネットワークも持たず、他のコンパートメントの状態を読む手段も持たないコンパートメントの中で動きます。パッケージ侵害 ≠ ウォレット侵害 — この等式が成り立つのは v1.27.0 が初めてです。

これは、年初に着地した保護を置き換えるものではなく、補完するものです。SSP のソースはすでに Halborn のフル監査で検証され、あなたがインストールするバイナリは、決定的ビルドと GPG 署名によってその監査済みソースに対して検証可能になっていました。LavaMoat はランタイムの隙間を埋めます — たとえビルド署名のあとに依存が悪意を帯びても、ウォレット権限まで昇格させることはできません。

より強い Content Security Policy

ランタイムのサンドボックス化と並んで、v1.27.0 はブラウザ層の Content Security Policy も引き締めます。CSP はウォレットが自分自身に対して宣言する「予算」です — どのオリジンからスクリプトを読み込んで良いか、どのオリジンと話して良いか、どのインライン挙動を許すか。CSP が厳しくなるほど、LavaMoat がページ内でポリシーを強制する前の段階で、攻撃者が活動できる余地が狭まります。

組み合わせた効果は二層の封じ込めです。ブラウザは宣言済みポリシーの外にあるリソースの読み込みを拒否し、それでも走った JavaScript はそのあと LavaMoat によってコンパートメント化されます。各層は異なる失敗モードをカバーします — 多層防御とは、ちょうどそのためのものです。

隠されたセキュリティ・テストページ

内部検証用に — そしてこれは本リリースで唯一、意図的なイースターエッグ付きの機能ですが — v1.27.0 には通常のナビゲーションでは露出しないセキュリティ・テストページが含まれています。バージョン番号を素早く何度かクリックすると現れます。このページは LavaMoat のポリシーと CSP ルールに対する一連のチェックを走らせ、レビュワーやレッドチームが、自分でウォレットを計測機器化せずに、自分が点検しているビルドで保護が実際に有効であることを確認できるようにします。日常ユーザー向けではなく、後ろに搾取可能なものは何もありません — v1.27.0 が約束していることを、より便利に検証する手段に過ぎません。

多層防御:監査 + 再現可能 + サンドボックス

v1.27.0 の面白さは、孤立した LavaMoat ではなく、三つの部品の組み合わせ方にあります。監査済みのソース (Halborn)、誰もがそのソースに対して検証できる再現可能なバイナリ (決定的ビルド)、そして侵害されたあらゆる依存を閉じ込めるランタイム。三つ合わさることで、ユーザーが投げる問いは「SSP の依存ツリー全部を信頼するか?」から「監査済みコアを信頼するか?」へと変わります — はるかに小さく、より答えやすい信頼サーフェスです。

UI 磨きは上に乗ります。Swap の取引所ロゴが正しく描画されるようになり、ブランドのカラーパレットが画面横断で揃いました。コンパートメント化こそが、ウォレットがどう生き延びるかを変える要素です。

この記事をシェアする

関連記事