Solidity Derleyici Açığı Analizi ve Müdahale Stratejileri
Derleyici, modern bilgisayar sistemlerinin temel bileşenlerinden biridir ve görevi, yüksek düzeydeki programlama dili kaynak kodunu bilgisayarın çalıştırabileceği talimat koduna dönüştürmektir. Uygulama kodu güvenliği ile karşılaştırıldığında, derleyicinin kendine ait güvenliği genellikle göz ardı edilir. Ancak, bir bilgisayar programı olarak derleyici de güvenlik açıklarına sahip olabilir ve belirli 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 açıkların aksine, Solidity derleyici açıkları, Solidity'nin EVM koduna dönüştürülmesi sırasında ortaya çıkan sorunlarda kendini gösterir. Bu, üretilen EVM kodunun geliştiricinin beklediğinden farklı olmasına neden olabilir ve sonuçta akıllı sözleşmenin anormal çalışmasına yol açarak kullanıcı varlıklarının güvenliğini tehlikeye atabilir.
Aşağıda birkaç gerçek Solidity derleyici açığı örneği bulunmaktadır:
SOL-2016-9 YüksekDüzeyBaytTemizDepolama
Bu güvenlik açığı, (>=0.1.6 <0.4.4) sürümlerindeki daha eski Solidity derleyicisinde bulunmaktadır. Belirli durumlarda, storage değişkenleri beklenmedik bir şekilde değiştirilebilir, bu da beklenen davranışla çelişir. Bu tutarsızlık, özellikle değişkenler yetki doğrulama veya varlık muhasebesi için kullanıldığında ciddi sonuçlara yol açabilir.
SOL-2022-4 InlineAssemblyMemorySideEffects
Bu açık, 0.8.13 ile 0.8.15 sürümleri arasındaki derleyicide bulunmaktadır. Derleme optimizasyon sürecindeki bir hata nedeniyle, bellek yazma işlemlerinin yanlışlıkla kaldırılması, beklenmeyen program davranışlarına neden olabilir.
SOL-2022-6 Statik Dizi Temizleme ile Abi Yeniden Kodlama Başlık Taşması
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ıldığında, bazı verilerin yanlışlıkla temizlenmesi sonucu, bitişik verilerin değiştirilmesine neden olabilir ve bu durum kodlama ve kod çözme sonrasında verilerin tutarsız olmasına yol açabilir.
Solidity derleyici açığına karşı, 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 durumlarını geliştirin
İnline assembly, karmaşık abi kod çözme gibi işlemlerden kaçının
Güvenlik personeline:
Denetim sırasında derleyicinin getirebileceği güvenlik risklerini dikkate alın.
SDL sürecinde derleyici sürümünün güncellenmesi için zorlamak
Derleyici açıklarının gerçek güvenlik etkisini belirli durumlara göre değerlendirin.
Pratik kaynaklar:
Solidity resmi güvenlik uyarı blogu
Solidity GitHub deposunun hata listesi
Etherscan sözleşme kodu sayfasının güvenlik uyarısı
Özetle, aşırı panik yapmaya gerek olmasa da, geliştiricilerin ve güvenlik uzmanlarının Solidity derleyici açıklarının potansiyel risklerini tam olarak anlaması ve bunların yol açabileceği güvenlik tehditlerini azaltmak için uygun önlemleri alması gerekir.
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.
14 Likes
Reward
14
6
Share
Comment
0/400
ZkProofPudding
· 08-01 20:20
Yine soğuk bir derleyici
View OriginalReply0
TheMemefather
· 08-01 20:19
Derleyicinin de açığı mı var? Çok sinir bozucu.
View OriginalReply0
HodlOrRegret
· 08-01 20:18
Yine bir hata güncellemesi oldu, en büyük zararı her zaman bireysel yatırımcılar görüyor.
View OriginalReply0
wrekt_but_learning
· 08-01 20:16
Bu kod açığı gerçekten de bir tuzak, kafamı kaşıyorum.
View OriginalReply0
GweiTooHigh
· 08-01 20:13
Derleyici yine hata verdi, çok can sıkıcı.
View OriginalReply0
BakedCatFanboy
· 08-01 20:11
Bir EVM açığı daha mı? Aman Tanrım, başa çıkamıyorum!
Solidity derleyici açığı akıllı sözleşmelerin güvenliğini tehdit ediyor, geliştiricilerin dikkatli olması gerekiyor.
Solidity Derleyici Açığı Analizi ve Müdahale Stratejileri
Derleyici, modern bilgisayar sistemlerinin temel bileşenlerinden biridir ve görevi, yüksek düzeydeki programlama dili kaynak kodunu bilgisayarın çalıştırabileceği talimat koduna dönüştürmektir. Uygulama kodu güvenliği ile karşılaştırıldığında, derleyicinin kendine ait güvenliği genellikle göz ardı edilir. Ancak, bir bilgisayar programı olarak derleyici de güvenlik açıklarına sahip olabilir ve belirli 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 açıkların aksine, Solidity derleyici açıkları, Solidity'nin EVM koduna dönüştürülmesi sırasında ortaya çıkan sorunlarda kendini gösterir. Bu, üretilen EVM kodunun geliştiricinin beklediğinden farklı olmasına neden olabilir ve sonuçta akıllı sözleşmenin anormal çalışmasına yol açarak kullanıcı varlıklarının güvenliğini tehlikeye atabilir.
Aşağıda birkaç gerçek Solidity derleyici açığı örneği bulunmaktadır:
Bu güvenlik açığı, (>=0.1.6 <0.4.4) sürümlerindeki daha eski Solidity derleyicisinde bulunmaktadır. Belirli durumlarda, storage değişkenleri beklenmedik bir şekilde değiştirilebilir, bu da beklenen davranışla çelişir. Bu tutarsızlık, özellikle değişkenler yetki doğrulama veya varlık muhasebesi için kullanıldığında ciddi sonuçlara yol açabilir.
Bu açık, 0.8.13 ile 0.8.15 sürümleri arasındaki derleyicide bulunmaktadır. Derleme optimizasyon sürecindeki bir hata nedeniyle, bellek yazma işlemlerinin yanlışlıkla kaldırılması, beklenmeyen program davranışları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ıldığında, bazı verilerin yanlışlıkla temizlenmesi sonucu, bitişik verilerin değiştirilmesine neden olabilir ve bu durum kodlama ve kod çözme sonrasında verilerin tutarsız olmasına yol açabilir.
Solidity derleyici açığına karşı, Cobo blok zinciri güvenlik ekibi aşağıdaki önerileri sunmaktadır:
Geliştiricilere:
Güvenlik personeline:
Pratik kaynaklar:
Özetle, aşırı panik yapmaya gerek olmasa da, geliştiricilerin ve güvenlik uzmanlarının Solidity derleyici açıklarının potansiyel risklerini tam olarak anlaması ve bunların yol açabileceği güvenlik tehditlerini azaltmak için uygun önlemleri alması gerekir.