Poly Network - REKT



İşte saygıdeğer rekt okuyucuları; işte bu en büyüğü.

611 milyon dolar çalındı.

Bu, Mt Gox hackinden. de daha fazla. Bazı küçük ülkelerin GSYİH'sinden bile daha fazla. Tüm rekt.news lider tablosunun toplamından bile daha fazla.

Gelmiş geçmiş en büyük kripto para 'hack'i..

Poly Network = rekt.

Fakat nasıl?

Kaynak: breadcrumbs.app, slowmist, blocksec

Saldırganın ETH’teki adresi: 0xc8a65fadf0e0ddaf421f28feab69bf6e2e589963

Saldırganın BSC’deki adresi: 0x0D6e286A7cfD25E0c01fEe9756765D8033B32C71

Bu saldırı, bildiğimiz sıradan akıllı sözleşme flash loan / arbitraj meselesi değildi.

Hacker, Poly Network'ün Proxy Kilit Kontratlarını üç farklı zincirde istismar etti.

Ethereum:0x250e76987d838a75310c34bf422ea9f1ac4cc906

BSC:0x05f0fDD0E49A5225011fff92aD85cC68e1D1F08e

Polygon:0x28FF66a1B95d7CAcf8eDED2e658f768F44841212

Kaynak: @kelvinfichter

"Poly'nin "EthCrossChainManager" adında bir kontratı var. Başka bir zincirden gelen mesajları tetikleme hakkına sahip ayrıcalıklı bir kontrat. Zincirler arası projeler için standart bir şey.

Bu kontratın herhangi bir kişinin zincirler arası bir işlem yürütmek için çağırabileceği verifyHeaderAndExecuteTx adlı bir fonksiyonu vardır.

(1) İmzaları kontrol ederek blok başlığının (block header) doğru olup olmadığını teyit eder (diğer zincir bir poa sidechain gibi görünüp görünmediğini) ve ardından (2) işlemin bir Merkle kanıtı ile bu bloğa dahil edilip edilmediğini kontrol eder. İşte kod.

Fonksiyonun yaptığı son şeylerden biri, hedef kontratı aktive eden executeCrossChainTx çağrısıdır. Kritik açığın bulunduğu yer burasıdır. Poly, hedefin bir kontrat olduğunu kontrol eder, ancak kullanıcıların çok önemli bir hedefi aktive etmesini engellemeyi unuttular... EthCrossChainData kontratını.

Bu zincirler arası mesajı göndererek, kullanıcı onlyOwner kontrolünü atlayıp EthCrossChainManagerEthCrossChainData kontratını çağırması için kandırabilir. Artık kullanıcının, açık anahtarları (public key) değiştiren fonksiyonu tetikleyebilmek için doğru verileri oluşturması gerekiyordu…

Geriye kalan tek zorluk, EthCrossChainManager'ın doğru fonksiyonu nasıl çağıracağını bulmaktı. Şimdi, Solidity'nin çağırmaya çalıştığınız fonksiyonu nasıl seçtiği konusunda biraz karmaşıklık geliyor.

İşlem girdi verilerinin ilk dört baytına kısaca "signature hash" veya "sighash" denir. Bir Solidity kontratına ne yapmaya çalıştığınızı söyleyen kısa bir bilgi parçasıdır.

Bir fonksiyonun 'sighash'i, "<function name>(<function input types>)" 'hash'inin ilk dört baytı alınarak hesaplanır. Örneğin, ERC20 transfer fonksiyonunun 'sighash'i, "transfer(address,uint256)" 'hash'inin ilk dört baytıdır.

Poly'nin kontratı herhangi bir kontratı çağırmaya hazırdı. Ancak, yalnızca aşağıdaki ‘sighash’e karşılık gelen kontrat fonksiyonunu aktive edecekti:

Aaaa ama durun biraz... "_method" burada kullanıcı girdisiydi. Saldırganın doğru fonksiyonu çağırmak için tek yapması gereken, "_method" için, bu diğer değerlerle birleştirildiğinde ve hash edildiğinde, hedef fonksiyonumuzun 'sighash'iyle aynı ilk dört bayta sahip olan bir değer bulmaktı.

Sadece biraz kurcalayarak, doğru ‘sighash’i üreten bazı girdileri kolayca bulabilirsiniz. Tam bir hash uyuşması bulmanız gerekmez, yalnızca ilk dört baytı kontrol etmeniz yeterli. Peki bu teori doğru mu?

Pekala... işte hedef fonksiyonun gerçek ‘sighash’i:

http://ethers.utils.id ('putCurEpochConPubKeyBytes(bytes)').slice(0, 10)

'0x41973cd9'

Ve saldırganın oluşturduğu sighash...

http://ethers.utils.id ('f1121318093(bytes,bytes,uint64)').slice(0, 10)

'0x41973cd9'

Harika. Gizli anahtar’ı elde etmeye gerek yok! Sadece doğru verileri oluşturun ve boom... kontrat kendi kendini hackleyecektir!

İnsanların bundan alması gereken en büyük tasarım derslerinden birisi şudur; bunun gibi zincirler arası aktarıcı (relay) kontratlarınız varsa, ÖZEL KONTRATLARI ÇAĞIRMAK İÇİN KULLANILMAYACAĞINA EMİN OLUN. Burada EthCrossDomainManager, EthCrossDomainData kontratına sahip olmamalıydı.

İşlevsellikleri ayırın. Kontratınızın bunun gibi özel ayrıcalıklara kesinlikle sahip olması gerekiyorsa, kullanıcıların bu özel kontratları çağırmak için zincirler arası mesajları kullanamayacaklarından emin olun."

Hacker Ethereum blok zincirinde şunları çaldı;

USDC - 96.389.444

WBTC - 1.032

DAI - 673.227

UNI - 43.023

SHIBA - 259.737.345.149

renBTC- 14,47

USDT - 33.431.197

wETH - 26.109

FEI USD - 616.082

BSC üzerinden şunları çaldı;

BNB - 6.613,44

USDC - 87.603.373

ETH - 299

BTCB - 26.629

BUSD - 1.023

Ve Polygon blok zincirinde ise şunları çaldı:

USDC - 85.089.610

TOPLAM KAYBEDİLEN DEĞER - yaklaşık $611.000.000

Bu makale yazılırken , çalınan fonlar aşağıdaki cüzdanlarda bulunuyordu:

ETH: 0xC8a65Fadf0e0dDAf421F28FEAb69Bf6E2E589963

BSC: 0x0D6e286A7cfD25E0c01fEe9756765D8033B32C71

Polygon: 0x5dc3603C9D42Ff184153a8a9094a73d461663214

DeFi hikayelerinin olay örgüsü nadiren basittir ve bu olay da bir istisna değil.

Anonim aktörler bile ilgiye bayılır.

İstismardan kısa bir süre sonra, hanashiro.eth. adında beklenmedik bir kahraman ortaya çıktı.

hanashiro.eth ilk olarak hacker'a USDT'yi ne yapacağına dair bir ipucu göndererek dikkat çekti ve bunun sonucunda hacker'dan ödül olarak 13.37 Ether aldı.

Pek çok kişi daha sonra hacker'a mesaj gönderdi, ancak hiçbiri hanashiro.eth kadar başarılı olmadı.

Gerçekten kriptonun doğasına ait bir hayırsever şovmenlik ile hanashiro.eth, kendisine gönderilen çalıntı paraları Infura, Etherscan ve rekt.news gibi endüstrimizi destekleyen birkaç temel kuruluşa bağışlamaya başladı.

Ancak tüm fonlar bu kadar kolay erişilebilir değildi.

Tether, Ethereum zincirinde çalınan 33 milyon USDT'nin tamamını dondurdu.

Kendi coinleri, kendi seçimleri… Ama USDT kullanıyorsanız unutmamanız gereken bir gerçek.

Bu noktada, işler çoktan boka sarmıştı; ve tüm gözler, saldırgana fonları geri vermeleri için yalvaran bir açık mektup gönderme yoluna başvuran Poly Network'teydi.

Bir suçludan altı yüz milyon dolar geri vermesini isteyen tek bir tweet... Belki de Gensler (U.S. SEC Başkanı) bize kripto paraların "Vahşi Batı" aşamasında olduğunu söylediğinde haklıydı.

Hikayenin bu noktasında saldırganın zihninden geçeni bir düşünün. Sizce hangisini daha çok hissetti; coşku mu, korku mu?

Bilgisayarınızın başında otururken 600 milyon dolar çalmak gerçeküstü bir deneyim olmalı.

O zaman bu parayı aklamaya çalışma deneyimi de aynı derecede yoğun olmalıdır.

JPEGS dışında, tornado.cash bariz başlangıç noktası olacaktır ve hacker'ımızın gittiği yer tam olarak burasıdır.

Kendisine aşağıdaki mesajı içeren bir işlem gönderdi;

Merak ediyorum neden ısrarla Tornado? Madenciler beni durdurabilir mi? Öğretin bana lütfen.

Bu psikolojik operasyon muydu yoksa aptallık mı? Kriptoda bu iki kavram asla tam olarak net değildir...

600 milyonu kapıp kaçmış ve binlerce izleyiciye mesaj yayınlıyor.

Hackerın özgüveni fazlasıyla tavan yapmaktaydı.

@WardBradt aşağıdakileri tweetlediğinde;

‘PolyNetwork Exploiter’ı bu işlem için 0xb12681d9e yanlışlıkla yanlış gönderen adresini mi kullandı? Gönderici adresi FTX, Binance, Okex hesaplarıyla ilişkili.

Sonra birden saldırganın tutumu değişti.

Bu ölçekte bir saldırı girişiminde bulunacak kadar kendine güvenen bir hacker, böyle basit bir OPSEC hatası yapamaz değil mi? Ya da belki sahte KYC belgeleri kullandı…

Her iki ihtimalde de saldırgan korku belirtileri göstermeye başladı.

Hacker, "parayla o kadar ilgilenmediğini" öne sürerek "bazı tokenları" iade edebileceğini ve hatta onlardan vazgeçebileceğini önermeye başladı.

Ardından hacker, çalınan fonları dağıtmak için bir DAO oluşturma fikrini öne sürdü.

Sonunda baskı çok arttı ve hacker "TESLİM OLMAYA HAZIR" olduğunu açıkladı.

Saldırgan beklenmedik ve benzeri görülmemiş bir hamleyle parayı Poly Network'e iade ediyor.

Saldırı için kullanılan cüzdandan gönderilen bir Ethereum işleminde "FONLARI İADE ETMEYE HAZIR" olduğunu açıkladı.

İlk iade işlemini göndermeden önce, hacker "The hacker is ready to surrender" (Hacker teslim olmaya hazır) adlı bir token oluşturdu ve bu tokenı Poly Network'ün açıkladığı multisig kontrollü "bilinen Poly adresleri"'ne gönderdi.

Hacker’ın Poly Network ile iletişiminin özetine buradan ulaşılabilir.

Bu makale yazılırken, hacker aşağıdaki miktarları geri ödedi:

Ethereum zincirinde: $2,6M

BSC zincirinde: $1,1M

Polygon zincirinde: $1M

Hacker paraları iade etmeye devam edecek mi, yoksa bu sadece başka bir numara mı?

Gerçekten parayı iade edip sonra affedilebilirler mi?

Poly Network. 611 milyon.

Ve DeFi'deki tüm büyük protokolleri iyi bildiğinizi mi sanıyordunuz.

Bu endüstri, sadece görüş birliğinde olanların birbirlerini pohpohlayıp alkışladığı bir yer olmaktan öteye geçti.

Bu saldırı, şimdilik bu boyuttaki ilk saldırı olabilir, ancak önümüzdeki yıllar içerisinde karşılaşacağımız son saldırı olmayacak. Yine de piyasa haklı olarak etkilenmemiş görünüyor.

İyi ya da kötü, kripto bu haberleri yapacak ve endüstrimiz normlarına kavuştukça dünya bunu fark etmek zorunda kalacak.

Bu patlamalar, ilerlemenin bir başka kaçınılmaz parçası.


bu makaleyi paylaş

REKT, anonim yazarlar için halka açık bir platform olarak hizmet eder, REKT'te bulunan görüşler veya içerik için hiçbir sorumluluk kabul etmiyoruz.

bağış yap (ETH / ERC20): 0x3C5c2F4bCeC51a36494682f91Dbc6cA7c63B514C

sorumluluk reddi:

REKT, Web Sitemizde veya hizmetlerimizle bağlantılı olarak web sitemizin ANON yazarı veya REKT tarafından gönderilen, yayınlanan veya neden olunan hiçbir içerikten hiçbir şekilde sorumlu veya yükümlü değildir. Anon yazarın davranışları ve gönderileri için kurallar sağlamamıza rağmen, onun web sitemizde veya hizmetlerimizde yayınladığı, ilettiği veya paylaştığı şeylerden sorumlu değiliz veya web sitemizde ve hizmetlerimizde karşılaşabileceğiniz herhangi bir saldırgan, uygunsuz, müstehcen, yasa dışı veya başka şekilde sakıncalı olan içerikten sorumlu değiliz. REKT, Web Sitemizin veya Hizmetlerimizin herhangi bir kullanıcısının çevrimiçi veya çevrimdışı davranışlarından sorumlu değildir.