Analisis kerentanan compiler Solidity dan langkah-langkah pencegahannya

robot
Pembuatan abstrak sedang berlangsung

Analisis dan Langkah-langkah Pencegahan Kerentanan Kompiler Solidity

Kompiler adalah salah satu komponen dasar dari sistem komputer modern, dengan fungsi utama mengubah kode sumber bahasa pemrograman tingkat tinggi menjadi kode instruksi yang dapat dieksekusi oleh komputer. Meskipun sebagian besar pengembang dan petugas keamanan biasanya lebih memperhatikan keamanan kode aplikasi, keamanan kompilernya sendiri juga tidak boleh diabaikan. Faktanya, sebagai sebuah program komputer, kompiler juga dapat memiliki kerentanan keamanan, yang dalam beberapa kasus dapat menimbulkan risiko keamanan yang serius.

Fungsi kompilator Solidity adalah untuk mengubah kode kontrak pintar menjadi kode instruksi Ethereum Virtual Machine (EVM). Berbeda dengan kerentanan EVM itu sendiri, kerentanan kompilator Solidity terutama merujuk pada masalah yang muncul selama proses konversi kode. Jenis kerentanan ini tidak akan langsung mempengaruhi jaringan Ethereum, tetapi dapat menyebabkan kode EVM yang dihasilkan tidak sesuai dengan harapan pengembang, yang dapat mengakibatkan konsekuensi serius.

Analisis Kerentanan Compiler Solidity dan Tindakan Penanganan

Berikut adalah beberapa contoh nyata dari kerentanan compiler Solidity:

  1. SOL-2016-9 Penyimpanan Byte Tinggi yang Bersih

Kerentanan ini ada pada versi awal pengompilasi Solidity (>=0.1.6 <0.4.4). Ini dapat menyebabkan variabel storage mengembalikan nilai yang tidak diharapkan tanpa modifikasi. Ketidakcocokan ini dapat menyebabkan masalah serius dalam operasi penting seperti verifikasi izin atau akuntansi aset.

  1. SOL-2022-4 Efek Samping Memori InlineAssembly

Kerentanan ini mempengaruhi versi compiler >=0.8.13 <0.8.15. Ini berasal dari kesalahan compiler yang secara tidak benar menghapus instruksi operasi memori yang tampaknya berlebihan tetapi sebenarnya diperlukan selama proses optimasi, yang mengakibatkan nilai kembali fungsi tidak sesuai dengan yang diharapkan.

  1. SOL-2022-6 AbiReencodingHeadOverflowWithStaticArrayCleanup

Kerentanan ini mempengaruhi versi compiler >= 0.5.8 < 0.8.16. Saat melakukan operasi abi.encode pada array tipe calldata, compiler secara keliru menghapus beberapa data, yang mengakibatkan data berdekatan dimodifikasi, dan pada akhirnya menyebabkan ketidakcocokan data setelah pengkodean dan pengkodean ulang.

Analisis Kerentanan Compiler Solidity dan Tindakan Penanggulangan

Untuk mengatasi risiko yang ditimbulkan oleh kerentanan compiler Solidity, tim keamanan blockchain Cobo mengajukan saran berikut:

Untuk Pengembang:

  • Gunakan versi terbaru dari compiler Solidity
  • Memperbaiki kasus pengujian unit, meningkatkan cakupan kode
  • Hindari penggunaan assembly inline, operasi decoding/encoding abi yang kompleks, dan gunakan fitur baru serta fitur eksperimental dengan hati-hati.

Kepada petugas keamanan:

  • Perhatikan risiko yang mungkin diperkenalkan oleh compiler saat audit keamanan
  • Mendorong peningkatan versi compiler dalam proses pengembangan SDL, mempertimbangkan untuk memperkenalkan pemeriksaan otomatis dalam CI/CD.
  • Menilai dampak keamanan nyata dari kerentanan compiler berdasarkan situasi proyek yang spesifik

Beberapa sumber daya yang berguna:

  • Peringatan keamanan resmi dari Solidity
  • Daftar bug di repositori GitHub Solidity
  • Peringatan keamanan di halaman kode kontrak Etherscan

Dengan memperhatikan keamanan compiler dan menggunakan sumber daya terkait secara bijak, pengembang dan personel keamanan dapat lebih baik mencegah risiko potensial yang ditimbulkan oleh kerentanan compiler Solidity, serta meningkatkan keamanan keseluruhan kontrak pintar.

Analisis Kerentanan Compiler Solidity dan Tindakan Penanggulangan

SOL2.53%
ETH2.78%
Lihat Asli
Halaman ini mungkin berisi konten pihak ketiga, yang disediakan untuk tujuan informasi saja (bukan pernyataan/jaminan) dan tidak boleh dianggap sebagai dukungan terhadap pandangannya oleh Gate, atau sebagai nasihat keuangan atau profesional. Lihat Penafian untuk detailnya.
  • Hadiah
  • 6
  • Bagikan
Komentar
0/400
MEVSupportGroupvip
· 07-24 16:22
Masalah compiler adalah bencana besar...
Lihat AsliBalas0
MetaverseLandlordvip
· 07-24 02:50
Peringatan risiko tinggi untuk profesi programmer saat ini!
Lihat AsliBalas0
Ramen_Until_Richvip
· 07-22 03:21
Tidak akan berhenti sampai ke Sungai Kuning
Lihat AsliBalas0
AirdropHunterXMvip
· 07-22 03:15
Mulai tes bagaimana cara menghasilkan uang
Lihat AsliBalas0
LiquidityWitchvip
· 07-22 03:15
Risiko overflow sangat parah
Lihat AsliBalas0
SelfStakingvip
· 07-22 03:06
Khawatir sekali, segera perbarui ke versi terbaru
Lihat AsliBalas0
Perdagangkan Kripto Di Mana Saja Kapan Saja
qrCode
Pindai untuk mengunduh aplikasi Gate
Komunitas
Bahasa Indonesia
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)