Solidity Derleyici Açığı Analizi ve Önleme Önlemleri
Derleyici, modern bilgisayar sistemlerinin temel bileşenlerinden biridir ve ana işlevi, yüksek seviyeli programlama dili kaynak kodunu bilgisayarın çalıştırabileceği talimat koduna dönüştürmektir. Çoğu geliştirici ve güvenlik uzmanı genellikle uygulama kodunun güvenliğiyle ilgilense de, derleyicinin güvenliği de göz ardı edilmemelidir. Gerçekte, bir bilgisayar programı olarak derleyicinin de güvenlik açıkları bulunabilir ve bu 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 açıklarından farklı olarak, Solidity derleyici açıkları esasen kod dönüşümü sürecinde meydana gelen sorunları ifade eder. Bu tür açıklar doğrudan Ethereum ağına etki etmez, ancak üretilen EVM kodunun geliştiricinin beklentileriyle uyuşmamasına neden olabilir, bu da ciddi sonuçlar doğurabilir.
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 bulunmaktadır (>=0.1.6 <0.4.4). Bu, storage değişkenlerinin değiştirilmeden beklenmeyen değerler döndürmesine neden olabilir. Bu tutarsızlık, yetki doğrulama veya varlık muhasebesi gibi kritik işlemlerde ciddi sorunlara yol açabilir.
SOL-2022-4 InlineAssemblyMemorySideEffects
Bu açık, >=0.8.13 <0.8.15 sürümündeki derleyicileri etkilemektedir. Bu, derleyicinin optimizasyon sürecinde görünüşte gereksiz ancak aslında gerekli olan bellek işlem talimatlarını yanlışlıkla kaldırmasından kaynaklanmakta olup, bu da işlevin döndürdüğü değerin beklenenden farklı olmasına yol açmaktadır.
Bu açık, >= 0.5.8 < 0.8.16 sürümlerindeki derleyicileri etkilemektedir. calldata türündeki bir dizi üzerinde abi.encode işlemi yapıldığında, derleyici bazı verileri yanlışlıkla temizlemiş ve bu durum yan yana bulunan verilerin değiştirilmesine neden olarak, sonunda kodlama ve kod çözme sonrasında verilerin tutarsız olmasına yol açmıştır.
Solidity derleyici açıklarının getirdiği risklerle başa çıkmak için, 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ştirerek kod kapsamını artırın
İç içe yerleştirilmiş derleme, karmaşık abi kodlama ve kod çözme gibi işlemlerden kaçının, yeni özellikler ve deneysel işlevleri dikkatli bir şekilde kullanın.
Güvenlik personeline:
Güvenlik denetimi sırasında derleyicinin yaratabileceği risklere dikkat edin
SDL geliştirme sürecinde derleyici sürüm güncellemelerini teşvik etmek, CI/CD'de otomatik kontrol eklemeyi düşünmek
Belirli proje durumuna göre derleyici açıklarının gerçek güvenlik etkisini değerlendirin.
Bazı pratik kaynaklar:
Solidity resmi olarak güvenlik uyarısı yayınladı
Solidity GitHub deposundaki hata listesi
Etherscan sözleşme kodu sayfasının güvenlik ipuçları
Derleyici güvenliğine odaklanarak ve ilgili kaynakları akıllıca kullanarak, geliştiriciler ve güvenlik uzmanları, Solidity derleyici açıklarının getirdiği potansiyel riskleri daha iyi önleyebilir ve akıllı sözleşmelerin genel güvenliğini artırabilir.
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.
18 Likes
Reward
18
6
Share
Comment
0/400
MEVSupportGroup
· 07-24 16:22
Derleyiciyle ilgili bir sorun büyük bir felakettir...
View OriginalReply0
MetaverseLandlord
· 07-24 02:50
Günümüzde yazılım geliştiricileri için yüksek riskli meslek uyarısı!
Solidity derleyici açıkları analizi ve önleme yöntemleri
Solidity Derleyici Açığı Analizi ve Önleme Önlemleri
Derleyici, modern bilgisayar sistemlerinin temel bileşenlerinden biridir ve ana işlevi, yüksek seviyeli programlama dili kaynak kodunu bilgisayarın çalıştırabileceği talimat koduna dönüştürmektir. Çoğu geliştirici ve güvenlik uzmanı genellikle uygulama kodunun güvenliğiyle ilgilense de, derleyicinin güvenliği de göz ardı edilmemelidir. Gerçekte, bir bilgisayar programı olarak derleyicinin de güvenlik açıkları bulunabilir ve bu 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 açıklarından farklı olarak, Solidity derleyici açıkları esasen kod dönüşümü sürecinde meydana gelen sorunları ifade eder. Bu tür açıklar doğrudan Ethereum ağına etki etmez, ancak üretilen EVM kodunun geliştiricinin beklentileriyle uyuşmamasına neden olabilir, bu da ciddi sonuçlar doğurabilir.
Aşağıda birkaç gerçek Solidity derleyici açığı örneği bulunmaktadır:
Bu açık, erken dönem Solidity derleyici sürümlerinde bulunmaktadır (>=0.1.6 <0.4.4). Bu, storage değişkenlerinin değiştirilmeden beklenmeyen değerler döndürmesine neden olabilir. Bu tutarsızlık, yetki doğrulama veya varlık muhasebesi gibi kritik işlemlerde ciddi sorunlara yol açabilir.
Bu açık, >=0.8.13 <0.8.15 sürümündeki derleyicileri etkilemektedir. Bu, derleyicinin optimizasyon sürecinde görünüşte gereksiz ancak aslında gerekli olan bellek işlem talimatlarını yanlışlıkla kaldırmasından kaynaklanmakta olup, bu da işlevin döndürdüğü değerin beklenenden farklı olmasına yol açmaktadır.
Bu açık, >= 0.5.8 < 0.8.16 sürümlerindeki derleyicileri etkilemektedir. calldata türündeki bir dizi üzerinde abi.encode işlemi yapıldığında, derleyici bazı verileri yanlışlıkla temizlemiş ve bu durum yan yana bulunan verilerin değiştirilmesine neden olarak, sonunda kodlama ve kod çözme sonrasında verilerin tutarsız olmasına yol açmıştır.
Solidity derleyici açıklarının getirdiği risklerle başa çıkmak için, Cobo blok zinciri güvenlik ekibi aşağıdaki önerileri sunmaktadır:
Geliştiricilere:
Güvenlik personeline:
Bazı pratik kaynaklar:
Derleyici güvenliğine odaklanarak ve ilgili kaynakları akıllıca kullanarak, geliştiriciler ve güvenlik uzmanları, Solidity derleyici açıklarının getirdiği potansiyel riskleri daha iyi önleyebilir ve akıllı sözleşmelerin genel güvenliğini artırabilir.