setApprovalForAll, cüzdanınızdaki her NFT'yi taşıma iznini tek bir sözleşmeye verir; permit imzası (EIP-2612) ise sınırsız bir ERC-20 harcamasını tek bir çevrimdışı mesajla yetkilendirebilir. İkisi de kimlik avı sitelerinde rutin olarak kötüye kullanılır; bu yüzden tek güvenli kural, her şeyi imzalamadan önce fonksiyon adını ve parametreleri okumaktır.
Öne çıkanlar
- setApprovalForAll, koleksiyonunuzdaki tek bir tokene değil, her NFT'ye genel erişim verir; bu da onu en yıkıcı NFT imzası yapar.
- Permit ve Permit2 imzaları, harcama yapan kişinin ERC-20'lerinizi ayrı bir on-chain approve olmadan taşımasına olanak tanır; dolayısıyla siteden ayrıldıktan sonra bile geçerliliğini korur.
- Sınırsız onaylar (tutar sınırı yok), güvenliği ihlal edilmiş bir harcamaya izin veren kuruluşun, siz iptal edene kadar her an tüm bakiyeyi boşaltabileceği anlamına gelir.
- Revoke.cash ve Etherscan'in onay kontrol aracı, onayları sonradan denetlemenize ve iptal etmenize olanak tanır; ancak en güvenli alışkanlık, eth_sign veya permit mesajlarını asla körü körüne imzalamamaktır.
Çoğu kripto kullanıcısı neden cüzdan imzalarını hafife alıyor?
Cüzdan açılır pencerelerinin hepsi birbirine benzer görünür: üstte bir web sitesi adı, ortada bir metot adı, altta bir Onayla düğmesi. 5 dolarlık bir token takası ile tüm cüzdanın boşaltılması arasında görsel tasarım neredeyse hiç değişmediği için kullanıcılar geçip tıklamaya alışır. İşte bu alışkanlık, imza yoluyla yapılan kimlik avının istismar ettiği şeydir.
Gerçek şu ki, en yaygın dört imza türü olan approve(), setApprovalForAll(), permit ve eth_sign, tamamen farklı şeyler yapar. Üçü iyi anlaşılmıştır ve meşru kullanım alanları vardır. Bunlardan biri olan eth_sign'in modern Ethereum'da meşru bir kullanım alanı yoktur ve neredeyse sadece kimlik avı kitlerinde bulunur. Bunları birbirinin yerine geçebilir olarak görmek, insanların koleksiyonlarını kaybetmesinin tam olarak nasıl gerçekleştiğidir.
Her birini incelemeden önce, bir cüzdan imzasının yalnızca bir kimlik doğrulama değil, aynı zamanda bir yetkilendirme olduğunu hatırlatmakta fayda var. Özel anahtarınızla imzaladığınızda, yalnızca kim olduğunuzu kanıtlamazsınız; çoğu zaman alıcıya bir varlığı sizin adınıza taşıma izni verirsiniz. İmza, izin anlamına gelir.
İmza türleri, cüzdanları ne sıklıkla boşalttıklarına göre sıralandı
Her imza, fonlarınızı eşit düzeyde riske atmaz. En tehlikeliden en zararsıza doğru, kabaca sıralanmış dört ana türün karşılaştırması şöyledir.
eth_sign: neredeyse her zaman bir dolandırıcılıktır
eth_sign, yapılandırılmış veri veya on-chain alan adı olmadan, rastgele bir metin üzerinde ham bir ECDSA imzası üretir. Standart bir mesaj formatı yoktur; bu nedenle sitenin ne imzaladığınızı düz İngilizce ile açıklaması gerekir ve çoğu cüzdan bunu ayrıştırmaz bile. 2026'da sizden eth_sign mesajı imzalamanızı isteyen her şey büyük olasılıkla bir kimlik avı girişimidir. Birkaç meşru araç hâlâ bunu kullanıyor (eski kimlik doğrulayıcılar, bazı hata ayıklama konsolları), ancak günlük DeFi ve NFT kullanımı için eth_sign'i otomatik reddedilecek bir şey olarak görmelisiniz.
setApprovalForAll: kapsamlı NFT erişimi
setApprovalForAll(tokenAddress, operator, true), NFT sözleşmesine, o koleksiyondaki şu anda sahip olduğunuz ve ilerikte sahip olacağınız her NFT'yi taşıması için belirli bir operatör adresine izin verir. OpenSea veya Blur gibi bir NFT pazar yerini onaylamak normaldir; pazar yerinin, listeniz dolduğunda NFT'leri dışarı aktarması gerekir. Sorun, kimlik avı sözleşmesine yapılan aynı çağrının, yalnızca bir tokeni değil, tüm Bored Ape koleksiyonunuzu teslim etmesidir.
Hasar sınırlı değildir. O koleksiyonda daha sonra yeni bir NFT basarsanız, eski onay hâlâ onu kapsar. Aynı ERC-721 sözleşmesine airdrop alırsanız, operatör onu da süpürebilir. Ne bir son kullanma tarihi ne de token başına bir sınır vardır.
Permit imzaları: gaz ücreti olmayan token onayları
Permit (EIP-2612) ve onun halefi Permit2, bir ERC-20 harcamasını on-chain bir approve işlemi yerine çevrimdışı bir imzayla yetkilendirmenize olanak tanır. Faydası gerçektir: gaz ücreti yok, daha akıcı bir kullanıcı deneyimi, ayrı bir onay adımı yok. Bedeli ise, permit imzasının, harcama yapan kişinin belirlediğiniz son tarihten önce her an teslim edebileceği açık bir çek olmasıdır.
Stablecoin'ler başlıca hedeftir. Bir "USDC talebi" veya "airdrop kontrolü" sunan kimlik avı sitesi, saldırgana bir sonraki saat veya daha uzun süre boyunca sınırsız USDC veren bir permit'i sessizce talep edebilir. Siz siteden ayrılıp saatler sonra döndüğünüzde USDC'nizin gittiğini görebilirsiniz. İşlem, blok gezginlerinde meşru tokeni ve kendi adresinizi bile gösterir; bu da normal görünmesini sağlar.
approve(): sınırlı ama yine de riskli varsayılan
approve(spender, amount) bir token ödeneği belirler. Tutar küçükse (örneğin, bir takas için 5 USDC), patlama yarıçapı küçüktür. Tutar sihirli sabit MaxUint256 (~2^256 - 1) ise, onay fiilen sınırsızdır ve bir permit gibi davranır.
Birçok meşru DeFi protokolü varsayılan olarak sınırsız onay ister; çünkü bunu yalnızca bir kez sormaları, ardından daha sonra takasları gerçekleştirmeleri yeterlidir. Bu kolaylık aynı zamanda saldırganın kolaylığıdır: harcama yapan kuruluşun anahtarları sızdığında, tokenleriniz onlarla birlikte gider.
Adım adım: imzalamadan önce cüzdan açılır penceresini nasıl okumalı
Cüzdan ne olursa olsun, rutin aynıdır. Otomatik pilotta imzalamayın.
1. Adım: fonksiyon adını okuyun
setApprovalForAll, permit veya eth_sign görüyorsanız yavaşlayın. Her biri yukarıdaki riskleri taşır. Temiz bir takas, transferFrom veya bir takas yönlendirici çağrısı gösterir, bir izin verme işlemi değil.
2. Adım: parametreleri okuyun
Onaylar için spenderin kim olduğunu kontrol edin. setApprovalForAll için operatör adresini kontrol edin. Her ikisini de protokolün gerçek sözleşmesiyle (Etherscan "Contract" sekmesi, proje belgeleri) çapraz referanslayın. Adres yepyeni ise veya herkese açık bir adı yoksa, aksine kanıtlanana kadar onu düşman olarak değerlendirin.
3. Adım: simülasyonu okuyun
Modern cüzdanlar (Rabby, Frame, Tenderly simülasyonlu MetaMask) bir durum değişikliği önizlemesi gösterir: hangi tokenler hareket eder, hangi yönde, hangi sözleşme üzerinde. Simülasyon boşsa veya yüklenemezse, bu kendi başına bir uyarı işaretidir. Meşru imzalar öngörülebilir simülasyonlar üretir.
4. Adım: son tarihi kontrol edin
Permit mesajları bir son tarih damgası içerir. Bir yıl sonrasına ayarlanmış bir son tarih, on dakika içinde sona eren bir tarihten daha tehlikelidir. Permit2'nin signatureTransfer'ı, imzanın ne kadar geniş kullanılabileceğini belirleyen ek alanlar (witness, expiration) içerir. Olağandışı büyük son tarihleri şüpheli olarak değerlendirin.
5. Adım: özel bir yakma cüzdanı kullanın
Airdroplar, mint'ler ve tanımadığınız siteler için yalnızca kaybetmeyi göze aldığınız miktarla fonlanmış ayrı bir cüzdan tutun. Yakma cüzdanındaki onaylar ana varlıklarınıza asla dokunamaz. Bu, kripto dünyasının en ucuz sigortasıdır.
Saldırganlar meşru imzaları nasıl drenaja dönüştürür
Ürkütücü kısım, saldırganın nadiren herhangi bir kriptografiyi kırması gerektiğidir. Tek ihtiyacı sizin bir kez Onay'a tıklamanızdır.
Klasik NFT listeleme tuzağı
Gerçek kullanıcı arayüzünü yansıtan sahte bir OpenSea sayfasına gelirsiniz. Sizden, pazar yeri sözleşmesine bir setApprovalForAll imzalayarak "takılı bir listelemeyi iptal etmenizi" ister. Çoğu kullanıcı "listelemeyi iptal etme"nin herhangi bir imza gerektirmediğini fark etmez ve imzalar. Saldırgan artık o koleksiyon için o cüzdandaki her NFT'yi kontrol eder ve onay hiçbir zaman sona ermez.
Seaport tarzı pazar yeri imzaları
OpenSea'nin Seaport protokolü, teklif ve listelemeleri daha ucuz hale getirmek için zincir dışı sipariş imzaları (zincir üstü listelemeler yerine) kullanır. İmzalanan bir Seaport siparişi, bir dizi parametreden oluşan bir demettir: zone, conduit, fulfilling components vb. Kimlik avı sayfaları bu imzaları taklit etmeyi öğrendi çünkü kullanıcılar imzada "OpenSea" görüp güvenli olduğunu varsayıyor. Parametreleri okuyun, protokol adını değil.
Stablecoin permit kimlik avı
USDC ve USDT, EIP-2612 permit'lerini destekler. "USDC bakiyenizi doğrulayan" bir site, İmzala düğmesinin arkasına bir permit gizleyebilir. Bir kez onaylarsınız, uzaklaşırsınız ve imza, geçerlilik penceresi içinde saldırganın göndermesini bekleyerek mempool'ta bekler. Zincir üstü işlem normal bir USDC TransferFrom gibi görünür, bu da onu daha sonra bir blok gezgininde tespit etmeyi zorlaştırır.
Adres zehirlenmesi onaylarla buluşuyor
Bazı kimlik avı kitleri artık gerçek muhattabınızla aynı karakterlerle başlayıp biten bir gösteriş adresi üretir. Kullanıcı alıcıya göz attığında, ön ek eşleşmesi doğru görünür. Aynı hile onay spenderi alanlarına uyarlanıyor: kötü niyetli spender, meşru bir adresin ilk ve son dört karakterini paylaşır ve umudunuz tam adresi okumak yerine görsel olarak onaylamanızdır.
Pratik çıkarımlar: cüzdanınızı drenaja karşı nasıl daha zor hale getirirsiniz
İmzaları okumak yetenek değil, alışkanlıktır. Yorgun akşamlarınızda bile geçerli olan birkaç varsayılan oluşturun.
- Günlük kullanım için Rabby veya Frame'i ana cüzdan olarak kullanın. İkisi de yaygın imza türlerini düz İngilizceye ayrıştırır ve yalnızca yöntem adını değil, çağrılan fonksiyonu gösterir.
- Anlamlı varlıklarınız için bir donanım cüzdanı bulundurun. İmzalama anahtarları internete bağlı bir makineye asla dokunmaz, bu nedenle kötü niyetli bir dapp bile kullanılabilir bir imza çıkaramaz.
- revoke.cash (popüler, kullanıcı dostu arayüz) veya Etherscan onay denetleyicisi (giriş yok, ham veri) kullanarak aylık onay denetimi yapın. 90 gündür kullanmadığınız bir sözleşme için verilen tüm onayları iptal edin.
- Her büyük takastan sonra genel onayları sıfırlayın: izin miktarını 0 olarak değiştirin, ardından küçük bir miktarı yeniden onaylayın. Bu, eski sınırsız onayları geçersiz kılar.
- Cüzdan ayarlarınızda seçenek varsa eth_sign'ı devre dışı bırakın. MetaMask, Rabby ve Rainbow'un tümü bu seçeneği gelişmiş ayarlarda sunar.
- Gerçekten kullandığınız dapp'ları yer imlerine ekleyin. Çoğu kimlik avı kullanıcılara yer imleri değil, arama reklamları veya Twitter bağlantıları üzerinden ulaşır. Arama sonucu aracılığıyla ulaşılan her şey ekstra bir okumayı hak eder.
Bunların hiçbiri ağır bir iş değil. Mesele şu ki, bir imzayı doğrulamanın marjinal çabası küçük, onu atlamanın bedeli ise tüm cüzdandır.
İmza kimlik avı hakkında sık sorulan sorular
Aşağıda, okuyucuların cüzdan imza kimlik avı hakkında arama motorlarına en sık yazdığı sorular yer alıyor. Yanıtlar, doğru davranışın her okuyucunun varlıklarına ve tehdit modeline bağlı olması nedeniyle finansal tavsiye değil, eğitici gerçeklere bağlı kalır.
Cüzdan güvenliğini akıllıca takip etmenin yolu
Cüzdan imzasıyla yapılan oltalama saldırıları hızlı ilerler çünkü saldırı yüzeyi de hızlı hareket eder: her yeni DeFi ilkeliği öğrenilmesi gereken yeni bir imza türüdür ve her yeni cüzdan özelliği yorumlanması gereken yeni bir görsel ipucudur. Onayları, dolandırıcılık raporlarını ve olay sonrası incelemeleri birden fazla zincirde takip etmek tam zamanlı bir iştir ve çoğu kullanıcının buna vakti yoktur.
Zippfeed, Ethereum ve daha geniş kripto ekosistemindeki güvenlik manşetlerini bir araya getirir, her bir hikâyeyi duygu açısından (bullish, neutral veya bearish) puanlar ve adı geçen protokol üzerinden bir 0-100 önem derecesi sunar; böylece günü dakikalar içinde tarayabilir, hangi imza ve onayların şu anda kötüye kullanıldığını görebilir ve riskli harcamacılardan daha drenaj edilmeden çıkabilirsiniz.