"Çatallı EVM" güvenlik riski nasıl değerlendirilir?

İlk 10 TVL zincirinden 9'u EVM akıllı sözleşmelerini destekliyor.

Orijinal başlık: "Güvenlik Riskleri için Çatallı EVM'ler nasıl kullanılır"

** Oyuncular: Ethan Pociask, Eric Meng, Nadir Akhtar, Gabriela Melendez Quan, Tom Ryan**

Derleyici: Katie Koo

Coinbase Blockchain Güvenlik ekibi, ERC-20 ve diğer akıllı sözleşmeye dayalı varlıkların ticaretini yapan müşteriler için güvenlik ve saklama güvencelerini güçlendirmek amacıyla bu varlıkların davranışını tanımlayan programatik katmanı araştırdı: Ethereum Sanal Makinesi (EVM). Coinbase'in blockchain güvenlik ekibi, kendi ağlarının EVM'sini değiştiren projeleri değerlendirirken, değiştirilen EVM'nin orijinal EVM uygulamasıyla aynı güvenlik ve gözetim güvencelerini sağlayıp sağlayamayacağını belirlemek için önemli EVM değişikliklerini inceler.

Çatal EVM Durumu

Mayıs 2023 itibariyle, Ethereum Virtual Machine (EVM), en popüler akıllı sözleşme yürütme platformunun "Big Brother" unvanını kazandı. DefiLlama'ya göre Total Value Locked (TVL) tarafından ilk 10 zincirden 9'u EVM akıllı sözleşmelerini destekliyor. Bu nedenle, EVM'nin derinlemesine anlaşılması, tüm blockchain ekosisteminde akıllı sözleşmeleri desteklemek için çok önemlidir.

EVM, Ethereum ağında akıllı sözleşmelerin merkezi olmayan bir şekilde yürütülmesi için sanal bir makinedir. Birçok EVM uyumlu blok zinciri, protokol yazılımlarında doğrudan go-ethereum (Golang) ve besu (Java) gibi farklı dillerdeki popüler Ethereum uygulama istemcilerinin standart uygulamalarından yararlanır.

Bununla birlikte, EVM'yi çatallamak ve değiştirmek, blok zinciri ekosisteminde, hatta büyük protokollerde bile oldukça yaygındır. Örneğin, Coinbase'in Base L2 blok zincirine "güç veren" Optimism Bedrock Stack, popüler ethereum yürütme istemcisiyle aynı EVM'yi çalıştıran op-geth adlı go-ethereum yürütme istemcisinin bir çatalını kullanır. Bununla birlikte, bu, Ethereum üzerindeki EVM'nin İyimserlik üzerindeki EVM ile tam olarak aynı davrandığı anlamına gelmez: op-geth EVM, bazı durumlarda biraz farklı davranır (yani, rastgele değerleri döndürme ZORLUĞU, sıralayıcı tarafından belirlenir).

Bu kulağa korkutucu gelse de, genellikle EVM'nin benimsenmesi için faydalıdır. Standart EVM uygulaması, temel Ethereum protokolü için yüksek oranda optimize edilmiş olsa da, çatallı EVM'ler bunu genellikle kendi yeni protokolleri için genişletir. Sonuç olarak, sözleşmeler bazı EVM uyumlu zincirlerde Ethereum'da olduğundan farklı şekilde yürütülebilir ve EVM akıllı sözleşme davranışının güvenlik varsayımları da farklı protokoller arasında büyük farklılıklar gösterebilir.

EVM güvenlik çerçevesini çatallayın

Bu amaçla Coinbase, bazı çatallı EVM uygulamalarının güvenlik etkisini değerlendirmek için bir Web3 güvenlik çerçevesi geliştirdi. Buna, aşağıda ayrıntılı olarak açıklanacak olan Coinbase'in çatallı EVM çerçevesi diyoruz.

Bu çatallı EVM güvenlik çerçevesi ile Coinbase şunları etkili bir şekilde yapabilir:

  • Ethereum belirteç çerçevemizin güvenlik varsayımlarının geçersizliğini anlamak, merkezi olmayan borsalarımızda ERC-20/ERC-721 belirteçlerini desteklemek için yeni EVM uyumlu blok zincirlerini güvenli bir şekilde etkinleştirmemize olanak tanır;
  • Akıllı sözleşme denetçilerine, özellikle ağlar arası küçük farklılıklar olmak üzere çatallı EVM'nin akıllı sözleşme güvenlik açığı durumunun bir analizini sağlayın;
  • EVM akıllı sözleşmelerinin Coinbase'in Base L2 blok zincirinde güvenli bir şekilde kullanılmasını ve yürütülmesini sağlayın.

EVM uyumlu blok zincirleri için güvenlik standardı

Ethereum sanal makinesinde güvenlik risklerinin nasıl var olduğunu anlamak için öncelikle standart EVM uygulamasının bize hangi garantileri sağladığını bilmeliyiz. Standart EVM'yi, Ethereum Uygulama Spesifikasyonunda açıklandığı gibi Ethereum doğrulayıcı yürütme istemcileri tarafından sürekli olarak kullanılan EVM olarak tanımlarız. Şimdiye kadar en çok kullanılan istemci go ethereum'dur (yani geth).

Güvenliği, herhangi bir çatallı EVM uygulamasının Coinbase desteğine uygun olması için minimum gereksinimleri temsil eden iki güvenlik kriterinde özetliyoruz.

Bir EVM uygulamasının güvenlik risklerini nasıl denetleriz?

Çatallı EVM çerçevemiz, genel güvenlik kriterlerine (yani, sözleşme değişmezliği ve güvenli bir yürütme ortamı) uygunluğu değerlendirirken aşağıdaki denetim gereksinimlerine odaklanır. Aşağıdaki risk bileşenlerinin çatal EVM denetiminin tam kapsamı olmadığına dikkat edilmelidir.

EVM işlem kodlarının tanımını ve kodlamasını değiştirmek, sözleşmelerin yürütülme biçiminde önemli farklılıklara yol açabilir. Örneğin, bazı çatallı EVM uygulamasının (EVM'), iki değeri (x1 - x2) çıkarmak için mantığı (x1 + x2) tanımlamak için aritmetik ADD işlem kodunu değiştirdiğini varsayalım.

Sonuç olarak, sapmış EVM' eşit değildir ve yürütmede standart EVM ile uyumsuzdur. İşlem kodlarını değiştirmenin sonuçları, aritmetik işlem kodlarında tamsayı taşmasını ve taşmasını önlemek gibi yararlı davranışlar veya yerel varlıkların sonsuz sayıda basılmasına neden olan kendi kendini yok etme davranışı gibi daha tehlikeli davranışlar olabilir.

EVM, daha az erişilebilir EVM bayt kodunu kullanmak yerine Golang gibi daha kullanışlı ve performanslı bir dil kullanarak karmaşık işlevleri (şifreleme işlevleri gibi) tanımlamak için önceden derlenmiş sözleşmeler kullanır.

Temel olarak bunlar, düğüm yazılımında temsil edilen önceden belirlenmiş zincir adresler aracılığıyla erişilen programlanmış işlevlerdir. Ethereum Sarı Belgesinde (Mayıs 2023 itibariyle) tanımlanmış 9 ön derleyici vardır ve bu 9 ön derleyicide yapılan herhangi bir değişikliğin veya yeni ön derleyicilerin getirilmesinin denetlenmesi gerekir.

Başka bir somut örneği ele alalım - BNB Akıllı Zincir güvenlik açığı. BNB Akıllı Zincir, düğümleri çalıştırmak için sapmış bir go-ethereum uygulaması kullanır. Bu amaçla, hafif istemci bloğu doğrulaması ve Merkle kanıtı doğrulaması gerçekleştirmek için üçüncü taraf yazılımlardan (örn. Sorun, Cosmos SDK yazılımının IAWL ağaç temsilinde, kriptografik olarak geçersiz kanıtların doğrulamayı geçmesine izin veren bir uygulama hatasına sahip olmasıdır. Başka bir deyişle, herkes yoktan para üretebilir. Saldırganlar, Binance çapraz zincir köprüsünden yüz milyonlarca doları çekmek için iavlMerkleProofValidate ön derleyicisine yerleştirilmiş bu uygulama kusurundan yararlanmayı başardı.

Bu istismar örneğinin amacı, ön derleyici güvenliğine duyulan ihtiyacı ve farklı EVM uygulamaları için yeni önceden derlenmiş sözleşmeler sunmanın potansiyel risklerini göstermektir.

Ek ön derleyiciler sunmanın potansiyel olarak ölümcül riskleri şunları içerir:

  • Bir tarafın, dağıtılan herhangi bir sözleşmenin durumunu tek taraflı olarak değiştirmesine izin verin;
  • Bu, tüm depolama değişikliklerini (ekler, güncellemeler, silmeler) içerir;
  • güvenilmeyen, doğrulanmamış veya denetlenmemiş üçüncü taraf bağımlılıklarının kullanımı;
  • Belirsiz düğüm içindeki değere erişim sağlar.

Derleyici ve EVM'yi tamamen ayrı varlıklar olarak ele almasına rağmen, Solidity derleyicisinin Solidity'den geçirilen önceden derlenmiş ilk üç sözleşmenin (ecrecover, sha256 ve &ripemd) davranışı hakkında katı varsayımlarda bulunduğunu belirtmek gerekir. dilde temsili. Sahne arkasında, Solidity derleyicisi aslında bu anahtar sözcükleri, sözleşmeler arasında statik çağrılar yürüten bayt koduna işler. Aşağıdaki şema, sözleşmeler arasında bu şekilde iletişim kurmayı daha ayrıntılı olarak göstermektedir.

Standart ön derleyiciyi değiştirerek ortaya çıkan güvenlik riskleri şunları içerir:

  • Merkezi karşı tarafların konuşlandırılmış herhangi bir sözleşmenin durumunu tek taraflı olarak değiştirmesine izin verin;
  • Bu, tüm depolama değişikliklerini (ekler, güncellemeler, silmeler) içerir;
  • Solidity derleyicisinin ön derleme konumu varsayımı tutarsızdır;
  • Belirsiz düğümlerdeki değerlere erişim sağlar;
  • Güvenilmeyen, doğrulanmamış veya denetlenmemiş üçüncü taraf bağımlılıklarının kullanımı.

EVM'nin temel bileşenlerini değiştirerek ortaya çıkan temel riskler şunları içerir:

  • yorumlayıcı yığınını sonsuz büyüklükte sınırlamaz;
  • Bellek modelini yeniden boyutlandırmak veya değiştirmek, deterministik olmayan yürütmeye yol açabilir;
  • Herhangi bir karşı tarafın tüm zincir durumlarına tek taraflı olarak erişmesine izin vererek erişim kontrolünü atlayın;
  • Güvenilmeyen, doğrulanmamış veya denetlenmemiş üçüncü taraf bağımlılıklarının kullanımı.

EVM güvenliğine neden dikkat etmeliyiz?

Amacımız, blockchain teknolojisine dayalı açık bir finansal sistem oluşturmak ve bu amaçla çeşitli EVM uygulamalarının geliştirilmesini teşvik ediyoruz. Bununla birlikte, EVM uyumlu bir blok zincirinin Coinbase tarafından tam olarak desteklenmesi için standart bir EVM uygulamasının temel gereksinimlerini karşılaması gerekir. Bu belge, EVM'den sapmayla ilişkili riskler konusunda farkındalık yaratmayı ve varlık ihraççılarını EVM'den saparken güvenli bileşenlerin geliştirilmesine öncelik vermeye teşvik ederek tüm Web3 ekosisteminde güvenlik farkındalığını artırmayı umuyor.

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.
  • Reward
  • Comment
  • Share
Comment
0/400
No comments
  • Pin
Trade Crypto Anywhere Anytime
qrCode
Scan to download Gate app
Community
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)