Wintermute 160 milyonun üzerinde kayıpla istismar edildi. Temel neden, Wintermute'un özel anahtarı ve Ethereum hesabını oluşturmak için kullandığı Profanity aracındaki bir güvenlik açığı nedeniyle Wintermute projesinin özel anahtarının ele geçirilmesidir.
Bu blogda, Profanity'deki güvenlik açığının temel nedenini ve bu açığın nasıl istismar edilebileceğini açıklayacağız.
Ethereum Adresi
Ethereum adresi, genel anahtarın Keccak-256 hash'inden oluşturulur ve onaltılık sayılarla temsil edilir. Genel anahtar, özel anahtardan eliptik eğri çarpımı kullanılarak oluşturulur; bu işlem geri döndürülemez. Özel anahtardan genel anahtar elde edebiliriz. Ancak, kaba kuvvet kullanmadan genel anahtardan özel anahtarı elde edemeyiz. Özel anahtarın uzunluğunun 256 bit olduğunu unutmayın. Bir genel anahtar verildiğinde, karşılık gelen özel anahtarı bulmak için en fazla 2^256 hesaplama yapmanız gerekir.
Özetle, özel/genel anahtar ile Ethereum adresi arasındaki ilişki aşağıdaki şekilde gösterilmektedir.

Güvenlik Açığının Temel Nedeni
Profanity'nin amacı, örneğin adresin ilk beş hanesi sıfır olan özel bir Ethereum adresi bulmaktır. Bu amaçla Profanity aşağıdaki yöntemi kullanır.

Ayrıntılı uygulama biraz farklı olabilir.
private_key'in uzunluğunun 256 bit (2^256 farklı değer) olduğuna dikkat edin. Ancak, özel anahtarın oluşturulmasında bir güvenlik açığı bulunmaktadır. Özellikle, tohum (1. adımda) yalnızca 32 bittir ve 1. adımdaki tohumdan 2. adımdaki private_key'e geçiş süreci deterministiktir.
Buradaki güvenlik etkisi nedir?
Nasıl İstismar Edilir
Diyelim ki çok değerli varlıklara sahip bir Ethereum adresimiz var. Özel anahtarını ele geçirebilirsek, bu hesabın sahibi olabilir ve tüm varlıkları transfer edebiliriz. Ancak daha önce tartışıldığı gibi, özel anahtarı bulmak için tüm 2^256 uzayını kaba kuvvetle taramak zorundayız; bu neredeyse imkânsızdır.
Peki ya Ethereum adresi Profanity aracıyla oluşturulmuşsa? Özel anahtarı çok daha düşük bir zorlukla kaba kuvvetle bulabiliriz. Yalnızca tohumun 0'dan 2^32-1'e kadar belirtilmesi ve aynı genel anahtarı (ve Ethereum adresini) oluşturabilecek özel anahtarı bulana kadar aynı işlemin tekrarlanması yeterlidir. En fazla 2^32 * loop_threashold hesaplama yapacağımızdan, güçlü bir GPU kümesine sahipsek bu işlem birkaç saat veya gün/hafta içinde gerçekleştirilebilir.
Ancak bu hâlâ optimize edilmiş bir algoritmadır. Daha fazla ayrıntı için Slowmist'in makalesine başvurabilirsiniz.
Sonuç
Bir DeFi projesini güvenli kılmak kolay bir iş değildir. Kod denetiminin yanı sıra, topluluğun proje durumunu izlemek için proaktif bir yöntem benimsemesi ve saldırı gerçekleşmeden önce engellenmesi gerektiğini düşünüyoruz.
BlockSec Hakkında
BlockSec, 2021 yılında küresel çapta tanınan güvenlik uzmanlarından oluşan bir grup tarafından kurulmuş öncü bir blok zinciri güvenlik şirketidir. Şirket, kitlesel benimsenmesini kolaylaştırmak amacıyla gelişmekte olan Web3 dünyasının güvenliğini ve kullanılabilirliğini artırmaya kararlıdır. Bu doğrultuda BlockSec, akıllı sözleşme ve EVM zinciri güvenlik denetim hizmetleri, güvenlik geliştirme ve tehditleri proaktif olarak engelleme için Phalcon platformu, fon takibi ve araştırma için MetaSleuth platformu ve web3 geliştiricilerinin kripto dünyasında verimli gezinmesi için MetaSuites eklentisi sunmaktadır.
Şirket bugüne kadar MetaMask, Uniswap Foundation, Compound, Forta ve PancakeSwap gibi 300'den fazla saygın müşteriye hizmet vermiş; Matrix Partners, Vitalbridge Capital ve Fenbushi Capital gibi önde gelen yatırımcılardan iki tur finansmanda on milyonlarca ABD doları almıştır.
Resmi web sitesi: https://blocksec.com/
Resmi Twitter hesabı: https://twitter.com/BlockSecTeam



