**Bu makale; Beosin tarafından özel davetli bağımsız araştırmacı Ispanak Ispanak tarafından yazılmıştır! (twitter@wzxznl) Beosin, güvenlik araştırmacısı, Sivan; *
Hacker'lar Web3 ekosistemindeki herkesi korkutan bir varlık bu.Proje tarafı için, dünyanın her yerindeki hacker'lar size baktığında, kodun açık kaynak doğası, proje tarafını yanlış bir kod satırı yazmaktan korkutur. boşluklar bırakarak, bir güvenlik olayı meydana geldiğinde, sonuçlarına katlanmak zor olacaktır.
**Bireyler için, ne yaptığınızı anlamıyorsanız, yaptığınız her zincir üstü etkileşim veya imza, varlıklarınızın çalınma potansiyeline sahiptir. ** Bu nedenle, güvenlik sorunları her zaman şifreleme dünyasının en sıkıntılı sorunlarından biri olmuştur ve blok zincirinin özellikleri nedeniyle, varlıklar bir kez çalındıktan sonra onları kurtarmanın neredeyse hiçbir yolu yoktur, bu nedenle sahip olunması özellikle önemlidir. şifreleme dünyasında güvenlik bilgisi.
Kısa bir süre önce **Beosin;'in yakın arkadaşı Spinach, son iki aydır aktif olan yeni bir kimlik avı yöntemi keşfetti, imza çalındığı sürece yöntem son derece gizli ve önlenmesi zor, ve Kullanılan; Uniswap; Tüm etkileşimli adresler risklere maruz kalabilir. Bu makale; Beosin ve bağımsız araştırmacı Pincai, bu özel kimlik avı tekniği üzerinde ortaklaşa popüler bilim yürütüyor ve herkes için daha fazla varlık kaybından kaçınmaya çalışıyor. **
Aşağıda ıspanağın kişisel deneyimi yeniden anlatılıyor:
işlem
Kısa bir süre önce bir arkadaşı (geçici olarak Xiao;A), cüzdanındaki varlıklar çalındıktan sonra Ispanak'ı buldu.Her zamanki hırsızlık yönteminin aksine, Xiao;A; özel anahtarı ifşa etmedi veya kimlik avı web sitesinin sözleşmesiyle etkileşime girmedi. Ispanak, varlık hırsızlığını araştırmaya başladı.
Blok zinciri tarayıcısında, çalınan küçük cüzdan USDT'nin ;Transfer From; Token aracılığıyla aktarıldığını görebilirsiniz; Para aktarırken, aslında "Token" akıllı sözleşmesinin "Transfer" işlevi denir. ;Transfer From; üçüncü bir şahsın bir adresteki ;Tokenı başka bir adrese aktarması anlamına gelir. **Bu aynı zamanda çalınan varlığın cüzdanın özel anahtarının sızdırılması yerine başka bir adres olan Token'dan aktarıldığı anlamına gelir.
İşlem ayrıntılarını sorgulayarak bazı önemli ipuçları bulabiliriz:
kuyruk numaralı adres;f;d5;1;small;A;nın varlıklarını;a;0;c;8 kuyruk numaralı adrese aktarır;
Bu işlem, Uniswap'in İzin2 sözleşmesiyle etkileşim halindedir
Peki ;f;d5;1; ile biten adres bu varlığın iznini nasıl aldı? Neden "Uniswap" ile ilgili?
Öncelikle "Transfer From;" fonksiyonunun başarılı bir şekilde çağrılması için çağrı yapan kişinin "Token" kota yetkisine sahip olması, yani "onaylaması" gerektiğini bilmemiz gerekir. Bazı "Dapp" kullanırken, varlıkların devri söz konusu olduğunda, önce bir yetkilendirme (onaylama) işlemi gerçekleştirmemiz gerekir, böylece "Dapp" sözleşmesinin hakkı vardır. varlıklarımızı devretmek.
Bu bulmacayı çözmek için kazmaya devam etmemiz gerekiyor, ve cevap ;f;d5;1;, ile biten adresin bu adresteki etkileşim kaydında, ;Transfer From;transfer small;A; Before varlık, adresin ayrıca bir "Permit" işlemi gerçekleştirdiğini ve bu iki işlemin etkileşim nesnelerinin "Uniswap;'in "Permit;2" sözleşmesi olduğunu, ardından bu "Permit" işlevi ve "Uniswap Permit" olduğunu görebilirsiniz. ;2;Durum nedir?
Uniswap Permit;2; sözleşmesi; Uniswap; 2022 sonunda piyasaya sürülen yeni akıllı sözleşme, resmi açıklamaya göre, bu, token yetkilendirmesinin farklı uygulamalarda paylaşılmasını ve yönetilmesini sağlayan bir token onay sözleşmesidir. daha birleşik, uygun maliyetli ve güvenli bir kullanıcı deneyimi.
Ve gelecekte, daha fazla proje Permit; 2, Permit; 2; tüm uygulamalarda standartlaştırılabilir; Token; onaylandı. Permit;2, akıllı sözleşmelerin güvenliğini artırırken işlem maliyetlerini düşürerek kullanıcı deneyimini iyileştirecek.
Öncelikle "Uniswap"in neden "Permit;2" başlatmak istediğini anlayalım, bir senaryo varsayalım, belirli bir "Dex" üzerinde "Takas" yapmak istediğimizde, geleneksel etkileşim yöntemi, yetkilendirmemiz (onaylamamız) gerektiğidir. "Dex ve ardından" Swap ", bu genellikle bize iki "Benzin" ücretine mal olur ve sürtünme maliyeti kullanıcılar için çok yüksektir. Herkesin böyle bir deneyim yaşadığına inanıyorum.
Görüntü Kaynağı:
"Permit; 2"nin lansmanı, tüm "Dapp" ekolojik oyun kurallarını değiştirebilir. Basitçe söylemek gerekirse, geleneksel yöntem, varlık aktarımı için bir "Dapp" ile her etkileşimde bulunduğunuzda yetki vermeniz gerektiğidir ve; Bu adım atlanabilir, bu da kullanıcının etkileşim maliyetini etkili bir şekilde azaltabilir ve daha iyi bir kullanıcı deneyimi sağlayabilir.
Çözüm;Permit;2;kullanıcı ve Dapp arasındaki aracı olarak, kullanıcının yalnızca Token'ın iznini yetkilendirmesi gerekir;İzin;2;sözleşmeye;Permit;2;tüm entegre;Permit;2;sözleşme ;Dapp; Bu izin verilen miktar paylaşılabilir. Kullanıcılar için etkileşim maliyetlerini azaltır ve kullanıcı deneyimini iyileştirir. "Dapp" için kullanıcı deneyiminin iyileştirilmesi, daha fazla kullanıcı ve fon getirir. Bu bir kazan-kazan durumu, ancak aynı zamanda zaman, bu aynı zamanda iki ucu keskin bir kılıç olabilir ve sorun, ;Permit;2;'nin etkileşim biçimindedir.
Geleneksel etkileşim modunda, ister yetkilendirme ister fon transferi olsun, işlemin kullanıcısı için zincir üzerindeki bir etkileşimdir. Ve ;Permit;2; kullanıcının işlemini zincir dışı bir imzaya dönüştürür ve zincirdeki tüm işlemler ara roller tarafından yapılır (örneğin;Permit;2;sözleşmeler ve ;Permit;2;yi entegre eden proje tarafları vb.). ) , bu şemanın getirdiği fayda, zincir üzerindeki etkileşimin rolü kullanıcıdan aracı role aktarıldığı için, kullanıcının cüzdanında "ETH" olmasa bile, diğer "Token"ları kullanabilmesidir. "Benzin" ücretini ödeyin veya aracı rol tarafından tamamen geri ödenir.Bu, ara rollerin seçimine bağlıdır.
Görüntü Kaynağı:
"Permit;2"nin ortaya çıkışı, gelecekteki "Dapp" oyun kurallarını değiştirebilse de, bunun iki ucu keskin güçlü bir kılıç olduğu görülebilir.Kullanıcılar için zincir dışı imzalar, savunmalarını indirmenin en kolay yoludur Linkler , örneğin bir cüzdanla bazı "Dapp"lerde oturum açtığımızda, bağlanmak için bir imzaya ihtiyacımız var ve çoğu kişi imzanın içeriğini dikkatli bir şekilde kontrol etmiyor ve imzanın içeriğini anlamıyor ve bu, en korkunç yer
Anlaşıldı;İzin;2;Sözleşme, küçük;A;olayına geri dönelim, varlıkların neden çalındığını anlıyoruz ve;İzin;2;Sözleşme ile etkileşim kuruyoruz, ardından Ispanak bunu yeniden üretsin;İzin;2. İmza oltalama yöntemi, her şeyden önce , çok önemli bir önkoşul, kimlik avı yapılan cüzdanın "Uniswap" için yetkilendirilmiş "Token"'a, Uniswap'te "Permit;2; ;Dapp; veya ;Swap"'e sahip olması gerektiğidir; 2; sözleşme (aşağıdaki resimdeki ıspanak bir güvenlik eklentisi kullanır).
Başka bir korkutucu nokta da, "Takas" yapmak istediğiniz tutar ne olursa olsun, Uniswap'in "Permit;2" sözleşmesi, "MetaMask" girişi Tanımlamanıza izin vermesine rağmen, varsayılan olarak "Token"ı yetkilendirmenize izin verecektir. tutar, ancak çoğu kişinin doğrudan maksimum veya varsayılan değere tıklayacağına ve ;Permit;2;'nin varsayılan değerinin sınırsız miktar olduğuna inanıyorum....
Bu aynı zamanda, "Uniswap" ile etkileşime girdiğiniz ve 2023'ten sonra "Permit; 2" sözleşmesine ilişkin tutarı yetkilendirdiğiniz sürece, bu kimlik avı dolandırıcılığının riskine maruz kalacağınız anlamına gelir.
Odak noktası ;f;d5;1; ile biten adresteki ;Permit;2; sözleşmesiyle etkileşime giren ;Permit; işlevi olduğundan, bu işlev size ;Permit; 2; " Sözleşmenin "Token"ı başka bir adrese aktarılır yani imzanızı aldığınız sürece hacker cüzdanınızdaki "Token" yetkisini alıp varlıklarınızı başka yere aktarabilir.
Olay detaylı analizi
izin; işlev:
"İzin Ver" işlevini çevrimiçi sözleşme imzalamanın bir yolu olarak düşünebilirsiniz. Bu işlev, (PermitSingle) bir başkasının (harcayan) jetonlarınızın bir kısmını gelecekte bir noktada harcamasına izin veren bir "sözleşme"yi önceden imzalamanıza izin verir.
Aynı zamanda, bu "sözleşmenin" gerçekten sizin tarafınızdan imzalandığını kanıtlamak için, tıpkı bir kağıt sözleşmeyi imzalamak gibi bir imza (imza) sağlamanız gerekir.
Peki bu fonksiyon nasıl çalışıyor?
İlk olarak, mevcut saatin imzanızın geçerlilik süresini (sigDeadline) aşıp aşmadığını kontrol edecektir. Tıpkı imzaladığınız sözleşmenin bir son kullanma tarihi olduğu gibi, mevcut saat son kullanma tarihini aşarsa, bu "sözleşme" artık kullanılamaz ve program doğrudan durur.
Ardından, imzanızın gerçekten size ait olup olmadığını kontrol eder. Program, imzanın gerçekten sizin tarafınızdan imzalandığından ve başkaları tarafından sahte olmadığından emin olmak için imzayı kontrol etmek üzere özel bir yöntem (signature.verify) kullanacaktır.
Son olarak, kontroller başarılı olursa, program, başkalarının jetonlarınızın bazılarını kullanmasına izin verdiğinizi not etmek için kaydı güncelleyecektir.
Odak esas olarak ;verify; işlevi ve _updateApproval; işlevi üzerindedir.
doğrula; işlev:
Doğrulama işlevinin, imza bilgileri parametresinden v, r, s; üç veriyi elde edeceği görülebilir; v, r, s; işlem imzasının değeridir ve bunlar adresi geri yüklemek için kullanılabilir. İşlem imzasının yukarıdaki şekilde gösterildiği gibi koddan görülebilir ki sözleşme işlem imzasının adresini geri yükledikten sonra gelen token sahibi adresi ile karşılaştırır.Aynı iseler doğrulama geçer, _updateApproval; fonksiyonuna yapılan çağrı devam eder, farklı ise işlem geri alınır.
_updateApproval; işlev:
İmza doğrulaması geçildiğinde, yetkilendirme değerini güncellemek için _updateApproval; işlevi çağrılacaktır, bu da izinlerinizin aktarıldığı anlamına gelir. Şu anda, aşağıdaki kodda gösterildiği gibi, yetkilendirildikten sonra belirteci belirtilen adrese aktarmak için ;transferfrom; işlevini çağırmak uygundur.
Tamam, "izin verme" işlevini açıkladıktan sonra, zincirdeki gerçek işleme bir göz atalım, bu etkileşimin ayrıntılarını öğrenebiliriz:
Detaylar; yetkiliyi görebilirsiniz; Token; sözleşme adresi (USDT) ve miktar ve diğer bilgiler
Spender; kuyruk numarası;f;d5;1;
sigDeadline; imzanın geçerlilik süresi ve;imza; küçük;A;'nın imza bilgisidir.
Ve xiao;A;'nın etkileşim kayıtlarına baktığımızda, **xiao;A;'nın daha önce "Uniswap" kullandığını ve neredeyse sınırsız olan varsayılan yetkilendirme miktarını tıkladığını göreceğiz. **
Basit bir inceleme, ** küçüktür; A; daha önce "Uniswap" kullanma sürecinde "Uniswap İzni" vermeye yetkili; 2; sınırsız; USDT; miktar, ancak küçük; A; cüzdan işlemlerini gerçekleştirirken yanlışlıkla; Permit;2;bilgisayar korsanları tarafından tasarlanan imza oltalama tuzağı, bilgisayar korsanı küçük;A imzasını aldı ve küçük;A imzasını;İzin;2;sözleşme;İzin;ve;Transfer From; iki işlem aktarıldı küçük;A;'nın varlıkları** elinden alındı** ve Spinach'ın gözlemlediği şey, "Uniswap'in"İzin;2;sözleşmesinin yalnızca birkaç ay önce aktif hale geldiği.
kaynak:
Etkileşim kayıtlarında ise neredeyse çoğunun phishing adresleri (Fake_Phishing) olarak işaretlendiği ve insanların sürekli olarak kandırıldığı görülmektedir.
kaynak:;
Nasıl önlenir?
"Uniswap Permit; 2" sözleşmesinin gelecekte daha popüler hale gelebileceğini ve yetkilendirme ve paylaşıma yönelik "Permit; 2;" proje entegrasyonunun daha fazla olacağını düşünürsek, etkili önleme yöntemlerini aşağıdaki gibi düşünebiliriz:
1 İmza içeriğini anlayın ve tanıyın:
Permit;'in imza biçimi genellikle şunları içerir: Sahip, Harcayan, değer, nonce ve Biçim. (Bir güvenlik eklentisi indirmek iyi bir seçenektir)
Web3 alanındaki çoğu kimlik avı web sitesini tanımlayabilen ve herkesin cüzdanını ve varlık güvenliğini koruyabilen aşağıdaki "Beosin" kimlik avı önleme eklentisini tüm okuyuculara ve arkadaşlara öneriyoruz.
Kimlik avına karşı koruma eklentisi indir:
2 Varlık cüzdanı ve etkileşimli cüzdan ayrı olarak kullanılır:
Büyük miktarda varlığınız varsa, tüm varlıkları soğuk bir cüzdana koymanız ve az miktarda parayı zincirdeki etkileşimli cüzdana koymanız önerilir, bu da kimlik avı dolandırıcılığı durumunda kaybı büyük ölçüde azaltabilir.
3 Çok fazla miktarda yetki vermeyin;İzin verin;2;Sözleşme veya yetkilendirmeyi iptal edin:
"Uniswap" üzerinde "Takas" yaptığınızda, yalnızca etkileşimde bulunmak istediğiniz miktara yetki verirsiniz, böylece her etkileşim yeniden yetkilendirme gerektirse de, bazı etkileşim maliyetleri olacaktır, ancak "İzin;2; İmzala" sorununun üstesinden gelebilirsiniz. Balık tutma. Kotayı zaten yetkilendirdiyseniz, yetkilendirmeyi iptal etmek için ilgili güvenlik eklentisini bulabilirsiniz.
**4 Simgenin yapısını, destekleyip desteklemediğini belirleyin; izin verin; işlev: **
Gelecekte, "ERC;20" jetonları "izin verme" işlevini gerçekleştirmek için bu uzantı protokolünü kullanabilir. Sizin için, tuttuğunuz jetonun bu işlevi destekleyip desteklemediğine dikkat etmeniz gerekir. Destekliyorsa, o zaman belirteç İşlemlerde veya manipülasyonlarda ekstra dikkatli olun ve her bilinmeyen imzanın "izin verme" işlevinin imzası olup olmadığını kesinlikle kontrol edin.
5 Aldatıldıktan sonra diğer platformlarda saklanan tokenlar varsa, kapsamlı bir kurtarma planı oluşturmak gerekir:
Dolandırıldığınızı ve tokenlarınızın hackerlar tarafından dışarı aktarıldığını ancak rehin vb. yöntemlerle diğer platformlarda saklanan tokenlarınızın varlığının devam ettiğini tespit ettiğinizde bunları geri çekmeniz ve güvenli bir adrese aktarmanız gerekmektedir. Bu kez, bilgisayar korsanlarının sizi her zaman izleyebileceğini bilmeniz gerekir. Adresin belirteç bakiyesi, çünkü imzanız ondadır, belirteç çalınan adresinizde göründüğü sürece, bilgisayar korsanı bunu doğrudan aktarabilir. Şu anda, eksiksiz bir token kurtarma sürecini formüle etmek gerekiyor. Token çıkarma ve token aktarma işlemlerinin birlikte yürütülmesi gerekiyor. Hacker işlemleri buna eklenemez. Biraz blockchain gerektiren "MEV" transferini kullanabilirsiniz. bilgi ve kod becerileri. , İşlem önleyici betiği elde etmek için Beosin gibi profesyonel bir güvenlik şirketi de arayabilirsiniz.
Gelecekte "Permit;2;"ye dayalı daha fazla kimlik avı olacağına inanıyorum, **bu imza kimlik avı yöntemi son derece gizlidir ve önlenmesi zordur ve "Permit;2; altında daha fazla adres var.Umarım ekran başında olan sizler bu yazıyı okuduktan sonra daha fazla kişiye yayarak daha fazla kişinin çalınmasını önlemiş olursunuz. **
Referans:
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 çalındı mı? Uniswap Permit2 imza kimlik avına karşı dikkatli olun
**Bu makale; Beosin tarafından özel davetli bağımsız araştırmacı Ispanak Ispanak tarafından yazılmıştır! (twitter@wzxznl) Beosin, güvenlik araştırmacısı, Sivan; *
Hacker'lar Web3 ekosistemindeki herkesi korkutan bir varlık bu.Proje tarafı için, dünyanın her yerindeki hacker'lar size baktığında, kodun açık kaynak doğası, proje tarafını yanlış bir kod satırı yazmaktan korkutur. boşluklar bırakarak, bir güvenlik olayı meydana geldiğinde, sonuçlarına katlanmak zor olacaktır.
**Bireyler için, ne yaptığınızı anlamıyorsanız, yaptığınız her zincir üstü etkileşim veya imza, varlıklarınızın çalınma potansiyeline sahiptir. ** Bu nedenle, güvenlik sorunları her zaman şifreleme dünyasının en sıkıntılı sorunlarından biri olmuştur ve blok zincirinin özellikleri nedeniyle, varlıklar bir kez çalındıktan sonra onları kurtarmanın neredeyse hiçbir yolu yoktur, bu nedenle sahip olunması özellikle önemlidir. şifreleme dünyasında güvenlik bilgisi.
Kısa bir süre önce **Beosin;'in yakın arkadaşı Spinach, son iki aydır aktif olan yeni bir kimlik avı yöntemi keşfetti, imza çalındığı sürece yöntem son derece gizli ve önlenmesi zor, ve Kullanılan; Uniswap; Tüm etkileşimli adresler risklere maruz kalabilir. Bu makale; Beosin ve bağımsız araştırmacı Pincai, bu özel kimlik avı tekniği üzerinde ortaklaşa popüler bilim yürütüyor ve herkes için daha fazla varlık kaybından kaçınmaya çalışıyor. **
Aşağıda ıspanağın kişisel deneyimi yeniden anlatılıyor:
işlem
Kısa bir süre önce bir arkadaşı (geçici olarak Xiao;A), cüzdanındaki varlıklar çalındıktan sonra Ispanak'ı buldu.Her zamanki hırsızlık yönteminin aksine, Xiao;A; özel anahtarı ifşa etmedi veya kimlik avı web sitesinin sözleşmesiyle etkileşime girmedi. Ispanak, varlık hırsızlığını araştırmaya başladı.
Blok zinciri tarayıcısında, çalınan küçük cüzdan USDT'nin ;Transfer From; Token aracılığıyla aktarıldığını görebilirsiniz; Para aktarırken, aslında "Token" akıllı sözleşmesinin "Transfer" işlevi denir. ;Transfer From; üçüncü bir şahsın bir adresteki ;Tokenı başka bir adrese aktarması anlamına gelir. **Bu aynı zamanda çalınan varlığın cüzdanın özel anahtarının sızdırılması yerine başka bir adres olan Token'dan aktarıldığı anlamına gelir.
İşlem ayrıntılarını sorgulayarak bazı önemli ipuçları bulabiliriz:
kuyruk numaralı adres;f;d5;1;small;A;nın varlıklarını;a;0;c;8 kuyruk numaralı adrese aktarır;
Bu işlem, Uniswap'in İzin2 sözleşmesiyle etkileşim halindedir
Peki ;f;d5;1; ile biten adres bu varlığın iznini nasıl aldı? Neden "Uniswap" ile ilgili?
Öncelikle "Transfer From;" fonksiyonunun başarılı bir şekilde çağrılması için çağrı yapan kişinin "Token" kota yetkisine sahip olması, yani "onaylaması" gerektiğini bilmemiz gerekir. Bazı "Dapp" kullanırken, varlıkların devri söz konusu olduğunda, önce bir yetkilendirme (onaylama) işlemi gerçekleştirmemiz gerekir, böylece "Dapp" sözleşmesinin hakkı vardır. varlıklarımızı devretmek.
Bu bulmacayı çözmek için kazmaya devam etmemiz gerekiyor, ve cevap ;f;d5;1;, ile biten adresin bu adresteki etkileşim kaydında, ;Transfer From;transfer small;A; Before varlık, adresin ayrıca bir "Permit" işlemi gerçekleştirdiğini ve bu iki işlemin etkileşim nesnelerinin "Uniswap;'in "Permit;2" sözleşmesi olduğunu, ardından bu "Permit" işlevi ve "Uniswap Permit" olduğunu görebilirsiniz. ;2;Durum nedir?
Uniswap Permit;2; sözleşmesi; Uniswap; 2022 sonunda piyasaya sürülen yeni akıllı sözleşme, resmi açıklamaya göre, bu, token yetkilendirmesinin farklı uygulamalarda paylaşılmasını ve yönetilmesini sağlayan bir token onay sözleşmesidir. daha birleşik, uygun maliyetli ve güvenli bir kullanıcı deneyimi.
Ve gelecekte, daha fazla proje Permit; 2, Permit; 2; tüm uygulamalarda standartlaştırılabilir; Token; onaylandı. Permit;2, akıllı sözleşmelerin güvenliğini artırırken işlem maliyetlerini düşürerek kullanıcı deneyimini iyileştirecek.
Öncelikle "Uniswap"in neden "Permit;2" başlatmak istediğini anlayalım, bir senaryo varsayalım, belirli bir "Dex" üzerinde "Takas" yapmak istediğimizde, geleneksel etkileşim yöntemi, yetkilendirmemiz (onaylamamız) gerektiğidir. "Dex ve ardından" Swap ", bu genellikle bize iki "Benzin" ücretine mal olur ve sürtünme maliyeti kullanıcılar için çok yüksektir. Herkesin böyle bir deneyim yaşadığına inanıyorum.
Görüntü Kaynağı:
"Permit; 2"nin lansmanı, tüm "Dapp" ekolojik oyun kurallarını değiştirebilir. Basitçe söylemek gerekirse, geleneksel yöntem, varlık aktarımı için bir "Dapp" ile her etkileşimde bulunduğunuzda yetki vermeniz gerektiğidir ve; Bu adım atlanabilir, bu da kullanıcının etkileşim maliyetini etkili bir şekilde azaltabilir ve daha iyi bir kullanıcı deneyimi sağlayabilir.
Çözüm;Permit;2;kullanıcı ve Dapp arasındaki aracı olarak, kullanıcının yalnızca Token'ın iznini yetkilendirmesi gerekir;İzin;2;sözleşmeye;Permit;2;tüm entegre;Permit;2;sözleşme ;Dapp; Bu izin verilen miktar paylaşılabilir. Kullanıcılar için etkileşim maliyetlerini azaltır ve kullanıcı deneyimini iyileştirir. "Dapp" için kullanıcı deneyiminin iyileştirilmesi, daha fazla kullanıcı ve fon getirir. Bu bir kazan-kazan durumu, ancak aynı zamanda zaman, bu aynı zamanda iki ucu keskin bir kılıç olabilir ve sorun, ;Permit;2;'nin etkileşim biçimindedir.
Geleneksel etkileşim modunda, ister yetkilendirme ister fon transferi olsun, işlemin kullanıcısı için zincir üzerindeki bir etkileşimdir. Ve ;Permit;2; kullanıcının işlemini zincir dışı bir imzaya dönüştürür ve zincirdeki tüm işlemler ara roller tarafından yapılır (örneğin;Permit;2;sözleşmeler ve ;Permit;2;yi entegre eden proje tarafları vb.). ) , bu şemanın getirdiği fayda, zincir üzerindeki etkileşimin rolü kullanıcıdan aracı role aktarıldığı için, kullanıcının cüzdanında "ETH" olmasa bile, diğer "Token"ları kullanabilmesidir. "Benzin" ücretini ödeyin veya aracı rol tarafından tamamen geri ödenir.Bu, ara rollerin seçimine bağlıdır.
Görüntü Kaynağı:
"Permit;2"nin ortaya çıkışı, gelecekteki "Dapp" oyun kurallarını değiştirebilse de, bunun iki ucu keskin güçlü bir kılıç olduğu görülebilir.Kullanıcılar için zincir dışı imzalar, savunmalarını indirmenin en kolay yoludur Linkler , örneğin bir cüzdanla bazı "Dapp"lerde oturum açtığımızda, bağlanmak için bir imzaya ihtiyacımız var ve çoğu kişi imzanın içeriğini dikkatli bir şekilde kontrol etmiyor ve imzanın içeriğini anlamıyor ve bu, en korkunç yer
Anlaşıldı;İzin;2;Sözleşme, küçük;A;olayına geri dönelim, varlıkların neden çalındığını anlıyoruz ve;İzin;2;Sözleşme ile etkileşim kuruyoruz, ardından Ispanak bunu yeniden üretsin;İzin;2. İmza oltalama yöntemi, her şeyden önce , çok önemli bir önkoşul, kimlik avı yapılan cüzdanın "Uniswap" için yetkilendirilmiş "Token"'a, Uniswap'te "Permit;2; ;Dapp; veya ;Swap"'e sahip olması gerektiğidir; 2; sözleşme (aşağıdaki resimdeki ıspanak bir güvenlik eklentisi kullanır).
Başka bir korkutucu nokta da, "Takas" yapmak istediğiniz tutar ne olursa olsun, Uniswap'in "Permit;2" sözleşmesi, "MetaMask" girişi Tanımlamanıza izin vermesine rağmen, varsayılan olarak "Token"ı yetkilendirmenize izin verecektir. tutar, ancak çoğu kişinin doğrudan maksimum veya varsayılan değere tıklayacağına ve ;Permit;2;'nin varsayılan değerinin sınırsız miktar olduğuna inanıyorum....
Bu aynı zamanda, "Uniswap" ile etkileşime girdiğiniz ve 2023'ten sonra "Permit; 2" sözleşmesine ilişkin tutarı yetkilendirdiğiniz sürece, bu kimlik avı dolandırıcılığının riskine maruz kalacağınız anlamına gelir.
Odak noktası ;f;d5;1; ile biten adresteki ;Permit;2; sözleşmesiyle etkileşime giren ;Permit; işlevi olduğundan, bu işlev size ;Permit; 2; " Sözleşmenin "Token"ı başka bir adrese aktarılır yani imzanızı aldığınız sürece hacker cüzdanınızdaki "Token" yetkisini alıp varlıklarınızı başka yere aktarabilir.
Olay detaylı analizi
izin; işlev:
Aynı zamanda, bu "sözleşmenin" gerçekten sizin tarafınızdan imzalandığını kanıtlamak için, tıpkı bir kağıt sözleşmeyi imzalamak gibi bir imza (imza) sağlamanız gerekir.
Peki bu fonksiyon nasıl çalışıyor?
Odak esas olarak ;verify; işlevi ve _updateApproval; işlevi üzerindedir.
doğrula; işlev:
Doğrulama işlevinin, imza bilgileri parametresinden v, r, s; üç veriyi elde edeceği görülebilir; v, r, s; işlem imzasının değeridir ve bunlar adresi geri yüklemek için kullanılabilir. İşlem imzasının yukarıdaki şekilde gösterildiği gibi koddan görülebilir ki sözleşme işlem imzasının adresini geri yükledikten sonra gelen token sahibi adresi ile karşılaştırır.Aynı iseler doğrulama geçer, _updateApproval; fonksiyonuna yapılan çağrı devam eder, farklı ise işlem geri alınır.
_updateApproval; işlev:
İmza doğrulaması geçildiğinde, yetkilendirme değerini güncellemek için _updateApproval; işlevi çağrılacaktır, bu da izinlerinizin aktarıldığı anlamına gelir. Şu anda, aşağıdaki kodda gösterildiği gibi, yetkilendirildikten sonra belirteci belirtilen adrese aktarmak için ;transferfrom; işlevini çağırmak uygundur.
Tamam, "izin verme" işlevini açıkladıktan sonra, zincirdeki gerçek işleme bir göz atalım, bu etkileşimin ayrıntılarını öğrenebiliriz:
sahibi; küçük;A;'nın cüzdan adresi (kuyruk numarası;308;a)
Detaylar; yetkiliyi görebilirsiniz; Token; sözleşme adresi (USDT) ve miktar ve diğer bilgiler
Spender; kuyruk numarası;f;d5;1;
sigDeadline; imzanın geçerlilik süresi ve;imza; küçük;A;'nın imza bilgisidir.
Ve xiao;A;'nın etkileşim kayıtlarına baktığımızda, **xiao;A;'nın daha önce "Uniswap" kullandığını ve neredeyse sınırsız olan varsayılan yetkilendirme miktarını tıkladığını göreceğiz. **
Basit bir inceleme, ** küçüktür; A; daha önce "Uniswap" kullanma sürecinde "Uniswap İzni" vermeye yetkili; 2; sınırsız; USDT; miktar, ancak küçük; A; cüzdan işlemlerini gerçekleştirirken yanlışlıkla; Permit;2;bilgisayar korsanları tarafından tasarlanan imza oltalama tuzağı, bilgisayar korsanı küçük;A imzasını aldı ve küçük;A imzasını;İzin;2;sözleşme;İzin;ve;Transfer From; iki işlem aktarıldı küçük;A;'nın varlıkları** elinden alındı** ve Spinach'ın gözlemlediği şey, "Uniswap'in"İzin;2;sözleşmesinin yalnızca birkaç ay önce aktif hale geldiği.
kaynak:
Etkileşim kayıtlarında ise neredeyse çoğunun phishing adresleri (Fake_Phishing) olarak işaretlendiği ve insanların sürekli olarak kandırıldığı görülmektedir.
kaynak:;
Nasıl önlenir?
"Uniswap Permit; 2" sözleşmesinin gelecekte daha popüler hale gelebileceğini ve yetkilendirme ve paylaşıma yönelik "Permit; 2;" proje entegrasyonunun daha fazla olacağını düşünürsek, etkili önleme yöntemlerini aşağıdaki gibi düşünebiliriz:
1 İmza içeriğini anlayın ve tanıyın:
Permit;'in imza biçimi genellikle şunları içerir: Sahip, Harcayan, değer, nonce ve Biçim. (Bir güvenlik eklentisi indirmek iyi bir seçenektir)
Web3 alanındaki çoğu kimlik avı web sitesini tanımlayabilen ve herkesin cüzdanını ve varlık güvenliğini koruyabilen aşağıdaki "Beosin" kimlik avı önleme eklentisini tüm okuyuculara ve arkadaşlara öneriyoruz.
Kimlik avına karşı koruma eklentisi indir:
2 Varlık cüzdanı ve etkileşimli cüzdan ayrı olarak kullanılır:
Büyük miktarda varlığınız varsa, tüm varlıkları soğuk bir cüzdana koymanız ve az miktarda parayı zincirdeki etkileşimli cüzdana koymanız önerilir, bu da kimlik avı dolandırıcılığı durumunda kaybı büyük ölçüde azaltabilir.
3 Çok fazla miktarda yetki vermeyin;İzin verin;2;Sözleşme veya yetkilendirmeyi iptal edin:
"Uniswap" üzerinde "Takas" yaptığınızda, yalnızca etkileşimde bulunmak istediğiniz miktara yetki verirsiniz, böylece her etkileşim yeniden yetkilendirme gerektirse de, bazı etkileşim maliyetleri olacaktır, ancak "İzin;2; İmzala" sorununun üstesinden gelebilirsiniz. Balık tutma. Kotayı zaten yetkilendirdiyseniz, yetkilendirmeyi iptal etmek için ilgili güvenlik eklentisini bulabilirsiniz.
**4 Simgenin yapısını, destekleyip desteklemediğini belirleyin; izin verin; işlev: **
Gelecekte, "ERC;20" jetonları "izin verme" işlevini gerçekleştirmek için bu uzantı protokolünü kullanabilir. Sizin için, tuttuğunuz jetonun bu işlevi destekleyip desteklemediğine dikkat etmeniz gerekir. Destekliyorsa, o zaman belirteç İşlemlerde veya manipülasyonlarda ekstra dikkatli olun ve her bilinmeyen imzanın "izin verme" işlevinin imzası olup olmadığını kesinlikle kontrol edin.
5 Aldatıldıktan sonra diğer platformlarda saklanan tokenlar varsa, kapsamlı bir kurtarma planı oluşturmak gerekir:
Dolandırıldığınızı ve tokenlarınızın hackerlar tarafından dışarı aktarıldığını ancak rehin vb. yöntemlerle diğer platformlarda saklanan tokenlarınızın varlığının devam ettiğini tespit ettiğinizde bunları geri çekmeniz ve güvenli bir adrese aktarmanız gerekmektedir. Bu kez, bilgisayar korsanlarının sizi her zaman izleyebileceğini bilmeniz gerekir. Adresin belirteç bakiyesi, çünkü imzanız ondadır, belirteç çalınan adresinizde göründüğü sürece, bilgisayar korsanı bunu doğrudan aktarabilir. Şu anda, eksiksiz bir token kurtarma sürecini formüle etmek gerekiyor. Token çıkarma ve token aktarma işlemlerinin birlikte yürütülmesi gerekiyor. Hacker işlemleri buna eklenemez. Biraz blockchain gerektiren "MEV" transferini kullanabilirsiniz. bilgi ve kod becerileri. , İşlem önleyici betiği elde etmek için Beosin gibi profesyonel bir güvenlik şirketi de arayabilirsiniz.
Gelecekte "Permit;2;"ye dayalı daha fazla kimlik avı olacağına inanıyorum, **bu imza kimlik avı yöntemi son derece gizlidir ve önlenmesi zordur ve "Permit;2; altında daha fazla adres var.Umarım ekran başında olan sizler bu yazıyı okuduktan sonra daha fazla kişiye yayarak daha fazla kişinin çalınmasını önlemiş olursunuz. **
Referans: