21 Şubat 2025'te Bybit, bir saldırganın sosyal mühendislik yoluyla bir Safe{Wallet} geliştiricisinin makinesini ele geçirmesinin ardından yaklaşık 1,5 milyar dolar kaybetti. Saldırgan, Safe{Wallet}'ın AWS S3 kovasına zararlı JavaScript enjekte ederek özellikle Bybit'in işlemlerini hedef aldı. Enjekte edilen kod, imzalama sürecinde işlem içeriğini değiştirdi: Safe{Wallet} arayüzü meşru bir işlem gösterirken, imzacıların Ledger cihazlarına gönderilen gerçek yük, Bybit'in Safe sözleşmesini zararlı bir uygulamaya yükselterek saldırgana tam kontrol sağladı. İmzalanıp yürütüldükten sonra saldırgan, sözleşmedeki tüm varlıkları boşalttı. Ayrıntılı teknik bir inceleme, önceki raporumuzda mevcuttur [1].
Arka Plan
Safe{Wallet} (diğer adıyla GnosisSafe), n-of-m modelini kullanan çok imzalı bir cüzdan altyapısıdır: bir işlemi yürütmek için m toplam imzacıdan en az n imza gerekir.
Her Safe cüzdanı bir proxy sözleşme olarak dağıtılır. Bu olayın merkezinde iki depolama değişkeni yer almaktadır:
masterCopy(slot 0): uygulama sözleşmesinin adresi. Bu sözleşme, imza doğrulama ve yükseltme mekanizmaları dahil tüm yürütme mantığını içerir. Proxy, tüm çağrılarıdelegatecallaracılığıylamasterCopy'e yönlendirir.threshold(slot 4): gereken minimum imza sayısı (n). Bybit'in Safe'i için bu değer 3'tü.
Proxy delegatecall kullandığından, masterCopy üzerinde çağrılan herhangi bir fonksiyon proxy'nin depolama bağlamında yürütülür. Bu, bir delegatecall hedefinin slot 0'daki masterCopy'yi doğrudan üzerine yazabileceği ve tek bir işlemde tüm uygulamayı değiştirebileceği anlamına gelir.
Güvenlik Açığı Analizi
Saldırı yolu, sistemin üç katmanından geçti; her biri saldırganın kullandığı yapısal bir koşul sunuyordu:
Ön uç sunum modeli. Safe{Wallet} ön uç JavaScript'i bir AWS S3 kovasından sunuluyordu. Bu mimaride, kovaya yazma erişimi olan herkes imzacılar için işlemler oluşturan kodu değiştirebilir. Alt kaynak bütünlüğü (SRI) hash'leri veya kod imzalama gibi bütünlük doğrulama mekanizmaları bu riski azaltabilir, ancak bunlar henüz çoğu dApp ön ucu için standart bir uygulama değildir. Saldırgan, ele geçirilen geliştirici makinesi aracılığıyla yazma erişimi elde etti ve sunulan JavaScript'i sessizce değiştirdi.
Arayüz gösterimi ile imzalama yükü arasındaki boşluk. Enjekte edilen JavaScript, Safe{Wallet} arayüzünde meşru görünümlü bir işlem gösterirken Ledger donanım cüzdanlarına farklı bir yük gönderdi. Ledger ekranında gösterilen işlem ayrıntıları arayüzden farklı olurdu, ancak özellikle karmaşık çok imzalı işlemler için bir donanım cüzdanı ekranında ham işlem verilerini yorumlamak kolay değildir. Bu boşluk, saldırganın zararlı yük için üç geçerli imza toplamasına olanak tanıdı.
Proxy yükseltme modeli. Arka Plan bölümünde açıklandığı üzere, delegatecall hedefin kodunu proxy'nin depolama bağlamında yürütür. Safe proxy mimarisi tüm çağrıları slot 0'daki tek bir masterCopy işaretçisi üzerinden yönlendirir. Bu işaretçinin üzerine yazılması, imza doğrulama mantığı dahil proxy'yi tek bir işlemde tamamen farklı bir uygulamaya yönlendirir. n-of-m modeli bir işlemi kimin başlatabileceğini yönetir, ancak bir işlem onaylanıp yürütüldükten sonra uygulamanın kendisini değiştirebilir. Yeni uygulama imza doğrulamasını kaldırırsa, çok imzalı koruma sonraki tüm işlemler için fiilen ortadan kalkar.
Saldırı Analizi
Saldırı üç adımda ilerledi: Zararlı Kod Enjeksiyonu, Uygulama Değişikliği ve Varlık Hırsızlığı.
Adım 1: Zararlı Kod Enjeksiyonu
Saldırgan, bir Safe{Wallet} geliştiricisinin makinesini ele geçirdi ve ön ucu sunan AWS S3 kovasına zararlı JavaScript enjekte etti. Enjekte edilen kod özellikle Bybit'in Safe adresinden gelen işlemleri hedef aldı. Bybit CEO'su Ben Zhou'ya göre [2], Safe{Wallet} arayüzü meşru bir işlem gösterirken imzacıların Ledger cihazlarına farklı bir yük gönderildi. İmzacılar işlemi arayüzde sunulduğu şekilde onayladı ve bu durum saldırgana zararlı yük için üç geçerli imza kazandırdı.
Adım 2: Uygulama Değişikliği
Saldırgan, toplanan üç imzayla zararlı işlemi gönderdi. Safe proxy, çağrıyı masterCopy'e devretti; execTransaction() fonksiyonu imzaları doğruladı ve ardından işlem yükünü yürüttü: saldırganın sözleşmesine (0x962214...5c7242) bir delegatecall. Bu delegatecall proxy'nin depolama bağlamında çalıştığından, saldırganın transfer() fonksiyonu slot 0'daki masterCopy değerinin üzerine zararlı bir uygulama adresiyle (0xbDd077...9516) yazdı. Bu noktadan itibaren Safe sözleşmesine yapılan tüm çağrılar saldırganın koduna devredildi.
Adım 3: Varlık Hırsızlığı
masterCopy artık saldırganın uygulamasına işaret ettiğinden, çok imzalı gereksinim artık geçerli değildi. Saldırgan, Safe sözleşmesi üzerinde doğrudan SweepERC20() ve SweepETH() fonksiyonlarını çağırdı. Saldırganın uygulama sözleşmesinde tanımlanan bu fonksiyonlar, herhangi bir imza doğrulaması olmaksızın tüm tutulan varlıkları aktardı. Toplam yaklaşık 1,5 milyar dolar kayıpla beş boşaltma işlemi gerçekleştirildi.
İlgili Sözleşmeler ve İşlemler
| Tür | Açıklama | Adres / Hash |
|---|---|---|
| Sözleşme | Bybit'in Safe sözleşmesi | 0x1Db92e2EeBC8E0c075a02BeA49a2935BcD2dFCF4 |
| Sözleşme | Orijinal masterCopy sözleşmesi | 0x34CfAC646f301356fAa8B21e94227e3583Fe3F5F |
| Sözleşme | Zararlı masterCopy sözleşmesi | 0xbDd077f651EBe7f7b3cE16fe5F2b025BE2969516 |
| Sözleşme | Saldırganın sözleşmesi (yani transfer()) | 0x96221423681A6d52E184D440a8eFCEbB105C7242 |
| İşlem | masterCopy sözleşmesini değiştiren işlem | 0x46deef0f52e3a983b67abf4714448a41dd7ffd6d32d32da69d62081c68ad7882 |
| İşlem | 15.000 cmETH boşaltan işlem | 0x847b8403e8a4816a4de1e63db321705cdb6f998fb01ab58f653b863fda988647 |
| İşlem | 90.375 stETH boşaltan işlem | 0xa284a1bc4c7e0379c924c73fcea1067068635507254b03ebbbd3f4e222c1fae0 |
| İşlem | 8.000 mETH boşaltan işlem | 0xbcf316f5835362b7f1586215173cc8b294f5499c60c029a3de6318bf25ca7b20 |
| İşlem | 401.346 ETH boşaltan işlem | 0xb61413c495fdad6114a7aa863a00b2e3c28945979a10885b12b30316ea9f072c |
| İşlem | 90 USDT boşaltan işlem | 0x25800d105db4f21908d646a7a3db849343737c5fba0bc5701f782bf0e75217c9 |
Özet
Bu olay, zincir dışı altyapının ele geçirilmesinin nasıl zincirleme olarak felaket boyutunda zincir üstü kayıplara yol açabileceğini ortaya koydu. Saldırgan, bir Web2 ihlalini, ön uç manipülasyonunu ve bir proxy yükseltmesini zincir üstünde herhangi bir güvenlik açığından yararlanmadan çok imzalı korumayı atlayan tek bir saldırı yoluna dönüştürdü.
Temel dersler:
- Ön uç bütünlüğü, zincir üstü güvenlikle aynı önemi hak ediyor. Saldırı zinciri ön uç sunum katmanında başladı. dApp'ler yüksek değerli işlemlere giderek daha fazla aracılık ettikçe, ön uç kodunu bütünlük doğrulamasıyla (SRI, kod imzalama, yeniden üretilebilir yapılar) korumak ve yetkisiz değişiklikleri izlemek temel bir gereksinim haline geliyor.
- Donanım cüzdanı doğrulaması pratikte hâlâ zorlu. Donanım cüzdanları gerçek imzalama yükünü gösterebilir, ancak küçük bir ekranda karmaşık çok imzalı işlem verilerini yorumlamak bilinen bir kullanılabilirlik sorunudur. Cihaz üzerindeki işlem özetlerinin okunabilirliğini artırmak, cüzdan ekosistemi için hâlâ çözüm bekleyen bir sorundur.
- Proxy yükseltme mekanizmaları yüksek etkili hedeflerdir. Safe proxy mimarisi tüm mantığı tek bir yükseltilebilir işaretçi üzerinden yönlendirir. Tek adımlı uygulama değişimine olanak tanıyan herhangi bir mekanizma riski yoğunlaştırır. Yükseltmeler için bir zaman kilidi, ikincil bir onay adımı veya bağımsız bir koruyucu eklemek, tek bir ele geçirilmiş işlemin etkisini azaltabilir.
Referans
BlockSec Hakkında
BlockSec, tam kapsamlı bir blok zinciri güvenliği ve kripto uyumluluk sağlayıcısıdır. Müşterilerin kod denetimi gerçekleştirmesine (akıllı sözleşmeler, blok zinciri ve cüzdanlar dahil), saldırıları gerçek zamanlı olarak önlemesine, olayları analiz etmesine, yasadışı fonları takip etmesine ve protokollerin ve platformların tüm yaşam döngüsü boyunca AML/CFT yükümlülüklerini yerine getirmesine yardımcı olan ürün ve hizmetler geliştiriyoruz.
BlockSec, saygın konferanslarda birden fazla blok zinciri güvenlik makalesi yayımlamış, çeşitli DeFi uygulamalarına yönelik birçok sıfır gün saldırısını raporlamış, 20 milyonun üzerinde doları kurtarmak için birden fazla hack girişimini engellemiş ve milyarlarca değerinde kripto para birimini güvence altına almıştır.
-
Resmi web sitesi: https://blocksec.com/
-
Resmi Twitter hesabı: https://twitter.com/BlockSecTeam



