Fiyatlar yükleniyor…

setApprovalForAll Oltalama: İmzalamadan Önce Cüzdan İmzalarını Okuyun

setApprovalForAll bir sözleşmenin sahip olduğunuz her NFT'yi taşımasına izin verir. Permit imzaları tek tıkla token harcamalarına yetki verebilir. 2025'te her ikisi de başlıca oltalama vektörleridir.

setApprovalForAll Oltalama: İmzalamadan Önce Cüzdan İmzalarını Okuyun

Ç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.

Sıkça sorulan sorular

Bir NFT pazar yeri için setApprovalForAll imzalamak güvenli mi?
Operatör adresi meşru pazaryeri sözleşmesi olduğunda (OpenSea, Blur, LooksRare vb.) güvenlidir, operatörün kim olduğunu bilmediğinizde risklidir. setApprovalForAll kapsayıcıdır: o koleksiyondaki, sonradan mintleyeceğiniz her NFT dahil tüm NFT'leri kapsar. Bu yüzden yalnızca kendiniz bağımsız olarak doğruladığınız pazaryeri adresleri için imzalayın. Ticareti bitirdikten sonra güvende olmak için revoke.cash üzerinden onayı iptal edin.
approve, permit ve setApprovalForAll arasındaki fark nedir?
approve(spender, amount) bir ERC-20 token için sınırlı veya sınırsız bir harcamaya izin verir. permit (EIP-2612) aynısını zincir dışı yapar; böylece tek bir imza, on-chain onay adımı olmadan sonradan bir token transferine yetki verebilir. setApprovalForAll(operator, true) bir miktar yerine koleksiyondaki her NFT'yi kapsar; bu da onu approve'dan açıkça daha güçlü kılar. Bunların hiçbiri doğası gereği kötü amaçlı değildir, ancak üçü de sıklıkla oltalama siteleri tarafından kötüye kullanılır. Bu yüzden onaylamadan önce spender veya operatör adresini dikkatle okuyun.
Hiç eth_sign mesajı imzalamalı mıyım?
Modern DeFi ve NFT kullanımında neredeyse hiçbir zaman. eth_sign, ayrıştırma garantisi olmayan yapılandırılmamış bir imza üretir; bu yüzden çoğu cüzdan bu geldiğinde yüksek sesle uyarır. Birkaç eski araç ve geliştirici konsolu eth_sign kullanır, ancak günlük kullanıcılar için kural şudur: eth_sign açılır penceresini oltalama girişimi olarak değerlendirin ve reddedin. Meşru bir ürün bunu talep ediyorsa, önce projenin resmi destek kanalından doğrulayın.
Permit2 nedir ve neden önemlidir?
Permit2, Uniswap'in geç 2022'de dağıtılan genel permit sözleşmesidir. Yerel EIP-2612 desteği olmayan ERC-20'lerin bile permit tarzı imzalar kullanmasına olanak tanır. Birçok cüzdan ve toplayıcı artık onayları varsayılan olarak Permit2 üzerinden yönlendiriyor; bu kullanışlıdır ama aynı zamanda saldırı yüzeyini genişletir: bir Permit2 imzası, dapp'in rastgele içerik (bir token, miktar, alıcı) eklemesine izin veren bir "witness" alanı içerebilir ve birçok token için toplu transferlere yetki verebilir. Aynı hijyen kuralı geçerlidir: parametreleri ve son tarihi okuyun ve tanımadığınız bir sözleşme için asla Permit2 mesajı imzalamayın.
İlgili tokenler
$ETH $USDC