
Cüzdan boşaltıcıları: Onaylar ve imzalar nasıl çalışır?
Cüzdan boşaltıcılar, bir kurbanın cüzdanından yeniden kullanılabilir yetkilendirmeyi toplayarak çalışır, ardından bu izni kullanarak token'ları, NFT'leri ve bazen yerel coin'leri tekrar sormadan taşır. Zincir, bu imzalı onayları ve yazılı veri izinlerini geçerli talimatlar olarak zorunlu kılar, bu nedenle hırsızlık genellikle bir "hack" yerine normal bir DeFi aktivitesi gibi görünür.
Anahtar Çıkarımlar
- Bir cüzdan boşaltıcı genellikle bir seed phrase olmadan, kurbanın bir ERC-20 onayı imzalamasını sağlayarak başarılı olur, bir NFToperatör onayı veya bir izin tarzı yazılı veri imzası.
- Aldatmacanın genellikle iki aşaması vardır: önce izin alma, ardından otomatik bir tarama, hemen veya daha sonra transferFrom veya setApprovalForAll gibi fonksiyonlar kullanılarak.
- İmza oltalama genellikle göründüğünden daha tehlikeli çünkü yazılı veri imzaları sonradan zincir üzerindeki onaylara dönüştürülebilir.
- Aldatıcılar genellikle meşru DEX yönlendiricileri üzerinden geçer, böylece zincir üzerindeki iz normal bir takas gibi görünür, bu da tespiti ve yanıtı geciktirir.
Cüzdan boşaltıcıları ve onay oltalama temelleri
Temel hile basittir: saldırganın cüzdan şifrelemesini kırmasına gerek yoktur, eğer kurban saldırgana harcayıcı olarak yetki vermeye ikna olursa. Bu nedenle bir cüzdan boşaltıcısı normal DeFi kullanıcı deneyiminin içinde yer alır, dışında değil. Kurban bir cüzdan bağlar, tanıdık bir istem görür ve rutin görünen bir şeyi imzalar. Blockchain daha sonra tam olarak imzalandığı gibi yetkilendirmeyi uygulamak için tasarlandığı şeyi yapar.
Bu yüzden onay oltalamasıdoğru zihinsel modeldir. Saldırgan, kurban olarak “giriş yapmıyor”. Saldırgan, protokolün tanıdığı bir izin alıyor ve ardından bunu sürekli bir kredi limiti gibi kullanıyor.
FinanceFeeds’in Trust Wallet boşaltma kampanyası yazısı, bu akışların “bir kullanıcı onayladığında” cüzdanları boşaltabileceğini açıkça belirtiyor ve mekaniklerin, kötü amaçlı yazılım veya bir istismar yerine meşru DeFi kullanımını yansıttığını vurguluyor.
Web2 güvenliğinden gelen okuyucular için yararlı bir ayrım, bir cüzdanın “tehdit altında” olabileceğidir; bu, cüzdanın boşaltılabilir olduğu anlamına gelir, ancak private key cihazdan asla çıkmaz. CryptoAdventure bunu rıza olarak çerçeveliyor: kullanıcı imzalar, zincir doğrular, saldırgan aktarır. Bu nedenle “ben bir hardware wallet kullanıyorum” ifadesi tam bir savunma değildir.
FinanceFeeds, hardware wallets özel anahtar hırsızlığı riskini azalttığını ancak kullanıcının yanlış onayı imzalaması durumunda kullanıcı onaylı boşaltmaları önlemediğini belirtiyor.
Bu açıklayıcı metin, kripto cüzdan dolandırıcılıkları ve bunlardan nasıl kaçınılacağı konusunun daha geniş bir bağlamında yer alıyor çünkü savunma esasen izin hijyeni ile ilgilidir, antivirüs ile değil.
bağlan ve onayla saldırı akışı
En yüksek olasılıklı drainer yolu önce bir dağıtım problemi ve sonra bir akıllı sözleşme problemi olarak tanımlanır. FinanceFeeds, Hindistan'ın ulusal siber suç danışma TAU/ADV/013 ile bağlantılı beş adımlık bir oyun kitabını tanımlıyor: Telegram, Discord veya X'te taklit DM, bir klon site, WalletConnect aracılığıyla bir cüzdan bağlantı istemi veya cüzdan içi tarayıcı, tek bir onay, ardından otomatik bir süpürme.
Blockaid'in çözümlemesi, hızlı hareket eden tüccarlar için önemli olan başka bir dağıtım vektörü ekliyor: meşru bir sitenin kullanıcı arayüzünün kötü niyetli bir versiyonla değiştirilmesi olan ön uç kaçırma.
Uçtan uca akış genellikle şöyledir:
1. Kullanıcıyı bir benzer alan adına veya kaçırılmış ön uca çekin. Tuzağın genellikle "doğrula", "talep et" veya "airdrop" gibi ifadelerle oluşturulduğu ve aciliyet yaratmak için tasarlandığı görülmektedir. 2. Cüzdan bağlantısını erken zorlayın. Blockaid, herhangi bir düğmenin bağlantı iletişim kutusunu tetiklediği bir sayfa gözlemledi, bu da yaygın bir davranışsal ipucudur. 3. Cüzdan bağlamını toplayın.
Blockaid, drainer'ın komut ve kontrol altyapısıyla iletişim kurduğunu ve hedef alabileceği varlıklar ve nonce durumu hakkında bilgi edinmek için JSON-RPC okumaları gibi eth_call kullandığını gösteriyor. 4. İzni toplayın. Bu, kurbanın bir takas için bir token onayladığını veya "bir mesajı imzaladığını" düşündüğü andır. 5. Süpürmeyi gerçekleştirin.
FinanceFeeds, "her şeyi saniyeler içinde süpürür" diye tanımlıyor ve Coca, drenajın geciktirilebileceğini vurguluyor, bu da kurbanların kaybın hangi eylemden kaynaklandığı konusunda kafa karışıklığı yaşamasının nedenidir.
"drainer as a service" açısı önemlidir çünkü bu akışların neden şablonlu göründüğünü açıklar. Coca, drainers'ı dolandırıcılara satılan kitler olarak tanımlıyor ve bu paketleme, aynı UX desenlerinin zincirler ve cüzdanlar arasında neden tekrar ettiğini açıklıyor.
İzinler drainers tarafından on-chain'de kötüye kullanılır.
ERC-20 izinleri iş gücüdür. Normal bir dApp, kullanıcı adına bir takas veya depozito sırasında token'ları hareket ettirebilmesi için onay ister. Bir kripto drainer aynı onayı ister, ancak harcayıcıyı saldırganın kontrolündeki bir sözleşmeye veya adrese yönlendirir ve genellikle sınırsız bir üst sınır uygular.
Bu onay mevcut olduğunda, saldırgan daha sonra geri dönebilir ve kurbana yeni bir istem olmadan transferFrom kullanarak token'ları hareket ettirebilir. FinanceFeeds ve Coca, sınırsız onayları bu süreci ölçeklenebilir hale getiren kaldıraç olarak tanımlıyor.
Gecikmeli drain modeli, insanların ne olduğunu yanlış teşhis ettiği yerdir. Coca, bir kullanıcının bugün onayladığı, hemen bir hareket görmediği, ardından cüzdanı daha sonra doldurduğu ve bekleyen onayın zaten mevcut olduğu için saniyeler içinde drain edildiği sıralamayı tanımlıyor. Bu nedenle, bir onayı okumanın doğru yolu "para hemen gitti mi" değil, "benim için parayı daha sonra çekmek üzere kimin yetkilendirdiğidir."
NFT'lerin aynı tuzağın kendi versiyonu vardır. FinanceFeeds ve Coca, bir operatöre o cüzdandaki bir koleksiyondaki tüm NFT'leri taşıma yetkisi veren setApprovalForAll'a dikkat çekiyor. Kullanıcılar genellikle bunu listelemek veya mintlemek için tek seferlik bir adım olarak değerlendirir. Bir drainer için bu, o koleksiyon için bir anahtar niteliğindedir.
İki pratik sonuç şunlardır:
1. Saldırganın avantajı sürekliliktir. Tek bir onay, iptal edilene kadar geçerli kalabilir. 2. Mağdurun avantajı izinlerin geri alınabilirliğidir. FinanceFeeds ve Coca, izinleri gözden geçirmek ve iptal etmek için Revoke.cash ve Etherscan’ın token onay kontrolörü gibi araçlara işaret ediyor.
Bu, açıklanan cüzdan boşaltıcı teriminin de yer bulması gereken yerdir: bu, cüzdanları “bozan” sihirli bir sözleşme değildir. DeFi'nin dayandığı tam izin hatlarını kötüye kullanan bir otomasyondur.
İmza tabanlı boşaltıcılar ve izin tuzakları
En pahalı açılır pencereler genellikle işlem gibi görünmeyenlerdir. Blockaid’in 2024-10-13 tarihli analizinde, bir boşaltıcının EIP-2612 izni kodlayan bir EIP-712 tip verisi imzasını yakalamak için eth_signTypedData_v4 kullandığı gösterilmektedir. Boşaltıcı önce nonce ve token meta verilerini eth_call aracılığıyla topladı, ardından mağduru çok büyük bir değer için bir harcayıcıyı yetkilendiren yapılandırılmış veriyi imzalamaya zorladı.
Ana nokta, imzanın mağdur imzaladığı anda off-chain olmasıdır, ancak daha sonra token’ın izin fonksiyonu aracılığıyla on-chain olarak sunulabilir.
Bu, en temiz haliyle imza oltalama işlemidir. Mağdur “Ben bir işlem göndermedim.” diye düşünür. Saldırgan “İstediğim zaman uygulayabileceğim bir onay aldım.” diye düşünür. Coca, modern boşaltıcı kitlerinin bir parçası olarak izin ve Permit2 tarzı imza risklerini işaret ediyor ve CryptoAdventure bunları klasik on-chain onay boşaltıcılarından farklı olan imza tabanlı boşaltıcılar olarak grupluyor.
Blockaid ayrıca aynı akışta wallet_switchEthereumChain'i gözlemledi ve sayfanın BNB Chain airdrop'u gibi davrandığı halde Arbitrum One'a geçiş yapmaya zorladı. O zincir değiştirme isteği kozmetik değildir. Bu, mağdurun gerçekten varlık bulundurduğu ağı hedeflemenin bir yoludur.
Kullanıcılar için iki sonuç önemlidir:
1. Tip verisi imzaları, “bir mesajı imzalamak” olarak sunulduğu için on-chain onay istemine göre daha zor anlaşılabilir olabilir. Blockaid, çoğu cüzdanın bu off-chain imzaları on-chain işlemleri simüle edebildikleri şekilde simüle edemediğini savunuyor. 2. Saldırgan, izin yakalamayı yürütmeden ayırabilir. Bu zaman esnekliği, boşaltıcıların düşük ücretli anları veya cüzdanın doldurulmasını bekleyebilmesinin nedenidir.
Bu, kör imzalamanın sürekli bir hata modu olmasının da nedenidir. Cüzdan arayüzü, tip verisinin neyi yetkilendirdiğini net bir şekilde göstermezse, kullanıcı etkili bir şekilde karanlıkta imza atmaktadır.
Drenajların normal aktivite gibi görünmesi
Bir drener operatörü, zincirin sıkıcı görünmesini ister. Blockaid, bir saldırgan adresine doğrudan ETH transferi yerine, swapETHForExactTokens çağrısı yapan meşru bir SushiSwap Router sözleşmesi aracılığıyla yönlendirilmiş yerel varlık drenajını gösterir. Buradaki nokta, SushiSwap'ın tehlikeye girmesi değil. Nokta, yaygın olarak kullanılan bir yönlendirici aracılığıyla yönlendirilmenin işlemi rutin bir takas davranışına benzetmesidir.
FinanceFeeds, kurbanın perspektifinden aynı gözlemi yapıyor: Darktrace, iki dakikada tek bir kurbandan 470.000 $ çeken bir varyantı izledi ve zincir üzerindeki işlem "rutin bir Uniswap takasından farksız görünüyor." Bu, kamuflaj katmanıdır. Eğer hırsızlık bir takas gibi görünüyorsa, sıradan gözlemciler ve hatta bazı otomatik heuristikler zaman kaybeder.
Tezin burada etkisini gösteriyor: yetkilendirme üründür. Saldırgan geçerli bir izin, operatör onayı veya izin imzasına sahip olduğunda, blockchain bunu daha sonra, hızlı bir şekilde ve meşru sözleşmeler aracılığıyla yönlendirilebilecek bir şekilde sadakatle yerine getirecektir.
Tüccarlar ve güç kullanıcıları için operasyonel çıkarım, "zincir üzerinde hırsızlığı tespit etmek" zayıf bir savunmadır. Takas benzeri bir drenaj görünür hale geldiğinde, varlıklar zaten taşınmış ve genellikle daha likit token'lara dönüştürülmüştür. Daha yüksek sinyal anı daha erkendir, izin sınırında: beklenmedik zincir değiştirme istemleri, tekrarlanan bağlantı diyalogları ve işe yarar bir şey yapmadan önce onayları zorlayan bir site.
Drenajcı riskini nasıl azaltılır
Savunma, herhangi bir tek tıklamanın verebileceği yetki miktarını azaltmak ve o yetkinin arkasındaki değer miktarını azaltmakla ilgilidir. FinanceFeeds, aktif olarak kullanılmayan her şeyi iptal etmek için cüzdanın kendi "Bağlı Siteler" veya "İzinler" paneli ile başlamayı öneriyor, ardından token onaylarını Revoke.cash ile kontrol ediyor. Coca, iptali acil bir durum değil, rutin bir işlem olarak çerçeveliyor, çünkü drenaj geciktirilebilir.
Temiz bir iş akışı şöyle görünür:
1. Cüzdanlar arasında rolleri ayırın. DApp'lere asla bağlanmayan bir "kasada" cüzdan ve mintler, airdrop'lar ve yeni protokoller için bir harcama veya yakma cüzdanı tutun. Coca, patlama alanını sınırlamak için bu yapıyı açıkça öneriyor. 2. Her onayı veya imzayı sürekli bir kredi limiti olarak değerlendirin. İstem sınırsız gösteriyorsa, harcayanın daha sonra tam bakiyeyi çekebileceğini varsayın, aksi takdirde DApp daha sıkı bir limit sunar. 3.
Drenajcılarla ilişkili UX kırmızı bayraklarını izleyin. Blockaid'in örneği, sürekli bağlantı istemleri ve sitenin belirtilen zinciriyle çelişen bir wallet_switchEthereumChain isteği içerir. 4. Bir program dahilinde denetleyin ve iptal edin. FinanceFeeds ve Coca, izinleri gözden geçirmek ve iptal etmek için Revoke.cash ve Etherscan'ın token onay kontrol cihazına işaret ediyor. 5. Hedef alındıysa, önce izinler üzerinde hareket edin.
Bağlı siteleri koparın, onayları ve NFT operatör izinlerini iptal edin ve kalan fonları yeni bir adrese taşıyın. FinanceFeeds, drenajcının Trust Wallet'ı kendisi istismar etmediğini vurguluyor ve aynı riskin MetaMask ve Phantom gibi sıcak cüzdanlarda da geçerli olduğunu belirtiyor.
Bu, kripto cüzdan dolandırıcılıklarının ve bunlardan nasıl kaçınılacağına dair gerçekten baskı altında dayanabilen kısımdır: harcama cüzdanının sonunda bir şey imzalayacağını varsayın ve sistemi öyle tasarlayın ki bu hata hayatta kalınabilir olsun.
Alım
Çok fazla insanın bir drainer'ı "hack" olarak çerçevelediğini ve ardından gerçek sorunun on-chain'de verdikleri bir izin olarak durduğunu anlamak için ilk saati kötü yazılımlar arayarak harcadığını izledim. Pahalı zihinsel değişim, onayları ve yazılı veri imzalarını sürekli bir kredi hattı açmak gibi ele almaktır. O hat mevcut olduğunda, saldırganın tekrar sormasına gerek yoktur. Sadece transferFrom veya bir operatör transferi ile daha sonra gelirler ve zincir bunu zorlar.
Tekrar eden başarısızlık modu, zararsız bir tıklama olarak giydirilmiş kör imzalamadır. Blockaid’in 2024-10-13 çözümlemesi temiz bir örnektir: eth_signTypedData_v4 bir izin toplar, ardından drenaj gerçek bir yönlendirici üzerinden yönlendirilebilir, böylece normal bir takas gibi görünür. Donanım cüzdanları anahtarları güvende tutar, ancak yargıyı kurtarmaz. İzin hijyeni önemlidir.
Kaynaklar
Sıkça Sorulan Sorular
Cüzdan boşaltıcılarının kripto paralarımı çalmak için benim seed phrase'ime ihtiyacı var mı?
Genellikle hayır. Birçok cüzdan boşaltıcı kampanyası, transferleri yetkilendiren bir onay veya izin tarzı imza atmanızı gerektirir. Bu onay mevcut olduğunda, saldırgan varlıkları özel anahtarınıza sahip olmadan hareket ettirebilir.
Onayladıktan sonra boşaltıcılar kripto parayı nasıl çalıyor?
Bir ERC-20 onayı, belirli bir harcayıcı için bir izin oluşturur ve bu harcayıcı daha sonra transferFrom kullanarak tokenları tekrar sormadan hareket ettirebilir. Onay sınırsızsa, tavan etkili bir şekilde toplam bakiyenizdir. Bazı kampanyalar, cüzdanı yeniden doldurduğunuzda boşaltmayı geciktirir.
İmza phishing nedir ve neden tehlikelidir?
İmza phishing, sizi daha sonra eylemleri yetkilendirmek için kullanılabilecek yapılandırılmış verileri, örneğin bir EIP-712 tip verisi mesajını imzalamaya kandırır. Blockaid, boşaltıcıların EIP-2612 izin onaylarını elde etmek için eth_signTypedData_v4 imzalarını yakaladığını gösteriyor. Kurbanlar yalnızca 'bir mesaj imzaladıklarını' düşünebilir, ancak imza daha sonra zincir üzerinde sunulabilir.
Bir cüzdan boşaltıcı işlemi neden zincir üzerinde normal bir takas gibi görünüyor?
Boşaltıcılar, hırsızlığı DEX yönlendiricileri gibi meşru sözleşmeler aracılığıyla yönlendirebilir, bu nedenle işlem rutin takas davranışına benzer. Blockaid, SushiSwap Router aracılığıyla yönlendirilmiş yerel varlık boşaltmasını gösteriyor ve FinanceFeeds, izlerin tipik bir Uniswap takası gibi göründüğü durumları not ediyor. Bu kamuflaj, tespiti geciktirebilir.
Bir boşaltıcıyı durdurmak için onayları nasıl kontrol edebilir ve iptal edebilirim?
Cüzdanınızdaki bağlı siteleri ve izinleri gözden geçirin, ardından Revoke.cash veya Etherscan’ın token onay kontrol aracı gibi araçlarla token izinlerini ve NFT operatör onaylarını denetleyin. Tanıdık olmayan harcayıcılar veya sınırsız tavanlar görüyorsanız, bunları iptal edin. İptal, cüzdan yeniden doldurulmadan önce en etkili şekilde çalışır.