Solidity derleyici açıkları analizi: akıllı sözleşmelerin güvenliğini etkileyen gizli riskler

robot
Abstract generation in progress

Solidity derleyici açığı derinlik analizi

Derinlik, modern bilgisayar sistemlerinin temel bileşenlerinden biridir ve temel işlevi, yüksek seviyeli programlama dili kaynak kodunu bilgisayarın alt katmanlarında çalıştırılabilir talimat koduna dönüştürmektir. Çoğu geliştirici ve güvenlik uzmanı genellikle uygulama kodlarının güvenliğine odaklansa da, derleyicinin kendisinin güvenliği genellikle göz ardı edilmektedir. Aslında, bir bilgisayar programı olarak derleyicinin de güvenlik açıkları olabilir ve bu açıklar bazı durumlarda ciddi güvenlik riskleri oluşturabilir.

Örneğin, bir tarayıcı JavaScript kodunu işlerken, JavaScript analiz motorundaki bir güvenlik açığı, kullanıcıların kötü niyetli web sitelerine erişmesi durumunda uzaktan kod yürütme saldırısına maruz kalmasına neden olabilir ve bu da saldırganın kurbanın tarayıcısını veya hatta işletim sistemini kontrol etmesine yol açabilir. Ayrıca, araştırmalar Clang C++ derleyicisindeki bir hatanın da uzaktan kod yürütme gibi ciddi sonuçlara yol açabileceğini göstermektedir.

Solidity derleyicisinde de güvenlik açıkları bulunmaktadır. Solidity geliştirme ekibi tarafından yayınlanan güvenlik uyarısına göre, birçok versiyonunda güvenlik riskleri bulunmaktadır. Solidity derleyicisinin işlevi, akıllı sözleşme kodunu Ethereum Sanal Makinesi (EVM) talimat koduna dönüştürmektir; bu talimat kodları nihayetinde işlem yoluyla Ethereum'a yüklenir ve EVM tarafından yürütülür.

Solidity derleyici açıkları analizi ve önleme tedbirleri

Dikkat edilmesi gereken husus, Solidity derleyici açıklarının EVM'nin kendisindeki açıklarla farklı olduğudur. EVM açıkları, sanal makinenin talimatları yürütürken ortaya çıkan güvenlik sorunlarını ifade eder ve bu, tüm Ethereum ağını etkileyebilir. Öte yandan, Solidity derleyici açıkları, Solidity kodunun EVM koduna dönüştürülmesi sırasında ortaya çıkan sorunlardır ve doğrudan Ethereum ağını etkilemez.

Solidity derleyici açıkları, üretilen EVM kodunun geliştiricinin beklediğiyle tutarsız olmasına neden olabilir. Ethereum üzerindeki akıllı sözleşmeler genellikle kullanıcıların kripto para varlıklarını içerdiğinden, derleyiciden kaynaklanan herhangi bir hata, kullanıcı varlıklarının kaybına neden olabilir ve sonuçları ciddi olabilir. Geliştiriciler ve sözleşme denetçileri genellikle sözleşme mantığı uygulamasına ve yaygın güvenlik sorunlarına odaklanırken, derleyici açıkları yalnızca kaynak kodu denetimi ile tespit edilmesi zor olup, belirli derleyici sürümleri ve kod kalıpları ile birlikte analiz edilmesi gerekir.

Aşağıda birkaç gerçek Solidity derleyici açığı örneği verilmiştir:

  1. SOL-2016-9 YüksekDüzenBaytTemizlemeDepolama

Bu güvenlik açığı, daha eski sürüm Solidity derleyicisinde (>=0.1.6 <0.4.4) bulunmaktadır. Bazı durumlarda, storage değişkeninin değeri yanlışlıkla değiştirilebilir, bu da işlevin döndürdüğü değerin beklenenle uyuşmamasına yol açar. Bu tutarsızlık, yetki doğrulama veya varlık muhasebesi gibi senaryolarda ciddi sonuçlara neden olabilir.

  1. SOL-2022-4 InlineAssemblyMemoryYanEtkileri

Bu güvenlik açığı, 0.8.13 ile 0.8.15 sürümleri arasındaki derleyicide mevcuttur. Derleyici optimizasyon stratejileri nedeniyle, bazı inline assembly kodlarındaki bellek değişiklikleri yanlışlıkla kaldırılabilir ve bu da fonksiyonun dönüş değerinin hatalı olmasına yol açabilir.

  1. SOL-2022-6 AbiYenidenKodlamaBaşOverflowWithStaticArrayCleanup

Bu güvenlik açığı, 0.5.8 ile 0.8.16 sürümleri arasındaki derleyicileri etkilemektedir. calldata türündeki bir dizi için abi.encode işlemi yapılırken, bazı verilerin yanlışlıkla temizlenmesi mümkündür, bu da bitişik verilerin değiştirilmesine neden olarak kodlama ve kod çözme sonrası verilerin tutarsız olmasına yol açar.

Solidity derleyici açıkları için, Cobo blok zinciri güvenlik ekibi aşağıdaki önerileri sunmaktadır:

Solidity derleyici açıklarının analizi ve önleme yöntemleri

Geliştiricilere:

  • Daha yeni bir Solidity derleyici sürümü kullanın
  • Birim test vakalarını geliştirerek kod kapsamını artırmak
  • Satır içi montaj, karmaşık abi kodlama/çözme gibi işlemlerden kaçının, yeni özellikler ve deneysel işlevleri dikkatli bir şekilde kullanın.

Güvenlik personeline:

  • Denetim sırasında derleyicinin getirebileceği güvenlik risklerini dikkate alın
  • Geliştirici ekibine derleyici sürümünü zamanında güncellemeleri önerilir.
  • CI/CD sürecinde derleyici versiyonunun otomatik kontrolünü dahil etme
  • Belirli projelere göre derleyici açıklarının gerçek güvenlik etkisini değerlendirin

Bazı pratik kaynaklar:

  • Solidity resmi blogunun güvenlik uyarısı
  • Solidity GitHub deposunun hata listesi
  • Her sürüm derleyici hata listesi
  • Etherscan sözleşme kodu sayfasındaki güvenlik açığı uyarısı

Solidity derleyici açıklarının özelliklerini ve etkilerini anlamak suretiyle, geliştiriciler ve güvenlik uzmanları akıllı sözleşmelerin güvenlik risklerini daha kapsamlı bir şekilde değerlendirebilir ve potansiyel tehditleri azaltmak için gerekli önlemleri alabilirler.

Solidity derleyici açıklarının analizi ve önleme yöntemleri

View Original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Reward
  • 6
  • Share
Comment
0/400
0xSoullessvip
· 4h ago
又一波enayilerinsanları enayi yerine koymak工具
View OriginalReply0
RumbleValidatorvip
· 07-12 19:34
Bu açık, konsensüs katmanı hatalarına yol açabilir mi? Doğrulama düğümü riski büyük.
View OriginalReply0
SocialFiQueenvip
· 07-12 19:29
Görünüşe göre akıllı sözleşmeler batacak~ haha çok heyecan verici
View OriginalReply0
CryptoTherapistvip
· 07-12 19:27
sadece bir başka geliştirici kaygı sendromu vakası... hata ayıklama sürecinde nefes al fam
View OriginalReply0
StablecoinAnxietyvip
· 07-12 19:14
Derleyiciler güvenli değil, kim kod yazabilir ki
View OriginalReply0
Blockwatcher9000vip
· 07-12 19:06
Geliştiriciler çok zor, btc'mi sıkı tutup Rug Pull yaptım.
View OriginalReply0
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)