
Adres zehirleme: yalnızca yanlış şeyi kopyalamanızı isteyen saldırı
Kripto kullanıcılarına yönelik saldırıların çoğu bir hata yapmanızı gerektirir: bir bağlantıya tıklamanızı, bir forma tohum ifadesi yazmanızı, okumadığınız bir şeyi onaylamanızı. Adres zehirleme bundan daha azını ister. Kendi işlem geçmişinizden bir adresi kopyalamanızı ister.
Zararlı yazılım yok, oltalama sitesi yok, sizden koparılacak bir imza yok. Saldırganın bütün katkısı, ileride uzanacağınız bir yere inandırıcı görünen bir karakter dizisi bırakmaktan ibaret.
Nasıl işliyor
Bunu mümkün kılan şeyden başlayalım: kimse adresleri okumuyor. Bir Bitcoin ya da Ethereum adresi, anlamı olmayan otuz küsur base58 veya onaltılık karakterdir; gözle değerlendirilebilecek bir sağlama toplamı yoktur ve akılda tutmak için hiçbir neden sunmaz. Bu yüzden her cüzdan, blok gezgini ve borsa onları görüntülemek için kısaltır — 0x8f3C…9A063 — ve her kullanıcı görünen uçları kontrol edip ortayı atlamayı öğrenir.
O alışkanlık, saldırı yüzeyinin tamamıdır.
Saldırgan, biri gerçekten kullandığınız bir adresle ilk ve son karakterleri paylaşana kadar kaba kuvvetle adres üretir — genellikle yakın zamanda para gönderdiğiniz bir adresle. Bu ucuz. Anahtar çiftleri üretmek hızlıdır ve diyelim dört baştaki, dört sondaki karakteri tutturmak sıradan donanımda saniyeler alır. Kimse bir şey kırmıyor; sadece bir sayı tanıdık görünene kadar zar atıyorlar.
Sonra o adresi geçmişinize sokuyorlar. Yaygın yöntemler:
Toz gönderme. Benzer görünen adresten size çok küçük bir tutar yolluyorlar — birkaç satoshi, bir jetonun kuruşun kesri kadarı. Bu sıradan bir gelen işlem, dolayısıyla geçmişinize herhangi biri gibi düşüyor. UTXO zincirlerinde bu toz aynı zamanda cüzdanınızda harcanabilir bir madeni para hâline geliyor; bu ilerde önem kazanacak.
Sıfır değerli transferler. EVM zincirlerinde sıfır jetonluk bir ERC-20 transfer çağrısı geçerli bir işlemdir. Saldırgan sizin adresinizden kendi taklidine 0 jeton gönderir ve bazı arayüzler bunu sizin yaptığınız bir giden ödeme olarak gösterir. Geçmişiniz artık hiç seçmediğiniz bir adrese görünüşte gönderim yaptığınızı gösteriyor.
Sahte olaylar. Kötü niyetli bir jeton sözleşmesi, hiç gerçekleşmemiş bir Transfer olayı yayabilir. Olay günlüklerine güvenen gezginler ve cüzdanlar bunu gösterecektir. Hiçbir şey kıpırdamadı; kayıt basitçe bir yalan.
Sonra bekliyorlar. Günlerce, bazen aylarca. Saldırı, aynı karşı tarafa bir sonraki ödemenizde, geçmişinizi "geçen sefer kullandığım adres" diye tararken yanlış satırı kopyaladığınızda karşılığını veriyor. İkisi de 0x8f3C…9A063 gibi görünüyor. Uçlara bakıyorsunuz. Uçlar tutuyor.
Alışıldık öğüt neden yetmiyor
"Adresi hep iki kez kontrol edin" standart tavsiyedir ve tek başına başarısızdır, çünkü kontrol etmek tam olarak saldırının hesaba kattığı şeydir. Siz kontrol ettiniz. Cüzdanınızın gösterdiği altı karakteri belleğinizdeki altı karakterle karşılaştırdınız ve aynıydılar — çünkü saldırgan onları aynı yaptı.
Doğrulama, ancak karşılaştırdığınız şeyin taklidi pahalıysa işe yarar. Dört ya da altı eşleşen karakter saniyelere mal olur. On altı eşleşen karakter, hırsızlığın değerinden fazlasına mal olurdu. Bütün oyun, alışkanlıklarınızın o eğrinin hangi ucunda durduğuyla ilgili.
UTXO zincirlerinde ikinci bir tuzak var. O toz ödemesi artık cüzdanınızdaki bir madeni para ve cüzdanınız girdileri kendiliğinden birleştiriyorsa, sonraki bir işleme süpürülebilir — tozlanan adresi geri kalan paralarınıza bağlayarak. Bu, hırsızlıktan çok bir gizlilik sorunu; ama tozu toplamak yerine görmezden gelmenin nedeni de bu.
Gerçekte neyin koruduğu
Bir adresi asla işlem geçmişinden almayın. Önemli olan tek değişiklik bu. Geçmişiniz olup bitenlerin kaydıdır, güvendiklerinizin listesi değil — ve dünyada herkes oraya yazabilir. Adresleri karşı taraftan, bir sahtekârı fark edebileceğiniz bir kanaldan ya da kendi doldurduğunuz bir adres defterinden alın.
Adresleri bütün olarak karşılaştırın ya da adresin tamamını özetleyen bir şeyi karşılaştırın. Kırk iki karakterin hepsini okumak gerçekçi değil. Bir identicon'u — dizinin tamamından belirlenimci biçimde üretilen küçük bir görseli — karşılaştırmak ise gerçekçi, çünkü ortada herhangi bir yerde ayrışan bir taklit gözle görülür biçimde farklı bir resim üretir. Gözünüz, sabrınızın yapmayacağı işi yapar.
Kayıtlı bir kişi kaydı kullanın. Bir kez doğruladığınız bir kaynaktan bir kez kaydettiğiniz adres, sonradan zehirlenemez. Adres defterleri bunun içindir ve SSP'nin kişileri sunucuda değil cihazınızda tutmasının nedeni de budur: bir kişi listesi ancak başka kimse onu düzenleyemiyorsa güvenilirdir.
Büyük ya da ilk kez yapılan transferlerde deneme ödemesi gönderin. Küçük tutar, alındığını başka bir kanaldan doğrulayın, sonra kalanı gönderin. Ücretler bunu can sıkıcı kılar ve kaybetmeye dayanamayacağınız bir ödeme için yine de doğrudur.
Tozu görmezden gelin. Harcamayın, "temizlemeye" kalkmayın ve gizliliğe önem veriyorsanız otomatik birleştirmeye dikkat edin.
SSP bu konuda ne yapıyor
Adres zehirleme, güvenlik sorunu olduğu kadar bir görüntüleme sorunudur; dolayısıyla cevabın bir kısmı adreslerin nasıl çizildiğinde yaşar.
SSP adresleri, birçok arayüzün kullandığı üç ya da dört yerine baştan altı, sondan altı karakterle kısaltır: 0x8f3C4b…9A0631. Bu kozmetik bir tercih değil. Her ek karakter, bir eşleşme üretmenin kaba kuvvet maliyetini katlar ve on iki görünür karakter, inandırıcı bir taklidi gündelik üretimin epeyce dışına çıkarır.
Orta kısım silinmiyor, vurgusu azaltılıyor. Genişletilmiş biçimde cüzdan, uçları kalın, ortası daha açık renkli olacak şekilde dizinin tamamını gösterir; böylece saldırganların atlamanıza güvendiği kısım, arkasında her şey olabilecek üç noktayla değiştirilmek yerine fiziksel olarak ekranda kalır.
Aynı kod her iki uygulamada çalışıyor. SSP Wallet'taki splitAddressForDisplay, SSP Key'dekinin doğrudan bir aktarımı ve bir adres tarayıcınızda da telefonunuzda da aynı görünsün diye bilinçli olarak birebir tutuluyor. Bu önemli, çünkü SSP size işlemi iki kez, iki cihazda gösteriyor — ve ikinci bakış, ancak iki yüzey aynı şeyi aynı biçimde çiziyorsa gerçek bir kontroldür. Farklı iki kısaltma, bir uyuşmazlığın o farkın içinde saklanmasına izin verirdi.
SSP Key'in onay ekranında alıcı, kısaltılmış metnin yanında tam adresten üretilmiş bir identicon ile gösterilir ve dokunulduğunda adresin tamamı seçilebilir metin olarak açılır. Dizinin ortasındaki bir değiştirmeyi bozguna uğratan kısım identicon'dur: bir saldırgan baştaki ve sondaki karakterlerinizi tutturabilir, ama her karakterden türetilmiş bir resmi çok daha zor bir problemi çözmeden tutturamaz.
Bunların hiçbiri garanti değil. Zehirlenmiş bir adresi yapıştırıp iki cihazda da onaylarsanız SSP onu imzalayacaktır — kararlarınızı sorgulayan bir saklayıcı değil, sizin denetlediğiniz bir cüzdan olmak budur. İki-of-iki çoklu imza, başkasının paralarınızı harcamasını engeller; sizin bilerek yanlış kişiye ödeme yapmanızı engelleyemez. Sizi harekete geçirerek işleyen her saldırıda olduğu gibi, savunmanın imzadan önce yerine oturması gerekir, imza sırasında değil.
Kısa hâli
Adres zehirleme, kırk iki karakter yerine altı karakter karşılaştırdığınız ve saldırganın hangi altısı olduğunu bildiği için işe yarıyor. Savunma daha fazla titizlik değil — bir adresi asla bir saldırganın yazabildiği bir yerden almamak ve atlayacağınız kısımları önünüze geri koyan araçlar kullanmaktır.


