DApp'ler ile etkileşim kurarken, kullanıcıların yetkili Token sayısını kontrol etmeye, imza içeriğini kontrol etmeye ve anormal yetkilendirme durumlarına dikkat etmesi gerekir.
Yazan: Lisa
arka plan
11 Mayıs'ta Twitter kullanıcısı "pineapple.eth", bir kimlik avı web sitesine (syncswap[.]ağ) yanlışlıkla tıklanması nedeniyle cüzdanının çalındığını tweetledi ve 100 dolardan fazla para kaybetti.
(
Kayıp miktarı çok büyük olmasa da içinde çok büyük bir güvenlik riski gizlidir.Kurbanlar genellikle "göze çarpmayan" imza "görememe" riskinden dolayı büyük varlıkları kaybederler. Bu makaleyi bu yüzden yazdık.
Kurbanın açıklamasına göre çalınan işlemler şöyle:
(
(
Bu iki işlemden, sözleşmeyi yapan kişi (0x00002…d0000) mağdurun adresine (0xA4089…82C3) (0x8256…D6B8)'ye 34,87 USDC aktarır ve (0x5A69…1C17)'ye 81,36 USDC aktarır. Yalnızca transferFrom işlevine bakarsanız, bu işlevin işlevinin, üçüncü bir tarafın ilgili dijital varlıkları sahibinin hesabından alıcının hesabına aktarmak için bir işlem başlatmasına izin vermek olduğunu bulmak zor değildir.
Ardından, sözleşme arayanın adresini (0x00002...d0000) inceleyin ve kurbanın işlem kayıtlarında olmayan fazladan bir izin işlemi olduğunu bulun. İznin rolü nedir?
(
İzin nedir?
Resmi tanıtıma göre, EIP-2612'de ERC20 protokolüne izin eklendi ve kullanıcılar, önceden izin almadan bir yetkilendirme imzası (izin) ekleyerek uygulama sözleşmesiyle etkileşim kurabilir. Spesifik olarak, hepimiz biliyoruz ki, ERC20 para birimi işleminde A, B'yi yetkilendirmek için, yani A tarafından belirtilen belirteci başka bir hesabın çalışmasına izin vermek için onaylama işlevini çağırabilir ve bu hesabın sahibi olması gerekir. işlev. İzin işlevinin işlevi, A'nın yetkilendirme nesnesini zincir altında önceden imzalaması ve alınan imzayı B'ye bildirmesidir ve B bu imzayı, A'nın yetkilendirme işlemini gerçekleştirmek için izni çağırmak için kullanabilir (ödeneği aktarmak için transferFrom'u kullanın). ) , A, işlemi göndermeden belirtilen belirteci devredebilir ve hesabın sahibi olsun ya da olmasın, işleme izin verme iznini yürütebilir. Ek olarak, Uniswap yeni bir Token yetkilendirme standardı Permit2 yayınladı.
Onaylama ve izin verme arasında bir karşılaştırma aşağıdadır:
uint256 nonce, uint256 sona erme, bool izin verilir,
uint8 v, bayt32 r, bayt32 s
) harici {
…
harçlık [holder] [spender] = tomar;
…
}
Temel bilgileri anladıktan ve ardından kimlik avı olayının kendisine döndükten sonra, bu izin işlevini 7 parametreyle gönderebilirsiniz:
sahip: yetkili adres
Harcayan: Kim yetkilidir?
değer: verilen yetkili belirteç sayısı
son tarih: yalnızca belirtilen zamandan önce geçerli olan bir zaman damgasıdır
v, r, s: imza verileri
Bunlar arasında son tarih 1714509304969 ve değer 116239404'tür, yani yetkilendirme 22 Ağustos 56300 (GMT) 0:42'ye kadar, neredeyse süresiz olarak geçerlidir. Yetkili token sayısı ise 116.239404 USDC'dir ve bu da kurbanın çaldığı miktarla aynıdır. v, r ve s değerleri, kullanıcı (sahip) kimlik avı web sitesinde oturum açtıktan sonraki imza verileridir ve izin verme işlevi, imza verilerinin geçerliliğini doğrular. İmza doğrulaması geçildikten sonra, kullanıcının belirteci bilgisayar korsanına (harcama yapana) yetkilendirilir.
Tüm süreç çok açık: kurban imzayı imzaladı ve kimlik avı web sitesine gönderdi ancak zincire yüklemedi.İmza bilgilerini aldıktan sonra, bilgisayar korsanı zincirdeki izni gönderdi, yani yetkilendirme için onayla denir. . İmzalama, herhangi bir gaz harcamadan zincir dışı yapılır. Ancak burada gazın olmaması, gaz tüketiminin olmadığı anlamına gelmediği, imzalayanın (mağdurun) yetkilendirme ve transfer için gaz ödemesine gerek olmadığı açıklığa kavuşturulmalıdır.
Kuşkusuz, yetkilendirilmiş oltalamayı onaylamaya benzer şekilde izin, yetkilendirilmiş oltalamayı onaylamaktan daha tehlikelidir, sonuçta imza çalındığı sürece yetki alınır. Örneğin, dex'teki bekleyen emir işlevi, kullanıcının yalnızca belirli bir mesajı imzalamasına ihtiyaç duyar ve kullanıcı, gas ödemeden varlığı işlemek için dex'e emanet edebilir.Kullanıcının varlıkları kaybolabilir. Bildiğimiz kadarıyla, bazı cüzdanlar onaylama kimlik avının şifresini çözer ve imza bilgilerini görüntüler, ancak cüzdanda izin imza kimlik avı için neredeyse hiç uyarı yoktur ve kullanıcıların saldırıya uğrama riski daha yüksektir. Aynı zamanda izin imzası zincir dışı bir davranıştır ve kullanıcıların imzalarının sızdırılıp sızdırılmadığını fark etmesi zordur.
MistTrack
Şu anda bilgisayar korsanı adresi, MistTrack tarafından kötü amaçlı bir kimlik avı adresi olarak işaretlendi.
ETH, WBTC, USDT, USDC, SHIB, DAI, WETH, DAI, stETH, APE'yi analiz etmek için MistTrack'i kullanarak, adres 1'in mevcut karı yaklaşık 120.000 ABD doları, adres 2'nin karı yaklaşık 200.000 ABD doları ve kar adres 3 Yaklaşık 2.000 $. Ayrıca, bir Web3 dolandırıcılık önleme platformu olan Scam Sniffer'ın analizine göre, 9 Mayıs itibarıyla toplam 300'den fazla kurban, Permit2'ye dayalı kötü niyetli imzalarla yaklaşık 690.000 ABD Doları değerinde varlık çalındı. 9 Mayıs'a kadar Uniswap'te Şimdiye kadar, Ethereum ana ağındaki yaklaşık 670.000 adres Permit2'yi yetkilendirdi. Elbette bu veriler, bu çetenin bütün resmi için buzdağının sadece görünen kısmı.
Özetle
Bu makale esas olarak gerçek bir çalıntı vakasıyla başlar ve izin imzasının riskini ortaya koyar. SlowMist güvenlik ekibi, kaynağı bilinmeyen web sitelerini istediğiniz zaman açmamanızı hatırlatır.DApps ile etkileşim kurarken, sözleşmeye yetkili Token sayısını kontrol etmeye dikkat edin ve imza içeriğini dikkatlice kontrol edin.RevokeCash gibi yetkilendirme araçlarını zaman zaman kullanın zaman (anormal yetkiler olup olmadığını kontrol edin ve Uniswap Permit2 için yetki yönetimi aracını kullanabilirsiniz (herhangi bir anormal yetki olup olmadığını kontrol etmek için lütfen yetkilendirmeyi zamanında iptal edin.
Referans bağlantısı:
View Original
The content is for reference only, not a solicitation or offer. No investment, tax, or legal advice provided. See Disclaimer for more risks disclosure.
İmza analizine izin ver: Zincir dışı imzalar da Simgenizi yakalayabilir mi?
Yazan: Lisa
arka plan
11 Mayıs'ta Twitter kullanıcısı "pineapple.eth", bir kimlik avı web sitesine (syncswap[.]ağ) yanlışlıkla tıklanması nedeniyle cüzdanının çalındığını tweetledi ve 100 dolardan fazla para kaybetti.
(
Kayıp miktarı çok büyük olmasa da içinde çok büyük bir güvenlik riski gizlidir.Kurbanlar genellikle "göze çarpmayan" imza "görememe" riskinden dolayı büyük varlıkları kaybederler. Bu makaleyi bu yüzden yazdık.
Kurbanın açıklamasına göre çalınan işlemler şöyle:
(
Bu iki işlemden, sözleşmeyi yapan kişi (0x00002…d0000) mağdurun adresine (0xA4089…82C3) (0x8256…D6B8)'ye 34,87 USDC aktarır ve (0x5A69…1C17)'ye 81,36 USDC aktarır. Yalnızca transferFrom işlevine bakarsanız, bu işlevin işlevinin, üçüncü bir tarafın ilgili dijital varlıkları sahibinin hesabından alıcının hesabına aktarmak için bir işlem başlatmasına izin vermek olduğunu bulmak zor değildir.
Ardından, sözleşme arayanın adresini (0x00002...d0000) inceleyin ve kurbanın işlem kayıtlarında olmayan fazladan bir izin işlemi olduğunu bulun. İznin rolü nedir?
(
İzin nedir?
Resmi tanıtıma göre, EIP-2612'de ERC20 protokolüne izin eklendi ve kullanıcılar, önceden izin almadan bir yetkilendirme imzası (izin) ekleyerek uygulama sözleşmesiyle etkileşim kurabilir. Spesifik olarak, hepimiz biliyoruz ki, ERC20 para birimi işleminde A, B'yi yetkilendirmek için, yani A tarafından belirtilen belirteci başka bir hesabın çalışmasına izin vermek için onaylama işlevini çağırabilir ve bu hesabın sahibi olması gerekir. işlev. İzin işlevinin işlevi, A'nın yetkilendirme nesnesini zincir altında önceden imzalaması ve alınan imzayı B'ye bildirmesidir ve B bu imzayı, A'nın yetkilendirme işlemini gerçekleştirmek için izni çağırmak için kullanabilir (ödeneği aktarmak için transferFrom'u kullanın). ) , A, işlemi göndermeden belirtilen belirteci devredebilir ve hesabın sahibi olsun ya da olmasın, işleme izin verme iznini yürütebilir. Ek olarak, Uniswap yeni bir Token yetkilendirme standardı Permit2 yayınladı.
Onaylama ve izin verme arasında bir karşılaştırma aşağıdadır:
işlev onayla(adres usr, uint wad) harici dönüşler (bool)
{
ödenek[msg.sender] [usr] = tomar;
…
}
fonksiyon izni(
adres sahibi, adres harcayan,
uint256 nonce, uint256 sona erme, bool izin verilir,
uint8 v, bayt32 r, bayt32 s
) harici {
…
harçlık [holder] [spender] = tomar;
…
}
Temel bilgileri anladıktan ve ardından kimlik avı olayının kendisine döndükten sonra, bu izin işlevini 7 parametreyle gönderebilirsiniz:
Bunlar arasında son tarih 1714509304969 ve değer 116239404'tür, yani yetkilendirme 22 Ağustos 56300 (GMT) 0:42'ye kadar, neredeyse süresiz olarak geçerlidir. Yetkili token sayısı ise 116.239404 USDC'dir ve bu da kurbanın çaldığı miktarla aynıdır. v, r ve s değerleri, kullanıcı (sahip) kimlik avı web sitesinde oturum açtıktan sonraki imza verileridir ve izin verme işlevi, imza verilerinin geçerliliğini doğrular. İmza doğrulaması geçildikten sonra, kullanıcının belirteci bilgisayar korsanına (harcama yapana) yetkilendirilir.
Tüm süreç çok açık: kurban imzayı imzaladı ve kimlik avı web sitesine gönderdi ancak zincire yüklemedi.İmza bilgilerini aldıktan sonra, bilgisayar korsanı zincirdeki izni gönderdi, yani yetkilendirme için onayla denir. . İmzalama, herhangi bir gaz harcamadan zincir dışı yapılır. Ancak burada gazın olmaması, gaz tüketiminin olmadığı anlamına gelmediği, imzalayanın (mağdurun) yetkilendirme ve transfer için gaz ödemesine gerek olmadığı açıklığa kavuşturulmalıdır.
Kuşkusuz, yetkilendirilmiş oltalamayı onaylamaya benzer şekilde izin, yetkilendirilmiş oltalamayı onaylamaktan daha tehlikelidir, sonuçta imza çalındığı sürece yetki alınır. Örneğin, dex'teki bekleyen emir işlevi, kullanıcının yalnızca belirli bir mesajı imzalamasına ihtiyaç duyar ve kullanıcı, gas ödemeden varlığı işlemek için dex'e emanet edebilir.Kullanıcının varlıkları kaybolabilir. Bildiğimiz kadarıyla, bazı cüzdanlar onaylama kimlik avının şifresini çözer ve imza bilgilerini görüntüler, ancak cüzdanda izin imza kimlik avı için neredeyse hiç uyarı yoktur ve kullanıcıların saldırıya uğrama riski daha yüksektir. Aynı zamanda izin imzası zincir dışı bir davranıştır ve kullanıcıların imzalarının sızdırılıp sızdırılmadığını fark etmesi zordur.
MistTrack
Şu anda bilgisayar korsanı adresi, MistTrack tarafından kötü amaçlı bir kimlik avı adresi olarak işaretlendi.
Adres 1: 0x00002644e79602F056B03235106A9963826d0000
Adres 2: 0x82563Ba592986Cb277d67B2E7c56ab3BB3FDD6B8
Adres 3: 0x5A697967F0791d12db8A0f92344Abc6DD07a1C17
Kurbanın her iki USDC'si de ETH ile değiştirildi.
ETH, WBTC, USDT, USDC, SHIB, DAI, WETH, DAI, stETH, APE'yi analiz etmek için MistTrack'i kullanarak, adres 1'in mevcut karı yaklaşık 120.000 ABD doları, adres 2'nin karı yaklaşık 200.000 ABD doları ve kar adres 3 Yaklaşık 2.000 $. Ayrıca, bir Web3 dolandırıcılık önleme platformu olan Scam Sniffer'ın analizine göre, 9 Mayıs itibarıyla toplam 300'den fazla kurban, Permit2'ye dayalı kötü niyetli imzalarla yaklaşık 690.000 ABD Doları değerinde varlık çalındı. 9 Mayıs'a kadar Uniswap'te Şimdiye kadar, Ethereum ana ağındaki yaklaşık 670.000 adres Permit2'yi yetkilendirdi. Elbette bu veriler, bu çetenin bütün resmi için buzdağının sadece görünen kısmı.
Özetle
Bu makale esas olarak gerçek bir çalıntı vakasıyla başlar ve izin imzasının riskini ortaya koyar. SlowMist güvenlik ekibi, kaynağı bilinmeyen web sitelerini istediğiniz zaman açmamanızı hatırlatır.DApps ile etkileşim kurarken, sözleşmeye yetkili Token sayısını kontrol etmeye dikkat edin ve imza içeriğini dikkatlice kontrol edin.RevokeCash gibi yetkilendirme araçlarını zaman zaman kullanın zaman (anormal yetkiler olup olmadığını kontrol edin ve Uniswap Permit2 için yetki yönetimi aracını kullanabilirsiniz (herhangi bir anormal yetki olup olmadığını kontrol etmek için lütfen yetkilendirmeyi zamanında iptal edin.