Solidity Derleyici Açığı Analizi ve Önleme Önlemleri
Derleyici, modern bilgisayar sistemlerinin temel bileşenlerinden biridir ve işlevi, yüksek seviyeli programlama dili kaynak kodunu bilgisayar tarafından yürütülebilir talimat koduna dönüştürmektir. Uygulama programı koduyla karşılaştırıldığında, derleyicinin kendi güvenliği genellikle göz ardı edilir. Ancak derleyici bir bilgisayar programı olarak, aynı şekilde güvenlik açıkları barındırabilir 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 kendisine ait açıklarından farklı olarak, Solidity derleyici açıkları doğrudan Ethereum ağını etkilemez, ancak üretilen EVM kodunun geliştiricinin beklentileriyle uyuşmamasına neden olabilir ve bu da akıllı sözleşme güvenlik sorunlarına yol açabilir.
Aşağıda birkaç gerçek Solidity derleyici açığı örneği bulunmaktadır:
SOL-2016-9 YüksekDüzenBaytTemizlemeDepolama
Bu açık, erken dönem Solidity derleyici sürümlerinde (>=0.1.6 <0.4.4) bulunmaktadır. Bazı durumlarda, derleyici yüksek baytları doğru bir şekilde temizlememekte ve bu da değişken değerlerinin beklenmedik bir şekilde değiştirilmesine neden olmaktadır.
SOL-2022-4 InlineAssemblyMemorySideEffects
Bu açık, 0.8.13 ile 0.8.15 arasındaki derleyicileri etkilemektedir. Derleme optimizasyonu sırasında tek bir assembly bloğunun hatalı işlenmesi, bellek işlemlerinin yanlış bir şekilde optimize edilmesine neden olabilir.
Bu açık, 0.5.8 ile 0.8.16 sürümleri arasındaki derleyicileri etkilemektedir. calldata türündeki diziler üzerinde abi.encode işlemi yapılırken, bazı verilerin yanlışlıkla temizlenmesi sonucu komşu verilerin değiştirilmesine neden olmuştur.
Solidity derleyici açıkları için aşağıdaki güvenlik önerileri sunulmuştur:
Geliştiricilere:
Daha yeni bir Solidity derleyici sürümü kullanın
Birim test vakalarını geliştirin
Inline 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
Geliştirme sürecinde derleyici sürümünün yükseltilmesi için teşvik etme
Derleyici açıklarının gerçek güvenlik etkilerini belirli durumlara göre değerlendirin.
Bazı pratik kaynaklar:
Solidity resmi güvenlik uyarı blogu
Solidity GitHub deposundaki hata listesi
Etherscan sözleşme kodu sayfasındaki derleyici açığı uyarısı
Sonuç olarak, derleyici açıkları için aşırı panik yapmamak gerekir, ancak geliştiricilerin ve güvenlik uzmanlarının dikkatli olmaları ve ilgili riskleri azaltmak için uygun önlemler almaları gerekmektedir.
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.
12 Likes
Reward
12
5
Share
Comment
0/400
hodl_therapist
· 21h ago
Roller'lar, vücudunuzu korumaya dikkat edin.
View OriginalReply0
CommunitySlacker
· 21h ago
Açıklar tekrar güncellendi, çok sinir bozucu.
View OriginalReply0
GasGuru
· 21h ago
Beni sözleşmeye girmeye cesaret edemez hale getirdi.
Solidity derleyici güvenlik açıkları analizi ve önleme yöntemleri
Solidity Derleyici Açığı Analizi ve Önleme Önlemleri
Derleyici, modern bilgisayar sistemlerinin temel bileşenlerinden biridir ve işlevi, yüksek seviyeli programlama dili kaynak kodunu bilgisayar tarafından yürütülebilir talimat koduna dönüştürmektir. Uygulama programı koduyla karşılaştırıldığında, derleyicinin kendi güvenliği genellikle göz ardı edilir. Ancak derleyici bir bilgisayar programı olarak, aynı şekilde güvenlik açıkları barındırabilir 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 kendisine ait açıklarından farklı olarak, Solidity derleyici açıkları doğrudan Ethereum ağını etkilemez, ancak üretilen EVM kodunun geliştiricinin beklentileriyle uyuşmamasına neden olabilir ve bu da akıllı sözleşme güvenlik sorunlarına yol açabilir.
Aşağıda birkaç gerçek Solidity derleyici açığı örneği bulunmaktadır:
Bu açık, erken dönem Solidity derleyici sürümlerinde (>=0.1.6 <0.4.4) bulunmaktadır. Bazı durumlarda, derleyici yüksek baytları doğru bir şekilde temizlememekte ve bu da değişken değerlerinin beklenmedik bir şekilde değiştirilmesine neden olmaktadır.
Bu açık, 0.8.13 ile 0.8.15 arasındaki derleyicileri etkilemektedir. Derleme optimizasyonu sırasında tek bir assembly bloğunun hatalı işlenmesi, bellek işlemlerinin yanlış bir şekilde optimize edilmesine neden olabilir.
Bu açık, 0.5.8 ile 0.8.16 sürümleri arasındaki derleyicileri etkilemektedir. calldata türündeki diziler üzerinde abi.encode işlemi yapılırken, bazı verilerin yanlışlıkla temizlenmesi sonucu komşu verilerin değiştirilmesine neden olmuştur.
Solidity derleyici açıkları için aşağıdaki güvenlik önerileri sunulmuştur:
Geliştiricilere:
Güvenlik personeline:
Bazı pratik kaynaklar:
Sonuç olarak, derleyici açıkları için aşırı panik yapmamak gerekir, ancak geliştiricilerin ve güvenlik uzmanlarının dikkatli olmaları ve ilgili riskleri azaltmak için uygun önlemler almaları gerekmektedir.