2025-10-23'te SSP Wallet v1.27.0, yılın en derin çalışma zamanı güvenlik değişikliğiyle indi: MetaMask'in öncülük ettiği JavaScript bölmeleme çerçevesi LavaMoat artık SSP'ye entegre. Cüzdanın yüklediği her üçüncü taraf bağımlılığı kendi sandbox'ında mühürleniyor; böylece tehlikeye atılmış bir paket — her modern cüzdanın yüzleştiği npm tedarik zinciri riski — artık cüzdanın diğer parçalarının yaptığını okuyamaz ya da değiştiremez. Sürüm aynı zamanda Content Security Policy'yi sıkılaştırıyor, bir güvenlik test sayfasını easter-egg jestinin arkasına saklıyor ve bir avuç UI cilalama kazancı getiriyor.
Çalışma zamanı sandboxlama SSP'ye geliyor
LavaMoat, 30 saniyede: bir JavaScript uygulamasının bağımlılık ağacını alan, her paketi kendi bölmesine yalıtan ve her bölmenin yalnızca politika dosyasında kendisine açıkça verilmiş global'lere ve API'lere dokunmasına izin veren bir çalışma zamanı. Varsayılan olarak bir üçüncü taraf bağımlılığı localStorage'ı okuyamaz, fetch çağıramaz, keyring'e uzanamaz, Object.prototype'a monkey-patch atamaz. Denerse, çalışma zamanı onu durdurur.
Bu, çoğu web uygulamasından farklı bir güvenlik duruşudur; çoğu yerde içe aktarılan her paket uygulamanın kendisiyle aynı yetkiyle çalışır. SSP'nin içinde özel anahtarları işleyen kod, borsa API'leriyle konuşan swap entegrasyonu ve tarih seçici çizen üçüncü taraf UI yardımcıları eskiden tek bir global kapsamı paylaşıyordu. v1.27.0 itibarıyla artık paylaşmıyor.
Bölmeleme neden önemli
Bölmelemenin etkisiz kılmak için tasarlandığı tehdit, npm tedarik zinciri saldırısıdır. Bu örüntü vahşi doğada defalarca görüldü: bir saldırgan popüler bir paketin kontrolünü ele geçirir, kötü amaçlı bir sürüm yayınlar ve onu doğrudan ya da dolaylı olarak içe aktaran her uygulamaya geçişli bağımlılık dalgasıyla biner. Bir cüzdan için, tam uygulama yetkisiyle çalışan kötü amaçlı bir paketin etkisi yıkıcıdır — bellekteki seed materyalini okuyabilir, özel anahtarları sızdırabilir veya kullanıcı imzalamadan önce işlem hedeflerini yeniden yazabilir.
LavaMoat saldırının uygulamaya ulaşmasını engellemez. Etkiyi ortadan kaldırır. Tehlikeye atılmış bir bağımlılık — ağacın beş seviye derinine gömülmüş olsa bile — imza yüzeyine erişimi olmayan, politikanın izin verdiğinden başka ağ erişimi olmayan ve başka bir bölmenin durumunu okuma yolu olmayan bir bölmenin içinde çalışır. Tehlikeye atılmış paket ≠ tehlikeye atılmış cüzdan — denklik v1.27.0'da ilk kez tutuyor.
Bu, yılın başında inen korumaları değiştirmek yerine tamamlıyor. SSP'nin kaynak kodu, tam Halborn denetimi tarafından zaten doğrulanmıştı; ve kurduğunuz ikili, deterministik build'ler ve GPG imzası sayesinde o kaynağa karşı zaten kanıtlanabilirdi. LavaMoat, çalışma zamanı boşluğunu kapatır: bir bağımlılık build imzalandıktan sonra haylaz dahi olsa, cüzdan düzeyinde erişime tırmanamaz.
Daha güçlü Content Security Policy
v1.27.0, çalışma zamanı sandboxlamanın yanı sıra tarayıcı katmanındaki Content Security Policy'yi de sıkılaştırıyor. CSP, cüzdanın kendisi için ilan ettiği bütçedir — hangi originlerden script yükleyebileceği, hangi originlerle konuşabileceği, hangi inline davranışlara izin verildiği. Daha sıkı bir CSP, LavaMoat sayfanın içinde politikasını uygulamadan önce bile bir saldırganın hareket edebileceği alanı daraltır.
Birleşik etki iki kapsama katmanıdır: tarayıcı, ilan edilen politikanın dışındaki kaynakları yüklemeyi reddeder ve yine de çalışan her JavaScript daha sonra LavaMoat tarafından bölmelenir. Her katman farklı bir başarısızlık modunu kapsar; bu da derin savunmanın bütün noktasıdır.
Gizli bir güvenlik test sayfası
İç doğrulama için — ve sürümde kasıtlı bir easter egg ile gelen tek özellik budur — v1.27.0 normal gezinmede görünmeyen bir güvenlik test sayfası içeriyor. Sürüm numarasına hızlı arka arkaya birkaç kez tıklamak onu ortaya çıkarır. Sayfa, LavaMoat politikasına ve CSP kurallarına karşı bir denetim bataryası çalıştırır; böylece incelemeciler ve red-teamer'lar, denetledikleri build'de korumaların aktif olduğunu cüzdanı kendileri enstrümante etmeden doğrulayabilir. Günlük kullanıcılar için tasarlanmamıştır ve arkasında istismar edilebilecek bir şey yoktur; sadece v1.27.0'ın vaat ettiklerini doğrulamanın daha kullanışlı bir yoludur.
Derin savunma: denetimli + yeniden üretilebilir + sandboxlu
v1.27.0'ın ilginç tarafı yalıtılmış LavaMoat değil; üç parçanın nasıl bir araya geldiğidir. Denetimli kaynak kod (Halborn), o kaynağa karşı herkesin doğrulayabileceği yeniden üretilebilir ikili (deterministik build'ler) ve tehlikeye atılmış herhangi bir bağımlılığı içeren çalışma zamanı. Birlikte soruyu "SSP'nin tüm bağımlılık ağacına güveniyor muyum?"dan "denetlenmiş çekirdeğe güveniyor muyum?"a çevirirler — çok daha küçük ve yanıtlanabilir bir güven yüzeyi.
UI cilası üstüne biner: swap borsalarının logoları artık doğru render ediliyor ve marka paleti ekranlar arasında hizalandı. Cüzdanın nasıl hayatta kaldığını değiştiren şey, bölmelemedir.