Solidity Derleyici Açığı Analizi ve Önleme Stratejileri
Derleyici, modern bilgisayar sistemlerinin temel bileşenlerinden biridir. İşlevi, yüksek seviyeli programlama dili kaynak kodunu bilgisayarın çalıştırabileceği talimat koduna dönüştürmektir. Uygulama programı kodları gibi, derleyicinin kendisi de güvenlik açıklarına sahip olabilir ve bazı durumlarda ciddi güvenlik riskleri doğurabilir.
Solidity derleyicisinin işlevi, akıllı sözleşme kodunu Ethereum Sanal Makinesi (EVM) talimat koduna dönüştürmektir. EVM'nin kendisindeki güvenlik açıklarının aksine, Solidity derleyici güvenlik açıkları doğrudan Ethereum ağını etkilemez, ancak geliştiricinin beklediğinden farklı EVM kodunun üretilmesine neden olarak akıllı sözleşme güvenlik sorunlarını tetikleyebilir.
Aşağıda birkaç gerçek Solidity derleyici açığı örneği bulunmaktadır:
SOL-2016-9 YüksekDüzeyBaytTemizlemeDepolama
Bu açık, daha eski versiyonlardaki Solidity derleyicisinde bulunmaktadır (>=0.1.6 <0.4.4). Bazı durumlarda, derleyici yüksek baytları doğru bir şekilde temizlememiştir, bu da storage değişkeninin değerinin beklenmedik bir şekilde değiştirilmesine neden olmuştur.
SOL-2022-4 InlineAssemblyMemorySideEffects
Bu güvenlik açığı 0.8.13 ile 0.8.15 sürümleri arasındaki derleyicilerde bulunmaktadır. Derleme optimizasyonu sırasında assembly bloklarının yanlış işlenmesi, bellek yazma işlemlerinin yanlışlıkla kaldırılmasına neden olabilir.
Bu açık, 0.5.8 ile 0.8.16 sürümleri arasındaki derleyicileri etkilemektedir. calldata türündeki bir dizi üzerinde abi.encode işlemi yapılırken, bazı verilerin yanlışlıkla temizlenmesine neden olabilir, bu da bitişik verilerin değiştirilmesine yol açar.
Solidity derleyici açığı ile ilgili olarak, Cobo blok zinciri güvenlik ekibi aşağıdaki önerileri sunmaktadır:
Geliştiricilere:
Daha yeni bir Solidity derleyici sürümü kullanın
Birim test vakalarını geliştirin
Karmaşık dil özellikleri kullanmaktan kaçının, örneğin, satır içi montaj, çok boyutlu dizilerin abi kodlama ve kod çözme vb.
Güvenlik personeline:
Denetim sırasında derleyicinin getirebileceği güvenlik risklerini dikkate alın.
Geliştirme sürecinde derleyici versiyonunu yükseltmek için teşvik edin
Derleyici açıklarının gerçek güvenlik etkisini belirli durumlara göre değerlendirin.
Bazı yararlı kaynaklar:
Solidity resmi güvenlik uyarı blogu
Solidity GitHub deposundaki hata listesi
Tüm sürümler için derleyici hata listesi
Etherscan sözleşme kodu sayfasındaki derleyici açığı uyarısı
Solidity derleyici açıklarının özelliklerini ve etkilerini anlayarak, geliştiriciler ve güvenlik uzmanları akıllı sözleşmelerin güvenlik risklerini daha kapsamlı bir şekilde değerlendirebilir ve buna göre önleyici tedbirler alabilir.
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.
20 Likes
Reward
20
5
Share
Comment
0/400
blocksnark
· 07-10 15:09
Hata düzeltmek için para en lezzetlisi.
View OriginalReply0
BlockchainDecoder
· 07-08 10:18
Klasik makale Solidity Compiler Analysis (2022)'e göre, bu tür açıkların risk katsayısı %78.3'tür, bu nedenle 0.8.0+ versiyonlarının dikkatli bir şekilde kullanılmasını öneririz.
View OriginalReply0
DaisyUnicorn
· 07-08 10:14
Yingying derleyici de küçük bir böcek bulmuş. Hemen yeni bir versiyon çıkaralım.
View OriginalReply0
FlashLoanLarry
· 07-08 10:13
defi'de sıradan bir gün... derleyici açıkları = sonsuz mev fırsatları açıkçası
View OriginalReply0
AlphaLeaker
· 07-08 10:04
Yine de yükseltme yapsanız bile hackerların karşısında duramazsınız.
Solidity Derleyici Açığı Analizi ve Önleme Stratejileri
Solidity Derleyici Açığı Analizi ve Önleme Stratejileri
Derleyici, modern bilgisayar sistemlerinin temel bileşenlerinden biridir. İşlevi, yüksek seviyeli programlama dili kaynak kodunu bilgisayarın çalıştırabileceği talimat koduna dönüştürmektir. Uygulama programı kodları gibi, derleyicinin kendisi de güvenlik açıklarına sahip olabilir ve bazı durumlarda ciddi güvenlik riskleri doğurabilir.
Solidity derleyicisinin işlevi, akıllı sözleşme kodunu Ethereum Sanal Makinesi (EVM) talimat koduna dönüştürmektir. EVM'nin kendisindeki güvenlik açıklarının aksine, Solidity derleyici güvenlik açıkları doğrudan Ethereum ağını etkilemez, ancak geliştiricinin beklediğinden farklı EVM kodunun üretilmesine neden olarak akıllı sözleşme güvenlik sorunlarını tetikleyebilir.
Aşağıda birkaç gerçek Solidity derleyici açığı örneği bulunmaktadır:
Bu açık, daha eski versiyonlardaki Solidity derleyicisinde bulunmaktadır (>=0.1.6 <0.4.4). Bazı durumlarda, derleyici yüksek baytları doğru bir şekilde temizlememiştir, bu da storage değişkeninin değerinin beklenmedik bir şekilde değiştirilmesine neden olmuştur.
Bu güvenlik açığı 0.8.13 ile 0.8.15 sürümleri arasındaki derleyicilerde bulunmaktadır. Derleme optimizasyonu sırasında assembly bloklarının yanlış işlenmesi, bellek yazma işlemlerinin yanlışlıkla kaldırılmasına neden olabilir.
Bu açık, 0.5.8 ile 0.8.16 sürümleri arasındaki derleyicileri etkilemektedir. calldata türündeki bir dizi üzerinde abi.encode işlemi yapılırken, bazı verilerin yanlışlıkla temizlenmesine neden olabilir, bu da bitişik verilerin değiştirilmesine yol açar.
Solidity derleyici açığı ile ilgili olarak, Cobo blok zinciri güvenlik ekibi aşağıdaki önerileri sunmaktadır:
Geliştiricilere:
Güvenlik personeline:
Bazı yararlı kaynaklar:
Solidity derleyici açıklarının özelliklerini ve etkilerini anlayarak, geliştiriciler ve güvenlik uzmanları akıllı sözleşmelerin güvenlik risklerini daha kapsamlı bir şekilde değerlendirebilir ve buna göre önleyici tedbirler alabilir.