✨ gate Yeni Yıl Çekilişi - 2025 Kripto Bayrağınızı Gösterin ve $200 Ödül Kazanın!
💰 10 yüksek kaliteli poster seçin, her biri $10 ödül alacak
Nasıl Katılınır:
1️⃣ Gate.io_Post'u takip edin
2️⃣ #2025CryptoFlag# etiketiyle paylaşım yapın, 2025 kripto bayrağınızı ve nedenlerinizi gösterin
3️⃣ Gönderi en az 60 kelime olmalı ve en az 3 beğeni almalıdır
Gönderi Örnekleri:
🔹 Yatırım Hedefleri: 2025 için kripto hedefleriniz nelerdir?
🔹 Ticaret Stratejisi: 2025 yılında hangi stratejileri benimseyeceksiniz?
🔹 Kişisel Gelişim: 2025'te hangi yeni kripto bilgilerini veya becerilerini öğreneceksiniz?
🔹
Web3 Güvenlik Uyarısı丨 Zincir içinde yeni bir oyun, büyük ölçekli Rug Pull yöntemi şifre çözme
Son zamanlarda CertiK güvenlik uzmanı ekibi sıklıkla Rug Pull olarak bilinen aynı taktikleri kullanan birden fazla "çıkış dolandırıcılığı" tespit etti.
Derinlemesine araştırma yaptıktan sonra, aynı taktiklere sahip birden fazla olayın aynı çeteyi işaret ettiğini ve sonuçta 200'den fazla Token çekme dolandırıcılığıyla bağlantılı olduğunu bulduk. Bu, "çıkış dolandırıcılığı" yoluyla varlıkları toplayan büyük ölçekli bir otomatik bilgisayar korsanlığı ekibi keşfetmiş olabileceğimizi gösteriyor.
Bu çıkış dolandırıcılıklarında, saldırgan yeni bir ERC20 tokeni oluşturacak ve oluşturulma sırasında önceden çıkarılan token artı belirli bir miktar WETH ile bir Uniswap V2 likidite havuzu oluşturacaktır.
Zincirdeki yeni robot veya kullanıcı, likidite havuzundan belirli sayıda yeni token satın aldığında, saldırgan, yoktan var olan tokenleri, likidite havuzundaki tüm WETH'i tüketmek için kullanacaktır.
Saldırganın yoktan elde ettiği tokenler toplam arza (totalSupply) yansımadığı ve Transfer olayını tetiklemediği için etherscan'de görülemiyor, bu da dış dünyanın algılamasını zorlaştırıyor.
Saldırganlar sadece gizlemeyi düşünmekle kalmadı, aynı zamanda temel teknik becerilere sahip ve etherscan okuyabilen kullanıcıları felç etmek ve küçük bir problemi gerçek amaçlarını gizlemek için kullanmak için oyun içinde oyun da tasarladılar...
Daha Derin Dolandırıcılık
Bu çıkış dolandırıcılığının detaylarını anlatmak için vakalardan birini örnek alalım.
Tespit ettiğimiz şey aslında saldırganın likidite havuzunu boşaltmak ve kar elde etmek için çok büyük miktarda token (gizlice basılmış) kullandığı bir işlemdi.Bu işlemde proje tarafı toplam 416.483.104.164.831 (yaklaşık 416 trilyon) MUMI kullandı. Yaklaşık 9.736 WETH piyasaya sürüldü ve bu da havuzun likiditesini tüketti.
Ancak bu işlem, tüm dolandırıcılığın yalnızca son halkasıdır. Dolandırıcılığın tamamını anlamak için ilerlemeye devam etmemiz gerekir.
Belirteçleri dağıtın
6 Mart sabah saat 7:52'de (UTC saati, aşağıda aynısı), saldırganın adresi (0x8AF8) Rug Pull, MUMI (tam adı MultiMixer AI) adında bir ERC20 tokeni (adres 0x4894) konuşlandırdı ve 420.690.000 (yaklaşık 420) tutarında önceden madencilik yaptı. milyon) token tahsis edildi ve tamamı sözleşmeli dağıtımcılara tahsis edildi.
Önceden çıkarılmış tokenlerin sayısı sözleşmenin kaynak koduna karşılık gelir.
Likidite ekleyin
Saat tam 8'de (token oluşturulduktan 8 dakika sonra) saldırganın adresi (0x8AF8) likidite eklemeye başladı.
Saldırganın adresi (0x8AF8), token sözleşmesindeki openTrading fonksiyonunu çağırır, uniswap v2 fabrikası aracılığıyla bir MUMI-WETH likidite havuzu oluşturur, önceden çıkarılmış tüm tokenları ve 3 ETH'yi likidite havuzuna ekler ve sonunda yaklaşık 1.036 LP token elde eder.
Başlangıçta likidite eklemek için kullanılan 420.690.000 (yaklaşık 420 milyon) tokenin yaklaşık 63.103.500 (yaklaşık 63 milyon) tokeninin token sözleşmesine (adres 0x4894) geri gönderildiği işlem ayrıntılarından görülebilir. token sözleşmesinin her transfer için belirli bir işlem ücreti talep edeceğini ve işlem ücretinin tahsil edileceği adresin token sözleşmesinin kendisi olduğunu (özellikle "_transfer işlevinde" uygulanmıştır) buldu.
**Garip olan şey, vergi adresinin 0x7ffb (transfer ücretlerinin tahsil edileceği adres) sözleşmede belirlenmiş olmasına rağmen nihai ücretin token sözleşmesinin kendisine gönderilmiş olmasıdır. **
Bu nedenle likidite havuzuna eklenen nihai MUMI token sayısı vergi sonrası 420.690.000 (yaklaşık 430 milyon) değil 357.586.500 (yaklaşık 350 milyon).
Likiditeyi kilitleyin
Saat 8:01'de (likidite havuzu oluşturulduktan 1 dakika sonra), saldırganın adresi (0x8AF8), likidite eklenerek elde edilen 1.036 LP tokeninin tamamını kilitledi.
LP kilitlendikten sonra teorik olarak saldırganın adresine (0x8AF8) ait olan tüm MUMI tokenleri likidite havuzunda kilitlenir (işlem ücreti olarak kullanılan kısım hariç), dolayısıyla saldırganın adresinin (0x8AF8) onu kaldırma yeteneği yoktur. Rug Pull gerçekleştirme Likidite yeteneği sayesinde.
Kullanıcıların yeni başlatılan tokenleri güvenle satın alabilmelerini sağlamak için birçok proje tarafı LP'yi kilitliyor, bu da proje tarafının "Ben kaçmayacağım, herkes güvenle satın alabilir!" demesi anlamına geliyor, ancak durum gerçekten böyle mi? ? Açıkçası hayır, durum bu, analize devam edelim.
Halı Çekme
Saat 8:10'da saldırganın yeni adresi ② (0x9DF4) ortaya çıktı ve token sözleşmesinde belirtilen 0x7ffb vergi adresini kullandı.
Burada bahsetmeye değer üç nokta var:
Vergi adresinin dağıtıldığı adres, tokenlerin dağıtıldığı adresle aynı değil. Bu, proje tarafının her işlem ile adres arasındaki korelasyonu kasıtlı olarak azalttığını ve davranışın izlenmesini zorlaştırdığını gösterebilir.
Vergi adresinin sözleşmesi açık kaynak değildir, bu da vergi adresinde ifşa edilmesini istemediğiniz gizli işlemlerin olabileceği anlamına gelir.
Vergi sözleşmesi, token sözleşmesinden daha sonra dağıtılır ve token sözleşmesindeki vergi adresi sabit kodlanmıştır, bu da proje tarafının vergi sözleşmesinin adresini tahmin edebileceği anlamına gelir.CREATE talimatı yaratıcının adresini belirlediğinden ve hemen dağıtılır.Sözleşme adresi belirlenir, böylece proje ekibi, sözleşmeyi oluşturanın adresini kullanarak sözleşme adresini önceden simüle eder.
**Aslında çıkış dolandırıcılıklarının çoğu vergi adresleri aracılığıyla gerçekleştirilir ve vergi adreslerinin dağıtım modu özellikleri yukarıdaki 1. ve 2. maddelerle uyumludur. **
Saat 11.00'de (token oluşturulduktan 3 saat sonra), saldırganın ② (0x9DF4) adresi bir Halı Çekme işlemi gerçekleştirdi. Vergi sözleşmesinin "swapExactETHForTokens" yöntemini (0x77fb) çağırarak, vergi adresindeki 416,483,104,164,831 (yaklaşık 416 trilyon) MUMI tokenini yaklaşık 9,736 ETH karşılığında takas etti ve havuzdaki likiditeyi tüketti.
Vergi sözleşmesi (0x77fb) açık kaynak olmadığından bayt kodunu derledik ve ayrıştırma sonuçları aşağıdaki gibidir:
Vergi sözleşmesinin "swapExactETHForTokens" yönteminin (0x77fb) derlenmiş kodunu kontrol ettikten sonra, bu fonksiyonun ana işlevinin "xt" (arayan tarafından belirtilen) numarasıyla vergi sözleşmesini (0x77fb) aktarmak olduğunu gördük. uniswapV2 yönlendiricisi MUMI tokenleri ETH ile değiştirilir ve vergi adresinde belirtilen "_manualSwap" adresine gönderilir.
_manualSwap adresinin depolama adresi 0x0'dır. Json-rpc'nin getStorageAt komutuyla sorgulama yapıldıktan sonra _manualSwap'e karşılık gelen adresin vergi sözleşmesinin dağıtıcısı (0x77fb) olduğu tespit edildi: saldırgan ② (0x9DF4).
Bu Rug Pull işleminin giriş parametresi xt, 420.690.000.000.000.000.000.000'dir; bu, 420.690.000.000.000 (yaklaşık 420 trilyon) MUMI jetonuna karşılık gelir (MUMI jetonlarının ondalık sayısı 9'dur).
Başka bir deyişle, proje sonunda likidite havuzundaki WETH'yi boşaltmak ve tüm çıkış dolandırıcılığını tamamlamak için 420.690.000.000.000 (yaklaşık 420 trilyon) MUMI kullandı.
Ancak burada çok önemli bir soru var; vergi sözleşmesi (0x77fb) bu kadar çok MUMI tokeninden nereden geldi?
Önceki içerikten, token sözleşmesinin dağıtıldığı sırada toplam MUMI token arzının 420.690.000 (yaklaşık 420 milyon) olduğunu ve çıkış dolandırıcılığı sona erdikten sonra MUMI token sözleşmesinde sorguladığımız toplam arzın olduğunu biliyoruz. hala 420.690.000 (aşağıdaki şekilde 420.690.000.000.000.000 olarak gösteriliyor, ondalık sayının karşılık gelen basamağından 0'ı çıkarmanız gerekiyor, yani 9). Vergi sözleşmesindeki tokenler (0x77fb) toplam arzın çok üzerindedir (420.690.000.000.000, yaklaşık 420 trilyon) Sanki yoktan var olmuş gibi. Bilmelisiniz ki, yukarıda da belirtildiği gibi, vergi adresi olarak 0x77fb, MUMI token transfer işlemi sırasında oluşan işlem ücretlerini almak için bile kullanılmadı. Vergi, MUMI tarafından alındı. jeton sözleşmesi.
Teknik Ortaya Çıktı
Vergi sözleşmesinin token kaynağını (0x7ffb) keşfetmek için ERC20 transfer etkinliği geçmişine baktık.
0x77fb ile ilgili 6 transfer olayının tamamında sadece vergi sözleşmesinden transfer olayları (0x7ffb) olduğu ve MUMI tokenlerinin transfer edildiği herhangi bir olayın bulunmadığı tespit edildi. İlk bakışta vergi sözleşmesinin tokenları ( 0x7ffb) gerçekten yoktan ortaya çıktı.
Bu nedenle, vergi sözleşmesi (0x7ffb) adresinde birdenbire ortaya çıkan devasa MUMI tokenlerinin iki özelliği var:
MUMI sözleşmesinin toplam tedariki üzerinde etkisi yok
Tokenlardaki artış Transfer olayını tetiklemez
O zaman fikir çok açık, yani MUMI token sözleşmesinde bir arka kapı olmalı. Bu arka kapı doğrudan denge değişkenini değiştirir ve balabce değiştirilirken totalSupply'ı değiştirmez ve Transfer olayını tetiklemez.
Başka bir deyişle, bu standart dışı veya kötü niyetli bir ERC20 token uygulamasıdır.Kullanıcılar, proje tarafının toplam tedarik ve olaylardaki değişikliklerden gizlice token bastığını tespit edemez. **
Bir sonraki adım yukarıdaki fikri doğrulamaktır.MUMI token sözleşmesi kaynak kodunda doğrudan "bakiye" anahtar kelimesini arıyoruz.
Sonuç olarak sözleşmede özel tip "swapTokensForEth" fonksiyonunun bulunduğunu ve giriş parametresinin uint256 tipinin tokenAmount olduğunu tespit ettik.Fonksiyonun 5. satırında proje tarafı doğrudan MUMI olan _taxWallet'i değiştirir. vergi sözleşmesinin bakiyesi (0x7ffb). tokenAmount * 10**_decimals olup, bu da tokenAmount'un 1.000.000.000 (yaklaşık 1 milyar) katıdır ve ardından MUMI'nin tokenAmount miktarını likidite havuzundan ETH'ye dönüştürün ve saklayın. belirteç sözleşmesinde (0x4894).
Daha sonra "swapTokenForEth" anahtar kelimesini arayın.
"swapTokenForEth" işlevi "_transfer" işlevinde çağrılır. Çağırma koşullarına yakından bakarsanız şunları bulacaksınız:
Transfer alma adresinin MUMI-WETH likidite havuzu olması durumunda.
"swapTokenForEth" işlevi yalnızca diğer adresler likidite havuzundaki MUMI tokenlerini _preventSwapBefore'den (5 kez) daha fazla satın aldığında çağrılacaktır.
Gelen tokenAmount, token adresinin sahip olduğu MUMI token bakiyesi ile _maxTaxSwap arasındaki küçük değerdir.
Yani sözleşme, kullanıcının havuzdaki MUMI tokenleri ile WETH'yi 5 defadan fazla değiştirdiğini tespit ederse, vergi adresi için gizlice büyük miktarda token basacak ve tokenlerin bir kısmını ETH'ye dönüştürecek ve depolayacak. bunları token sözleşmesinde belirtin.
**Bir yandan, proje tarafı görünüşte vergi topluyor ve bunları otomatik olarak düzenli olarak küçük bir miktar ETH ile değiştiriyor ve bunları token sözleşmesine koyuyor.Bu, kullanıcıların görmesi için, herkesin projenin kaynağının bu olduğunu düşünmesini sağlıyor. partinin kazancı. **
**Öte yandan, proje ekibinin gerçekte yaptığı şey, kullanıcının işlem sayısı 5 katına ulaştıktan sonra doğrudan hesap bakiyesini değiştirmek ve tüm likidite havuzunu boşaltmak. **
"swapTokenForEth" fonksiyonunu çalıştırdıktan sonra "_transfer" fonksiyonu da sendETHToFee'yi çalıştırarak token adresindeki vergi tahsilatından elde edilen ETH'yi vergi sözleşmesine (0x77fb) gönderecektir.
Vergi sözleşmesindeki ETH (0x77fb), sözleşmesinde uygulanan "kurtarma" fonksiyonu ile çıkarılabilir.
Şimdi tüm çıkış dolandırıcılığındaki son kârlı işlemin itfa kaydına bakın.
Kârlı gerçekleşen işlemde, ilkinde 0,349 ETH karşılığında 4.164.831 (yaklaşık 4,16 milyon) MUMI token, ikincisinde ise 9.368 ETH karşılığında 416.483.100.000.000 (yaklaşık 416 trilyon) MUMI token değişimi gerçekleşti. İkinci değişim ise vergi sözleşmesindeki (0x7ffb) "swapExactETHForTokens" fonksiyonu kapsamında başlatılan değişimdir. Sayının giriş parametreleriyle temsil edilen 420.690.000.000.000 (yaklaşık 420 trilyon) token ile eşleşmemesinin nedeni tokenların bir kısmının kullanılmış olmasıdır. Vergi olarak aşağıdaki şekilde gösterildiği gibi token sözleşmesine (0x4894) gönderildi:
İlk değişim, ikinci değişim sürecine karşılık gelir.Token, vergi sözleşmesinden (0x7ffb) yönlendirici sözleşmesine gönderildiğinde, token sözleşmesindeki arka kapı işlevi tetikleme koşulu karşılanır ve "swapTokensForEth"in tetiklenmesine neden olur. fonksiyon tarafından kritik bir işlem değildir.
Yukarıda görülebileceği gibi, dağıtımdan likidite havuzunun oluşturulmasına, MUMI tokenlerinin Rug Pull'una kadar tüm çıkış dolandırıcılığı döngüsü yalnızca yaklaşık 3 saat sürer, ancak yaklaşık 6,5 ETH'den daha az bir maliyetle (3 ETH kullanılır) Likidite eklemek için, teşvik amacıyla likidite havuzundan MUMI alışverişi yapmak için 3 ETH kullanıldı ve sözleşmeleri dağıtmak ve işlemleri başlatmak için 0,5'ten az ETH kullanıldı ve maksimum %50'den fazla kârla 9,7 ETH elde edildi. **
Saldırganın bir önceki yazıda bahsedilmeyen MUMI ile ETH takası yaptığı 5 işlem gerçekleşti.İşlem bilgileri şu şekilde:
Likidite halinde çalışan EOA adreslerini analiz ettiğimizde, adreslerin önemli bir kısmının zincirdeki "yeni robotlar" olduğunu tespit ettik. Tüm dolandırıcılığın hızlı giriş ve çıkış özellikleriyle birleştiğinde** buna inanmak için nedenimiz var tüm bu dolandırıcılığın hedef aldığı. Hedefler, zincirde oldukça aktif olan her türden yeni robot ve yeni komut dosyalarıdır. **
Bu nedenle, ister görünüşte gereksiz ama karmaşık sözleşme tasarımı, sözleşme dağıtımı ve tokenin likidite kilitleme süreci olsun, ister saldırganın ilgili adresinin aktif olarak MUMI tokenleri için ETH alışverişi yapmasının şüpheli davranışı olsun, saldırganın bunu yapmaya çalıştığı anlaşılabilir. Zincirdeki çeşitli yeni botların dolandırıcılık karşıtı programlarını kandırmaya çalışmak için yapılan bir kılık değiştirme. **
Sermaye akışını takip ederek, saldırıdan elde edilen tüm gelirlerin nihayet ② (0x9dF4) saldırı adresi aracılığıyla fon ödeme adresine ** (0xDF1a)** gönderildiğini tespit ettik.
Hatta son dönemde tespit ettiğimiz birçok çıkış dolandırıcılığının fonların ilk kaynağı ve son varış noktası bu adresi işaret ediyor, dolayısıyla bu adresteki işlemlere ilişkin kabaca bir analiz ve istatistik yaptık.
Sonunda adresin yaklaşık 2 ay önce aktif hale geldiği ve bugün itibarıyla 7.000'den fazla işlem başlattığı ve adresin 200'den fazla token ile etkileşime girdiği keşfedildi.
Yaklaşık 40 token işlem kaydını analiz ettik ve incelediğimiz neredeyse tüm tokenlara karşılık gelen likidite havuzlarında, en sonunda tokenın toplam arzından çok daha büyük bir girdi miktarına sahip bir takas işleminin gerçekleşeceğini gördük. ETH girişi tükendi ve çıkış dolandırıcılığının tamamı kısaldı.
Bazı tokenlerin (Mingyan Çin) dağıtım işlemleri aşağıdaki gibidir:
Dolayısıyla bu adresin aslında büyük ölçekli otomatik bir "çıkış dolandırıcılığı" hasatçısı olduğu ve hasat hedefinin zincirdeki yeni robot olduğu sonucuna varabiliriz.
**Bu adres halen aktiftir. **
Sonuna yaz
Bir token, basım sırasında totalSupply değerini değiştirmezse ve Transfer olayını tetiklemezse, o zaman proje tarafının gizlice token basıp basmadığını tespit etmemiz zor olacaktır.Bu aynı zamanda tokenın güvenli olup olmadığı sorununu da daha da kötüleştirecektir. tamamen proje tarafına bağlı değil. Bilinçli ya da değil" statüko.
**Bu nedenle, token miktarı değişikliklerinin açıklığını ve şeffaflığını sağlamak için mevcut token mekanizmasını iyileştirmeyi veya etkili bir toplam token miktarı tespit çözümü sunmayı düşünmemiz gerekebilir.**Token durumu değişikliklerini olaylarla yakalamak artık yeterli değil.
Dikkatli olmamız gereken şey şu ki, herkesin dolandırıcılıkla mücadele farkındalığı gelişse de saldırganların dolandırıcılıkla mücadele yöntemleri de gelişiyor. Bu hiç bitmeyen bir oyun. Bunu yapabilmek için öğrenmeye ve düşünmeye devam etmemiz gerekiyor. Oyunda kendinizi koruyun.