Solidity Derleyici Açığı Analizi ve Müdahale Stratejileri
Derleyici, modern bilgisayar sistemlerinin temel bileşenlerinden biridir. Ana işlevi, yüksek seviyeli programlama dili kaynak kodunu bilgisayarın alt seviyesindeki çalıştırılabilir talimat koduna dönüştürmektir. Uygulama programı kodları gibi, derleyicinin kendisi de güvenlik açıkları barındırabilir ve bazı durumlarda ciddi güvenlik riskleri doğurabilir.
Solidity derleyicisinin rolü, akıllı sözleşme kodunu Ethereum sanal makinesi (EVM) talimat koduna dönüştürmektir. EVM'nin kendi güvenlik açıklarından farklı olarak, Solidity derleyici güvenlik açıkları genellikle derleme sürecinde meydana gelir, bu da doğrudan Ethereum ağını etkilemez, ancak üretilen EVM kodunun geliştiricinin beklentileriyle tutarsız olmasına yol açabilir, bu da akıllı sözleşme çalışma hatalarına neden olabilir ve hatta kullanıcı varlıklarının kaybına yol açabilir.
Aşağıda birkaç gerçek örnekle Solidity derleyici açıklarının belirli biçimlerini, nedenlerini ve zararlarını açıklayacağız:
SOL-2016-9 YüksekDüzeyBaytTemizDepolama
Bu güvenlik açığı, erken Solıdity derleyici sürümleri (>=0.1.6 <0.4.4)'de bulunmaktadır. Bazı durumlarda, derleyici, tam sayı taşmasından sonra yüksek bitleri düzgün bir şekilde temizlememektedir, bu da bitişik değişkenlerin beklenmedik bir şekilde değiştirilmesine yol açabilir. Bu, yetki doğrulama veya varlık muhasebesi gibi kritik mantıkta hatalara neden olabilir.
SOL-2022-4 InlineAssemblyMemorySideEffects
Bu güvenlik açığı 0.8.13 ile 0.8.15 sürümleri arasındaki derleyicide bulunmaktadır. Derleme optimizasyon stratejisinin hatalı uygulanması nedeniyle, inline assembly içindeki bellek yazma talimatlarını yanlışlıkla kaldırabilir ve veri tutarsızlığına neden olabilir.
Bu açık, 0.5.8 ile 0.8.16 sürümleri arasındaki derleyicileri etkilemektedir. calldata türündeki dizilerin abi kodlaması sırasında, bazı verilerin yanlışlıkla temizlenmesi, bitişik verilerin değiştirilmesine neden olarak kodlama ve kod çözme sonuçlarının tutarsız olmasına yol açmaktadır.
Solidity derleyici açığına yönelik olarak, geliştiricilerin ve güvenlik uzmanlarının aşağıdaki önlemleri alması önerilir:
Geliştiricilere:
Daha yeni bir Solidity derleyici sürümünü kullanın
Birim test durumlarını geliştirerek kod kapsamını artırmak
Hata yapması kolay olan iç içe montaj, karmaşık abi kod çözme gibi işlemlerden kaçının.
Güvenlik Personeline:
Denetim sırasında derleyici sürümünün getirebileceği risklere dikkat edin.
Belirli projelere göre derleyici açıklarının gerçek etkisini değerlendirin.
Bazı yararlı kaynaklar:
Solidity resmi güvenlik uyarısı
Solidity GitHub deposundaki hata listesi
Etherscan akıllı sözleşme kodu sayfasındaki derleyici açığı uyarısı
Solidity derleyici açıklarının özelliklerini anlayarak ve uygun önlemleri alarak, akıllı sözleşmelerin derleyici sorunları nedeniyle güvenlik risklerini etkili bir şekilde azaltmak mümkündür.
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.
8 Likes
Reward
8
5
Share
Comment
0/400
GateUser-bd883c58
· 07-12 08:17
Görünüşe göre derleyici de güvenilir değil.
View OriginalReply0
HashRatePhilosopher
· 07-12 08:14
Bu derleyici ağır mı?
View OriginalReply0
LiquidationWatcher
· 07-12 08:07
orada bulundum, çok fazla kaybettim... derleyici versiyonunu kontrol et ya da gerçekten rekt ol
Solidity Derleyici Açık Riskleri ve Müdahale Stratejilerinin Analizi
Solidity Derleyici Açığı Analizi ve Müdahale Stratejileri
Derleyici, modern bilgisayar sistemlerinin temel bileşenlerinden biridir. Ana işlevi, yüksek seviyeli programlama dili kaynak kodunu bilgisayarın alt seviyesindeki çalıştırılabilir talimat koduna dönüştürmektir. Uygulama programı kodları gibi, derleyicinin kendisi de güvenlik açıkları barındırabilir ve bazı durumlarda ciddi güvenlik riskleri doğurabilir.
Solidity derleyicisinin rolü, akıllı sözleşme kodunu Ethereum sanal makinesi (EVM) talimat koduna dönüştürmektir. EVM'nin kendi güvenlik açıklarından farklı olarak, Solidity derleyici güvenlik açıkları genellikle derleme sürecinde meydana gelir, bu da doğrudan Ethereum ağını etkilemez, ancak üretilen EVM kodunun geliştiricinin beklentileriyle tutarsız olmasına yol açabilir, bu da akıllı sözleşme çalışma hatalarına neden olabilir ve hatta kullanıcı varlıklarının kaybına yol açabilir.
Aşağıda birkaç gerçek örnekle Solidity derleyici açıklarının belirli biçimlerini, nedenlerini ve zararlarını açıklayacağız:
Bu güvenlik açığı, erken Solıdity derleyici sürümleri (>=0.1.6 <0.4.4)'de bulunmaktadır. Bazı durumlarda, derleyici, tam sayı taşmasından sonra yüksek bitleri düzgün bir şekilde temizlememektedir, bu da bitişik değişkenlerin beklenmedik bir şekilde değiştirilmesine yol açabilir. Bu, yetki doğrulama veya varlık muhasebesi gibi kritik mantıkta hatalara neden olabilir.
Bu güvenlik açığı 0.8.13 ile 0.8.15 sürümleri arasındaki derleyicide bulunmaktadır. Derleme optimizasyon stratejisinin hatalı uygulanması nedeniyle, inline assembly içindeki bellek yazma talimatlarını yanlışlıkla kaldırabilir ve veri tutarsızlığına neden olabilir.
Bu açık, 0.5.8 ile 0.8.16 sürümleri arasındaki derleyicileri etkilemektedir. calldata türündeki dizilerin abi kodlaması sırasında, bazı verilerin yanlışlıkla temizlenmesi, bitişik verilerin değiştirilmesine neden olarak kodlama ve kod çözme sonuçlarının tutarsız olmasına yol açmaktadır.
Solidity derleyici açığına yönelik olarak, geliştiricilerin ve güvenlik uzmanlarının aşağıdaki önlemleri alması önerilir:
Geliştiricilere:
Güvenlik Personeline:
Bazı yararlı kaynaklar:
Solidity derleyici açıklarının özelliklerini anlayarak ve uygun önlemleri alarak, akıllı sözleşmelerin derleyici sorunları nedeniyle güvenlik risklerini etkili bir şekilde azaltmak mümkündür.